diff --git a/package-lock.json b/package-lock.json index dfffc4ae8..44a894eaf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,14 @@ { "name": "watchit", "version": "2.1.1-beta.1", + "version": "2.0.0-beta.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "watchit", "version": "2.1.1-beta.1", + "version": "2.0.0-beta.6", "dependencies": { "@helia/unixfs": "^4.0.1", "@hookform/resolvers": "^3.1.1", @@ -36,6 +38,7 @@ "@web3auth/ethereum-provider": "~9.4.0", "@web3auth/modal": "~9.4.0", "@web3auth/modal-react-hooks": "~9.4.0", + "apexcharts": "^4.3.0", "autosuggest-highlight": "^3.3.4", "axios": "^1.4.0", "date-fns": "^2.30.0", @@ -58,6 +61,7 @@ "numeral": "^2.0.6", "pbkdf2": "^3.1.2", "react": "^18.2.0", + "react-apexcharts": "^1.7.0", "react-dom": "^18.2.0", "react-dropzone": "^14.2.3", "react-helmet-async": "^1.3.0", @@ -199,9 +203,9 @@ } }, "node_modules/@apollo/client": { - "version": "3.12.2", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.12.2.tgz", - "integrity": "sha512-dkacsdMgVsrrQhLpN4JqZTIEfnNsPVwny+4vccSRqheWZElzUz1Xi0h39p2+TieS1f+wwvyzwpoJEV57vwzT9Q==", + "version": "3.12.4", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.12.4.tgz", + "integrity": "sha512-S/eC9jxEW9Jg1BjD6AZonE1fHxYuvC3gFHop8FRQkUdeK63MmBD5r0DOrN2WlJbwha1MSD6A97OwXwjaujEQpA==", "license": "MIT", "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", @@ -466,69 +470,69 @@ } }, "node_modules/@aws-sdk/client-s3": { - "version": "3.705.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.705.0.tgz", - "integrity": "sha512-Fm0Cbc4zr0yG0DnNycz7ywlL5tQFdLSb7xCIPfzrxJb3YQiTXWxH5eu61SSsP/Z6RBNRolmRPvst/iNgX0fWvA==", + "version": "3.717.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.717.0.tgz", + "integrity": "sha512-jzaH8IskAXVnqlZ3/H/ROwrB2HCnq/atlN7Hi7FIfjWvMPf5nfcJKfzJ1MXFX0EQR5qO6X4TbK7rgi7Bjw9NjQ==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha1-browser": "5.2.0", "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.699.0", - "@aws-sdk/client-sts": "3.699.0", - "@aws-sdk/core": "3.696.0", - "@aws-sdk/credential-provider-node": "3.699.0", - "@aws-sdk/middleware-bucket-endpoint": "3.696.0", - "@aws-sdk/middleware-expect-continue": "3.696.0", - "@aws-sdk/middleware-flexible-checksums": "3.701.0", - "@aws-sdk/middleware-host-header": "3.696.0", - "@aws-sdk/middleware-location-constraint": "3.696.0", - "@aws-sdk/middleware-logger": "3.696.0", - "@aws-sdk/middleware-recursion-detection": "3.696.0", - "@aws-sdk/middleware-sdk-s3": "3.696.0", - "@aws-sdk/middleware-ssec": "3.696.0", - "@aws-sdk/middleware-user-agent": "3.696.0", - "@aws-sdk/region-config-resolver": "3.696.0", - "@aws-sdk/signature-v4-multi-region": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@aws-sdk/util-endpoints": "3.696.0", - "@aws-sdk/util-user-agent-browser": "3.696.0", - "@aws-sdk/util-user-agent-node": "3.696.0", - "@aws-sdk/xml-builder": "3.696.0", - "@smithy/config-resolver": "^3.0.12", - "@smithy/core": "^2.5.3", - "@smithy/eventstream-serde-browser": "^3.0.13", - "@smithy/eventstream-serde-config-resolver": "^3.0.10", - "@smithy/eventstream-serde-node": "^3.0.12", - "@smithy/fetch-http-handler": "^4.1.1", - "@smithy/hash-blob-browser": "^3.1.9", - "@smithy/hash-node": "^3.0.10", - "@smithy/hash-stream-node": "^3.1.9", - "@smithy/invalid-dependency": "^3.0.10", - "@smithy/md5-js": "^3.0.10", - "@smithy/middleware-content-length": "^3.0.12", - "@smithy/middleware-endpoint": "^3.2.3", - "@smithy/middleware-retry": "^3.0.27", - "@smithy/middleware-serde": "^3.0.10", - "@smithy/middleware-stack": "^3.0.10", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/node-http-handler": "^3.3.1", - "@smithy/protocol-http": "^4.1.7", - "@smithy/smithy-client": "^3.4.4", - "@smithy/types": "^3.7.1", - "@smithy/url-parser": "^3.0.10", + "@aws-sdk/client-sso-oidc": "3.716.0", + "@aws-sdk/client-sts": "3.716.0", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/credential-provider-node": "3.716.0", + "@aws-sdk/middleware-bucket-endpoint": "3.714.0", + "@aws-sdk/middleware-expect-continue": "3.714.0", + "@aws-sdk/middleware-flexible-checksums": "3.717.0", + "@aws-sdk/middleware-host-header": "3.714.0", + "@aws-sdk/middleware-location-constraint": "3.714.0", + "@aws-sdk/middleware-logger": "3.714.0", + "@aws-sdk/middleware-recursion-detection": "3.714.0", + "@aws-sdk/middleware-sdk-s3": "3.716.0", + "@aws-sdk/middleware-ssec": "3.714.0", + "@aws-sdk/middleware-user-agent": "3.716.0", + "@aws-sdk/region-config-resolver": "3.714.0", + "@aws-sdk/signature-v4-multi-region": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@aws-sdk/util-endpoints": "3.714.0", + "@aws-sdk/util-user-agent-browser": "3.714.0", + "@aws-sdk/util-user-agent-node": "3.716.0", + "@aws-sdk/xml-builder": "3.709.0", + "@smithy/config-resolver": "^3.0.13", + "@smithy/core": "^2.5.5", + "@smithy/eventstream-serde-browser": "^3.0.14", + "@smithy/eventstream-serde-config-resolver": "^3.0.11", + "@smithy/eventstream-serde-node": "^3.0.13", + "@smithy/fetch-http-handler": "^4.1.2", + "@smithy/hash-blob-browser": "^3.1.10", + "@smithy/hash-node": "^3.0.11", + "@smithy/hash-stream-node": "^3.1.10", + "@smithy/invalid-dependency": "^3.0.11", + "@smithy/md5-js": "^3.0.11", + "@smithy/middleware-content-length": "^3.0.13", + "@smithy/middleware-endpoint": "^3.2.6", + "@smithy/middleware-retry": "^3.0.31", + "@smithy/middleware-serde": "^3.0.11", + "@smithy/middleware-stack": "^3.0.11", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/node-http-handler": "^3.3.2", + "@smithy/protocol-http": "^4.1.8", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/url-parser": "^3.0.11", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.27", - "@smithy/util-defaults-mode-node": "^3.0.27", - "@smithy/util-endpoints": "^2.1.6", - "@smithy/util-middleware": "^3.0.10", - "@smithy/util-retry": "^3.0.10", - "@smithy/util-stream": "^3.3.1", + "@smithy/util-defaults-mode-browser": "^3.0.31", + "@smithy/util-defaults-mode-node": "^3.0.31", + "@smithy/util-endpoints": "^2.1.7", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-retry": "^3.0.11", + "@smithy/util-stream": "^3.3.2", "@smithy/util-utf8": "^3.0.0", - "@smithy/util-waiter": "^3.1.9", + "@smithy/util-waiter": "^3.2.0", "tslib": "^2.6.2" }, "engines": { @@ -536,48 +540,48 @@ } }, "node_modules/@aws-sdk/client-sso": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.696.0.tgz", - "integrity": "sha512-q5TTkd08JS0DOkHfUL853tuArf7NrPeqoS5UOvqJho8ibV9Ak/a/HO4kNvy9Nj3cib/toHYHsQIEtecUPSUUrQ==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.716.0.tgz", + "integrity": "sha512-5Nb0jJXce2TclbjG7WVPufwhgV1TRydz1QnsuBtKU0AdViEpr787YrZhPpGnNIM1Dx+R1H/tmAHZnOoohS6D8g==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.696.0", - "@aws-sdk/middleware-host-header": "3.696.0", - "@aws-sdk/middleware-logger": "3.696.0", - "@aws-sdk/middleware-recursion-detection": "3.696.0", - "@aws-sdk/middleware-user-agent": "3.696.0", - "@aws-sdk/region-config-resolver": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@aws-sdk/util-endpoints": "3.696.0", - "@aws-sdk/util-user-agent-browser": "3.696.0", - "@aws-sdk/util-user-agent-node": "3.696.0", - "@smithy/config-resolver": "^3.0.12", - "@smithy/core": "^2.5.3", - "@smithy/fetch-http-handler": "^4.1.1", - "@smithy/hash-node": "^3.0.10", - "@smithy/invalid-dependency": "^3.0.10", - "@smithy/middleware-content-length": "^3.0.12", - "@smithy/middleware-endpoint": "^3.2.3", - "@smithy/middleware-retry": "^3.0.27", - "@smithy/middleware-serde": "^3.0.10", - "@smithy/middleware-stack": "^3.0.10", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/node-http-handler": "^3.3.1", - "@smithy/protocol-http": "^4.1.7", - "@smithy/smithy-client": "^3.4.4", - "@smithy/types": "^3.7.1", - "@smithy/url-parser": "^3.0.10", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/middleware-host-header": "3.714.0", + "@aws-sdk/middleware-logger": "3.714.0", + "@aws-sdk/middleware-recursion-detection": "3.714.0", + "@aws-sdk/middleware-user-agent": "3.716.0", + "@aws-sdk/region-config-resolver": "3.714.0", + "@aws-sdk/types": "3.714.0", + "@aws-sdk/util-endpoints": "3.714.0", + "@aws-sdk/util-user-agent-browser": "3.714.0", + "@aws-sdk/util-user-agent-node": "3.716.0", + "@smithy/config-resolver": "^3.0.13", + "@smithy/core": "^2.5.5", + "@smithy/fetch-http-handler": "^4.1.2", + "@smithy/hash-node": "^3.0.11", + "@smithy/invalid-dependency": "^3.0.11", + "@smithy/middleware-content-length": "^3.0.13", + "@smithy/middleware-endpoint": "^3.2.6", + "@smithy/middleware-retry": "^3.0.31", + "@smithy/middleware-serde": "^3.0.11", + "@smithy/middleware-stack": "^3.0.11", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/node-http-handler": "^3.3.2", + "@smithy/protocol-http": "^4.1.8", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/url-parser": "^3.0.11", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.27", - "@smithy/util-defaults-mode-node": "^3.0.27", - "@smithy/util-endpoints": "^2.1.6", - "@smithy/util-middleware": "^3.0.10", - "@smithy/util-retry": "^3.0.10", + "@smithy/util-defaults-mode-browser": "^3.0.31", + "@smithy/util-defaults-mode-node": "^3.0.31", + "@smithy/util-endpoints": "^2.1.7", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-retry": "^3.0.11", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -586,49 +590,49 @@ } }, "node_modules/@aws-sdk/client-sso-oidc": { - "version": "3.699.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.699.0.tgz", - "integrity": "sha512-u8a1GorY5D1l+4FQAf4XBUC1T10/t7neuwT21r0ymrtMFSK2a9QqVHKMoLkvavAwyhJnARSBM9/UQC797PFOFw==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.716.0.tgz", + "integrity": "sha512-lA4IB9FzR2KjH7EVCo+mHGFKqdViVyeBQEIX9oVratL/l7P0bMS1fMwgfHOc3ACazqNxBxDES7x08ZCp32y6Lw==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.696.0", - "@aws-sdk/credential-provider-node": "3.699.0", - "@aws-sdk/middleware-host-header": "3.696.0", - "@aws-sdk/middleware-logger": "3.696.0", - "@aws-sdk/middleware-recursion-detection": "3.696.0", - "@aws-sdk/middleware-user-agent": "3.696.0", - "@aws-sdk/region-config-resolver": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@aws-sdk/util-endpoints": "3.696.0", - "@aws-sdk/util-user-agent-browser": "3.696.0", - "@aws-sdk/util-user-agent-node": "3.696.0", - "@smithy/config-resolver": "^3.0.12", - "@smithy/core": "^2.5.3", - "@smithy/fetch-http-handler": "^4.1.1", - "@smithy/hash-node": "^3.0.10", - "@smithy/invalid-dependency": "^3.0.10", - "@smithy/middleware-content-length": "^3.0.12", - "@smithy/middleware-endpoint": "^3.2.3", - "@smithy/middleware-retry": "^3.0.27", - "@smithy/middleware-serde": "^3.0.10", - "@smithy/middleware-stack": "^3.0.10", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/node-http-handler": "^3.3.1", - "@smithy/protocol-http": "^4.1.7", - "@smithy/smithy-client": "^3.4.4", - "@smithy/types": "^3.7.1", - "@smithy/url-parser": "^3.0.10", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/credential-provider-node": "3.716.0", + "@aws-sdk/middleware-host-header": "3.714.0", + "@aws-sdk/middleware-logger": "3.714.0", + "@aws-sdk/middleware-recursion-detection": "3.714.0", + "@aws-sdk/middleware-user-agent": "3.716.0", + "@aws-sdk/region-config-resolver": "3.714.0", + "@aws-sdk/types": "3.714.0", + "@aws-sdk/util-endpoints": "3.714.0", + "@aws-sdk/util-user-agent-browser": "3.714.0", + "@aws-sdk/util-user-agent-node": "3.716.0", + "@smithy/config-resolver": "^3.0.13", + "@smithy/core": "^2.5.5", + "@smithy/fetch-http-handler": "^4.1.2", + "@smithy/hash-node": "^3.0.11", + "@smithy/invalid-dependency": "^3.0.11", + "@smithy/middleware-content-length": "^3.0.13", + "@smithy/middleware-endpoint": "^3.2.6", + "@smithy/middleware-retry": "^3.0.31", + "@smithy/middleware-serde": "^3.0.11", + "@smithy/middleware-stack": "^3.0.11", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/node-http-handler": "^3.3.2", + "@smithy/protocol-http": "^4.1.8", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/url-parser": "^3.0.11", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.27", - "@smithy/util-defaults-mode-node": "^3.0.27", - "@smithy/util-endpoints": "^2.1.6", - "@smithy/util-middleware": "^3.0.10", - "@smithy/util-retry": "^3.0.10", + "@smithy/util-defaults-mode-browser": "^3.0.31", + "@smithy/util-defaults-mode-node": "^3.0.31", + "@smithy/util-endpoints": "^2.1.7", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-retry": "^3.0.11", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -636,54 +640,54 @@ "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.699.0" + "@aws-sdk/client-sts": "^3.716.0" } }, "node_modules/@aws-sdk/client-sts": { - "version": "3.699.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.699.0.tgz", - "integrity": "sha512-++lsn4x2YXsZPIzFVwv3fSUVM55ZT0WRFmPeNilYIhZClxHLmVAWKH4I55cY9ry60/aTKYjzOXkWwyBKGsGvQg==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.716.0.tgz", + "integrity": "sha512-i4SVNsrdXudp8T4bkm7Fi3YWlRnvXCSwvNDqf6nLqSJxqr4CN3VlBELueDyjBK7TAt453/qSif+eNx+bHmwo4Q==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.699.0", - "@aws-sdk/core": "3.696.0", - "@aws-sdk/credential-provider-node": "3.699.0", - "@aws-sdk/middleware-host-header": "3.696.0", - "@aws-sdk/middleware-logger": "3.696.0", - "@aws-sdk/middleware-recursion-detection": "3.696.0", - "@aws-sdk/middleware-user-agent": "3.696.0", - "@aws-sdk/region-config-resolver": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@aws-sdk/util-endpoints": "3.696.0", - "@aws-sdk/util-user-agent-browser": "3.696.0", - "@aws-sdk/util-user-agent-node": "3.696.0", - "@smithy/config-resolver": "^3.0.12", - "@smithy/core": "^2.5.3", - "@smithy/fetch-http-handler": "^4.1.1", - "@smithy/hash-node": "^3.0.10", - "@smithy/invalid-dependency": "^3.0.10", - "@smithy/middleware-content-length": "^3.0.12", - "@smithy/middleware-endpoint": "^3.2.3", - "@smithy/middleware-retry": "^3.0.27", - "@smithy/middleware-serde": "^3.0.10", - "@smithy/middleware-stack": "^3.0.10", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/node-http-handler": "^3.3.1", - "@smithy/protocol-http": "^4.1.7", - "@smithy/smithy-client": "^3.4.4", - "@smithy/types": "^3.7.1", - "@smithy/url-parser": "^3.0.10", + "@aws-sdk/client-sso-oidc": "3.716.0", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/credential-provider-node": "3.716.0", + "@aws-sdk/middleware-host-header": "3.714.0", + "@aws-sdk/middleware-logger": "3.714.0", + "@aws-sdk/middleware-recursion-detection": "3.714.0", + "@aws-sdk/middleware-user-agent": "3.716.0", + "@aws-sdk/region-config-resolver": "3.714.0", + "@aws-sdk/types": "3.714.0", + "@aws-sdk/util-endpoints": "3.714.0", + "@aws-sdk/util-user-agent-browser": "3.714.0", + "@aws-sdk/util-user-agent-node": "3.716.0", + "@smithy/config-resolver": "^3.0.13", + "@smithy/core": "^2.5.5", + "@smithy/fetch-http-handler": "^4.1.2", + "@smithy/hash-node": "^3.0.11", + "@smithy/invalid-dependency": "^3.0.11", + "@smithy/middleware-content-length": "^3.0.13", + "@smithy/middleware-endpoint": "^3.2.6", + "@smithy/middleware-retry": "^3.0.31", + "@smithy/middleware-serde": "^3.0.11", + "@smithy/middleware-stack": "^3.0.11", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/node-http-handler": "^3.3.2", + "@smithy/protocol-http": "^4.1.8", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/url-parser": "^3.0.11", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.27", - "@smithy/util-defaults-mode-node": "^3.0.27", - "@smithy/util-endpoints": "^2.1.6", - "@smithy/util-middleware": "^3.0.10", - "@smithy/util-retry": "^3.0.10", + "@smithy/util-defaults-mode-browser": "^3.0.31", + "@smithy/util-defaults-mode-node": "^3.0.31", + "@smithy/util-endpoints": "^2.1.7", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-retry": "^3.0.11", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -692,21 +696,21 @@ } }, "node_modules/@aws-sdk/core": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.696.0.tgz", - "integrity": "sha512-3c9III1k03DgvRZWg8vhVmfIXPG6hAciN9MzQTzqGngzWAELZF/WONRTRQuDFixVtarQatmLHYVw/atGeA2Byw==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.716.0.tgz", + "integrity": "sha512-5DkUiTrbyzO8/W4g7UFEqRFpuhgizayHI/Zbh0wtFMcot8801nJV+MP/YMhdjimlvAr/OqYB08FbGsPyWppMTw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/core": "^2.5.3", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/property-provider": "^3.1.9", - "@smithy/protocol-http": "^4.1.7", - "@smithy/signature-v4": "^4.2.2", - "@smithy/smithy-client": "^3.4.4", - "@smithy/types": "^3.7.1", - "@smithy/util-middleware": "^3.0.10", + "@aws-sdk/types": "3.714.0", + "@smithy/core": "^2.5.5", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/property-provider": "^3.1.11", + "@smithy/protocol-http": "^4.1.8", + "@smithy/signature-v4": "^4.2.4", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/util-middleware": "^3.0.11", "fast-xml-parser": "4.4.1", "tslib": "^2.6.2" }, @@ -715,16 +719,16 @@ } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.696.0.tgz", - "integrity": "sha512-T9iMFnJL7YTlESLpVFT3fg1Lkb1lD+oiaIC8KMpepb01gDUBIpj9+Y+pA/cgRWW0yRxmkDXNazAE2qQTVFGJzA==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.716.0.tgz", + "integrity": "sha512-JI2KQUnn2arICwP9F3CnqP1W3nAbm4+meQg/yOhp9X0DMzQiHrHRd4HIrK2vyVgi2/6hGhONY5uLF26yRTA7nQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@smithy/property-provider": "^3.1.9", - "@smithy/types": "^3.7.1", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/property-provider": "^3.1.11", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -732,21 +736,21 @@ } }, "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.696.0.tgz", - "integrity": "sha512-GV6EbvPi2eq1+WgY/o2RFA3P7HGmnkIzCNmhwtALFlqMroLYWKE7PSeHw66Uh1dFQeVESn0/+hiUNhu1mB0emA==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.716.0.tgz", + "integrity": "sha512-CZ04pl2z7igQPysQyH2xKZHM3fLwkemxQbKOlje3TmiS1NwXvcKvERhp9PE/H23kOL7beTM19NMRog/Fka/rlw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@smithy/fetch-http-handler": "^4.1.1", - "@smithy/node-http-handler": "^3.3.1", - "@smithy/property-provider": "^3.1.9", - "@smithy/protocol-http": "^4.1.7", - "@smithy/smithy-client": "^3.4.4", - "@smithy/types": "^3.7.1", - "@smithy/util-stream": "^3.3.1", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/fetch-http-handler": "^4.1.2", + "@smithy/node-http-handler": "^3.3.2", + "@smithy/property-provider": "^3.1.11", + "@smithy/protocol-http": "^4.1.8", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/util-stream": "^3.3.2", "tslib": "^2.6.2" }, "engines": { @@ -754,50 +758,50 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.699.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.699.0.tgz", - "integrity": "sha512-dXmCqjJnKmG37Q+nLjPVu22mNkrGHY8hYoOt3Jo9R2zr5MYV7s/NHsCHr+7E+BZ+tfZYLRPeB1wkpTeHiEcdRw==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.716.0.tgz", + "integrity": "sha512-P37We2GtZvdROxiwP0zrpEL81/HuYK1qlYxp5VCj3uV+G4mG8UQN2gMIU/baYrpOQqa0h81RfyQGRFUjVaDVqw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.696.0", - "@aws-sdk/credential-provider-env": "3.696.0", - "@aws-sdk/credential-provider-http": "3.696.0", - "@aws-sdk/credential-provider-process": "3.696.0", - "@aws-sdk/credential-provider-sso": "3.699.0", - "@aws-sdk/credential-provider-web-identity": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@smithy/credential-provider-imds": "^3.2.6", - "@smithy/property-provider": "^3.1.9", - "@smithy/shared-ini-file-loader": "^3.1.10", - "@smithy/types": "^3.7.1", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/credential-provider-env": "3.716.0", + "@aws-sdk/credential-provider-http": "3.716.0", + "@aws-sdk/credential-provider-process": "3.716.0", + "@aws-sdk/credential-provider-sso": "3.716.0", + "@aws-sdk/credential-provider-web-identity": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/credential-provider-imds": "^3.2.8", + "@smithy/property-provider": "^3.1.11", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.699.0" + "@aws-sdk/client-sts": "^3.716.0" } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.699.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.699.0.tgz", - "integrity": "sha512-MmEmNDo1bBtTgRmdNfdQksXu4uXe66s0p1hi1YPrn1h59Q605eq/xiWbGL6/3KdkViH6eGUuABeV2ODld86ylg==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.716.0.tgz", + "integrity": "sha512-FGQPK2uKfS53dVvoskN/s/t6m0Po24BGd1PzJdzHBFCOjxbZLM6+8mDMXeyi2hCLVVQOUcuW41kOgmJ0+zMbww==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/credential-provider-env": "3.696.0", - "@aws-sdk/credential-provider-http": "3.696.0", - "@aws-sdk/credential-provider-ini": "3.699.0", - "@aws-sdk/credential-provider-process": "3.696.0", - "@aws-sdk/credential-provider-sso": "3.699.0", - "@aws-sdk/credential-provider-web-identity": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@smithy/credential-provider-imds": "^3.2.6", - "@smithy/property-provider": "^3.1.9", - "@smithy/shared-ini-file-loader": "^3.1.10", - "@smithy/types": "^3.7.1", + "@aws-sdk/credential-provider-env": "3.716.0", + "@aws-sdk/credential-provider-http": "3.716.0", + "@aws-sdk/credential-provider-ini": "3.716.0", + "@aws-sdk/credential-provider-process": "3.716.0", + "@aws-sdk/credential-provider-sso": "3.716.0", + "@aws-sdk/credential-provider-web-identity": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/credential-provider-imds": "^3.2.8", + "@smithy/property-provider": "^3.1.11", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -805,17 +809,17 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.696.0.tgz", - "integrity": "sha512-mL1RcFDe9sfmyU5K1nuFkO8UiJXXxLX4JO1gVaDIOvPqwStpUAwi3A1BoeZhWZZNQsiKI810RnYGo0E0WB/hUA==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.716.0.tgz", + "integrity": "sha512-0spcu2MWVVHSTHH3WE2E//ttUJPwXRM3BCp+WyI41xLzpNu1Fd8zjOrDpEo0SnGUzsSiRTIJWgkuu/tqv9NJ2A==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@smithy/property-provider": "^3.1.9", - "@smithy/shared-ini-file-loader": "^3.1.10", - "@smithy/types": "^3.7.1", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/property-provider": "^3.1.11", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -823,19 +827,19 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.699.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.699.0.tgz", - "integrity": "sha512-Ekp2cZG4pl9D8+uKWm4qO1xcm8/MeiI8f+dnlZm8aQzizeC+aXYy9GyoclSf6daK8KfRPiRfM7ZHBBL5dAfdMA==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.716.0.tgz", + "integrity": "sha512-J2IA3WuCpRGGoZm6VHZVFCnrxXP+41iUWb9Ct/1spljegTa1XjiaZ5Jf3+Ubj7WKiyvP9/dgz1L0bu2bYEjliw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-sso": "3.696.0", - "@aws-sdk/core": "3.696.0", - "@aws-sdk/token-providers": "3.699.0", - "@aws-sdk/types": "3.696.0", - "@smithy/property-provider": "^3.1.9", - "@smithy/shared-ini-file-loader": "^3.1.10", - "@smithy/types": "^3.7.1", + "@aws-sdk/client-sso": "3.716.0", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/token-providers": "3.714.0", + "@aws-sdk/types": "3.714.0", + "@smithy/property-provider": "^3.1.11", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -843,37 +847,37 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.696.0.tgz", - "integrity": "sha512-XJ/CVlWChM0VCoc259vWguFUjJDn/QwDqHwbx+K9cg3v6yrqXfK5ai+p/6lx0nQpnk4JzPVeYYxWRpaTsGC9rg==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.716.0.tgz", + "integrity": "sha512-vzgpWKs2gGXZGdbMKRFrMW4PqEFWkGvwWH2T7ZwQv9m+8lQ7P4Dk2uimqu0f37HZAbpn8HFMqRh4CaySjU354A==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@smithy/property-provider": "^3.1.9", - "@smithy/types": "^3.7.1", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/property-provider": "^3.1.11", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.696.0" + "@aws-sdk/client-sts": "^3.716.0" } }, "node_modules/@aws-sdk/middleware-bucket-endpoint": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.696.0.tgz", - "integrity": "sha512-V07jishKHUS5heRNGFpCWCSTjRJyQLynS/ncUeE8ZYtG66StOOQWftTwDfFOSoXlIqrXgb4oT9atryzXq7Z4LQ==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.714.0.tgz", + "integrity": "sha512-I/xSOskiseJJ8i183Z522BgqbgYzLKP7jGcg2Qeib/IWoG2IP+9DH8pwqagKaPAycyswtnoKBJiiFXY43n0CkA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.696.0", + "@aws-sdk/types": "3.714.0", "@aws-sdk/util-arn-parser": "3.693.0", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", "@smithy/util-config-provider": "^3.0.0", "tslib": "^2.6.2" }, @@ -882,15 +886,15 @@ } }, "node_modules/@aws-sdk/middleware-expect-continue": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.696.0.tgz", - "integrity": "sha512-vpVukqY3U2pb+ULeX0shs6L0aadNep6kKzjme/MyulPjtUDJpD3AekHsXRrCCGLmOqSKqRgQn5zhV9pQhHsb6Q==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.714.0.tgz", + "integrity": "sha512-rlzsXdG8Lzo4Qpl35ZnpOBAWlzvDHpP9++0AXoUwAJA0QmMm7auIRmgxJuNj91VwT9h15ZU6xjU4S7fJl4W0+w==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -898,23 +902,23 @@ } }, "node_modules/@aws-sdk/middleware-flexible-checksums": { - "version": "3.701.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.701.0.tgz", - "integrity": "sha512-adNaPCyTT+CiVM0ufDiO1Fe7nlRmJdI9Hcgj0M9S6zR7Dw70Ra5z8Lslkd7syAccYvZaqxLklGjPQH/7GNxwTA==", + "version": "3.717.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.717.0.tgz", + "integrity": "sha512-a5kY5r7/7bDZZlOQQGWOR1ulQewdtNexdW1Ex5DD0FLKlFY7RD0va24hxQ6BP7mWHol+Dx4pj6UQ8ahk0ap1tw==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/crc32": "5.2.0", "@aws-crypto/crc32c": "5.2.0", "@aws-crypto/util": "5.2.0", - "@aws-sdk/core": "3.696.0", - "@aws-sdk/types": "3.696.0", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", "@smithy/is-array-buffer": "^3.0.0", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", - "@smithy/util-middleware": "^3.0.10", - "@smithy/util-stream": "^3.3.1", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-stream": "^3.3.2", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -923,15 +927,15 @@ } }, "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.696.0.tgz", - "integrity": "sha512-zELJp9Ta2zkX7ELggMN9qMCgekqZhFC5V2rOr4hJDEb/Tte7gpfKSObAnw/3AYiVqt36sjHKfdkoTsuwGdEoDg==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.714.0.tgz", + "integrity": "sha512-6l68kjNrh5QC8FGX3I3geBDavWN5Tg1RLHJ2HLA8ByGBtJyCwnz3hEkKfaxn0bBx0hF9DzbfjEOUF6cDqy2Kjg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -939,14 +943,14 @@ } }, "node_modules/@aws-sdk/middleware-location-constraint": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.696.0.tgz", - "integrity": "sha512-FgH12OB0q+DtTrP2aiDBddDKwL4BPOrm7w3VV9BJrSdkqQCNBPz8S1lb0y5eVH4tBG+2j7gKPlOv1wde4jF/iw==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.714.0.tgz", + "integrity": "sha512-MX7M+V+FblujKck3fyuzePVIAy9530gY719IiSxV6uN1qLHl7VDJxNblpF/KpXakD6rOg8OpvtmqsXj9aBMftw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -954,14 +958,14 @@ } }, "node_modules/@aws-sdk/middleware-logger": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.696.0.tgz", - "integrity": "sha512-KhkHt+8AjCxcR/5Zp3++YPJPpFQzxpr+jmONiT/Jw2yqnSngZ0Yspm5wGoRx2hS1HJbyZNuaOWEGuJoxLeBKfA==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.714.0.tgz", + "integrity": "sha512-RkqHlMvQWUaRklU1bMfUuBvdWwxgUtEqpADaHXlGVj3vtEY2UgBjy+57CveC4MByqKIunNvVHBBbjrGVtwY7Lg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -969,15 +973,15 @@ } }, "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.696.0.tgz", - "integrity": "sha512-si/maV3Z0hH7qa99f9ru2xpS5HlfSVcasRlNUXKSDm611i7jFMWwGNLUOXFAOLhXotPX5G3Z6BLwL34oDeBMug==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.714.0.tgz", + "integrity": "sha512-AVU5ixnh93nqtsfgNc284oXsXaadyHGPHpql/jwgaaqQfEXjS/1/j3j9E/vpacfTTz2Vzo7hAOjnvrOXSEVDaA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -985,24 +989,24 @@ } }, "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.696.0.tgz", - "integrity": "sha512-M7fEiAiN7DBMHflzOFzh1I2MNSlLpbiH2ubs87bdRc2wZsDPSbs4l3v6h3WLhxoQK0bq6vcfroudrLBgvCuX3Q==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.716.0.tgz", + "integrity": "sha512-Qzz5OfRA/5brqfvq+JHTInwS1EuJ1+tC6qMtwKWJN3czMnVJVdnnsPTf+G5IM/1yYaGEIjY8rC1ExQLcc8ApFQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.696.0", - "@aws-sdk/types": "3.696.0", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", "@aws-sdk/util-arn-parser": "3.693.0", - "@smithy/core": "^2.5.3", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/protocol-http": "^4.1.7", - "@smithy/signature-v4": "^4.2.2", - "@smithy/smithy-client": "^3.4.4", - "@smithy/types": "^3.7.1", + "@smithy/core": "^2.5.5", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/protocol-http": "^4.1.8", + "@smithy/signature-v4": "^4.2.4", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", "@smithy/util-config-provider": "^3.0.0", - "@smithy/util-middleware": "^3.0.10", - "@smithy/util-stream": "^3.3.1", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-stream": "^3.3.2", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -1011,14 +1015,14 @@ } }, "node_modules/@aws-sdk/middleware-ssec": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.696.0.tgz", - "integrity": "sha512-w/d6O7AOZ7Pg3w2d3BxnX5RmGNWb5X4RNxF19rJqcgu/xqxxE/QwZTNd5a7eTsqLXAUIfbbR8hh0czVfC1pJLA==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.714.0.tgz", + "integrity": "sha512-RkK8REAVwNUQmYbIDRw8eYbMJ8F1Rw4C9mlME4BBMhFlelGcD3ErU2ce24moQbDxBjNwHNESmIqgmdQk93CDCQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -1026,18 +1030,18 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.696.0.tgz", - "integrity": "sha512-Lvyj8CTyxrHI6GHd2YVZKIRI5Fmnugt3cpJo0VrKKEgK5zMySwEZ1n4dqPK6czYRWKd5+WnYHYAuU+Wdk6Jsjw==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.716.0.tgz", + "integrity": "sha512-FpAtT6nNKrYdkDZndutEraiRMf+TgDzAGvniqRtZ/YTPA+gIsWrsn+TwMKINR81lFC3nQfb9deS5CFtxd021Ew==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@aws-sdk/util-endpoints": "3.696.0", - "@smithy/core": "^2.5.3", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@aws-sdk/util-endpoints": "3.714.0", + "@smithy/core": "^2.5.5", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -1045,17 +1049,17 @@ } }, "node_modules/@aws-sdk/region-config-resolver": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.696.0.tgz", - "integrity": "sha512-7EuH142lBXjI8yH6dVS/CZeiK/WZsmb/8zP6bQbVYpMrppSTgB3MzZZdxVZGzL5r8zPQOU10wLC4kIMy0qdBVQ==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.714.0.tgz", + "integrity": "sha512-HJzsQxgMOAzZrbf/YIqEx30or4tZK1oNAk6Wm6xecUQx+23JXIaePRu1YFUOLBBERQ4QBPpISFurZWBMZ5ibAw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/types": "^3.7.2", "@smithy/util-config-provider": "^3.0.0", - "@smithy/util-middleware": "^3.0.10", + "@smithy/util-middleware": "^3.0.11", "tslib": "^2.6.2" }, "engines": { @@ -1063,17 +1067,17 @@ } }, "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.696.0.tgz", - "integrity": "sha512-ijPkoLjXuPtgxAYlDoYls8UaG/VKigROn9ebbvPL/orEY5umedd3iZTcS9T+uAf4Ur3GELLxMQiERZpfDKaz3g==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.716.0.tgz", + "integrity": "sha512-k0goWotZKKz+kV6Ln0qeAMSeSVi4NipuIIz5R8A0uCF2zBK4CXWdZR7KeaIoLBhJwQnHj1UU7E+2MK74KIUBzA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-sdk-s3": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@smithy/protocol-http": "^4.1.7", - "@smithy/signature-v4": "^4.2.2", - "@smithy/types": "^3.7.1", + "@aws-sdk/middleware-sdk-s3": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/protocol-http": "^4.1.8", + "@smithy/signature-v4": "^4.2.4", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -1081,33 +1085,33 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.699.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.699.0.tgz", - "integrity": "sha512-kuiEW9DWs7fNos/SM+y58HCPhcIzm1nEZLhe2/7/6+TvAYLuEWURYsbK48gzsxXlaJ2k/jGY3nIsA7RptbMOwA==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.714.0.tgz", + "integrity": "sha512-vKN064aLE3kl+Zl16Ony3jltHnMddMBT7JRkP1L+lLywhA0PcAKxpdvComul/sTBWnbnwLnaS5NsDUhcWySH8A==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/property-provider": "^3.1.9", - "@smithy/shared-ini-file-loader": "^3.1.10", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/property-provider": "^3.1.11", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sso-oidc": "^3.699.0" + "@aws-sdk/client-sso-oidc": "^3.714.0" } }, "node_modules/@aws-sdk/types": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.696.0.tgz", - "integrity": "sha512-9rTvUJIAj5d3//U5FDPWGJ1nFJLuWb30vugGOrWk7aNZ6y9tuA3PI7Cc9dP8WEXKVyK1vuuk8rSFP2iqXnlgrw==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.714.0.tgz", + "integrity": "sha512-ZjpP2gYbSFlxxaUDa1Il5AVvfggvUPbjzzB/l3q0gIE5Thd6xKW+yzEpt2mLZ5s5UaYSABZbF94g8NUOF4CVGA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -1128,15 +1132,15 @@ } }, "node_modules/@aws-sdk/util-endpoints": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.696.0.tgz", - "integrity": "sha512-T5s0IlBVX+gkb9g/I6CLt4yAZVzMSiGnbUqWihWsHvQR1WOoIcndQy/Oz/IJXT9T2ipoy7a80gzV6a5mglrioA==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.714.0.tgz", + "integrity": "sha512-Xv+Z2lhe7w7ZZRsgBwBMZgGTVmS+dkkj2S13uNHAx9lhB5ovM8PhK5G/j28xYf6vIibeuHkRAbb7/ozdZIGR+A==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/types": "^3.7.1", - "@smithy/util-endpoints": "^2.1.6", + "@aws-sdk/types": "3.714.0", + "@smithy/types": "^3.7.2", + "@smithy/util-endpoints": "^2.1.7", "tslib": "^2.6.2" }, "engines": { @@ -1157,29 +1161,29 @@ } }, "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.696.0.tgz", - "integrity": "sha512-Z5rVNDdmPOe6ELoM5AhF/ja5tSjbe6ctSctDPb0JdDf4dT0v2MfwhJKzXju2RzX8Es/77Glh7MlaXLE0kCB9+Q==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.714.0.tgz", + "integrity": "sha512-OdJJ03cP9/MgIVToPJPCPUImbpZzTcwdIgbXC0tUQPJhbD7b7cB4LdnkhNHko+MptpOrCq4CPY/33EpOjRdofw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/types": "^3.7.2", "bowser": "^2.11.0", "tslib": "^2.6.2" } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.696.0.tgz", - "integrity": "sha512-KhKqcfyXIB0SCCt+qsu4eJjsfiOrNzK5dCV7RAW2YIpp+msxGUUX0NdRE9rkzjiv+3EMktgJm3eEIS+yxtlVdQ==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.716.0.tgz", + "integrity": "sha512-3PqaXmQbxrtHKAsPCdp7kn5FrQktj8j3YyuNsqFZ8rWZeEQ88GWlsvE61PTsr2peYCKzpFqYVddef2x1axHU0w==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-user-agent": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/types": "^3.7.1", + "@aws-sdk/middleware-user-agent": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -1195,13 +1199,13 @@ } }, "node_modules/@aws-sdk/xml-builder": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.696.0.tgz", - "integrity": "sha512-dn1mX+EeqivoLYnY7p2qLrir0waPnCgS/0YdRCAVU2x14FgfUYCH6Im3w3oi2dMwhxfKY5lYVB5NKvZu7uI9lQ==", + "version": "3.709.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.709.0.tgz", + "integrity": "sha512-2GPCwlNxeHspoK/Mc8nbk9cBOkSpp3j2SJUQmFnyQK6V/pR6II2oPRyZkMomug1Rc10hqlBHByMecq4zhV2uUw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -3340,9 +3344,9 @@ "license": "MIT" }, "node_modules/@emotion/cache": { - "version": "11.13.5", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.13.5.tgz", - "integrity": "sha512-Z3xbtJ+UcK76eWkagZ1onvn/wAVb1GOMuR15s30Fm2wrMgC7jzpnO2JZXr4eujTTqoQFUrZIw/rT0c6Zzjca1g==", + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", + "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", "license": "MIT", "dependencies": { "@emotion/memoize": "^0.9.0", @@ -3401,16 +3405,16 @@ "license": "MIT" }, "node_modules/@emotion/react": { - "version": "11.13.5", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.13.5.tgz", - "integrity": "sha512-6zeCUxUH+EPF1s+YF/2hPVODeV/7V07YU5x+2tfuRL8MdW6rv5vb2+CBEGTGwBdux0OIERcOS+RzxeK80k2DsQ==", + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", + "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", - "@emotion/cache": "^11.13.5", + "@emotion/cache": "^11.14.0", "@emotion/serialize": "^1.3.3", - "@emotion/use-insertion-effect-with-fallbacks": "^1.1.0", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", "@emotion/utils": "^1.4.2", "@emotion/weak-memoize": "^0.4.0", "hoist-non-react-statics": "^3.3.1" @@ -3473,9 +3477,9 @@ "license": "MIT" }, "node_modules/@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.1.0.tgz", - "integrity": "sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", + "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", "license": "MIT", "peerDependencies": { "react": ">=16.8.0" @@ -3991,9 +3995,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.16.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.16.0.tgz", - "integrity": "sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==", + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz", + "integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==", "dev": true, "license": "MIT", "engines": { @@ -5038,9 +5042,9 @@ } }, "node_modules/@grpc/grpc-js": { - "version": "1.12.4", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.4.tgz", - "integrity": "sha512-NBhrxEWnFh0FxeA0d//YP95lRFsSx2TNLEUQg4/W+5f/BMxcCjgOOIT24iD+ZB/tZw057j44DaIxja7w4XMrhg==", + "version": "1.12.5", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.5.tgz", + "integrity": "sha512-d3iiHxdpg5+ZcJ6jnDSOT8Z0O0VMVGy34jAnYLUX8yd36b1qn8f1TwOA/Lc7TsOh03IkPJ38eGI5qD2EjNkoEA==", "license": "Apache-2.0", "dependencies": { "@grpc/proto-loader": "^0.7.13", @@ -5425,9 +5429,9 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", @@ -5795,337 +5799,363 @@ } }, "node_modules/@libp2p/autonat": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/@libp2p/autonat/-/autonat-2.0.12.tgz", - "integrity": "sha512-EgJb6RwJmBwB7/Ddg3B3xFspc+OrNC6oonWh3osrP85J0cY7wOVmDSuLqk8tcxli9OuTYNSef/7dY9NVYEA+9g==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@libp2p/autonat/-/autonat-2.0.15.tgz", + "integrity": "sha512-R9PHA/0zy//gZ/W0xjyUl7PN+7JP6qtXqoeZnafb7pVOkJy/4RiBeYY4g/QKnZ0lEIpKLDowHT1pujkjbWw/Cg==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.2.1", - "@libp2p/interface-internal": "^2.1.1", - "@libp2p/peer-id": "^5.0.8", - "@libp2p/utils": "^6.2.1", - "@multiformats/multiaddr": "^12.2.3", - "it-first": "^3.0.6", - "it-length-prefixed": "^9.0.4", - "it-map": "^3.1.0", - "it-parallel": "^3.0.7", - "it-pipe": "^3.0.1", - "multiformats": "^13.2.2", - "protons-runtime": "^5.4.0", + "@libp2p/interface": "^2.3.0", + "@libp2p/interface-internal": "^2.2.1", + "@libp2p/peer-collections": "^6.0.13", + "@libp2p/peer-id": "^5.0.9", + "@libp2p/utils": "^6.3.0", + "@multiformats/multiaddr": "^12.3.3", + "any-signal": "^4.1.1", + "it-protobuf-stream": "^1.1.5", + "multiformats": "^13.3.1", + "protons-runtime": "^5.5.0", "uint8arraylist": "^2.4.8" } }, "node_modules/@libp2p/bootstrap": { - "version": "11.0.13", - "resolved": "https://registry.npmjs.org/@libp2p/bootstrap/-/bootstrap-11.0.13.tgz", - "integrity": "sha512-zfZdqR4pVvsSWRBYNYjJD6hCzsgRRNLy8NAcLOf+H4+xDQg2pdGY7RhbeLetqnEaifHFV1INdIuCkdOI8cSMsQ==", + "version": "11.0.16", + "resolved": "https://registry.npmjs.org/@libp2p/bootstrap/-/bootstrap-11.0.16.tgz", + "integrity": "sha512-GmIkQuZwWFOnEBuUM0eRma/PjS0iCgc7Yl8X54QxqbmjB04DMqz2sGgmP+2gmiB38CIj1WGz4DTiTaECiyut2Q==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.2.1", - "@libp2p/interface-internal": "^2.1.1", - "@libp2p/peer-id": "^5.0.8", + "@libp2p/interface": "^2.3.0", + "@libp2p/interface-internal": "^2.2.1", + "@libp2p/peer-id": "^5.0.9", "@multiformats/mafmt": "^12.1.6", - "@multiformats/multiaddr": "^12.2.3" + "@multiformats/multiaddr": "^12.3.3" } }, "node_modules/@libp2p/circuit-relay-v2": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@libp2p/circuit-relay-v2/-/circuit-relay-v2-3.1.3.tgz", - "integrity": "sha512-tdPaNK4ut9FU5uwABf+lj01eul3uVDUyAdlcpnIRgkRTOMZ02C06nyaIFSeHD5ykpyZpDIbLPHHBLd5kRYRfYg==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@libp2p/circuit-relay-v2/-/circuit-relay-v2-3.1.6.tgz", + "integrity": "sha512-47ocamyjMlGM9HgVo2BZI/yUuSM03GugTu03KjS1Wx/mLDq3WSpUVk1qMS4v1ZpOwXTnKlk5e3sp/t9K5PHCjw==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.7", - "@libp2p/interface": "^2.2.1", - "@libp2p/interface-internal": "^2.1.1", - "@libp2p/peer-collections": "^6.0.12", - "@libp2p/peer-id": "^5.0.8", - "@libp2p/peer-record": "^8.0.12", - "@libp2p/utils": "^6.2.1", - "@multiformats/multiaddr": "^12.2.3", - "@multiformats/multiaddr-matcher": "^1.3.0", + "@libp2p/crypto": "^5.0.8", + "@libp2p/interface": "^2.3.0", + "@libp2p/interface-internal": "^2.2.1", + "@libp2p/peer-collections": "^6.0.13", + "@libp2p/peer-id": "^5.0.9", + "@libp2p/peer-record": "^8.0.13", + "@libp2p/utils": "^6.3.0", + "@multiformats/multiaddr": "^12.3.3", + "@multiformats/multiaddr-matcher": "^1.6.0", "any-signal": "^4.1.1", - "it-protobuf-stream": "^1.1.3", - "it-stream-types": "^2.0.1", - "multiformats": "^13.1.0", - "nanoid": "^5.0.7", - "progress-events": "^1.0.0", - "protons-runtime": "^5.4.0", - "retimeable-signal": "^0.0.0", + "it-protobuf-stream": "^1.1.5", + "it-stream-types": "^2.0.2", + "multiformats": "^13.3.1", + "nanoid": "^5.0.9", + "progress-events": "^1.0.1", + "protons-runtime": "^5.5.0", + "retimeable-signal": "^1.0.0", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" } }, "node_modules/@libp2p/crypto": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.7.tgz", - "integrity": "sha512-hv0rv/BPBsmSV5GBtaLZpOEv1LsA+Ub0BEDnEvSdB0ZbZ3Fcdlt5HTaJ2jYz4lx2T7KWTFQa9i1elmlGxwuJNg==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.8.tgz", + "integrity": "sha512-3ZxuzqMvyLXhRnjT3sjvzCCW4zkO9UKgv75KfqExP3k1Yk/Zbb+oM2z7OgnDycvLGxnRZgGwizrgnWpZvXlDEA==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.2.1", - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.4.0", + "@libp2p/interface": "^2.3.0", + "@noble/curves": "^1.7.0", + "@noble/hashes": "^1.6.1", "asn1js": "^3.0.5", - "multiformats": "^13.1.0", - "protons-runtime": "^5.4.0", + "multiformats": "^13.3.1", + "protons-runtime": "^5.5.0", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" } }, + "node_modules/@libp2p/crypto/node_modules/@noble/curves": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.7.0.tgz", + "integrity": "sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.6.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@libp2p/crypto/node_modules/@noble/curves/node_modules/@noble/hashes": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.6.0.tgz", + "integrity": "sha512-YUULf0Uk4/mAA89w+k3+yUYh6NrEvxZa5T6SY3wlMvE2chHkxFUUIDI8/XW1QSC357iA5pSnqt7XEhvFOqmDyQ==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@libp2p/dcutr": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/@libp2p/dcutr/-/dcutr-2.0.12.tgz", - "integrity": "sha512-BtUtNQW+AmZDr3waEuQn4TzEleMljxXlojnUBAseysnJH5nHPjLyQfkfqKEIFdswghlZOJLX0YhiR+otzKXCCQ==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@libp2p/dcutr/-/dcutr-2.0.14.tgz", + "integrity": "sha512-claAqe1n2SBoy53v30tvw3BI3+Jbn5UivmR0R69tclBa2sU15sh8WfKMfRv+h3eo8823syUruNZUvUslc2p4DA==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.2.1", - "@libp2p/interface-internal": "^2.1.1", - "@libp2p/utils": "^6.2.1", - "@multiformats/multiaddr": "^12.2.3", - "@multiformats/multiaddr-matcher": "^1.2.1", + "@libp2p/interface": "^2.3.0", + "@libp2p/interface-internal": "^2.2.1", + "@libp2p/utils": "^6.3.0", + "@multiformats/multiaddr": "^12.3.3", + "@multiformats/multiaddr-matcher": "^1.6.0", "delay": "^6.0.0", - "it-protobuf-stream": "^1.1.3", - "protons-runtime": "^5.4.0", + "it-protobuf-stream": "^1.1.5", + "protons-runtime": "^5.5.0", "uint8arraylist": "^2.4.8" } }, "node_modules/@libp2p/identify": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/@libp2p/identify/-/identify-3.0.12.tgz", - "integrity": "sha512-Z1MjdaGMsLPEEpEvlCJOsOgZ2q4FOPqO7W9ep6Kemnc0suuB6wk+8XLDvnZKHS80OdZopGQwm7z8Az06cxrLAA==", + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/@libp2p/identify/-/identify-3.0.14.tgz", + "integrity": "sha512-H80tdH8csD3W+wHoaltJEnjTAmZBJ22bYqFOPk5YKCF0k19Ox2MwRTkyCXuVDIdQfrYs94JE3HvLvUoN9X/JBQ==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.7", - "@libp2p/interface": "^2.2.1", - "@libp2p/interface-internal": "^2.1.1", - "@libp2p/peer-id": "^5.0.8", - "@libp2p/peer-record": "^8.0.12", - "@libp2p/utils": "^6.2.1", - "@multiformats/multiaddr": "^12.2.3", - "@multiformats/multiaddr-matcher": "^1.2.1", + "@libp2p/crypto": "^5.0.8", + "@libp2p/interface": "^2.3.0", + "@libp2p/interface-internal": "^2.2.1", + "@libp2p/peer-id": "^5.0.9", + "@libp2p/peer-record": "^8.0.13", + "@libp2p/utils": "^6.3.0", + "@multiformats/multiaddr": "^12.3.3", + "@multiformats/multiaddr-matcher": "^1.6.0", "it-drain": "^3.0.7", - "it-parallel": "^3.0.7", - "it-protobuf-stream": "^1.1.3", - "protons-runtime": "^5.4.0", + "it-parallel": "^3.0.8", + "it-protobuf-stream": "^1.1.5", + "protons-runtime": "^5.5.0", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0", "wherearewe": "^2.0.1" } }, "node_modules/@libp2p/interface": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-2.2.1.tgz", - "integrity": "sha512-5dvsnf9+S5DoXCk5H3HNpe8lKzuXTi0k2On8Cdqr6YrkmrhCimow63AxtaUOVkH7GVBTTi8Q1jSx3aleX7KcEA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-2.3.0.tgz", + "integrity": "sha512-lodc8jxw32fkY2m2bsS6yzzozua6EDr5rJvahJaJVC36jZWFW5sBmOW8jBoKfoZyRwgD6uoOXP39miWQhEaUcg==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@multiformats/multiaddr": "^12.2.3", + "@multiformats/multiaddr": "^12.3.3", "it-pushable": "^3.2.3", - "it-stream-types": "^2.0.1", - "multiformats": "^13.1.0", - "progress-events": "^1.0.0", + "it-stream-types": "^2.0.2", + "multiformats": "^13.3.1", + "progress-events": "^1.0.1", "uint8arraylist": "^2.4.8" } }, "node_modules/@libp2p/interface-internal": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-2.1.1.tgz", - "integrity": "sha512-7rw7p5wZry9ZPfdhYi4zXRjsgrJ8y/X5M7iWIzUBSJdJP2Zd0ZVStlgyqYm1YAbb8V0mwo5BI/kxd2o9R/9TJQ==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-2.2.1.tgz", + "integrity": "sha512-GGxQnTgQ891bpOcHQAG9Dy/KXo1OoKnCaV2e02yWNhW8TkqlFJnwdny6tX8O6BN8Od56yuEIS89ZoNn2SK4F5g==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.2.1", - "@libp2p/peer-collections": "^6.0.12", - "@multiformats/multiaddr": "^12.2.3", - "progress-events": "^1.0.0", + "@libp2p/interface": "^2.3.0", + "@libp2p/peer-collections": "^6.0.13", + "@multiformats/multiaddr": "^12.3.3", + "progress-events": "^1.0.1", "uint8arraylist": "^2.4.8" } }, "node_modules/@libp2p/kad-dht": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/@libp2p/kad-dht/-/kad-dht-14.1.3.tgz", - "integrity": "sha512-eo2QdsllouakcdHa7NbLhjQ6eMdsMc7PLZRt3lnQTdQsMT81iVTAB/hhVJlTSEUJHQS5JbikrjkJLtFu6KUFzw==", + "version": "14.1.6", + "resolved": "https://registry.npmjs.org/@libp2p/kad-dht/-/kad-dht-14.1.6.tgz", + "integrity": "sha512-ceTF2Xh32PTleLfccAvniTdTFWfRgmaW1NT2juk4YRfzCQFdJqhuspiDVqelpZnexHKWgbYvwUos/gIEQICJ7g==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.7", - "@libp2p/interface": "^2.2.1", - "@libp2p/interface-internal": "^2.1.1", - "@libp2p/peer-collections": "^6.0.12", - "@libp2p/peer-id": "^5.0.8", + "@libp2p/crypto": "^5.0.8", + "@libp2p/interface": "^2.3.0", + "@libp2p/interface-internal": "^2.2.1", + "@libp2p/peer-collections": "^6.0.13", + "@libp2p/peer-id": "^5.0.9", "@libp2p/record": "^4.0.4", - "@libp2p/utils": "^6.2.1", - "@multiformats/multiaddr": "^12.2.3", + "@libp2p/utils": "^6.3.0", + "@multiformats/multiaddr": "^12.3.3", "any-signal": "^4.1.1", - "interface-datastore": "^8.3.0", + "interface-datastore": "^8.3.1", + "it-all": "^3.0.6", "it-drain": "^3.0.7", "it-length": "^3.0.6", - "it-length-prefixed": "^9.0.4", - "it-map": "^3.1.0", + "it-length-prefixed": "^9.1.0", + "it-map": "^3.1.1", "it-merge": "^3.0.5", - "it-parallel": "^3.0.7", + "it-parallel": "^3.0.8", "it-pipe": "^3.0.1", - "it-protobuf-stream": "^1.1.3", - "it-take": "^3.0.5", - "mortice": "^3.0.4", - "multiformats": "^13.1.0", + "it-protobuf-stream": "^1.1.5", + "it-take": "^3.0.6", + "mortice": "^3.0.6", + "multiformats": "^13.3.1", "p-defer": "^4.0.1", "p-event": "^6.0.1", - "progress-events": "^1.0.0", - "protons-runtime": "^5.4.0", - "race-signal": "^1.0.2", + "progress-events": "^1.0.1", + "protons-runtime": "^5.5.0", + "race-signal": "^1.1.0", "uint8-varint": "^2.0.4", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" } }, "node_modules/@libp2p/keychain": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@libp2p/keychain/-/keychain-5.0.10.tgz", - "integrity": "sha512-olTq2dbKpKkUCsDjAOYcxwSB4KotJ9zA3aaWOE8aUd2ZbwrYJ3VBlm0Ov5PfdGx9qsUhsfnmC01vpF6cEEOg0g==", + "version": "5.0.11", + "resolved": "https://registry.npmjs.org/@libp2p/keychain/-/keychain-5.0.11.tgz", + "integrity": "sha512-kznG/mCaULYZTVYXuXtGJgmq7ZBiWFQNd4UutIsi8T1h7q0uD37iQI3sNJxb58yDOHrpCYpICfDpjlK6X3bJzQ==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.7", - "@libp2p/interface": "^2.2.1", - "@noble/hashes": "^1.5.0", + "@libp2p/crypto": "^5.0.8", + "@libp2p/interface": "^2.3.0", + "@noble/hashes": "^1.6.1", "asn1js": "^3.0.5", - "interface-datastore": "^8.3.0", + "interface-datastore": "^8.3.1", "merge-options": "^3.0.4", - "multiformats": "^13.2.2", + "multiformats": "^13.3.1", "sanitize-filename": "^1.6.3", "uint8arrays": "^5.1.0" } }, "node_modules/@libp2p/logger": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-5.1.4.tgz", - "integrity": "sha512-pVQ2odi6rcOR412wM0dg7eZ1+wPHPo5D7W8vIn3YyB2FLodQD7CZXXfg7Z9Yaqlc4BVbkNXDWL/jlUss9wL2Ow==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-5.1.5.tgz", + "integrity": "sha512-Qe8B/Mja0myaArPvuI5iKVi3o2Z55Rir+RDkkEU/m9TkKDkHVFmGKnPlWDzHehi18GALjLxOsTE9TJASxjDTCA==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.2.1", - "@multiformats/multiaddr": "^12.2.3", - "interface-datastore": "^8.3.0", - "multiformats": "^13.1.0", - "weald": "^1.0.2" + "@libp2p/interface": "^2.3.0", + "@multiformats/multiaddr": "^12.3.3", + "interface-datastore": "^8.3.1", + "multiformats": "^13.3.1", + "weald": "^1.0.4" } }, "node_modules/@libp2p/mdns": { - "version": "11.0.13", - "resolved": "https://registry.npmjs.org/@libp2p/mdns/-/mdns-11.0.13.tgz", - "integrity": "sha512-zGr7PygfoUeYjTvpujFYcLLhlcQ4dGegPep6e/LaLq97eU+GTF//AJbs9KhHQRfSqv449o+38fbqPHCxrwurMA==", + "version": "11.0.16", + "resolved": "https://registry.npmjs.org/@libp2p/mdns/-/mdns-11.0.16.tgz", + "integrity": "sha512-FJLJywEFCm5r61b7IZ+KGvxUPEGuGx5VGXyTSE10y7lSxizn50ZUAmnN76OsBdLz/Uj3/iyzTOOmY17mzBjN3g==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.2.1", - "@libp2p/interface-internal": "^2.1.1", - "@libp2p/peer-id": "^5.0.8", - "@libp2p/utils": "^6.2.1", - "@multiformats/multiaddr": "^12.2.3", + "@libp2p/interface": "^2.3.0", + "@libp2p/interface-internal": "^2.2.1", + "@libp2p/peer-id": "^5.0.9", + "@libp2p/utils": "^6.3.0", + "@multiformats/multiaddr": "^12.3.3", "@types/multicast-dns": "^7.2.4", "dns-packet": "^5.6.1", "multicast-dns": "^7.2.5" } }, "node_modules/@libp2p/mplex": { - "version": "11.0.13", - "resolved": "https://registry.npmjs.org/@libp2p/mplex/-/mplex-11.0.13.tgz", - "integrity": "sha512-OS6n8BfzMhgsAB/IiEcbQfdftAVOXkRCrZrSAZC90kWEL47SuHk6M5xjsr6ODOXCHAWApC7FfMV4tKrzyXXItw==", + "version": "11.0.16", + "resolved": "https://registry.npmjs.org/@libp2p/mplex/-/mplex-11.0.16.tgz", + "integrity": "sha512-FHzKT67sSE7AxzGDj+WVesvKHXjjoXGg9aiuHfQmnO0tC2c3F7jY3KahuaaxLIZp4P3QdZZMwtqhbb6iASrWyg==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.2.1", - "@libp2p/utils": "^6.2.1", + "@libp2p/interface": "^2.3.0", + "@libp2p/utils": "^6.3.0", "it-pipe": "^3.0.1", "it-pushable": "^3.2.3", - "it-stream-types": "^2.0.1", + "it-stream-types": "^2.0.2", "uint8-varint": "^2.0.4", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" } }, "node_modules/@libp2p/multistream-select": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-6.0.9.tgz", - "integrity": "sha512-yU+K4/jtXwt1WXMXSJTuhGnn6F97v/P0IOdMALMQlgmvSeGICDBNllX/i0r9y/DDwI/Hh61phB15aUgc/6pX8Q==", + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-6.0.10.tgz", + "integrity": "sha512-u2sxsPk18cmJl1GLbfKgV+HXcFP2e873411PPwfQgMqTuNYXvJZheJWxV/nz7LjB3XelHxgYPpDVkMvK/kjMyw==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.2.1", - "it-length-prefixed": "^9.0.4", - "it-length-prefixed-stream": "^1.1.7", - "it-stream-types": "^2.0.1", + "@libp2p/interface": "^2.3.0", + "it-length-prefixed": "^9.1.0", + "it-length-prefixed-stream": "^1.2.0", + "it-stream-types": "^2.0.2", "p-defer": "^4.0.1", - "race-signal": "^1.0.2", + "race-signal": "^1.1.0", "uint8-varint": "^2.0.4", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" } }, "node_modules/@libp2p/peer-collections": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-6.0.12.tgz", - "integrity": "sha512-JQvnCZ5rUiFkznQTOblNF+xE0ddmETn1f3FyYP9vHALOPrgdQkoZeY1b1W3Gz7gA8CXZ//cluHE+ZBiavDbNIg==", + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-6.0.13.tgz", + "integrity": "sha512-BjpXs3kWegnNay2CApntOkL9tPyzTxC2lKUt0Mj9qntmOp1BF/zWY982U1X4ScjCE/M9Nh9x/w4Z/GKCT+K5lQ==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.2.1", - "@libp2p/peer-id": "^5.0.8", - "@libp2p/utils": "^6.2.1", - "multiformats": "^13.2.2" + "@libp2p/interface": "^2.3.0", + "@libp2p/peer-id": "^5.0.9", + "@libp2p/utils": "^6.3.0", + "multiformats": "^13.3.1" } }, "node_modules/@libp2p/peer-id": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.8.tgz", - "integrity": "sha512-vil9cch+qtqchSlrgG0Zw82uCW8XsyeOJc6DaIiS2hI01cMOIChT4CKjTn0iV5k2yw/niycQPjLrYQzy7tBIYg==", + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.9.tgz", + "integrity": "sha512-TgWOPbU7AcUdSiHomL2wcg9eJqjoMCvCmU5eq/3fyBygTaG4BiQA/tYKuTEfeB5YPMdG1cJLmxgpk/a+ZRkY1g==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.7", - "@libp2p/interface": "^2.2.1", - "multiformats": "^13.1.0", + "@libp2p/crypto": "^5.0.8", + "@libp2p/interface": "^2.3.0", + "multiformats": "^13.3.1", "uint8arrays": "^5.1.0" } }, "node_modules/@libp2p/peer-record": { - "version": "8.0.12", - "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-8.0.12.tgz", - "integrity": "sha512-N8OyAAgQwBCUB7AtSlI0AQun45SeBS5UWMnhO9JLAzzNUOZiMk+IfBwEu8dpJ0E311QK2vGY1suoxTsauqMSjg==", + "version": "8.0.13", + "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-8.0.13.tgz", + "integrity": "sha512-4+jd3UvlF3sUoHpjPToy9AdW3ReF/ipvA9yBdl5axDKWxjJVOfyG8DvLRGJsTvm12gLdvb7vDgmEtpUPwWqjGQ==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.7", - "@libp2p/interface": "^2.2.1", - "@libp2p/peer-id": "^5.0.8", - "@libp2p/utils": "^6.2.1", - "@multiformats/multiaddr": "^12.2.3", - "multiformats": "^13.2.2", - "protons-runtime": "^5.4.0", + "@libp2p/crypto": "^5.0.8", + "@libp2p/interface": "^2.3.0", + "@libp2p/peer-id": "^5.0.9", + "@libp2p/utils": "^6.3.0", + "@multiformats/multiaddr": "^12.3.3", + "multiformats": "^13.3.1", + "protons-runtime": "^5.5.0", "uint8-varint": "^2.0.4", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" } }, "node_modules/@libp2p/peer-store": { - "version": "11.0.12", - "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-11.0.12.tgz", - "integrity": "sha512-wCPvrmdm+fua28xY6THVskawNDhKxo9O9suif9MAy6Nb9Drr+WiOGucHasOrs/ELvkuU3nc/zxvyWjk8MlTEfw==", + "version": "11.0.13", + "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-11.0.13.tgz", + "integrity": "sha512-KieXSY8ysyC7ROJ7GI7dtQkowRFDuG2jk5HQedSXNUe74JurG0uI/HddFF8yij+HgY/kZiBwWUQbKrTC4Cewbw==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.7", - "@libp2p/interface": "^2.2.1", - "@libp2p/peer-id": "^5.0.8", - "@libp2p/peer-record": "^8.0.12", - "@multiformats/multiaddr": "^12.2.3", - "interface-datastore": "^8.3.0", + "@libp2p/crypto": "^5.0.8", + "@libp2p/interface": "^2.3.0", + "@libp2p/peer-id": "^5.0.9", + "@libp2p/peer-record": "^8.0.13", + "@multiformats/multiaddr": "^12.3.3", + "interface-datastore": "^8.3.1", "it-all": "^3.0.6", - "mortice": "^3.0.4", - "multiformats": "^13.1.0", - "protons-runtime": "^5.4.0", + "mortice": "^3.0.6", + "multiformats": "^13.3.1", + "protons-runtime": "^5.5.0", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" } }, "node_modules/@libp2p/ping": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/@libp2p/ping/-/ping-2.0.12.tgz", - "integrity": "sha512-wJKJ9PmAQbcXl/V5iZfmypztptVS6mRAZjpidDHOwUxSTmxgnd9HadJEgiQ1dUJjaMe4JUmLhb3+ym+RS48alg==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@libp2p/ping/-/ping-2.0.14.tgz", + "integrity": "sha512-+idRl+4T2bhP+FNDgwBFWHyHkFoOcjwzQmezLR00mG8hg2iH3BvDmzMd7cagZM21SaeDd4eiN8XyhQqyi1RcZA==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.7", - "@libp2p/interface": "^2.2.1", - "@libp2p/interface-internal": "^2.1.1", - "@multiformats/multiaddr": "^12.2.3", + "@libp2p/crypto": "^5.0.8", + "@libp2p/interface": "^2.3.0", + "@libp2p/interface-internal": "^2.2.1", + "@multiformats/multiaddr": "^12.3.3", "it-byte-stream": "^1.1.0", "uint8arrays": "^5.1.0" } @@ -6142,40 +6172,40 @@ } }, "node_modules/@libp2p/tcp": { - "version": "10.0.13", - "resolved": "https://registry.npmjs.org/@libp2p/tcp/-/tcp-10.0.13.tgz", - "integrity": "sha512-1oxkfMGJdnACSeq75k+K1JM9KkPUFgp7U/YH6+4f884MC7crciV28+FtrIoxS+79gX+EZeUOzvCPLWbuQddk9Q==", + "version": "10.0.14", + "resolved": "https://registry.npmjs.org/@libp2p/tcp/-/tcp-10.0.14.tgz", + "integrity": "sha512-HwYCvNnSqjVzoy3DQh6chy4EwWgmnII+ccT/LEpitKbV8QzHTv2HUeSaGtuGc42Z95rFMXqmJeqBkhbXcpeCRA==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.2.1", - "@libp2p/utils": "^6.2.1", + "@libp2p/interface": "^2.3.0", + "@libp2p/utils": "^6.3.0", "@multiformats/mafmt": "^12.1.6", - "@multiformats/multiaddr": "^12.2.3", + "@multiformats/multiaddr": "^12.3.3", "@types/sinon": "^17.0.3", "p-defer": "^4.0.1", "p-event": "^6.0.1", - "progress-events": "^1.0.0", + "progress-events": "^1.0.1", "race-event": "^1.3.0", "stream-to-it": "^1.0.1" } }, "node_modules/@libp2p/tls": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@libp2p/tls/-/tls-2.0.11.tgz", - "integrity": "sha512-kUBC1CneZgFPP0p084ecHGOnFURxOfZgJXRRSXYrZhK/pv8xpJcO2GPebsNlJDkuId/sX22koGYBZV+xDIVEgg==", + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@libp2p/tls/-/tls-2.0.12.tgz", + "integrity": "sha512-OyxGH4Eg8dFGAkpdpwy1xf4vwcT1f+PFzEnFOiD2ql0RTLh/fEpkeNOd+2D2qvMhHa0a3gYH9hFiyswSIz+CGQ==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.7", - "@libp2p/interface": "^2.2.1", - "@libp2p/peer-id": "^5.0.8", - "@peculiar/asn1-schema": "^2.3.8", - "@peculiar/asn1-x509": "^2.3.8", - "@peculiar/webcrypto": "^1.4.6", - "@peculiar/x509": "^1.9.7", + "@libp2p/crypto": "^5.0.8", + "@libp2p/interface": "^2.3.0", + "@libp2p/peer-id": "^5.0.9", + "@peculiar/asn1-schema": "^2.3.13", + "@peculiar/asn1-x509": "^2.3.13", + "@peculiar/webcrypto": "^1.5.0", + "@peculiar/x509": "^1.12.3", "asn1js": "^3.0.5", "it-pushable": "^3.2.3", - "it-stream-types": "^2.0.1", - "protons-runtime": "^5.4.0", + "it-stream-types": "^2.0.2", + "protons-runtime": "^5.5.0", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" } @@ -6198,16 +6228,17 @@ } }, "node_modules/@libp2p/utils": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-6.2.1.tgz", - "integrity": "sha512-uORuQLB75MgbrDA6i0rCw/fqNFgCs1dO3c21Z5WNdRCA4Lcvhgi6wnUf45DwgNCqtljDAnBR0FYI+UbEp5yAuA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-6.3.0.tgz", + "integrity": "sha512-1zF9xwxtAjg7N54deR3l45d0awLsuO8cacfp9J4vE+4RjrtKSa40IxhunLOp52ctm9H17wixlXUhoP85Ki8F3w==", "license": "Apache-2.0 OR MIT", "dependencies": { "@chainsafe/is-ip": "^2.0.2", - "@libp2p/crypto": "^5.0.7", - "@libp2p/interface": "^2.2.1", - "@libp2p/logger": "^5.1.4", - "@multiformats/multiaddr": "^12.2.3", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/crypto": "^5.0.8", + "@libp2p/interface": "^2.3.0", + "@libp2p/logger": "^5.1.5", + "@multiformats/multiaddr": "^12.3.3", "@sindresorhus/fnv1a": "^3.1.0", "@types/murmurhash3js-revisited": "^3.0.3", "any-signal": "^4.1.1", @@ -6217,42 +6248,42 @@ "it-foreach": "^2.1.1", "it-pipe": "^3.0.1", "it-pushable": "^3.2.3", - "it-stream-types": "^2.0.1", + "it-stream-types": "^2.0.2", "murmurhash3js-revisited": "^3.0.0", "netmask": "^2.0.2", "p-defer": "^4.0.1", "race-event": "^1.3.0", - "race-signal": "^1.0.2", + "race-signal": "^1.1.0", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" } }, "node_modules/@libp2p/webrtc": { - "version": "5.0.19", - "resolved": "https://registry.npmjs.org/@libp2p/webrtc/-/webrtc-5.0.19.tgz", - "integrity": "sha512-WicT2mraZf4ZKqt73MYvfAUvOQehZDPT673GThA3yK02eR6B/c9MenMuUbNb3qGsE4b5yhMjioYjZPahWpxcBw==", + "version": "5.0.22", + "resolved": "https://registry.npmjs.org/@libp2p/webrtc/-/webrtc-5.0.22.tgz", + "integrity": "sha512-WVJC4mhFYdZ1wKTZxAwTMXyLqkfcLRM86J8wKgRNTAfvZqet1HQuJ5U/Hp4CngNnuLGHqOKVdn6obDcy6nMWww==", "license": "Apache-2.0 OR MIT", "dependencies": { "@chainsafe/libp2p-noise": "^16.0.0", - "@libp2p/interface": "^2.2.1", - "@libp2p/interface-internal": "^2.1.1", - "@libp2p/peer-id": "^5.0.8", - "@libp2p/utils": "^6.2.1", - "@multiformats/multiaddr": "^12.2.3", - "@multiformats/multiaddr-matcher": "^1.2.1", + "@libp2p/interface": "^2.3.0", + "@libp2p/interface-internal": "^2.2.1", + "@libp2p/peer-id": "^5.0.9", + "@libp2p/utils": "^6.3.0", + "@multiformats/multiaddr": "^12.3.3", + "@multiformats/multiaddr-matcher": "^1.6.0", "detect-browser": "^5.3.0", - "it-length-prefixed": "^9.0.4", - "it-protobuf-stream": "^1.1.3", + "it-length-prefixed": "^9.1.0", + "it-protobuf-stream": "^1.1.5", "it-pushable": "^3.2.3", - "it-stream-types": "^2.0.1", - "multiformats": "^13.1.0", + "it-stream-types": "^2.0.2", + "multiformats": "^13.3.1", "node-datachannel": "^0.11.0", "p-defer": "^4.0.1", "p-event": "^6.0.1", - "p-timeout": "^6.1.2", - "progress-events": "^1.0.0", - "protons-runtime": "^5.4.0", - "race-signal": "^1.0.2", + "p-timeout": "^6.1.3", + "progress-events": "^1.0.1", + "protons-runtime": "^5.5.0", + "race-signal": "^1.1.0", "react-native-webrtc": "^124.0.4", "uint8-varint": "^2.0.4", "uint8arraylist": "^2.4.8", @@ -6260,32 +6291,23 @@ } }, "node_modules/@libp2p/websockets": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@libp2p/websockets/-/websockets-9.0.13.tgz", - "integrity": "sha512-e1Lukn8kzJC7YbfufT8rOy/BXUyl213srb+zizFu4JkTRloChEjq7VzARPo9lrMQye71JrTi2eBg+O/XadERsg==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/websockets/-/websockets-9.1.0.tgz", + "integrity": "sha512-110hKTaCO13nUxUAr5KQPyomzbXbwkoyeY0Xr5urX8oAA7R3hQrcs8+luWpouiF8Ui5SvmeWDN8t2yPMoH2v5g==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.2.1", - "@libp2p/utils": "^6.2.1", - "@multiformats/multiaddr": "^12.2.3", - "@multiformats/multiaddr-matcher": "^1.4.0", - "@multiformats/multiaddr-to-uri": "^10.0.1", - "@types/ws": "^8.5.10", - "it-ws": "^6.1.1", + "@libp2p/interface": "^2.3.0", + "@libp2p/utils": "^6.3.0", + "@multiformats/multiaddr": "^12.3.3", + "@multiformats/multiaddr-matcher": "^1.6.0", + "@multiformats/multiaddr-to-uri": "^11.0.0", + "@types/ws": "^8.5.13", + "it-ws": "^6.1.5", "p-defer": "^4.0.1", - "progress-events": "^1.0.0", - "race-signal": "^1.0.2", - "wherearewe": "^2.0.1", - "ws": "^8.17.0" - } - }, - "node_modules/@libp2p/websockets/node_modules/@multiformats/multiaddr-to-uri": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr-to-uri/-/multiaddr-to-uri-10.1.2.tgz", - "integrity": "sha512-6sicfYRjJlHJn4bwsQancs8kXncWU4dDN/+V9sMVTYp9hi8ovWgVkK75AbAv4SfhztmmI+oufVUncQ1n+SukKQ==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@multiformats/multiaddr": "^12.3.0" + "p-event": "^6.0.1", + "progress-events": "^1.0.1", + "race-signal": "^1.1.0", + "ws": "^8.18.0" } }, "node_modules/@libp2p/websockets/node_modules/ws": { @@ -6707,30 +6729,30 @@ } }, "node_modules/@mui/base": { - "version": "5.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.64.tgz", - "integrity": "sha512-nu663PoZs/Pee0fkPYkjUADfT+AAi2QWvvHghDhLeSx8sa3i+GGaOoUsFmB4CPlyYqWfq9hRGA7H1T3d6VrGgw==", + "version": "5.0.0-beta.40-0", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.40-0.tgz", + "integrity": "sha512-hG3atoDUxlvEy+0mqdMpWd04wca8HKr2IHjW/fAjlkCHQolSLazhZM46vnHjOf15M4ESu25mV/3PgjczyjVM4w==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.26.0", - "@floating-ui/react-dom": "^2.1.1", - "@mui/types": "^7.2.19", - "@mui/utils": "^6.1.10", + "@babel/runtime": "^7.23.9", + "@floating-ui/react-dom": "^2.0.8", + "@mui/types": "^7.2.15", + "@mui/utils": "^5.16.12", "@popperjs/core": "^2.11.8", - "clsx": "^2.1.1", + "clsx": "^2.1.0", "prop-types": "^15.8.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/mui-org" }, "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -6739,9 +6761,9 @@ } }, "node_modules/@mui/core-downloads-tracker": { - "version": "5.16.9", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.16.9.tgz", - "integrity": "sha512-ue3j79XJ56+F6DlTtFTM+n//5AvNENOvl3MFruZZP5iZzz+hOq6WBwnr+YxiMlr+kvmMHuHxgOHFdPR8+mElDw==", + "version": "5.16.13", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.16.13.tgz", + "integrity": "sha512-xe5RwI0Q2O709Bd2Y7l1W1NIwNmln0y+xaGk5VgX3vDJbkQEqzdfTFZ73e0CkEZgJwyiWgk5HY0l8R4nysOxjw==", "license": "MIT", "funding": { "type": "opencollective", @@ -6749,16 +6771,16 @@ } }, "node_modules/@mui/lab": { - "version": "5.0.0-alpha.174", - "resolved": "https://registry.npmjs.org/@mui/lab/-/lab-5.0.0-alpha.174.tgz", - "integrity": "sha512-6jw+vcjfnDr/V4qzqwOPFwoqzxejGfm9F0k9E92QLmtFv5F0pH73OjmQDzALL7zrcwR4iV4D94iJZ1xFawiREA==", + "version": "5.0.0-alpha.175", + "resolved": "https://registry.npmjs.org/@mui/lab/-/lab-5.0.0-alpha.175.tgz", + "integrity": "sha512-AvM0Nvnnj7vHc9+pkkQkoE1i+dEbr6gsMdnSfy7X4w3Ljgcj1yrjZhIt3jGTCLzyKVLa6uve5eLluOcGkvMqUA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", - "@mui/base": "5.0.0-beta.40", - "@mui/system": "^5.16.8", + "@mui/base": "5.0.0-beta.40-0", + "@mui/system": "^5.16.12", "@mui/types": "^7.2.15", - "@mui/utils": "^5.16.8", + "@mui/utils": "^5.16.12", "clsx": "^2.1.0", "prop-types": "^15.8.1" }, @@ -6789,85 +6811,23 @@ } } }, - "node_modules/@mui/lab/node_modules/@mui/base": { - "version": "5.0.0-beta.40", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.40.tgz", - "integrity": "sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@floating-ui/react-dom": "^2.0.8", - "@mui/types": "^7.2.14", - "@mui/utils": "^5.15.14", - "@popperjs/core": "^2.11.8", - "clsx": "^2.1.0", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/lab/node_modules/@mui/utils": { - "version": "5.16.8", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.8.tgz", - "integrity": "sha512-P/yb7BSWallQUeiNGxb+TM8epHteIUC8gzNTdPV2VfKhVY/EnGliHgt5np0GPkjQ7EzwDi/+gBevrAJtf+K94A==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/types": "^7.2.15", - "@types/prop-types": "^15.7.12", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-is": "^18.3.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@mui/material": { - "version": "5.16.9", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.16.9.tgz", - "integrity": "sha512-XC0oHFm7mrWV0tvhed9uv/o6kLNClnLj1eo/ufuKbj+rgk47ek8Y6HjHe3cGvMn4Bcq8KyoQPgzdwqvS2ZzYrA==", + "version": "5.16.13", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.16.13.tgz", + "integrity": "sha512-FhLDkDPYDzvrWCHFsdXzRArhS4AdYufU8d69rmLL+bwhodPcbm2C7cS8Gq5VR32PsW6aKZb58gvAgvEVaiiJbA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", - "@mui/core-downloads-tracker": "^5.16.9", - "@mui/system": "^5.16.8", + "@mui/core-downloads-tracker": "^5.16.13", + "@mui/system": "^5.16.13", "@mui/types": "^7.2.15", - "@mui/utils": "^5.16.8", + "@mui/utils": "^5.16.13", "@popperjs/core": "^2.11.8", "@types/react-transition-group": "^4.4.10", "clsx": "^2.1.0", "csstype": "^3.1.3", "prop-types": "^15.8.1", - "react-is": "^18.3.1", + "react-is": "^19.0.0", "react-transition-group": "^4.4.5" }, "engines": { @@ -6896,44 +6856,14 @@ } } }, - "node_modules/@mui/material/node_modules/@mui/utils": { - "version": "5.16.8", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.8.tgz", - "integrity": "sha512-P/yb7BSWallQUeiNGxb+TM8epHteIUC8gzNTdPV2VfKhVY/EnGliHgt5np0GPkjQ7EzwDi/+gBevrAJtf+K94A==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/types": "^7.2.15", - "@types/prop-types": "^15.7.12", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-is": "^18.3.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@mui/private-theming": { - "version": "5.16.8", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.16.8.tgz", - "integrity": "sha512-3Vl9yFVLU6T3CFtxRMQTcJ60Ijv7wxQi4yjH92+9YXcsqvVspeIYoocqNoIV/1bXGYfyWu5zrCmwQVHaGY7bug==", + "version": "5.16.13", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.16.13.tgz", + "integrity": "sha512-+s0FklvDvO7j0yBZn19DIIT3rLfub2fWvXGtMX49rG/xHfDFcP7fbWbZKHZMMP/2/IoTRDrZCbY1iP0xZlmuJA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", - "@mui/utils": "^5.16.8", + "@mui/utils": "^5.16.13", "prop-types": "^15.8.1" }, "engines": { @@ -6953,44 +6883,14 @@ } } }, - "node_modules/@mui/private-theming/node_modules/@mui/utils": { - "version": "5.16.8", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.8.tgz", - "integrity": "sha512-P/yb7BSWallQUeiNGxb+TM8epHteIUC8gzNTdPV2VfKhVY/EnGliHgt5np0GPkjQ7EzwDi/+gBevrAJtf+K94A==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/types": "^7.2.15", - "@types/prop-types": "^15.7.12", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-is": "^18.3.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@mui/styled-engine": { - "version": "5.16.8", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.16.8.tgz", - "integrity": "sha512-OFdgFf8JczSRs0kvWGdSn0ZeXxWrY0LITDPJ/nAtLEvUUTyrlFaO4il3SECX8ruzvf1VnAxHx4M/4mX9oOn9yA==", + "version": "5.16.13", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.16.13.tgz", + "integrity": "sha512-2XNHEG8/o1ucSLhTA9J+HIIXjzlnEc0OV7kneeUQ5JukErPYT2zc6KYBDLjlKWrzQyvnQzbiffjjspgHUColZg==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", - "@emotion/cache": "^11.11.0", + "@emotion/cache": "^11.13.5", "csstype": "^3.1.3", "prop-types": "^15.8.1" }, @@ -7016,16 +6916,16 @@ } }, "node_modules/@mui/system": { - "version": "5.16.8", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.16.8.tgz", - "integrity": "sha512-L32TaFDFpGIi1g6ysRtmhc9zDgrlxDXu3NlrGE8gAsQw/ziHrPdr0PNr20O0POUshA1q14W4dNZ/z0Nx2F9lhA==", + "version": "5.16.13", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.16.13.tgz", + "integrity": "sha512-JnO3VH3yNoAmgyr44/2jiS1tcNwshwAqAaG5fTEEjHQbkuZT/mvPYj2GC1cON0zEQ5V03xrCNl/D+gU9AXibpw==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", - "@mui/private-theming": "^5.16.8", - "@mui/styled-engine": "^5.16.8", + "@mui/private-theming": "^5.16.13", + "@mui/styled-engine": "^5.16.13", "@mui/types": "^7.2.15", - "@mui/utils": "^5.16.8", + "@mui/utils": "^5.16.13", "clsx": "^2.1.0", "csstype": "^3.1.3", "prop-types": "^15.8.1" @@ -7055,40 +6955,10 @@ } } }, - "node_modules/@mui/system/node_modules/@mui/utils": { - "version": "5.16.8", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.8.tgz", - "integrity": "sha512-P/yb7BSWallQUeiNGxb+TM8epHteIUC8gzNTdPV2VfKhVY/EnGliHgt5np0GPkjQ7EzwDi/+gBevrAJtf+K94A==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/types": "^7.2.15", - "@types/prop-types": "^15.7.12", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-is": "^18.3.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@mui/types": { - "version": "7.2.19", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.19.tgz", - "integrity": "sha512-6XpZEM/Q3epK9RN8ENoXuygnqUQxE+siN/6rGRi2iwJPgBUR25mphYQ9ZI87plGh58YoZ5pp40bFvKYOCDJ3tA==", + "version": "7.2.20", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.20.tgz", + "integrity": "sha512-straFHD7L8v05l/N5vcWk+y7eL9JF0C2mtph/y4BPm3gn2Eh61dDwDB65pa8DLss3WJfDXYC7Kx5yjP0EmXpgw==", "license": "MIT", "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" @@ -7100,20 +6970,20 @@ } }, "node_modules/@mui/utils": { - "version": "6.1.10", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-6.1.10.tgz", - "integrity": "sha512-1ETuwswGjUiAf2dP9TkBy8p49qrw2wXa+RuAjNTRE5+91vtXJ1HKrs7H9s8CZd1zDlQVzUcUAPm9lpQwF5ogTw==", + "version": "5.16.13", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.13.tgz", + "integrity": "sha512-35kLiShnDPByk57Mz4PP66fQUodCFiOD92HfpW6dK9lc7kjhZsKHRKeYPgWuwEHeXwYsCSFtBCW4RZh/8WT+TQ==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.26.0", - "@mui/types": "^7.2.19", - "@types/prop-types": "^15.7.13", + "@babel/runtime": "^7.23.9", + "@mui/types": "^7.2.15", + "@types/prop-types": "^15.7.12", "clsx": "^2.1.1", "prop-types": "^15.8.1", - "react-is": "^18.3.1" + "react-is": "^19.0.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=12.0.0" }, "funding": { "type": "opencollective", @@ -7155,36 +7025,6 @@ "react-dom": "^17.0.0 || ^18.0.0" } }, - "node_modules/@mui/x-data-grid/node_modules/@mui/utils": { - "version": "5.16.8", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.8.tgz", - "integrity": "sha512-P/yb7BSWallQUeiNGxb+TM8epHteIUC8gzNTdPV2VfKhVY/EnGliHgt5np0GPkjQ7EzwDi/+gBevrAJtf+K94A==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/types": "^7.2.15", - "@types/prop-types": "^15.7.12", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-is": "^18.3.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@mui/x-date-pickers": { "version": "6.20.2", "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-6.20.2.tgz", @@ -7251,36 +7091,6 @@ } } }, - "node_modules/@mui/x-date-pickers/node_modules/@mui/utils": { - "version": "5.16.8", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.8.tgz", - "integrity": "sha512-P/yb7BSWallQUeiNGxb+TM8epHteIUC8gzNTdPV2VfKhVY/EnGliHgt5np0GPkjQ7EzwDi/+gBevrAJtf+K94A==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/types": "^7.2.15", - "@types/prop-types": "^15.7.12", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-is": "^18.3.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@multiformats/base-x": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", @@ -7494,9 +7304,9 @@ } }, "node_modules/@nx/nx-linux-x64-gnu": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-20.2.0.tgz", - "integrity": "sha512-yW5ICzdtT5nncXraGFfqKqhs2pR+t9ZxoLrM7qwSt9XOtkyVYk/OhkJcdotVG3XiQeDSA86OsnMFlXNs6nKPMg==", + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-20.3.0.tgz", + "integrity": "sha512-nkA2DLI+rpmiuiy7dyXP4l9s7dgHkQWDX7lG1XltiT41RzAReJF1h8qBE6XrsAYE1CtI76DRWVphnc93+iZr+A==", "cpu": [ "x64" ], @@ -7539,13 +7349,13 @@ } }, "node_modules/@octokit/endpoint": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.1.tgz", - "integrity": "sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.2.tgz", + "integrity": "sha512-XybpFv9Ms4hX5OCHMZqyODYqGTZ3H6K6Vva+M9LR7ib/xr1y1ZnlChYv9H680y77Vd/i/k+thXApeRASBQkzhA==", "dev": true, "license": "MIT", "dependencies": { - "@octokit/types": "^13.0.0", + "@octokit/types": "^13.6.2", "universal-user-agent": "^7.0.2" }, "engines": { @@ -7553,14 +7363,14 @@ } }, "node_modules/@octokit/graphql": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.1.1.tgz", - "integrity": "sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==", + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.1.2.tgz", + "integrity": "sha512-bdlj/CJVjpaz06NBpfHhp4kGJaRZfz7AzC+6EwUImRtrwIw8dIgJ63Xg0OzV9pRn3rIzrt5c2sa++BL0JJ8GLw==", "dev": true, "license": "MIT", "dependencies": { - "@octokit/request": "^9.0.0", - "@octokit/types": "^13.0.0", + "@octokit/request": "^9.1.4", + "@octokit/types": "^13.6.2", "universal-user-agent": "^7.0.0" }, "engines": { @@ -7626,15 +7436,16 @@ } }, "node_modules/@octokit/request": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.1.3.tgz", - "integrity": "sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==", + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.1.4.tgz", + "integrity": "sha512-tMbOwGm6wDII6vygP3wUVqFTw3Aoo0FnVQyhihh8vVq12uO3P+vQZeo2CKMpWtPSogpACD0yyZAlVlQnjW71DA==", "dev": true, "license": "MIT", "dependencies": { "@octokit/endpoint": "^10.0.0", "@octokit/request-error": "^6.0.1", - "@octokit/types": "^13.1.0", + "@octokit/types": "^13.6.2", + "fast-content-type-parse": "^2.0.0", "universal-user-agent": "^7.0.2" }, "engines": { @@ -7642,13 +7453,13 @@ } }, "node_modules/@octokit/request-error": { - "version": "6.1.5", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.5.tgz", - "integrity": "sha512-IlBTfGX8Yn/oFPMwSfvugfncK2EwRLjzbrpifNaMY8o/HTEAFqCA1FZxjD9cWvSKBHgrIhc4CSBIzMxiLsbzFQ==", + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.6.tgz", + "integrity": "sha512-pqnVKYo/at0NuOjinrgcQYpEbv4snvP3bKMRqHaD9kIsk9u1LCpb2smHZi8/qJfgeNqLo5hNW4Z7FezNdEo0xg==", "dev": true, "license": "MIT", "dependencies": { - "@octokit/types": "^13.0.0" + "@octokit/types": "^13.6.2" }, "engines": { "node": ">= 18" @@ -7695,345 +7506,6 @@ "integrity": "sha512-RefjXB3d5Ub1I3GoIf/mfgTsvmAneWoeQwpmiuXYx1NmmSdbtBxDUk4POtSWUCnvoiJP0Y2frATnYMV30J1b1A==", "license": "Apache-2.0" }, - "node_modules/@parcel/watcher": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz", - "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "detect-libc": "^1.0.3", - "is-glob": "^4.0.3", - "micromatch": "^4.0.5", - "node-addon-api": "^7.0.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.5.0", - "@parcel/watcher-darwin-arm64": "2.5.0", - "@parcel/watcher-darwin-x64": "2.5.0", - "@parcel/watcher-freebsd-x64": "2.5.0", - "@parcel/watcher-linux-arm-glibc": "2.5.0", - "@parcel/watcher-linux-arm-musl": "2.5.0", - "@parcel/watcher-linux-arm64-glibc": "2.5.0", - "@parcel/watcher-linux-arm64-musl": "2.5.0", - "@parcel/watcher-linux-x64-glibc": "2.5.0", - "@parcel/watcher-linux-x64-musl": "2.5.0", - "@parcel/watcher-win32-arm64": "2.5.0", - "@parcel/watcher-win32-ia32": "2.5.0", - "@parcel/watcher-win32-x64": "2.5.0" - } - }, - "node_modules/@parcel/watcher-android-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz", - "integrity": "sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz", - "integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz", - "integrity": "sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz", - "integrity": "sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz", - "integrity": "sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz", - "integrity": "sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz", - "integrity": "sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz", - "integrity": "sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz", - "integrity": "sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz", - "integrity": "sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-wasm": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-wasm/-/watcher-wasm-2.5.0.tgz", - "integrity": "sha512-Z4ouuR8Pfggk1EYYbTaIoxc+Yv4o7cGQnH0Xy8+pQ+HbiW+ZnwhcD2LPf/prfq1nIWpAxjOkQ8uSMFWMtBLiVQ==", - "bundleDependencies": [ - "napi-wasm" - ], - "license": "MIT", - "dependencies": { - "is-glob": "^4.0.3", - "micromatch": "^4.0.5", - "napi-wasm": "^1.1.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-wasm/node_modules/napi-wasm": { - "version": "1.1.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz", - "integrity": "sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz", - "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz", - "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher/node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "license": "Apache-2.0", - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/@parcel/watcher/node_modules/node-addon-api": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", - "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", - "license": "MIT" - }, "node_modules/@passwordless-id/webauthn": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/@passwordless-id/webauthn/-/webauthn-1.6.2.tgz", @@ -8044,130 +7516,129 @@ } }, "node_modules/@peculiar/asn1-cms": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.3.13.tgz", - "integrity": "sha512-joqu8A7KR2G85oLPq+vB+NFr2ro7Ls4ol13Zcse/giPSzUNN0n2k3v8kMpf6QdGUhI13e5SzQYN8AKP8sJ8v4w==", + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.3.15.tgz", + "integrity": "sha512-B+DoudF+TCrxoJSTjjcY8Mmu+lbv8e7pXGWrhNp2/EGJp9EEcpzjBCar7puU57sGifyzaRVM03oD5L7t7PghQg==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.3.13", - "@peculiar/asn1-x509": "^2.3.13", - "@peculiar/asn1-x509-attr": "^2.3.13", + "@peculiar/asn1-schema": "^2.3.15", + "@peculiar/asn1-x509": "^2.3.15", + "@peculiar/asn1-x509-attr": "^2.3.15", "asn1js": "^3.0.5", - "tslib": "^2.6.2" + "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-csr": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.3.13.tgz", - "integrity": "sha512-+JtFsOUWCw4zDpxp1LbeTYBnZLlGVOWmHHEhoFdjM5yn4wCn+JiYQ8mghOi36M2f6TPQ17PmhNL6/JfNh7/jCA==", + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.3.15.tgz", + "integrity": "sha512-caxAOrvw2hUZpxzhz8Kp8iBYKsHbGXZPl2KYRMIPvAfFateRebS3136+orUpcVwHRmpXWX2kzpb6COlIrqCumA==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.3.13", - "@peculiar/asn1-x509": "^2.3.13", + "@peculiar/asn1-schema": "^2.3.15", + "@peculiar/asn1-x509": "^2.3.15", "asn1js": "^3.0.5", - "tslib": "^2.6.2" + "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-ecc": { - "version": "2.3.14", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.3.14.tgz", - "integrity": "sha512-zWPyI7QZto6rnLv6zPniTqbGaLh6zBpJyI46r1yS/bVHJXT2amdMHCRRnbV5yst2H8+ppXG6uXu/M6lKakiQ8w==", + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.3.15.tgz", + "integrity": "sha512-/HtR91dvgog7z/WhCVdxZJ/jitJuIu8iTqiyWVgRE9Ac5imt2sT/E4obqIVGKQw7PIy+X6i8lVBoT6wC73XUgA==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.3.13", - "@peculiar/asn1-x509": "^2.3.13", + "@peculiar/asn1-schema": "^2.3.15", + "@peculiar/asn1-x509": "^2.3.15", "asn1js": "^3.0.5", - "tslib": "^2.6.2" + "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-pfx": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.3.13.tgz", - "integrity": "sha512-fypYxjn16BW+5XbFoY11Rm8LhZf6euqX/C7BTYpqVvLem1GvRl7A+Ro1bO/UPwJL0z+1mbvXEnkG0YOwbwz2LA==", + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.3.15.tgz", + "integrity": "sha512-E3kzQe3J2xV9DP6SJS4X6/N1e4cYa2xOAK46VtvpaRk8jlheNri8v0rBezKFVPB1rz/jW8npO+u1xOvpATFMWg==", "license": "MIT", "dependencies": { - "@peculiar/asn1-cms": "^2.3.13", - "@peculiar/asn1-pkcs8": "^2.3.13", - "@peculiar/asn1-rsa": "^2.3.13", - "@peculiar/asn1-schema": "^2.3.13", + "@peculiar/asn1-cms": "^2.3.15", + "@peculiar/asn1-pkcs8": "^2.3.15", + "@peculiar/asn1-rsa": "^2.3.15", + "@peculiar/asn1-schema": "^2.3.15", "asn1js": "^3.0.5", - "tslib": "^2.6.2" + "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-pkcs8": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.3.13.tgz", - "integrity": "sha512-VP3PQzbeSSjPjKET5K37pxyf2qCdM0dz3DJ56ZCsol3FqAXGekb4sDcpoL9uTLGxAh975WcdvUms9UcdZTuGyQ==", + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.3.15.tgz", + "integrity": "sha512-/PuQj2BIAw1/v76DV1LUOA6YOqh/UvptKLJHtec/DQwruXOCFlUo7k6llegn8N5BTeZTWMwz5EXruBw0Q10TMg==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.3.13", - "@peculiar/asn1-x509": "^2.3.13", + "@peculiar/asn1-schema": "^2.3.15", + "@peculiar/asn1-x509": "^2.3.15", "asn1js": "^3.0.5", - "tslib": "^2.6.2" + "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-pkcs9": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.3.13.tgz", - "integrity": "sha512-rIwQXmHpTo/dgPiWqUgby8Fnq6p1xTJbRMxCiMCk833kQCeZrC5lbSKg6NDnJTnX2kC6IbXBB9yCS2C73U2gJg==", + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.3.15.tgz", + "integrity": "sha512-yiZo/1EGvU1KiQUrbcnaPGWc0C7ElMMskWn7+kHsCFm+/9fU0+V1D/3a5oG0Jpy96iaXggQpA9tzdhnYDgjyFg==", "license": "MIT", "dependencies": { - "@peculiar/asn1-cms": "^2.3.13", - "@peculiar/asn1-pfx": "^2.3.13", - "@peculiar/asn1-pkcs8": "^2.3.13", - "@peculiar/asn1-schema": "^2.3.13", - "@peculiar/asn1-x509": "^2.3.13", - "@peculiar/asn1-x509-attr": "^2.3.13", + "@peculiar/asn1-cms": "^2.3.15", + "@peculiar/asn1-pfx": "^2.3.15", + "@peculiar/asn1-pkcs8": "^2.3.15", + "@peculiar/asn1-schema": "^2.3.15", + "@peculiar/asn1-x509": "^2.3.15", + "@peculiar/asn1-x509-attr": "^2.3.15", "asn1js": "^3.0.5", - "tslib": "^2.6.2" + "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-rsa": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.3.13.tgz", - "integrity": "sha512-wBNQqCyRtmqvXkGkL4DR3WxZhHy8fDiYtOjTeCd7SFE5F6GBeafw3EJ94PX/V0OJJrjQ40SkRY2IZu3ZSyBqcg==", + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.3.15.tgz", + "integrity": "sha512-p6hsanvPhexRtYSOHihLvUUgrJ8y0FtOM97N5UEpC+VifFYyZa0iZ5cXjTkZoDwxJ/TTJ1IJo3HVTB2JJTpXvg==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.3.13", - "@peculiar/asn1-x509": "^2.3.13", + "@peculiar/asn1-schema": "^2.3.15", + "@peculiar/asn1-x509": "^2.3.15", "asn1js": "^3.0.5", - "tslib": "^2.6.2" + "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-schema": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.13.tgz", - "integrity": "sha512-3Xq3a01WkHRZL8X04Zsfg//mGaA21xlL4tlVn4v2xGT0JStiztATRkMwa5b+f/HXmY2smsiLXYK46Gwgzvfg3g==", + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.15.tgz", + "integrity": "sha512-QPeD8UA8axQREpgR5UTAfu2mqQmm97oUqahDtNdBcfj3qAnoXzFdQW+aNf/tD2WVXF8Fhmftxoj0eMIT++gX2w==", "license": "MIT", "dependencies": { "asn1js": "^3.0.5", - "pvtsutils": "^1.3.5", - "tslib": "^2.6.2" + "pvtsutils": "^1.3.6", + "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-x509": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.3.13.tgz", - "integrity": "sha512-PfeLQl2skXmxX2/AFFCVaWU8U6FKW1Db43mgBhShCOFS1bVxqtvusq1hVjfuEcuSQGedrLdCSvTgabluwN/M9A==", + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.3.15.tgz", + "integrity": "sha512-0dK5xqTqSLaxv1FHXIcd4Q/BZNuopg+u1l23hT9rOmQ1g4dNtw0g/RnEi+TboB0gOwGtrWn269v27cMgchFIIg==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.3.13", + "@peculiar/asn1-schema": "^2.3.15", "asn1js": "^3.0.5", - "ipaddr.js": "^2.1.0", - "pvtsutils": "^1.3.5", - "tslib": "^2.6.2" + "pvtsutils": "^1.3.6", + "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-x509-attr": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.3.13.tgz", - "integrity": "sha512-WpEos6CcnUzJ6o2Qb68Z7Dz5rSjRGv/DtXITCNBtjZIRWRV12yFVci76SVfOX8sisL61QWMhpLKQibrG8pi2Pw==", + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.3.15.tgz", + "integrity": "sha512-TWJVJhqc+IS4MTEML3l6W1b0sMowVqdsnI4dnojg96LvTuP8dga9f76fjP07MUuss60uSyT2ckoti/2qHXA10A==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.3.13", - "@peculiar/asn1-x509": "^2.3.13", + "@peculiar/asn1-schema": "^2.3.15", + "@peculiar/asn1-x509": "^2.3.15", "asn1js": "^3.0.5", - "tslib": "^2.6.2" + "tslib": "^2.8.1" } }, "node_modules/@peculiar/json-schema": { @@ -8362,18 +7833,18 @@ "license": "MIT" }, "node_modules/@radix-ui/primitive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.0.tgz", - "integrity": "sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.1.tgz", + "integrity": "sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==", "license": "MIT" }, "node_modules/@radix-ui/react-arrow": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz", - "integrity": "sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.1.tgz", + "integrity": "sha512-NaVpZfmv8SKeZbn4ijN2V3jlHA9ngBG16VnIIm22nUR0Yk8KUALyBxT3KYEUnNuch9sTE8UTsS3whzBgKOL30w==", "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.0.0" + "@radix-ui/react-primitive": "2.0.1" }, "peerDependencies": { "@types/react": "*", @@ -8391,15 +7862,15 @@ } }, "node_modules/@radix-ui/react-collection": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.0.tgz", - "integrity": "sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.1.tgz", + "integrity": "sha512-LwT3pSho9Dljg+wY2KN2mrrh6y3qELfftINERIzBUO9e0N+t0oMTyn3k9iv+ZqgrwGkRnLpNJrsMv9BZlt2yuA==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-slot": "1.1.0" + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1" }, "peerDependencies": { "@types/react": "*", @@ -8416,25 +7887,10 @@ } } }, - "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-context": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", - "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz", - "integrity": "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.1.tgz", + "integrity": "sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -8462,25 +7918,25 @@ } }, "node_modules/@radix-ui/react-dialog": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.2.tgz", - "integrity": "sha512-Yj4dZtqa2o+kG61fzB0H2qUvmwBA2oyQroGLyNtBj1beo1khoQ3q1a2AO8rrQYjd8256CO9+N8L9tvsS+bnIyA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.4.tgz", + "integrity": "sha512-Ur7EV1IwQGCyaAuyDRiOLA5JIUZxELJljF+MbM/2NC0BYwfuRrbpS30BiQBJrVruscgUkieKkqXYDOoByaxIoA==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.3", "@radix-ui/react-focus-guards": "1.1.1", - "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.1", "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-portal": "1.1.2", - "@radix-ui/react-presence": "1.1.1", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1", "@radix-ui/react-use-controllable-state": "1.1.0", "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.6.0" + "react-remove-scroll": "^2.6.1" }, "peerDependencies": { "@types/react": "*", @@ -8513,14 +7969,14 @@ } }, "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.1.tgz", - "integrity": "sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.3.tgz", + "integrity": "sha512-onrWn/72lQoEucDmJnr8uczSNTujT0vJnA/X5+3AkChVPowr8n1yvIKIabhWyMQeMvvmdpsvcyDqx3X1LEXCPg==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-use-callback-ref": "1.1.0", "@radix-ui/react-use-escape-keydown": "1.1.0" }, @@ -8555,13 +8011,13 @@ } }, "node_modules/@radix-ui/react-focus-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz", - "integrity": "sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.1.tgz", + "integrity": "sha512-01omzJAYRxXdG2/he/+xy+c8a8gCydoQ1yOxnWNcRhrrBW5W+RQJ22EK1SaO8tb3WoUsuEw7mJjBozPzihDFjA==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-use-callback-ref": "1.1.0" }, "peerDependencies": { @@ -8607,26 +8063,26 @@ } }, "node_modules/@radix-ui/react-popover": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.2.tgz", - "integrity": "sha512-u2HRUyWW+lOiA2g0Le0tMmT55FGOEWHwPFt1EPfbLly7uXQExFo5duNKqG2DzmFXIdqOeNd+TpE8baHWJCyP9w==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.4.tgz", + "integrity": "sha512-aUACAkXx8LaFymDma+HQVji7WhvEhpFJ7+qPz17Nf4lLZqtreGOFRiNQWQmhzp7kEWg9cOyyQJpdIMUMPc/CPw==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.3", "@radix-ui/react-focus-guards": "1.1.1", - "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.1", "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-popper": "1.2.0", - "@radix-ui/react-portal": "1.1.2", - "@radix-ui/react-presence": "1.1.1", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-popper": "1.2.1", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1", "@radix-ui/react-use-controllable-state": "1.1.0", "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.6.0" + "react-remove-scroll": "^2.6.1" }, "peerDependencies": { "@types/react": "*", @@ -8644,16 +8100,16 @@ } }, "node_modules/@radix-ui/react-popper": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.0.tgz", - "integrity": "sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.1.tgz", + "integrity": "sha512-3kn5Me69L+jv82EKRuQCXdYyf1DqHwD2U/sxoNgBGCB7K9TRc3bQamQ+5EPM9EvyPdli0W41sROd+ZU1dTCztw==", "license": "MIT", "dependencies": { "@floating-ui/react-dom": "^2.0.0", - "@radix-ui/react-arrow": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-arrow": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-use-callback-ref": "1.1.0", "@radix-ui/react-use-layout-effect": "1.1.0", "@radix-ui/react-use-rect": "1.1.0", @@ -8675,28 +8131,13 @@ } } }, - "node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-context": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", - "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-portal": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.2.tgz", - "integrity": "sha512-WeDYLGPxJb/5EGBoedyJbT0MpoULmwnIPMJMSldkuiMsBAv7N1cRdsTWZWht9vpPOiN3qyiGAtbK2is47/uMFg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.3.tgz", + "integrity": "sha512-NciRqhXnGojhT93RPyDaMPfLH3ZSl4jjIFbZQ1b/vxvZEdHsBZ49wP9w8L3HzUQwep01LcWtkUvm0OVB5JAHTw==", "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { @@ -8715,12 +8156,12 @@ } }, "node_modules/@radix-ui/react-presence": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.1.tgz", - "integrity": "sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.2.tgz", + "integrity": "sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { @@ -8739,12 +8180,12 @@ } }, "node_modules/@radix-ui/react-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", - "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.1.tgz", + "integrity": "sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==", "license": "MIT", "dependencies": { - "@radix-ui/react-slot": "1.1.0" + "@radix-ui/react-slot": "1.1.1" }, "peerDependencies": { "@types/react": "*", @@ -8762,18 +8203,18 @@ } }, "node_modules/@radix-ui/react-roving-focus": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.0.tgz", - "integrity": "sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.1.tgz", + "integrity": "sha512-QE1RoxPGJ/Nm8Qmk0PxP8ojmoaS67i0s7hVssS7KuI2FQoc/uzVlZsqKfQvxPE6D8hICCPHJ4D88zNhT3OOmkw==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-collection": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-collection": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", "@radix-ui/react-direction": "1.1.0", "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-use-callback-ref": "1.1.0", "@radix-ui/react-use-controllable-state": "1.1.0" }, @@ -8792,28 +8233,13 @@ } } }, - "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-context": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", - "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz", - "integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.1.tgz", + "integrity": "sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.0" + "@radix-ui/react-compose-refs": "1.1.1" }, "peerDependencies": { "@types/react": "*", @@ -8826,18 +8252,18 @@ } }, "node_modules/@radix-ui/react-tabs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.1.tgz", - "integrity": "sha512-3GBUDmP2DvzmtYLMsHmpA1GtR46ZDZ+OreXM/N+kkQJOPIgytFWWTfDQmBQKBvaFS0Vno0FktdbVzN28KGrMdw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.2.tgz", + "integrity": "sha512-9u/tQJMcC2aGq7KXpGivMm1mgq7oRJKXphDwdypPd/j21j/2znamPU8WkXgnhUaTrSFNIt8XhOyCAupg8/GbwQ==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.0", + "@radix-ui/primitive": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-direction": "1.1.0", "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-presence": "1.1.1", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-roving-focus": "1.1.0", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-roving-focus": "1.1.1", "@radix-ui/react-use-controllable-state": "1.1.0" }, "peerDependencies": { @@ -8856,23 +8282,23 @@ } }, "node_modules/@radix-ui/react-tooltip": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.4.tgz", - "integrity": "sha512-QpObUH/ZlpaO4YgHSaYzrLO2VuO+ZBFFgGzjMUPwtiYnAzzNNDPJeEGRrT7qNOrWm/Jr08M1vlp+vTHtnSQ0Uw==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.6.tgz", + "integrity": "sha512-TLB5D8QLExS1uDn7+wH/bjEmRurNMTzNrtq7IjaS4kjion9NtzsTGkvR5+i7yc9q01Pi2KMM2cN3f8UG4IvvXA==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.3", "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-popper": "1.2.0", - "@radix-ui/react-portal": "1.1.2", - "@radix-ui/react-presence": "1.1.1", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-popper": "1.2.1", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1", "@radix-ui/react-use-controllable-state": "1.1.0", - "@radix-ui/react-visually-hidden": "1.1.0" + "@radix-ui/react-visually-hidden": "1.1.1" }, "peerDependencies": { "@types/react": "*", @@ -8992,12 +8418,12 @@ } }, "node_modules/@radix-ui/react-visually-hidden": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz", - "integrity": "sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.1.tgz", + "integrity": "sha512-vVfA2IZ9q/J+gEamvj761Oq1FpWgCDaNOOIfbPVp2MVPLEomUr5+Vf7kJGwQ24YxZSlQVar7Bes8kyTo5Dshpg==", "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.0.0" + "@radix-ui/react-primitive": "2.0.1" }, "peerDependencies": { "@types/react": "*", @@ -9021,9 +8447,9 @@ "license": "MIT" }, "node_modules/@reduxjs/toolkit": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.4.0.tgz", - "integrity": "sha512-wJZEuSKj14tvNfxiIiJws0tQN77/rDqucBq528ApebMIRHyWpCanJVQRxQ8WWZC19iCDKxDsGlbAir3F1layxA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.5.0.tgz", + "integrity": "sha512-awNe2oTodsZ6LmRqmkFhtb/KH03hUhxOamEQy411m3Njj3BbFvoBovxo4Q1cBWnV1ErprVj9MlF0UPXkng0eyg==", "license": "MIT", "dependencies": { "immer": "^10.0.3", @@ -9032,7 +8458,7 @@ "reselect": "^5.1.0" }, "peerDependencies": { - "react": "^16.9.0 || ^17.0.0 || ^18", + "react": "^16.9.0 || ^17.0.0 || ^18 || ^19", "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" }, "peerDependenciesMeta": { @@ -9082,9 +8508,9 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.3.tgz", - "integrity": "sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", @@ -9104,9 +8530,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.0.tgz", - "integrity": "sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.29.1.tgz", + "integrity": "sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==", "cpu": [ "arm" ], @@ -9118,9 +8544,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.0.tgz", - "integrity": "sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.29.1.tgz", + "integrity": "sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==", "cpu": [ "arm64" ], @@ -9132,9 +8558,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.0.tgz", - "integrity": "sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.29.1.tgz", + "integrity": "sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==", "cpu": [ "arm64" ], @@ -9146,9 +8572,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.0.tgz", - "integrity": "sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.29.1.tgz", + "integrity": "sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==", "cpu": [ "x64" ], @@ -9160,9 +8586,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.0.tgz", - "integrity": "sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.29.1.tgz", + "integrity": "sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==", "cpu": [ "arm64" ], @@ -9174,9 +8600,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.0.tgz", - "integrity": "sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.29.1.tgz", + "integrity": "sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==", "cpu": [ "x64" ], @@ -9188,9 +8614,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.0.tgz", - "integrity": "sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.29.1.tgz", + "integrity": "sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==", "cpu": [ "arm" ], @@ -9202,9 +8628,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.0.tgz", - "integrity": "sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.29.1.tgz", + "integrity": "sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==", "cpu": [ "arm" ], @@ -9216,9 +8642,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.0.tgz", - "integrity": "sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.29.1.tgz", + "integrity": "sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==", "cpu": [ "arm64" ], @@ -9230,9 +8656,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.0.tgz", - "integrity": "sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.29.1.tgz", + "integrity": "sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==", "cpu": [ "arm64" ], @@ -9243,10 +8669,24 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.29.1.tgz", + "integrity": "sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.0.tgz", - "integrity": "sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.29.1.tgz", + "integrity": "sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==", "cpu": [ "ppc64" ], @@ -9258,9 +8698,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.0.tgz", - "integrity": "sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.29.1.tgz", + "integrity": "sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==", "cpu": [ "riscv64" ], @@ -9272,9 +8712,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.0.tgz", - "integrity": "sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.29.1.tgz", + "integrity": "sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==", "cpu": [ "s390x" ], @@ -9286,9 +8726,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.0.tgz", - "integrity": "sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.29.1.tgz", + "integrity": "sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==", "cpu": [ "x64" ], @@ -9299,9 +8739,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.0.tgz", - "integrity": "sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.29.1.tgz", + "integrity": "sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==", "cpu": [ "x64" ], @@ -9313,9 +8753,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.0.tgz", - "integrity": "sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.29.1.tgz", + "integrity": "sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==", "cpu": [ "arm64" ], @@ -9327,9 +8767,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.0.tgz", - "integrity": "sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.29.1.tgz", + "integrity": "sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==", "cpu": [ "ia32" ], @@ -9341,9 +8781,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.0.tgz", - "integrity": "sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.29.1.tgz", + "integrity": "sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==", "cpu": [ "x64" ], @@ -9406,12 +8846,12 @@ "license": "MIT" }, "node_modules/@safe-global/safe-core-sdk-types/node_modules/cross-fetch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", - "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.1.0.tgz", + "integrity": "sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==", "license": "MIT", "dependencies": { - "node-fetch": "^2.6.12" + "node-fetch": "^2.7.0" } }, "node_modules/@safe-global/safe-core-sdk-types/node_modules/eventemitter3": { @@ -9599,9 +9039,9 @@ } }, "node_modules/@safe-global/safe-deployments": { - "version": "1.37.20", - "resolved": "https://registry.npmjs.org/@safe-global/safe-deployments/-/safe-deployments-1.37.20.tgz", - "integrity": "sha512-2T2cYtgpLGzxM0GUPXd5mqZiQ193fgWXB2Yg0Azd/EBpBsAfUEWVmjdux+5D2aNNyVv++16Hq5GqiOv5sU07Tg==", + "version": "1.37.22", + "resolved": "https://registry.npmjs.org/@safe-global/safe-deployments/-/safe-deployments-1.37.22.tgz", + "integrity": "sha512-acUBJ22qqivSjHOwa8laQuHckqpWDjphjdC3zPhUN6G/swHe1WJHN5F2sodtNIjEyRxM73JRRJFsLYfb0EhSAQ==", "license": "MIT", "dependencies": { "semver": "^7.6.2" @@ -10063,14 +9503,11 @@ } }, "node_modules/@semantic-release/github/node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", "dev": true, "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, "engines": { "node": ">= 14" } @@ -10097,13 +9534,13 @@ } }, "node_modules/@semantic-release/github/node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "4" }, "engines": { @@ -10111,9 +9548,9 @@ } }, "node_modules/@semantic-release/github/node_modules/mime": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.4.tgz", - "integrity": "sha512-v8yqInVjhXyqP6+Kw4fV3ZzeMRqEW6FotRsKXjRS5VMTNIuXsdRoAvklpoRgSqXm6o9VNH4/C0mgedko9DdLsQ==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.6.tgz", + "integrity": "sha512-4rGt7rvQHBbaSOF9POGkk1ocRP16Md1x36Xma8sz8h8/vfCUI2OtEIeCqe4Ofes853x4xDoPiFLIT47J5fI/7A==", "dev": true, "funding": [ "https://github.com/sponsors/broofa" @@ -10194,9 +9631,9 @@ } }, "node_modules/@semantic-release/npm/node_modules/execa": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-9.5.1.tgz", - "integrity": "sha512-QY5PPtSonnGwhhHDNI7+3RvY285c7iuJFFB+lU+oEzMY/gEGJ808owqJsrr8Otd1E/x07po1LkUBmdAc5duPAg==", + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.5.2.tgz", + "integrity": "sha512-EHlpxMCpHWSAh1dgS6bVeoLAXGnJNdR93aabr4QCGbzOM73o5XmRfM/e5FUqsw3aagP8S8XEWUWFAxnRBnAF0Q==", "dev": true, "license": "MIT", "dependencies": { @@ -10356,9 +9793,9 @@ } }, "node_modules/@semantic-release/release-notes-generator": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-14.0.1.tgz", - "integrity": "sha512-K0w+5220TM4HZTthE5dDpIuFrnkN1NfTGPidJFm04ULT1DEZ9WG89VNXN7F0c+6nMEpWgqmPvb7vY7JkB2jyyA==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-14.0.2.tgz", + "integrity": "sha512-ur2l2tVLBfX3fSEO2rCy2X6Kzg5S7BHGqdwTHvJrpWp4mOEN7W4K/2kWAjvfAlwMenEKjMnDIhBbxxjnP0S9hw==", "dev": true, "license": "MIT", "dependencies": { @@ -10394,50 +9831,50 @@ } }, "node_modules/@sentry-internal/browser-utils": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.42.0.tgz", - "integrity": "sha512-xzgRI0wglKYsPrna574w1t38aftuvo44gjOKFvPNGPnYfiW9y4m+64kUz3JFbtanvOrKPcaITpdYiB4DeJXEbA==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.47.0.tgz", + "integrity": "sha512-vOXzYzHTKkahTLDzWWIA4EiVCQ+Gk+7xGWUlNcR2ZiEPBqYZVb5MjsUozAcc7syrSUy6WicyFjcomZ3rlCVQhg==", "license": "MIT", "dependencies": { - "@sentry/core": "8.42.0" + "@sentry/core": "8.47.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/feedback": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.42.0.tgz", - "integrity": "sha512-dkIw5Wdukwzngg5gNJ0QcK48LyJaMAnBspqTqZ3ItR01STi6Z+6+/Bt5XgmrvDgRD+FNBinflc5zMmfdFXXhvw==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.47.0.tgz", + "integrity": "sha512-IAiIemTQIalxAOYhUENs9bZ8pMNgJnX3uQSuY7v0gknEqClOGpGkG04X/cxCmtJUj1acZ9ShTGDxoh55a+ggAQ==", "license": "MIT", "dependencies": { - "@sentry/core": "8.42.0" + "@sentry/core": "8.47.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/replay": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.42.0.tgz", - "integrity": "sha512-oNcJEBlDfXnRFYC5Mxj5fairyZHNqlnU4g8kPuztB9G5zlsyLgWfPxzcn1ixVQunth2/WZRklDi4o1ZfyHww7w==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.47.0.tgz", + "integrity": "sha512-G/S40ZBORj0HSMLw/uVC6YDEPN/dqVk901vf4VYfml686DEhJrZesfAfp5SydJumQ0NKZQrdtvny+BWnlI5H1w==", "license": "MIT", "dependencies": { - "@sentry-internal/browser-utils": "8.42.0", - "@sentry/core": "8.42.0" + "@sentry-internal/browser-utils": "8.47.0", + "@sentry/core": "8.47.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/replay-canvas": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.42.0.tgz", - "integrity": "sha512-XrPErqVhPsPh/oFLVKvz7Wb+Fi2J1zCPLeZCxWqFuPWI2agRyLVu0KvqJyzSpSrRAEJC/XFzuSVILlYlXXSfgA==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.47.0.tgz", + "integrity": "sha512-M4W9UGouEeELbGbP3QsXLDVtGiQSZoWJlKwqMWyqdQgZuLoKw0S33+60t6teLVMhuQZR0UI9VJTF5coiXysnnA==", "license": "MIT", "dependencies": { - "@sentry-internal/replay": "8.42.0", - "@sentry/core": "8.42.0" + "@sentry-internal/replay": "8.47.0", + "@sentry/core": "8.47.0" }, "engines": { "node": ">=14.18" @@ -10453,16 +9890,16 @@ } }, "node_modules/@sentry/browser": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-8.42.0.tgz", - "integrity": "sha512-lStrEk609KJHwXfDrOgoYVVoFFExixHywxSExk7ZDtwj2YPv6r6Y1gogvgr7dAZj7jWzadHkxZ33l9EOSJBfug==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-8.47.0.tgz", + "integrity": "sha512-K6BzHisykmbFy/wORtGyfsAlw7ShevLALzu3ReZZZ18dVubO1bjSNjkZQU9MJD5Jcb9oLwkq89n3N9XIBfvdRA==", "license": "MIT", "dependencies": { - "@sentry-internal/browser-utils": "8.42.0", - "@sentry-internal/feedback": "8.42.0", - "@sentry-internal/replay": "8.42.0", - "@sentry-internal/replay-canvas": "8.42.0", - "@sentry/core": "8.42.0" + "@sentry-internal/browser-utils": "8.47.0", + "@sentry-internal/feedback": "8.47.0", + "@sentry-internal/replay": "8.47.0", + "@sentry-internal/replay-canvas": "8.47.0", + "@sentry/core": "8.47.0" }, "engines": { "node": ">=14.18" @@ -10644,22 +10081,22 @@ } }, "node_modules/@sentry/core": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.42.0.tgz", - "integrity": "sha512-ac6O3pgoIbU6rpwz6LlwW0wp3/GAHuSI0C5IsTgIY6baN8rOBnlAtG6KrHDDkGmUQ2srxkDJu9n1O6Td3cBCqw==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.47.0.tgz", + "integrity": "sha512-iSEJZMe3DOcqBFZQAqgA3NB2lCWBc4Gv5x/SCri/TVg96wAlss4VrUunSI2Mp0J4jJ5nJcJ2ChqHSBAU48k3FA==", "license": "MIT", "engines": { "node": ">=14.18" } }, "node_modules/@sentry/react": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@sentry/react/-/react-8.42.0.tgz", - "integrity": "sha512-UBi/WM4oMa+kOA99R7t7Ke57zq6uQw6mALYW4fJ+wuhHZJBLDDDHSGpEUhdWuQ1oWQv/laT34DGS44PJOjfeAg==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@sentry/react/-/react-8.47.0.tgz", + "integrity": "sha512-SRk2Up+qBTow4rQGiRXViC2i4M5w/tae5w8I/rmX+IxFoPyh8wXERcLAj/8xbbRm8aR+A4i5gNgfFtrYsyFJFA==", "license": "MIT", "dependencies": { - "@sentry/browser": "8.42.0", - "@sentry/core": "8.42.0", + "@sentry/browser": "8.47.0", + "@sentry/core": "8.47.0", "hoist-non-react-statics": "^3.3.2" }, "engines": { @@ -10721,13 +10158,13 @@ } }, "node_modules/@smithy/abort-controller": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.1.8.tgz", - "integrity": "sha512-+3DOBcUn5/rVjlxGvUPKc416SExarAQ+Qe0bqk30YSUjbepwpS7QN0cyKUSifvLJhdMZ0WPzPP5ymut0oonrpQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.1.9.tgz", + "integrity": "sha512-yiW0WI30zj8ZKoSYNx90no7ugVn3khlyH/z5W8qtKBtVE6awRALbhSG+2SAHA1r6bO/6M9utxYKVZ3PCJ1rWxw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -10756,16 +10193,16 @@ } }, "node_modules/@smithy/config-resolver": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.12.tgz", - "integrity": "sha512-YAJP9UJFZRZ8N+UruTeq78zkdjUHmzsY62J4qKWZ4SXB4QXJ/+680EfXXgkYA2xj77ooMqtUY9m406zGNqwivQ==", + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.13.tgz", + "integrity": "sha512-Gr/qwzyPaTL1tZcq8WQyHhTZREER5R1Wytmz4WnVGL4onA3dNk6Btll55c8Vr58pLdvWZmtG8oZxJTw3t3q7Jg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^3.1.11", - "@smithy/types": "^3.7.1", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/types": "^3.7.2", "@smithy/util-config-provider": "^3.0.0", - "@smithy/util-middleware": "^3.0.10", + "@smithy/util-middleware": "^3.0.11", "tslib": "^2.6.2" }, "engines": { @@ -10773,18 +10210,18 @@ } }, "node_modules/@smithy/core": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.5.4.tgz", - "integrity": "sha512-iFh2Ymn2sCziBRLPuOOxRPkuCx/2gBdXtBGuCUFLUe6bWYjKnhHyIPqGeNkLZ5Aco/5GjebRTBFiWID3sDbrKw==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.5.6.tgz", + "integrity": "sha512-w494xO+CPwG/5B/N2l0obHv2Fi9U4DAY+sTi1GWT3BVvGpZetJjJXAynIO9IHp4zS1PinGhXtRSZydUXbJO4ag==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/middleware-serde": "^3.0.10", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", + "@smithy/middleware-serde": "^3.0.11", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", "@smithy/util-body-length-browser": "^3.0.0", - "@smithy/util-middleware": "^3.0.10", - "@smithy/util-stream": "^3.3.1", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-stream": "^3.3.3", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -10793,16 +10230,16 @@ } }, "node_modules/@smithy/credential-provider-imds": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.7.tgz", - "integrity": "sha512-cEfbau+rrWF8ylkmmVAObOmjbTIzKyUC5TkBL58SbLywD0RCBC4JAUKbmtSm2w5KUJNRPGgpGFMvE2FKnuNlWQ==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.8.tgz", + "integrity": "sha512-ZCY2yD0BY+K9iMXkkbnjo+08T2h8/34oHd0Jmh6BZUSZwaaGlGCyBT/3wnS7u7Xl33/EEfN4B6nQr3Gx5bYxgw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^3.1.11", - "@smithy/property-provider": "^3.1.10", - "@smithy/types": "^3.7.1", - "@smithy/url-parser": "^3.0.10", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/property-provider": "^3.1.11", + "@smithy/types": "^3.7.2", + "@smithy/url-parser": "^3.0.11", "tslib": "^2.6.2" }, "engines": { @@ -10810,27 +10247,27 @@ } }, "node_modules/@smithy/eventstream-codec": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-3.1.9.tgz", - "integrity": "sha512-F574nX0hhlNOjBnP+noLtsPFqXnWh2L0+nZKCwcu7P7J8k+k+rdIDs+RMnrMwrzhUE4mwMgyN0cYnEn0G8yrnQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-3.1.10.tgz", + "integrity": "sha512-323B8YckSbUH0nMIpXn7HZsAVKHYHFUODa8gG9cHo0ySvA1fr5iWaNT+iIL0UCqUzG6QPHA3BSsBtRQou4mMqQ==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/crc32": "5.2.0", - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "@smithy/util-hex-encoding": "^3.0.0", "tslib": "^2.6.2" } }, "node_modules/@smithy/eventstream-serde-browser": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.13.tgz", - "integrity": "sha512-Nee9m+97o9Qj6/XeLz2g2vANS2SZgAxV4rDBMKGHvFJHU/xz88x2RwCkwsvEwYjSX4BV1NG1JXmxEaDUzZTAtw==", + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.14.tgz", + "integrity": "sha512-kbrt0vjOIihW3V7Cqj1SXQvAI5BR8SnyQYsandva0AOR307cXAc+IhPngxIPslxTLfxwDpNu0HzCAq6g42kCPg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/eventstream-serde-universal": "^3.0.12", - "@smithy/types": "^3.7.1", + "@smithy/eventstream-serde-universal": "^3.0.13", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -10838,13 +10275,13 @@ } }, "node_modules/@smithy/eventstream-serde-config-resolver": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.10.tgz", - "integrity": "sha512-K1M0x7P7qbBUKB0UWIL5KOcyi6zqV5mPJoL0/o01HPJr0CSq3A9FYuJC6e11EX6hR8QTIR++DBiGrYveOu6trw==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.11.tgz", + "integrity": "sha512-P2pnEp4n75O+QHjyO7cbw/vsw5l93K/8EWyjNCAAybYwUmj3M+hjSQZ9P5TVdUgEG08ueMAP5R4FkuSkElZ5tQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -10852,14 +10289,14 @@ } }, "node_modules/@smithy/eventstream-serde-node": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.12.tgz", - "integrity": "sha512-kiZymxXvZ4tnuYsPSMUHe+MMfc4FTeFWJIc0Q5wygJoUQM4rVHNghvd48y7ppuulNMbuYt95ah71pYc2+o4JOA==", + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.13.tgz", + "integrity": "sha512-zqy/9iwbj8Wysmvi7Lq7XFLeDgjRpTbCfwBhJa8WbrylTAHiAu6oQTwdY7iu2lxigbc9YYr9vPv5SzYny5tCXQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/eventstream-serde-universal": "^3.0.12", - "@smithy/types": "^3.7.1", + "@smithy/eventstream-serde-universal": "^3.0.13", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -10867,14 +10304,14 @@ } }, "node_modules/@smithy/eventstream-serde-universal": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.12.tgz", - "integrity": "sha512-1i8ifhLJrOZ+pEifTlF0EfZzMLUGQggYQ6WmZ4d5g77zEKf7oZ0kvh1yKWHPjofvOwqrkwRDVuxuYC8wVd662A==", + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.13.tgz", + "integrity": "sha512-L1Ib66+gg9uTnqp/18Gz4MDpJPKRE44geOjOQ2SVc0eiaO5l255ADziATZgjQjqumC7yPtp1XnjHlF1srcwjKw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/eventstream-codec": "^3.1.9", - "@smithy/types": "^3.7.1", + "@smithy/eventstream-codec": "^3.1.10", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -10882,40 +10319,40 @@ } }, "node_modules/@smithy/fetch-http-handler": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-4.1.1.tgz", - "integrity": "sha512-bH7QW0+JdX0bPBadXt8GwMof/jz0H28I84hU1Uet9ISpzUqXqRQ3fEZJ+ANPOhzSEczYvANNl3uDQDYArSFDtA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-4.1.2.tgz", + "integrity": "sha512-R7rU7Ae3ItU4rC0c5mB2sP5mJNbCfoDc8I5XlYjIZnquyUwec7fEo78F6DA3SmgJgkU1qTMcZJuGblxZsl10ZA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^4.1.7", - "@smithy/querystring-builder": "^3.0.10", - "@smithy/types": "^3.7.1", + "@smithy/protocol-http": "^4.1.8", + "@smithy/querystring-builder": "^3.0.11", + "@smithy/types": "^3.7.2", "@smithy/util-base64": "^3.0.0", "tslib": "^2.6.2" } }, "node_modules/@smithy/hash-blob-browser": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.9.tgz", - "integrity": "sha512-wOu78omaUuW5DE+PVWXiRKWRZLecARyP3xcq5SmkXUw9+utgN8HnSnBfrjL2B/4ZxgqPjaAJQkC/+JHf1ITVaQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.10.tgz", + "integrity": "sha512-elwslXOoNunmfS0fh55jHggyhccobFkexLYC1ZeZ1xP2BTSrcIBaHV2b4xUQOdctrSNOpMqOZH1r2XzWTEhyfA==", "dev": true, "license": "Apache-2.0", "dependencies": { "@smithy/chunked-blob-reader": "^4.0.0", "@smithy/chunked-blob-reader-native": "^3.0.1", - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" } }, "node_modules/@smithy/hash-node": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.10.tgz", - "integrity": "sha512-3zWGWCHI+FlJ5WJwx73Mw2llYR8aflVyZN5JhoqLxbdPZi6UyKSdCeXAWJw9ja22m6S6Tzz1KZ+kAaSwvydi0g==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.11.tgz", + "integrity": "sha512-emP23rwYyZhQBvklqTtwetkQlqbNYirDiEEwXl2v0GYWMnCzxst7ZaRAnWuy28njp5kAH54lvkdG37MblZzaHA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "@smithy/util-buffer-from": "^3.0.0", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" @@ -10925,13 +10362,13 @@ } }, "node_modules/@smithy/hash-stream-node": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-3.1.9.tgz", - "integrity": "sha512-3XfHBjSP3oDWxLmlxnt+F+FqXpL3WlXs+XXaB6bV9Wo8BBu87fK1dSEsyH7Z4ZHRmwZ4g9lFMdf08m9hoX1iRA==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-3.1.10.tgz", + "integrity": "sha512-olomK/jZQ93OMayW1zfTHwcbwBdhcZOHsyWyiZ9h9IXvc1mCD/VuvzbLb3Gy/qNJwI4MANPLctTp2BucV2oU/Q==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -10940,13 +10377,13 @@ } }, "node_modules/@smithy/invalid-dependency": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.10.tgz", - "integrity": "sha512-Lp2L65vFi+cj0vFMu2obpPW69DU+6O5g3086lmI4XcnRCG8PxvpWC7XyaVwJCxsZFzueHjXnrOH/E0pl0zikfA==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.11.tgz", + "integrity": "sha512-NuQmVPEJjUX6c+UELyVz8kUx8Q539EDeNwbRyu4IIF8MeV7hUtq1FB3SHVyki2u++5XLMFqngeMKk7ccspnNyQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" } }, @@ -10964,26 +10401,26 @@ } }, "node_modules/@smithy/md5-js": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-3.0.10.tgz", - "integrity": "sha512-m3bv6dApflt3fS2Y1PyWPUtRP7iuBlvikEOGwu0HsCZ0vE7zcIX+dBoh3e+31/rddagw8nj92j0kJg2TfV+SJA==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-3.0.11.tgz", + "integrity": "sha512-3NM0L3i2Zm4bbgG6Ymi9NBcxXhryi3uE8fIfHJZIOfZVxOkGdjdgjR9A06SFIZCfnEIWKXZdm6Yq5/aPXFFhsQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" } }, "node_modules/@smithy/middleware-content-length": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.12.tgz", - "integrity": "sha512-1mDEXqzM20yywaMDuf5o9ue8OkJ373lSPbaSjyEvkWdqELhFMyNNgKGWL/rCSf4KME8B+HlHKuR8u9kRj8HzEQ==", + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.13.tgz", + "integrity": "sha512-zfMhzojhFpIX3P5ug7jxTjfUcIPcGjcQYzB9t+rv0g1TX7B0QdwONW+ATouaLoD7h7LOw/ZlXfkq4xJ/g2TrIw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -10991,19 +10428,19 @@ } }, "node_modules/@smithy/middleware-endpoint": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.2.4.tgz", - "integrity": "sha512-TybiW2LA3kYVd3e+lWhINVu1o26KJbBwOpADnf0L4x/35vLVica77XVR5hvV9+kWeTGeSJ3IHTcYxbRxlbwhsg==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.2.7.tgz", + "integrity": "sha512-GTxSKf280aJBANGN97MomUQhW1VNxZ6w7HAj/pvZM5MUHbMPOGnWOp1PRYKi4czMaHNj9bdiA+ZarmT3Wkdqiw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^2.5.4", - "@smithy/middleware-serde": "^3.0.10", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/shared-ini-file-loader": "^3.1.11", - "@smithy/types": "^3.7.1", - "@smithy/url-parser": "^3.0.10", - "@smithy/util-middleware": "^3.0.10", + "@smithy/core": "^2.5.6", + "@smithy/middleware-serde": "^3.0.11", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", + "@smithy/url-parser": "^3.0.11", + "@smithy/util-middleware": "^3.0.11", "tslib": "^2.6.2" }, "engines": { @@ -11011,19 +10448,19 @@ } }, "node_modules/@smithy/middleware-retry": { - "version": "3.0.28", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.28.tgz", - "integrity": "sha512-vK2eDfvIXG1U64FEUhYxoZ1JSj4XFbYWkK36iz02i3pFwWiDz1Q7jKhGTBCwx/7KqJNk4VS7d7cDLXFOvP7M+g==", + "version": "3.0.32", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.32.tgz", + "integrity": "sha512-v8gVA9HqibuZkFuFpfkC/EcHE8no/3Mv3JvRUGly63Axt4yyas1WDVOasFSdiqm2hZVpY7/k8mRT1Wd5k7r3Yw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^3.1.11", - "@smithy/protocol-http": "^4.1.7", - "@smithy/service-error-classification": "^3.0.10", - "@smithy/smithy-client": "^3.4.5", - "@smithy/types": "^3.7.1", - "@smithy/util-middleware": "^3.0.10", - "@smithy/util-retry": "^3.0.10", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/protocol-http": "^4.1.8", + "@smithy/service-error-classification": "^3.0.11", + "@smithy/smithy-client": "^3.5.2", + "@smithy/types": "^3.7.2", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-retry": "^3.0.11", "tslib": "^2.6.2", "uuid": "^9.0.1" }, @@ -11046,13 +10483,13 @@ } }, "node_modules/@smithy/middleware-serde": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.10.tgz", - "integrity": "sha512-MnAuhh+dD14F428ubSJuRnmRsfOpxSzvRhaGVTvd/lrUDE3kxzCCmH8lnVTvoNQnV2BbJ4c15QwZ3UdQBtFNZA==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.11.tgz", + "integrity": "sha512-KzPAeySp/fOoQA82TpnwItvX8BBURecpx6ZMu75EZDkAcnPtO6vf7q4aH5QHs/F1s3/snQaSFbbUMcFFZ086Mw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -11060,13 +10497,13 @@ } }, "node_modules/@smithy/middleware-stack": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.10.tgz", - "integrity": "sha512-grCHyoiARDBBGPyw2BeicpjgpsDFWZZxptbVKb3CRd/ZA15F/T6rZjCCuBUjJwdck1nwUuIxYtsS4H9DDpbP5w==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.11.tgz", + "integrity": "sha512-1HGo9a6/ikgOMrTrWL/WiN9N8GSVYpuRQO5kjstAq4CvV59bjqnh7TbdXGQ4vxLD3xlSjfBjq5t1SOELePsLnA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -11074,15 +10511,15 @@ } }, "node_modules/@smithy/node-config-provider": { - "version": "3.1.11", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.11.tgz", - "integrity": "sha512-URq3gT3RpDikh/8MBJUB+QGZzfS7Bm6TQTqoh4CqE8NBuyPkWa5eUXj0XFcFfeZVgg3WMh1u19iaXn8FvvXxZw==", + "version": "3.1.12", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.12.tgz", + "integrity": "sha512-O9LVEu5J/u/FuNlZs+L7Ikn3lz7VB9hb0GtPT9MQeiBmtK8RSY3ULmsZgXhe6VAlgTw0YO+paQx4p8xdbs43vQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.10", - "@smithy/shared-ini-file-loader": "^3.1.11", - "@smithy/types": "^3.7.1", + "@smithy/property-provider": "^3.1.11", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -11090,16 +10527,16 @@ } }, "node_modules/@smithy/node-http-handler": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.3.1.tgz", - "integrity": "sha512-fr+UAOMGWh6bn4YSEezBCpJn9Ukp9oR4D32sCjCo7U81evE11YePOQ58ogzyfgmjIO79YeOdfXXqr0jyhPQeMg==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.3.3.tgz", + "integrity": "sha512-BrpZOaZ4RCbcJ2igiSNG16S+kgAc65l/2hmxWdmhyoGWHTLlzQzr06PXavJp9OBlPEG/sHlqdxjWmjzV66+BSQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/abort-controller": "^3.1.8", - "@smithy/protocol-http": "^4.1.7", - "@smithy/querystring-builder": "^3.0.10", - "@smithy/types": "^3.7.1", + "@smithy/abort-controller": "^3.1.9", + "@smithy/protocol-http": "^4.1.8", + "@smithy/querystring-builder": "^3.0.11", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -11107,13 +10544,13 @@ } }, "node_modules/@smithy/property-provider": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.10.tgz", - "integrity": "sha512-n1MJZGTorTH2DvyTVj+3wXnd4CzjJxyXeOgnTlgNVFxaaMeT4OteEp4QrzF8p9ee2yg42nvyVK6R/awLCakjeQ==", + "version": "3.1.11", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.11.tgz", + "integrity": "sha512-I/+TMc4XTQ3QAjXfOcUWbSS073oOEAxgx4aZy8jHaf8JQnRkq2SZWw8+PfDtBvLUjcGMdxl+YwtzWe6i5uhL/A==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -11121,13 +10558,13 @@ } }, "node_modules/@smithy/protocol-http": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.1.7.tgz", - "integrity": "sha512-FP2LepWD0eJeOTm0SjssPcgqAlDFzOmRXqXmGhfIM52G7Lrox/pcpQf6RP4F21k0+O12zaqQt5fCDOeBtqY6Cg==", + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.1.8.tgz", + "integrity": "sha512-hmgIAVyxw1LySOwkgMIUN0kjN8TG9Nc85LJeEmEE/cNEe2rkHDUWhnJf2gxcSRFLWsyqWsrZGw40ROjUogg+Iw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -11135,13 +10572,13 @@ } }, "node_modules/@smithy/querystring-builder": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.10.tgz", - "integrity": "sha512-nT9CQF3EIJtIUepXQuBFb8dxJi3WVZS3XfuDksxSCSn+/CzZowRLdhDn+2acbBv8R6eaJqPupoI/aRFIImNVPQ==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.11.tgz", + "integrity": "sha512-u+5HV/9uJaeLj5XTb6+IEF/dokWWkEqJ0XiaRRogyREmKGUgZnNecLucADLdauWFKUNbQfulHFEZEdjwEBjXRg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "@smithy/util-uri-escape": "^3.0.0", "tslib": "^2.6.2" }, @@ -11150,13 +10587,13 @@ } }, "node_modules/@smithy/querystring-parser": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.10.tgz", - "integrity": "sha512-Oa0XDcpo9SmjhiDD9ua2UyM3uU01ZTuIrNdZvzwUTykW1PM8o2yJvMh1Do1rY5sUQg4NDV70dMi0JhDx4GyxuQ==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.11.tgz", + "integrity": "sha512-Je3kFvCsFMnso1ilPwA7GtlbPaTixa3WwC+K21kmMZHsBEOZYQaqxcMqeFFoU7/slFjKDIpiiPydvdJm8Q/MCw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -11164,26 +10601,26 @@ } }, "node_modules/@smithy/service-error-classification": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.10.tgz", - "integrity": "sha512-zHe642KCqDxXLuhs6xmHVgRwy078RfqxP2wRDpIyiF8EmsWXptMwnMwbVa50lw+WOGNrYm9zbaEg0oDe3PTtvQ==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.11.tgz", + "integrity": "sha512-QnYDPkyewrJzCyaeI2Rmp7pDwbUETe+hU8ADkXmgNusO1bgHBH7ovXJiYmba8t0fNfJx75fE8dlM6SEmZxheog==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1" + "@smithy/types": "^3.7.2" }, "engines": { "node": ">=16.0.0" } }, "node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.11", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.11.tgz", - "integrity": "sha512-AUdrIZHFtUgmfSN4Gq9nHu3IkHMa1YDcN+s061Nfm+6pQ0mJy85YQDB0tZBCmls0Vuj22pLwDPmL92+Hvfwwlg==", + "version": "3.1.12", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.12.tgz", + "integrity": "sha512-1xKSGI+U9KKdbG2qDvIR9dGrw3CNx+baqJfyr0igKEpjbHL5stsqAesYBzHChYHlelWtb87VnLWlhvfCz13H8Q==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -11191,17 +10628,17 @@ } }, "node_modules/@smithy/signature-v4": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-4.2.3.tgz", - "integrity": "sha512-pPSQQ2v2vu9vc8iew7sszLd0O09I5TRc5zhY71KA+Ao0xYazIG+uLeHbTJfIWGO3BGVLiXjUr3EEeCcEQLjpWQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-4.2.4.tgz", + "integrity": "sha512-5JWeMQYg81TgU4cG+OexAWdvDTs5JDdbEZx+Qr1iPbvo91QFGzjy0IkXAKaXUHqmKUJgSHK0ZxnCkgZpzkeNTA==", "dev": true, "license": "Apache-2.0", "dependencies": { "@smithy/is-array-buffer": "^3.0.0", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", "@smithy/util-hex-encoding": "^3.0.0", - "@smithy/util-middleware": "^3.0.10", + "@smithy/util-middleware": "^3.0.11", "@smithy/util-uri-escape": "^3.0.0", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" @@ -11211,18 +10648,18 @@ } }, "node_modules/@smithy/smithy-client": { - "version": "3.4.5", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.4.5.tgz", - "integrity": "sha512-k0sybYT9zlP79sIKd1XGm4TmK0AS1nA2bzDHXx7m0nGi3RQ8dxxQUs4CPkSmQTKAo+KF9aINU3KzpGIpV7UoMw==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.5.2.tgz", + "integrity": "sha512-h7xn+1wlpbXyLrtvo/teHR1SFGIIrQ3imzG0nz43zVLAJgvfC1Mtdwa1pFhoIOYrt/TiNjt4pD0gSYQEdZSBtg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^2.5.4", - "@smithy/middleware-endpoint": "^3.2.4", - "@smithy/middleware-stack": "^3.0.10", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", - "@smithy/util-stream": "^3.3.1", + "@smithy/core": "^2.5.6", + "@smithy/middleware-endpoint": "^3.2.7", + "@smithy/middleware-stack": "^3.0.11", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", + "@smithy/util-stream": "^3.3.3", "tslib": "^2.6.2" }, "engines": { @@ -11230,9 +10667,9 @@ } }, "node_modules/@smithy/types": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.7.1.tgz", - "integrity": "sha512-XKLcLXZY7sUQgvvWyeaL/qwNPp6V3dWcUjqrQKjSb+tzYiCy340R/c64LV5j+Tnb2GhmunEX0eou+L+m2hJNYA==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.7.2.tgz", + "integrity": "sha512-bNwBYYmN8Eh9RyjS1p2gW6MIhSO2rl7X9QeLM8iTdcGRP+eDiIWDt66c9IysCc22gefKszZv+ubV9qZc7hdESg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -11243,14 +10680,14 @@ } }, "node_modules/@smithy/url-parser": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.10.tgz", - "integrity": "sha512-j90NUalTSBR2NaZTuruEgavSdh8MLirf58LoGSk4AtQfyIymogIhgnGUU2Mga2bkMkpSoC9gxb74xBXL5afKAQ==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.11.tgz", + "integrity": "sha512-TmlqXkSk8ZPhfc+SQutjmFr5FjC0av3GZP4B/10caK1SbRwe/v+Wzu/R6xEKxoNqL+8nY18s1byiy6HqPG37Aw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/querystring-parser": "^3.0.10", - "@smithy/types": "^3.7.1", + "@smithy/querystring-parser": "^3.0.11", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" } }, @@ -11320,15 +10757,15 @@ } }, "node_modules/@smithy/util-defaults-mode-browser": { - "version": "3.0.28", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.28.tgz", - "integrity": "sha512-6bzwAbZpHRFVJsOztmov5PGDmJYsbNSoIEfHSJJyFLzfBGCCChiO3od9k7E/TLgrCsIifdAbB9nqbVbyE7wRUw==", + "version": "3.0.32", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.32.tgz", + "integrity": "sha512-FAGsnm/xJ19SZeoqGyo9CosqjUlm+XJTmygDMktebvDKw3bKiIiZ40O1MA6Z52KLmekYU2GO7BEK7u6e7ZORKw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.10", - "@smithy/smithy-client": "^3.4.5", - "@smithy/types": "^3.7.1", + "@smithy/property-provider": "^3.1.11", + "@smithy/smithy-client": "^3.5.2", + "@smithy/types": "^3.7.2", "bowser": "^2.11.0", "tslib": "^2.6.2" }, @@ -11337,18 +10774,18 @@ } }, "node_modules/@smithy/util-defaults-mode-node": { - "version": "3.0.28", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.28.tgz", - "integrity": "sha512-78ENJDorV1CjOQselGmm3+z7Yqjj5HWCbjzh0Ixuq736dh1oEnD9sAttSBNSLlpZsX8VQnmERqA2fEFlmqWn8w==", + "version": "3.0.32", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.32.tgz", + "integrity": "sha512-2CzKhkPFCVdd15f3+0D1rldNlvJME8pVRBtVVsea2hy7lcOn0bGB0dTVUwzgfM4LW/aU4IOg3jWf25ZWaxbOiw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/config-resolver": "^3.0.12", - "@smithy/credential-provider-imds": "^3.2.7", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/property-provider": "^3.1.10", - "@smithy/smithy-client": "^3.4.5", - "@smithy/types": "^3.7.1", + "@smithy/config-resolver": "^3.0.13", + "@smithy/credential-provider-imds": "^3.2.8", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/property-provider": "^3.1.11", + "@smithy/smithy-client": "^3.5.2", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -11356,14 +10793,14 @@ } }, "node_modules/@smithy/util-endpoints": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.1.6.tgz", - "integrity": "sha512-mFV1t3ndBh0yZOJgWxO9J/4cHZVn5UG1D8DeCc6/echfNkeEJWu9LD7mgGH5fHrEdR7LDoWw7PQO6QiGpHXhgA==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.1.7.tgz", + "integrity": "sha512-tSfcqKcN/Oo2STEYCABVuKgJ76nyyr6skGl9t15hs+YaiU06sgMkN7QYjo0BbVw+KT26zok3IzbdSOksQ4YzVw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^3.1.11", - "@smithy/types": "^3.7.1", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -11384,13 +10821,13 @@ } }, "node_modules/@smithy/util-middleware": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.10.tgz", - "integrity": "sha512-eJO+/+RsrG2RpmY68jZdwQtnfsxjmPxzMlQpnHKjFPwrYqvlcT+fHdT+ZVwcjlWSrByOhGr9Ff2GG17efc192A==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.11.tgz", + "integrity": "sha512-dWpyc1e1R6VoXrwLoLDd57U1z6CwNSdkM69Ie4+6uYh2GC7Vg51Qtan7ITzczuVpqezdDTKJGJB95fFvvjU/ow==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -11398,14 +10835,14 @@ } }, "node_modules/@smithy/util-retry": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.10.tgz", - "integrity": "sha512-1l4qatFp4PiU6j7UsbasUHL2VU023NRB/gfaa1M0rDqVrRN4g3mCArLRyH3OuktApA4ye+yjWQHjdziunw2eWA==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.11.tgz", + "integrity": "sha512-hJUC6W7A3DQgaee3Hp9ZFcOxVDZzmBIRBPlUAk8/fSOEl7pE/aX7Dci0JycNOnm9Mfr0KV2XjIlUOcGWXQUdVQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/service-error-classification": "^3.0.10", - "@smithy/types": "^3.7.1", + "@smithy/service-error-classification": "^3.0.11", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -11413,15 +10850,15 @@ } }, "node_modules/@smithy/util-stream": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.3.1.tgz", - "integrity": "sha512-Ff68R5lJh2zj+AUTvbAU/4yx+6QPRzg7+pI7M1FbtQHcRIp7xvguxVsQBKyB3fwiOwhAKu0lnNyYBaQfSW6TNw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.3.3.tgz", + "integrity": "sha512-bOm0YMMxRjbI3X6QkWwADPFkh2AH2xBMQIB1IQgCsCRqXXpSJatgjUR3oxHthpYwFkw3WPkOt8VgMpJxC0rFqg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/fetch-http-handler": "^4.1.1", - "@smithy/node-http-handler": "^3.3.1", - "@smithy/types": "^3.7.1", + "@smithy/fetch-http-handler": "^4.1.2", + "@smithy/node-http-handler": "^3.3.3", + "@smithy/types": "^3.7.2", "@smithy/util-base64": "^3.0.0", "@smithy/util-buffer-from": "^3.0.0", "@smithy/util-hex-encoding": "^3.0.0", @@ -11460,14 +10897,14 @@ } }, "node_modules/@smithy/util-waiter": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-3.1.9.tgz", - "integrity": "sha512-/aMXPANhMOlMPjfPtSrDfPeVP8l56SJlz93xeiLmhLe5xvlXA5T3abZ2ilEsDEPeY9T/wnN/vNGn9wa1SbufWA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-3.2.0.tgz", + "integrity": "sha512-PpjSboaDUE6yl+1qlg3Si57++e84oXdWGbuFUSAciXsVfEZJJJupR2Nb0QuXHiunt2vGR+1PTizOMvnUPaG2Qg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/abort-controller": "^3.1.8", - "@smithy/types": "^3.7.1", + "@smithy/abort-controller": "^3.1.9", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -11645,18 +11082,18 @@ } }, "node_modules/@supabase/auth-js": { - "version": "2.66.1", - "resolved": "https://registry.npmjs.org/@supabase/auth-js/-/auth-js-2.66.1.tgz", - "integrity": "sha512-kOW+04SuDXmP2jRX9JL1Rgzduj8BcOG1qC3RaWdZsxnv89svNCdLRv8PfXW3QPKJdw0k1jF30OlQDPkzbDEL9w==", + "version": "2.67.3", + "resolved": "https://registry.npmjs.org/@supabase/auth-js/-/auth-js-2.67.3.tgz", + "integrity": "sha512-NJDaW8yXs49xMvWVOkSIr8j46jf+tYHV0wHhrwOaLLMZSFO4g6kKAf+MfzQ2RaD06OCUkUHIzctLAxjTgEVpzw==", "license": "MIT", "dependencies": { "@supabase/node-fetch": "^2.6.14" } }, "node_modules/@supabase/functions-js": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.4.3.tgz", - "integrity": "sha512-sOLXy+mWRyu4LLv1onYydq+10mNRQ4rzqQxNhbrKLTLTcdcmS9hbWif0bGz/NavmiQfPs4ZcmQJp4WqOXlR4AQ==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.4.4.tgz", + "integrity": "sha512-WL2p6r4AXNGwop7iwvul2BvOtuJ1YQy8EbOd0dhG1oN1q8el/BIRSFCFnWAMM/vJJlHWLi4ad22sKbKr9mvjoA==", "license": "MIT", "dependencies": { "@supabase/node-fetch": "^2.6.14" @@ -11675,18 +11112,18 @@ } }, "node_modules/@supabase/postgrest-js": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.16.3.tgz", - "integrity": "sha512-HI6dsbW68AKlOPofUjDTaosiDBCtW4XAm0D18pPwxoW3zKOE2Ru13Z69Wuys9fd6iTpfDViNco5sgrtnP0666A==", + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.17.7.tgz", + "integrity": "sha512-aOzOYaTADm/dVTNksyqv9KsbhVa1gHz1Hoxb2ZEF2Ed9H7qlWOfptECQWmkEmrrFjtNaiPrgiSaPECvzI/seDA==", "license": "MIT", "dependencies": { "@supabase/node-fetch": "^2.6.14" } }, "node_modules/@supabase/realtime-js": { - "version": "2.10.9", - "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.10.9.tgz", - "integrity": "sha512-0AjN65VDNIScZzrrPaVvlND4vbgVS+j9Wcy3zf7e+l9JY4IwCTahFenPLcKy9bkr7KY0wfB7MkipZPKxMaDnjw==", + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.11.2.tgz", + "integrity": "sha512-u/XeuL2Y0QEhXSoIPZZwR6wMXgB+RQbJzG9VErA3VghVt7uRfSVsjeqd7m5GhX3JR6dM/WRmLbVR8URpDWG4+w==", "license": "MIT", "dependencies": { "@supabase/node-fetch": "^2.6.14", @@ -11726,23 +11163,79 @@ } }, "node_modules/@supabase/supabase-js": { - "version": "2.47.2", - "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.47.2.tgz", - "integrity": "sha512-BdP5hY29eCROJRV61WCM+OzcTSjaSzZe0H+2l88tOwmTG+1XqCiVYtZnUNIh12V8g5gdmQL5urp1pSYARbl38A==", + "version": "2.47.10", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.47.10.tgz", + "integrity": "sha512-vJfPF820Ho5WILYHfKiBykDQ1SB9odTHrRZ0JxHfuLMC8GRvv21YLkUZQK7/rSVCkLvD6/ZwMWaOAfdUd//guw==", "license": "MIT", "dependencies": { - "@supabase/auth-js": "2.66.1", - "@supabase/functions-js": "2.4.3", + "@supabase/auth-js": "2.67.3", + "@supabase/functions-js": "2.4.4", "@supabase/node-fetch": "2.6.15", - "@supabase/postgrest-js": "1.16.3", - "@supabase/realtime-js": "2.10.9", + "@supabase/postgrest-js": "1.17.7", + "@supabase/realtime-js": "2.11.2", "@supabase/storage-js": "2.7.1" } }, + "node_modules/@svgdotjs/svg.draggable.js": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.draggable.js/-/svg.draggable.js-3.0.4.tgz", + "integrity": "sha512-vWi/Col5Szo74HJVBgMHz23kLVljt3jvngmh0DzST45iO2ubIZ487uUAHIxSZH2tVRyiaaTL+Phaasgp4gUD2g==", + "license": "MIT", + "peerDependencies": { + "@svgdotjs/svg.js": "^3.2.4" + } + }, + "node_modules/@svgdotjs/svg.filter.js": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.filter.js/-/svg.filter.js-3.0.8.tgz", + "integrity": "sha512-YshF2YDaeRA2StyzAs5nUPrev7npQ38oWD0eTRwnsciSL2KrRPMoUw8BzjIXItb3+dccKGTX3IQOd2NFzmHkog==", + "license": "MIT", + "dependencies": { + "@svgdotjs/svg.js": "^3.1.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/@svgdotjs/svg.js": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.js/-/svg.js-3.2.4.tgz", + "integrity": "sha512-BjJ/7vWNowlX3Z8O4ywT58DqbNRyYlkk6Yz/D13aB7hGmfQTvGX4Tkgtm/ApYlu9M7lCQi15xUEidqMUmdMYwg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Fuzzyma" + } + }, + "node_modules/@svgdotjs/svg.resize.js": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.resize.js/-/svg.resize.js-2.0.5.tgz", + "integrity": "sha512-4heRW4B1QrJeENfi7326lUPYBCevj78FJs8kfeDxn5st0IYPIRXoTtOSYvTzFWgaWWXd3YCDE6ao4fmv91RthA==", + "license": "MIT", + "engines": { + "node": ">= 14.18" + }, + "peerDependencies": { + "@svgdotjs/svg.js": "^3.2.4", + "@svgdotjs/svg.select.js": "^4.0.1" + } + }, + "node_modules/@svgdotjs/svg.select.js": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.select.js/-/svg.select.js-4.0.2.tgz", + "integrity": "sha512-5gWdrvoQX3keo03SCmgaBbD+kFftq0F/f2bzCbNnpkkvW6tk4rl4MakORzFuNjvXPWwB4az9GwuvVxQVnjaK2g==", + "license": "MIT", + "engines": { + "node": ">= 14.18" + }, + "peerDependencies": { + "@svgdotjs/svg.js": "^3.2.4" + } + }, "node_modules/@tabler/icons": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@tabler/icons/-/icons-3.24.0.tgz", - "integrity": "sha512-qNis9e90QcdxAGV3wNIeX0Ba2R7ktm0cnqOToKHJfC2kj3fvJwEVLsw63K0/fm7NW8rSZjDSTQRmMnSg8g/wrg==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/@tabler/icons/-/icons-3.26.0.tgz", + "integrity": "sha512-oO3D4ss+DxzxqU1aDy0f1HmToyrO0gcQWIMpzHAfV1quPUx0BZYvNm5xz1DQb4DxNm/+xNvbBGLJy4pzTLYWag==", "license": "MIT", "funding": { "type": "github", @@ -11750,12 +11243,12 @@ } }, "node_modules/@tabler/icons-react": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@tabler/icons-react/-/icons-react-3.24.0.tgz", - "integrity": "sha512-m9c7TmlcDmKqvZAasG5rv1YvazZDrVEhNdNFa2d1Bzotc0dh+iceFdiZCEcYPDb5UcRyLAMvOaOC9y/5sfMMWw==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/@tabler/icons-react/-/icons-react-3.26.0.tgz", + "integrity": "sha512-t18Zmu1ROktB7M8hWQ6vJw+mNpI/LPk5PPxLuE+kNB+4Zzf38GfETL8VF98inhzcfHohsggdROzMzwSAfjcAxw==", "license": "MIT", "dependencies": { - "@tabler/icons": "3.24.0" + "@tabler/icons": "3.26.0" }, "funding": { "type": "github", @@ -11766,9 +11259,9 @@ } }, "node_modules/@tanstack/query-core": { - "version": "5.62.2", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.62.2.tgz", - "integrity": "sha512-LcwVcC5qpsDpHcqlXUUL5o9SaOBwhNkGeV+B06s0GBoyBr8FqXPuXT29XzYXR36lchhnerp6XO+CWc84/vh7Zg==", + "version": "5.62.9", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.62.9.tgz", + "integrity": "sha512-lwePd8hNYhyQ4nM/iRQ+Wz2cDtspGeZZHFZmCzHJ7mfKXt+9S301fULiY2IR2byJYY6Z03T427E5PoVfMexHjw==", "license": "MIT", "funding": { "type": "github", @@ -11776,12 +11269,12 @@ } }, "node_modules/@tanstack/react-query": { - "version": "5.62.2", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.62.2.tgz", - "integrity": "sha512-fkTpKKfwTJtVPKVR+ag7YqFgG/7TRVVPzduPAUF9zRCiiA8Wu305u+KJl8rCrh98Qce77vzIakvtUyzWLtaPGA==", + "version": "5.62.11", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.62.11.tgz", + "integrity": "sha512-Xb1nw0cYMdtFmwkvH9+y5yYFhXvLRCnXoqlzSw7UkqtCVFq3cG8q+rHZ2Yz1XrC+/ysUaTqbLKJqk95mCgC1oQ==", "license": "MIT", "dependencies": { - "@tanstack/query-core": "5.62.2" + "@tanstack/query-core": "5.62.9" }, "funding": { "type": "github", @@ -11792,26 +11285,26 @@ } }, "node_modules/@tanstack/react-virtual": { - "version": "3.10.9", - "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.10.9.tgz", - "integrity": "sha512-OXO2uBjFqA4Ibr2O3y0YMnkrRWGVNqcvHQXmGvMu6IK8chZl3PrDxFXdGZ2iZkSrKh3/qUYoFqYe+Rx23RoU0g==", + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.11.2.tgz", + "integrity": "sha512-OuFzMXPF4+xZgx8UzJha0AieuMihhhaWG0tCqpp6tDzlFwOmNBPYMuLOtMJ1Tr4pXLHmgjcWhG6RlknY2oNTdQ==", "license": "MIT", "dependencies": { - "@tanstack/virtual-core": "3.10.9" + "@tanstack/virtual-core": "3.11.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/@tanstack/virtual-core": { - "version": "3.10.9", - "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.10.9.tgz", - "integrity": "sha512-kBknKOKzmeR7lN+vSadaKWXaLS0SZZG+oqpQ/k80Q6g9REn6zRHS/ZYdrIzHnpHgy/eWs00SujveUN/GJT2qTw==", + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.11.2.tgz", + "integrity": "sha512-vTtpNt7mKCiZ1pwU9hfKPhpdVO2sVzFQsxoVBGtOSHxlrRRzYr8iQ2TlwbAcRYCcEiZ9ECAM8kBzH0v2+VzfKw==", "license": "MIT", "funding": { "type": "github", @@ -12685,9 +12178,9 @@ "license": "MIT" }, "node_modules/@types/geojson": { - "version": "7946.0.14", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz", - "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==", + "version": "7946.0.15", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.15.tgz", + "integrity": "sha512-9oSxFzDCT2Rj6DfcHF8G++jxBKS7mBqXl5xrRW+Kbvjry6Uduya2iiwqHPhVXpasAVMBYKkEPGgKhd3+/HZ6xA==", "dev": true, "license": "MIT" }, @@ -12727,17 +12220,9 @@ "version": "4.17.13", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.13.tgz", "integrity": "sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==", + "dev": true, "license": "MIT" }, - "node_modules/@types/lodash-es": { - "version": "4.17.12", - "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz", - "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", - "license": "MIT", - "dependencies": { - "@types/lodash": "*" - } - }, "node_modules/@types/long": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", @@ -12786,9 +12271,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "20.17.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.9.tgz", - "integrity": "sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==", + "version": "20.17.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.10.tgz", + "integrity": "sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==", "license": "MIT", "dependencies": { "undici-types": "~6.19.2" @@ -12858,9 +12343,9 @@ } }, "node_modules/@types/react": { - "version": "18.3.14", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.14.tgz", - "integrity": "sha512-NzahNKvjNhVjuPBQ+2G7WlxstQ+47kXZNHlUvFakDViuIEfGY926GqhMueQFZ7woG+sPiQKlF36XfrIUVSUfFg==", + "version": "18.3.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", + "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", "license": "MIT", "dependencies": { "@types/prop-types": "*", @@ -12868,13 +12353,13 @@ } }, "node_modules/@types/react-dom": { - "version": "18.3.2", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.2.tgz", - "integrity": "sha512-Fqp+rcvem9wEnGr3RY8dYNvSQ8PoLqjZ9HLgaPUOjJJD120uDyOxOjc/39M4Kddp9JQCxpGQbnhVQF0C0ncYVg==", + "version": "18.3.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz", + "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", "dev": true, "license": "MIT", - "dependencies": { - "@types/react": "^18" + "peerDependencies": { + "@types/react": "^18.0.0" } }, "node_modules/@types/react-lazy-load-image-component": { @@ -12899,11 +12384,11 @@ } }, "node_modules/@types/react-transition-group": { - "version": "4.4.11", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.11.tgz", - "integrity": "sha512-RM05tAniPZ5DZPzzNFP+DmrcOdD0efDUxMy3145oljWSl3x9ZV5vhme98gTxFrj2lhXvmGNnUiuDyJgY9IKkNA==", + "version": "4.4.12", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", + "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", "license": "MIT", - "dependencies": { + "peerDependencies": { "@types/react": "*" } }, @@ -12997,9 +12482,9 @@ "license": "MIT" }, "node_modules/@types/use-sync-external-store": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", - "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==", + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", + "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", "license": "MIT" }, "node_modules/@types/ws": { @@ -13411,9 +12896,9 @@ } }, "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.1.tgz", + "integrity": "sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==", "dev": true, "license": "ISC" }, @@ -13479,24 +12964,24 @@ } }, "node_modules/@walletconnect/core": { - "version": "2.17.2", - "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.17.2.tgz", - "integrity": "sha512-O9VUsFg78CbvIaxfQuZMsHcJ4a2Z16DRz/O4S+uOAcGKhH/i/ln8hp864Tb+xRvifWSzaZ6CeAVxk657F+pscA==", + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.17.3.tgz", + "integrity": "sha512-57uv0FW4L6H/tmkb1kS2nG41MDguyDgZbGR58nkDUd1TO/HydyiTByVOhFzIxgN331cnY/1G1rMaKqncgdnOFA==", "license": "Apache-2.0", "dependencies": { "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-provider": "1.0.14", "@walletconnect/jsonrpc-types": "1.0.4", "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/jsonrpc-ws-connection": "1.0.14", + "@walletconnect/jsonrpc-ws-connection": "1.0.16", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/logger": "2.1.2", "@walletconnect/relay-api": "1.0.11", "@walletconnect/relay-auth": "1.0.4", "@walletconnect/safe-json": "1.0.2", "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.17.2", - "@walletconnect/utils": "2.17.2", + "@walletconnect/types": "2.17.3", + "@walletconnect/utils": "2.17.3", "@walletconnect/window-getters": "1.0.1", "events": "3.3.0", "lodash.isequal": "4.5.0", @@ -13710,9 +13195,9 @@ "license": "0BSD" }, "node_modules/@walletconnect/jsonrpc-ws-connection": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.14.tgz", - "integrity": "sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.16.tgz", + "integrity": "sha512-G81JmsMqh5nJheE1mPst1W0WfVv0SG3N7JggwLLGnI7iuDZJq8cRJvQwLGKHn5H1WTW7DEPCo00zz5w62AbL3Q==", "license": "MIT", "dependencies": { "@walletconnect/jsonrpc-utils": "^1.0.6", @@ -14071,6 +13556,18 @@ "tslib": "1.14.1" } }, + "node_modules/@walletconnect/sign-client/node_modules/@walletconnect/jsonrpc-ws-connection": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.14.tgz", + "integrity": "sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA==", + "license": "MIT", + "dependencies": { + "@walletconnect/jsonrpc-utils": "^1.0.6", + "@walletconnect/safe-json": "^1.0.2", + "events": "^3.3.0", + "ws": "^7.5.1" + } + }, "node_modules/@walletconnect/sign-client/node_modules/@walletconnect/types": { "version": "2.12.2", "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.12.2.tgz", @@ -14128,6 +13625,27 @@ "multiformats": "^9.4.2" } }, + "node_modules/@walletconnect/sign-client/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/@walletconnect/time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@walletconnect/time/-/time-1.0.2.tgz", @@ -14144,9 +13662,9 @@ "license": "0BSD" }, "node_modules/@walletconnect/types": { - "version": "2.17.2", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.17.2.tgz", - "integrity": "sha512-j/+0WuO00lR8ntu7b1+MKe/r59hNwYLFzW0tTmozzhfAlDL+dYwWasDBNq4AH8NbVd7vlPCQWmncH7/6FVtOfQ==", + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.17.3.tgz", + "integrity": "sha512-5eFxnbZGJJx0IQyCS99qz+OvozpLJJYfVG96dEHGgbzZMd+C9V1eitYqVClx26uX6V+WQVqVwjpD2Dyzie++Wg==", "license": "Apache-2.0", "dependencies": { "@walletconnect/events": "1.0.1", @@ -14264,9 +13782,9 @@ } }, "node_modules/@walletconnect/utils": { - "version": "2.17.2", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.17.2.tgz", - "integrity": "sha512-T7eLRiuw96fgwUy2A5NZB5Eu87ukX8RCVoO9lji34RFV4o2IGU9FhTEWyd4QQKI8OuQRjSknhbJs0tU0r0faPw==", + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.17.3.tgz", + "integrity": "sha512-tG77UpZNeLYgeOwViwWnifpyBatkPlpKSSayhN0gcjY1lZAUNqtYslpm4AdTxlrA3pL61MnyybXgWYT5eZjarw==", "license": "Apache-2.0", "dependencies": { "@ethersproject/hash": "5.7.0", @@ -14282,11 +13800,11 @@ "@walletconnect/relay-auth": "1.0.4", "@walletconnect/safe-json": "1.0.2", "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.17.2", + "@walletconnect/types": "2.17.3", "@walletconnect/window-getters": "1.0.1", "@walletconnect/window-metadata": "1.0.1", "detect-browser": "5.3.0", - "elliptic": "6.6.0", + "elliptic": "6.6.1", "query-string": "7.1.3", "uint8arrays": "3.1.0" } @@ -14298,9 +13816,9 @@ "license": "MIT" }, "node_modules/@walletconnect/utils/node_modules/elliptic": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.0.tgz", - "integrity": "sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA==", + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", "license": "MIT", "dependencies": { "bn.js": "^4.11.9", @@ -14371,6 +13889,18 @@ "node": ">=18" } }, + "node_modules/@walletconnect/web3wallet/node_modules/@walletconnect/jsonrpc-ws-connection": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.14.tgz", + "integrity": "sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA==", + "license": "MIT", + "dependencies": { + "@walletconnect/jsonrpc-utils": "^1.0.6", + "@walletconnect/safe-json": "^1.0.2", + "events": "^3.3.0", + "ws": "^7.5.1" + } + }, "node_modules/@walletconnect/web3wallet/node_modules/@walletconnect/sign-client": { "version": "2.17.1", "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.17.1.tgz", @@ -14466,6 +13996,27 @@ "multiformats": "^9.4.2" } }, + "node_modules/@walletconnect/web3wallet/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/@walletconnect/window-getters": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz", @@ -14522,13 +14073,13 @@ } }, "node_modules/@web3auth/auth": { - "version": "9.5.3", - "resolved": "https://registry.npmjs.org/@web3auth/auth/-/auth-9.5.3.tgz", - "integrity": "sha512-774DFBzuq/mO9y5Zf0ICdK9pZ/YgYgnRVo3CYiayuknA4/wTxosK+xvhlcP6fGRKVgoaYa6bP+gBGmqoFCGUzQ==", + "version": "9.6.3", + "resolved": "https://registry.npmjs.org/@web3auth/auth/-/auth-9.6.3.tgz", + "integrity": "sha512-OqwEneMSEl0w40sJqWcKMm3gh9cBzS1oz7BqKYWXcb6xvPn8xq8RUMYVTl+yEno/9ePoT05rj6JTfWWtpte3Bg==", "license": "MIT", "dependencies": { "@ethereumjs/util": "^9.1.0", - "@toruslabs/constants": "^14.1.1", + "@toruslabs/constants": "^14.2.0", "@toruslabs/ffjavascript": "^4.0.0", "@toruslabs/metadata-helpers": "^6.0.0", "@toruslabs/secure-pub-sub": "^1.1.0", @@ -14557,22 +14108,22 @@ "npm": ">=9.x" }, "optionalDependencies": { - "@nx/nx-linux-x64-gnu": "^20.1.2", - "@rollup/rollup-linux-x64-gnu": "^4.27.3" + "@nx/nx-linux-x64-gnu": "^20.2.2", + "@rollup/rollup-linux-x64-gnu": "^4.28.1" }, "peerDependencies": { "@babel/runtime": "7.x" } }, "node_modules/@web3auth/auth-adapter": { - "version": "9.4.5", - "resolved": "https://registry.npmjs.org/@web3auth/auth-adapter/-/auth-adapter-9.4.5.tgz", - "integrity": "sha512-Q9/GnW8DOCYS1rnVL84V4CHYxdxiryHU5+RnmldPzHUlhDl+L41zjFYoH3mm+U7WNnJCfiLKgcEnPurMz10i+w==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/@web3auth/auth-adapter/-/auth-adapter-9.5.1.tgz", + "integrity": "sha512-Pxda3WeG3EkG8p7N9hJ++fU501ejI1+/W3nb82RDsn5n+QNvc2mrHDol3TaDHtZV0yHv2CL3DJS5+H7N2oxOQg==", "license": "ISC", "dependencies": { - "@web3auth/auth": "^9.5.3", - "@web3auth/base": "^9.4.5", - "@web3auth/base-provider": "^9.4.5", + "@web3auth/auth": "^9.6.2", + "@web3auth/base": "^9.5.1", + "@web3auth/base-provider": "^9.5.1", "deepmerge": "^4.3.1" }, "engines": { @@ -14583,6 +14134,61 @@ "@babel/runtime": "^7.x" } }, + "node_modules/@web3auth/auth-adapter/node_modules/@toruslabs/base-controllers": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@toruslabs/base-controllers/-/base-controllers-7.0.1.tgz", + "integrity": "sha512-vc1LH6im084UdmLuUrFVXTQ5fh9ZXrXpwoml7o44F+UGZHtNcJYhOV5J9z8BMcQFonc2eJxzsD8daC/YFfPaUQ==", + "license": "ISC", + "dependencies": { + "@ethereumjs/util": "^9.1.0", + "@toruslabs/broadcast-channel": "^11.0.0", + "@toruslabs/http-helpers": "^7.0.0", + "@web3auth/auth": "^9.6.2", + "async-mutex": "^0.5.0", + "bignumber.js": "^9.1.2", + "bowser": "^2.11.0", + "jwt-decode": "^4.0.0", + "loglevel": "^1.9.2" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@web3auth/auth-adapter/node_modules/@web3auth/base": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/@web3auth/base/-/base-9.5.1.tgz", + "integrity": "sha512-Zd3PgyHwn0QWcQUg6ZAgn7DW06laIvo1ySJnNw4q3tYHj96KPx4pPJfPKW5+pr2CY2hvYYa6iU00bKsrDB+5cA==", + "license": "ISC", + "dependencies": { + "@toruslabs/base-controllers": "^7.0.1", + "@toruslabs/constants": "^14.2.0", + "@toruslabs/http-helpers": "^7.0.0", + "@web3auth/auth": "^9.6.2", + "jwt-decode": "^4.0.0", + "loglevel": "^1.9.2", + "ts-custom-error": "^3.3.1" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "^7.x" + } + }, + "node_modules/@web3auth/auth-adapter/node_modules/jwt-decode": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", + "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/@web3auth/base": { "version": "9.4.5", "resolved": "https://registry.npmjs.org/@web3auth/base/-/base-9.4.5.tgz", @@ -14606,14 +14212,14 @@ } }, "node_modules/@web3auth/base-provider": { - "version": "9.4.5", - "resolved": "https://registry.npmjs.org/@web3auth/base-provider/-/base-provider-9.4.5.tgz", - "integrity": "sha512-Q+1HnG0bQFOHNhiw0BnuRLKpOh3O/iicl1kp4K8TtUOQC/4JTsY0odehQ1phBOr1IxROTjmDl/QW3coST3CSVA==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/@web3auth/base-provider/-/base-provider-9.5.1.tgz", + "integrity": "sha512-Xk9oopf2HqLF/hYF8tNfF56SGxwIOIPA1RfR4c9rPXkHHuYEB0DZau55rgjQ8j/ipk+KNYGT0BL8oLF491Kddw==", "license": "ISC", "dependencies": { - "@toruslabs/base-controllers": "^6.3.2", - "@web3auth/auth": "^9.5.3", - "@web3auth/base": "^9.4.5", + "@toruslabs/base-controllers": "^7.0.1", + "@web3auth/auth": "^9.6.2", + "@web3auth/base": "^9.5.1", "json-rpc-random-id": "^1.0.1" }, "engines": { @@ -14624,6 +14230,61 @@ "@babel/runtime": "7.x" } }, + "node_modules/@web3auth/base-provider/node_modules/@toruslabs/base-controllers": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@toruslabs/base-controllers/-/base-controllers-7.0.1.tgz", + "integrity": "sha512-vc1LH6im084UdmLuUrFVXTQ5fh9ZXrXpwoml7o44F+UGZHtNcJYhOV5J9z8BMcQFonc2eJxzsD8daC/YFfPaUQ==", + "license": "ISC", + "dependencies": { + "@ethereumjs/util": "^9.1.0", + "@toruslabs/broadcast-channel": "^11.0.0", + "@toruslabs/http-helpers": "^7.0.0", + "@web3auth/auth": "^9.6.2", + "async-mutex": "^0.5.0", + "bignumber.js": "^9.1.2", + "bowser": "^2.11.0", + "jwt-decode": "^4.0.0", + "loglevel": "^1.9.2" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@web3auth/base-provider/node_modules/@web3auth/base": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/@web3auth/base/-/base-9.5.1.tgz", + "integrity": "sha512-Zd3PgyHwn0QWcQUg6ZAgn7DW06laIvo1ySJnNw4q3tYHj96KPx4pPJfPKW5+pr2CY2hvYYa6iU00bKsrDB+5cA==", + "license": "ISC", + "dependencies": { + "@toruslabs/base-controllers": "^7.0.1", + "@toruslabs/constants": "^14.2.0", + "@toruslabs/http-helpers": "^7.0.0", + "@web3auth/auth": "^9.6.2", + "jwt-decode": "^4.0.0", + "loglevel": "^1.9.2", + "ts-custom-error": "^3.3.1" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "^7.x" + } + }, + "node_modules/@web3auth/base-provider/node_modules/jwt-decode": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", + "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/@web3auth/base/node_modules/jwt-decode": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", @@ -14706,14 +14367,14 @@ } }, "node_modules/@web3auth/no-modal": { - "version": "9.4.5", - "resolved": "https://registry.npmjs.org/@web3auth/no-modal/-/no-modal-9.4.5.tgz", - "integrity": "sha512-ct6tyE4d1fkTawHKIC0Gf2sOkaYSoRUKtf6nJQO3Brf53PE4DqnkvS42fcEV6ZCb9MPBTzhB0cw0ds7jAOGPxQ==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/@web3auth/no-modal/-/no-modal-9.5.1.tgz", + "integrity": "sha512-4sFaENdGNlcJj+d3PgqDRg41PhId2lM7FyneF+tElUUGHAkXib0cVaRgk1i/8AP9LrdZkxedmm7LJo+iqhM9Cw==", "license": "ISC", "dependencies": { - "@web3auth/auth": "^9.5.3", - "@web3auth/base": "^9.4.5", - "@web3auth/base-provider": "^9.4.5", + "@web3auth/auth": "^9.6.2", + "@web3auth/base": "^9.5.1", + "@web3auth/base-provider": "^9.5.1", "deepmerge": "^4.3.1" }, "engines": { @@ -14734,21 +14395,76 @@ } } }, + "node_modules/@web3auth/no-modal/node_modules/@toruslabs/base-controllers": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@toruslabs/base-controllers/-/base-controllers-7.0.1.tgz", + "integrity": "sha512-vc1LH6im084UdmLuUrFVXTQ5fh9ZXrXpwoml7o44F+UGZHtNcJYhOV5J9z8BMcQFonc2eJxzsD8daC/YFfPaUQ==", + "license": "ISC", + "dependencies": { + "@ethereumjs/util": "^9.1.0", + "@toruslabs/broadcast-channel": "^11.0.0", + "@toruslabs/http-helpers": "^7.0.0", + "@web3auth/auth": "^9.6.2", + "async-mutex": "^0.5.0", + "bignumber.js": "^9.1.2", + "bowser": "^2.11.0", + "jwt-decode": "^4.0.0", + "loglevel": "^1.9.2" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@web3auth/no-modal/node_modules/@web3auth/base": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/@web3auth/base/-/base-9.5.1.tgz", + "integrity": "sha512-Zd3PgyHwn0QWcQUg6ZAgn7DW06laIvo1ySJnNw4q3tYHj96KPx4pPJfPKW5+pr2CY2hvYYa6iU00bKsrDB+5cA==", + "license": "ISC", + "dependencies": { + "@toruslabs/base-controllers": "^7.0.1", + "@toruslabs/constants": "^14.2.0", + "@toruslabs/http-helpers": "^7.0.0", + "@web3auth/auth": "^9.6.2", + "jwt-decode": "^4.0.0", + "loglevel": "^1.9.2", + "ts-custom-error": "^3.3.1" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "^7.x" + } + }, + "node_modules/@web3auth/no-modal/node_modules/jwt-decode": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", + "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/@web3auth/ui": { - "version": "9.4.5", - "resolved": "https://registry.npmjs.org/@web3auth/ui/-/ui-9.4.5.tgz", - "integrity": "sha512-R61t2pyGwtT3QvGU3e/ImWbuaR23xfHAjJgU56ure5XrR6lyc5PfVPZtpEfZ+KBa06lnI+xDxVWFMusZabYGNQ==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/@web3auth/ui/-/ui-9.5.1.tgz", + "integrity": "sha512-PiVZ47hwL7Rqw529gfJ6Tp41qzwvvpZrEn4gzyimqqycvobQfj3dXIyQ+iuETB+49tyrU0U1VmwJYd7GO5ExMA==", "license": "ISC", "dependencies": { "@toruslabs/http-helpers": "^7.0.0", - "@web3auth/auth": "^9.5.3", - "@web3auth/base": "^9.4.5", + "@web3auth/auth": "^9.6.2", + "@web3auth/base": "^9.5.1", "bowser": "^2.11.0", "classnames": "^2.5.1", "copy-to-clipboard": "^3.3.3", "deepmerge": "^4.3.1", "i18next": "^23.16.8", - "react-i18next": "^15.1.2", + "react-i18next": "^15.2.0", "react-qrcode-logo": "^3.0.0" }, "engines": { @@ -14761,10 +14477,65 @@ "react-dom": "^18.x" } }, + "node_modules/@web3auth/ui/node_modules/@toruslabs/base-controllers": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@toruslabs/base-controllers/-/base-controllers-7.0.1.tgz", + "integrity": "sha512-vc1LH6im084UdmLuUrFVXTQ5fh9ZXrXpwoml7o44F+UGZHtNcJYhOV5J9z8BMcQFonc2eJxzsD8daC/YFfPaUQ==", + "license": "ISC", + "dependencies": { + "@ethereumjs/util": "^9.1.0", + "@toruslabs/broadcast-channel": "^11.0.0", + "@toruslabs/http-helpers": "^7.0.0", + "@web3auth/auth": "^9.6.2", + "async-mutex": "^0.5.0", + "bignumber.js": "^9.1.2", + "bowser": "^2.11.0", + "jwt-decode": "^4.0.0", + "loglevel": "^1.9.2" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@web3auth/ui/node_modules/@web3auth/base": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/@web3auth/base/-/base-9.5.1.tgz", + "integrity": "sha512-Zd3PgyHwn0QWcQUg6ZAgn7DW06laIvo1ySJnNw4q3tYHj96KPx4pPJfPKW5+pr2CY2hvYYa6iU00bKsrDB+5cA==", + "license": "ISC", + "dependencies": { + "@toruslabs/base-controllers": "^7.0.1", + "@toruslabs/constants": "^14.2.0", + "@toruslabs/http-helpers": "^7.0.0", + "@web3auth/auth": "^9.6.2", + "jwt-decode": "^4.0.0", + "loglevel": "^1.9.2", + "ts-custom-error": "^3.3.1" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "^7.x" + } + }, + "node_modules/@web3auth/ui/node_modules/jwt-decode": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", + "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/@web3auth/ui/node_modules/react-i18next": { - "version": "15.1.3", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.1.3.tgz", - "integrity": "sha512-J11oA30FbM3NZegUZjn8ySK903z6PLBz/ZuBYyT1JMR0QPrW6PFXvl1WoUhortdGi9dM0m48/zJQlPskVZXgVw==", + "version": "15.4.0", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.4.0.tgz", + "integrity": "sha512-Py6UkX3zV08RTvL6ZANRoBh9sL/ne6rQq79XlkHEdd82cZr2H9usbWpUNVadJntIZP2pu3M2rL1CN+5rQYfYFw==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.25.0", @@ -14831,6 +14602,12 @@ "node": ">=8" } }, + "node_modules/@yr/monotone-cubic-spline": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@yr/monotone-cubic-spline/-/monotone-cubic-spline-1.0.3.tgz", + "integrity": "sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==", + "license": "MIT" + }, "node_modules/abitype": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.0.tgz", @@ -14871,9 +14648,9 @@ "license": "Apache-2.0 OR MIT" }, "node_modules/abortcontroller-polyfill": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.6.tgz", - "integrity": "sha512-Zypm+LjYdWAzvuypZvDN0smUJrhOurcuBWhhMRBExqVLRvdjp3Z9mASxKyq19K+meZMshwjjy5S0lkm388zE4Q==", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.8.tgz", + "integrity": "sha512-9f1iZ2uWh92VcrU9Y8x+LdM4DLj75VE0MJB8zuF1iUnroEptStw+DQ8EQPMUdfe5k+PkB1uUfDQfWbhstH8LrQ==", "license": "MIT" }, "node_modules/acorn": { @@ -15044,6 +14821,12 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/apg-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/apg-js/-/apg-js-4.4.0.tgz", + "integrity": "sha512-fefmXFknJmtgtNEXfPwZKYkMFX4Fyeyz+fNF6JWp87biGOPslJbCBVU158zvKRZfHBKnJDy8CMM40oLFGkXT8Q==", + "license": "BSD-2-Clause" + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -15081,13 +14864,13 @@ } }, "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" }, "engines": { "node": ">= 0.4" @@ -15177,16 +14960,16 @@ } }, "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -15196,16 +14979,16 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -15232,19 +15015,18 @@ } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" }, "engines": { "node": ">= 0.4" @@ -15861,9 +15643,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", - "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.3.tgz", + "integrity": "sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==", "funding": [ { "type": "opencollective", @@ -15880,9 +15662,9 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001669", - "electron-to-chromium": "^1.5.41", - "node-releases": "^2.0.18", + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.1" }, "bin": { @@ -15979,9 +15761,9 @@ "license": "MIT" }, "node_modules/bufferutil": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", - "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.9.tgz", + "integrity": "sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -16007,16 +15789,44 @@ "license": "MIT" }, "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -16044,9 +15854,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001686", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001686.tgz", - "integrity": "sha512-Y7deg0Aergpa24M3qLC5xjNklnKnhsmSyR/V89dLZ1n0ucJIFNs7PgR2Yfa/Zf6W79SbBicgtGxZr2juHkEUIA==", + "version": "1.0.30001690", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz", + "integrity": "sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==", "funding": [ { "type": "opencollective", @@ -16104,7 +15914,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -16269,15 +16078,6 @@ "node": ">= 0.10" } }, - "node_modules/citty": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", - "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", - "license": "MIT", - "dependencies": { - "consola": "^3.2.3" - } - }, "node_modules/classnames": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", @@ -16374,91 +16174,6 @@ "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", "license": "MIT" }, - "node_modules/clipboardy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-4.0.0.tgz", - "integrity": "sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==", - "license": "MIT", - "dependencies": { - "execa": "^8.0.1", - "is-wsl": "^3.1.0", - "is64bit": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clipboardy/node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/clipboardy/node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clipboardy/node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "license": "Apache-2.0", - "engines": { - "node": ">=16.17.0" - } - }, - "node_modules/clipboardy/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clipboardy/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -16584,12 +16299,6 @@ "dev": true, "license": "MIT" }, - "node_modules/confbox": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", - "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", - "license": "MIT" - }, "node_modules/config-chain": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", @@ -16609,9 +16318,9 @@ "license": "MIT" }, "node_modules/consola": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", - "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.3.3.tgz", + "integrity": "sha512-Qil5KwghMzlqd51UXM0b6fyaGHtOC22scxrwrz4A2882LyUMwQjnvaedN1HAeXzphspQ6CpHkzMAWxBTUruDLg==", "license": "MIT", "engines": { "node": "^14.18.0 || >=16.10.0" @@ -16884,12 +16593,12 @@ } }, "node_modules/cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", + "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", "license": "MIT", "dependencies": { - "node-fetch": "^2.6.12" + "node-fetch": "^2.7.0" } }, "node_modules/cross-spawn": { @@ -17025,14 +16734,14 @@ "license": "BSD-2-Clause" }, "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "is-data-view": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -17042,29 +16751,29 @@ } }, "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "is-data-view": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/inspect-js" } }, "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" }, @@ -17111,9 +16820,9 @@ } }, "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -17475,6 +17184,20 @@ "url": "https://dotenvx.com" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", @@ -17571,9 +17294,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.71", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.71.tgz", - "integrity": "sha512-dB68l59BI75W1BUGVTAEJy45CEVuEGy9qPVVQ8pnHyHMn36PLPPoE1mjLH+lo9rKulO3HC2OhbACI/8tCqJBcA==", + "version": "1.5.76", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.76.tgz", + "integrity": "sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==", "license": "ISC" }, "node_modules/elliptic": { @@ -17658,6 +17381,23 @@ "xmlhttprequest-ssl": "~2.1.1" } }, + "node_modules/engine.io-client/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/engine.io-client/node_modules/ws": { "version": "8.17.1", "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", @@ -17689,9 +17429,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz", + "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==", "dev": true, "license": "MIT", "dependencies": { @@ -17843,57 +17583,60 @@ } }, "node_modules/es-abstract": { - "version": "1.23.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.5.tgz", - "integrity": "sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==", + "version": "1.23.8", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.8.tgz", + "integrity": "sha512-lfab8IzDn6EpI1ibZakcgS6WsfEBiB+43cuJo+wgylx1xKXf+Sp+YR3vFuQwC/u3sxYwV8Cxe3B0DpVUu/WiJQ==", "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.6", + "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", - "gopd": "^1.0.1", + "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", "object-inspect": "^1.13.3", "object-keys": "^1.1.1", - "object.assign": "^4.1.5", + "object.assign": "^4.1.7", + "own-keys": "^1.0.0", "regexp.prototype.flags": "^1.5.3", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" }, "engines": { "node": ">= 0.4" @@ -17903,13 +17646,10 @@ } }, "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, "engines": { "node": ">= 0.4" } @@ -17924,27 +17664,28 @@ } }, "node_modules/es-iterator-helpers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz", - "integrity": "sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", + "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.0.3", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", + "get-intrinsic": "^1.2.6", "globalthis": "^1.0.4", - "gopd": "^1.0.1", + "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "iterator.prototype": "^1.1.3", - "safe-array-concat": "^1.1.2" + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" }, "engines": { "node": ">= 0.4" @@ -18796,29 +18537,29 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.37.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", - "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==", + "version": "7.37.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.3.tgz", + "integrity": "sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==", "dev": true, "license": "MIT", "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.2", + "array.prototype.flatmap": "^1.3.3", "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.1.0", + "es-iterator-helpers": "^1.2.1", "estraverse": "^5.3.0", "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.8", "object.fromentries": "^2.0.8", - "object.values": "^1.2.0", + "object.values": "^1.2.1", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.11", + "string.prototype.matchall": "^4.0.12", "string.prototype.repeat": "^1.0.0" }, "engines": { @@ -19796,6 +19537,13 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "license": "MIT" }, + "node_modules/fast-content-type-parse": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-2.0.0.tgz", + "integrity": "sha512-fCqg/6Sps8tqk8p+kqyKqYfOF0VjPNYrqpLiqNl0RBKmD80B080AJWVV6EkSkscjToNExcXg1+Mfzftrx6+iSA==", + "dev": true, + "license": "MIT" + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -19914,9 +19662,9 @@ } }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", "license": "ISC", "dependencies": { "reusify": "^1.0.4" @@ -20351,15 +20099,17 @@ } }, "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" }, "engines": { "node": ">= 0.4" @@ -20403,24 +20153,21 @@ } }, "node_modules/gaxios/node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, "engines": { "node": ">= 14" } }, "node_modules/gaxios/node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "4" }, "engines": { @@ -20481,16 +20228,21 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.6.tgz", + "integrity": "sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==", "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "dunder-proto": "^1.0.0", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -20514,12 +20266,6 @@ "node": ">=6" } }, - "node_modules/get-port-please": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/get-port-please/-/get-port-please-3.1.2.tgz", - "integrity": "sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==", - "license": "MIT" - }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -20533,14 +20279,14 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -20663,9 +20409,9 @@ } }, "node_modules/globals": { - "version": "15.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.13.0.tgz", - "integrity": "sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==", + "version": "15.14.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz", + "integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==", "dev": true, "license": "MIT", "engines": { @@ -20790,7 +20536,6 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, "license": "ISC" }, "node_modules/graphemer": { @@ -20801,9 +20546,9 @@ "license": "MIT" }, "node_modules/graphql": { - "version": "16.9.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.9.0.tgz", - "integrity": "sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==", + "version": "16.10.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.10.0.tgz", + "integrity": "sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ==", "license": "MIT", "engines": { "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" @@ -20898,10 +20643,13 @@ } }, "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -20910,7 +20658,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -20929,12 +20676,12 @@ } }, "node_modules/has-proto": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.1.0.tgz", - "integrity": "sha512-QLdzI9IIO1Jg7f9GT1gXpPpXArAn6cS31R1eEZqz08Gc+uQ8/XiqHWt17Fiw+2p6oTTIq5GXEpQkAlA88YRl/Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7" + "dunder-proto": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -21264,7 +21011,6 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.0.2.tgz", "integrity": "sha512-sYKnA7eGln5ov8T8gnYlkSOxFJvywzEx9BueN6xo/GKO8PGiI6uK6xx+DIGe45T3bdVjLAQDQW1aicT8z8JwQg==", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^10.0.1" @@ -21277,7 +21023,6 @@ "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, "license": "ISC" }, "node_modules/html-parse-stringify": { @@ -21320,28 +21065,15 @@ } }, "node_modules/http-proxy-agent/node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", "dev": true, "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, "engines": { "node": ">= 14" } }, - "node_modules/http-shutdown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/http-shutdown/-/http-shutdown-1.2.2.tgz", - "integrity": "sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==", - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", @@ -21402,9 +21134,9 @@ } }, "node_modules/i18next-browser-languagedetector": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.2.1.tgz", - "integrity": "sha512-h/pM34bcH6tbz8WgGXcmWauNpQupCGr25XPp9cZwZInR9XHSjIFDYp1SIok7zSPsTOMxdvuLyu86V+g2Kycnfw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.2.2.tgz", + "integrity": "sha512-6b7r75uIJDWCcCflmbof+sJ94k9UQO4X0YR62oUfqGI/GjCLVzlCwu8TFdRZIqVLzWbzNcmkmhfqKEr4TLz4HQ==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.2" @@ -21606,14 +21338,14 @@ "license": "Apache-2.0 OR MIT" }, "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "license": "MIT", "dependencies": { "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" + "hasown": "^2.0.2", + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -21657,15 +21389,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ipaddr.js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", - "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, "node_modules/ipfs-unixfs": { "version": "11.2.0", "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-11.2.0.tgz", @@ -21751,13 +21474,13 @@ } }, "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -21767,13 +21490,14 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -21831,12 +21555,12 @@ } }, "node_modules/is-boolean-object": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.0.tgz", - "integrity": "sha512-kR5g0+dXf/+kXnqI+lu0URKYPKgICtHGGNCDSB10AaUFj3o/HkB3u7WfpRBJGFopxxY0oH3ux7ZsDjLtK7xqvw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz", + "integrity": "sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" }, "engines": { @@ -21905,9 +21629,9 @@ } }, "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "license": "MIT", "dependencies": { "hasown": "^2.0.2" @@ -21920,11 +21644,13 @@ } }, "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", "license": "MIT", "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", "is-typed-array": "^1.1.13" }, "engines": { @@ -21935,12 +21661,13 @@ } }, "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -21949,21 +21676,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-electron": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.2.tgz", @@ -21980,12 +21692,12 @@ } }, "node_modules/is-finalizationregistry": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.0.tgz", - "integrity": "sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7" + "call-bound": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -22046,24 +21758,6 @@ "npm": ">=3" } }, - "node_modules/is-inside-container": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", - "license": "MIT", - "dependencies": { - "is-docker": "^3.0.0" - }, - "bin": { - "is-inside-container": "cli.js" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-ip": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.1.tgz", @@ -22114,18 +21808,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-network-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz", @@ -22148,12 +21830,12 @@ } }, "node_modules/is-number-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.0.tgz", - "integrity": "sha512-KVSZV0Dunv9DTPkhXwcZ3Q+tUc9TsaE1ZwX5J2WMvsSGS6Md8TFPun5uwh0yRdrNerI6vf/tbJxqSx4c1ZI1Lw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" }, "engines": { @@ -22193,13 +21875,13 @@ } }, "node_modules/is-regex": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.0.tgz", - "integrity": "sha512-B6ohK4ZmoftlUe+uvenXSbPJFo6U37BH7oO1B3nQH8f/7h27N56s85MhUtbFJAziz5dcmuR3i8ovUl35zp8pFA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "gopd": "^1.1.0", + "call-bound": "^1.0.2", + "gopd": "^1.2.0", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" }, @@ -22235,12 +21917,12 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7" + "call-bound": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -22262,12 +21944,12 @@ } }, "node_modules/is-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.0.tgz", - "integrity": "sha512-PlfzajuF9vSo5wErv3MJAKD/nqf9ngAs1NFQYm16nUYFO2IzxJ2hcm+IOCg+EEopdykNNUhVq5cz35cAUxU8+g==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" }, "engines": { @@ -22278,14 +21960,14 @@ } }, "node_modules/is-symbol": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.0.tgz", - "integrity": "sha512-qS8KkNNXUZ/I+nX6QT8ZS1/Yx0A444yhzdTKxCzKkNjQ9sHErBxJnJAgh+f5YhusYECEcjo4XcyH87hn6+ks0A==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "has-symbols": "^1.0.3", - "safe-regex-test": "^1.0.3" + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -22295,12 +21977,12 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "license": "MIT", "dependencies": { - "which-typed-array": "^1.1.14" + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -22341,25 +22023,12 @@ } }, "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", - "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.0.tgz", + "integrity": "sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4" + "call-bound": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -22368,34 +22037,20 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-wsl": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", - "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", - "license": "MIT", - "dependencies": { - "is-inside-container": "^1.0.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is64bit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is64bit/-/is64bit-2.0.0.tgz", - "integrity": "sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==", + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", "license": "MIT", "dependencies": { - "system-architecture": "^0.1.0" + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { - "node": ">=18" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/isarray": { @@ -22584,9 +22239,9 @@ } }, "node_modules/it-ndjson": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/it-ndjson/-/it-ndjson-1.0.7.tgz", - "integrity": "sha512-V3IskT5RCVtov1u6sC9gkg0uD02qe8yPoVzBZVaRx+YkuMdpFd6opiAwfYovNd/NEbqo9mBN8wJLtw6vD0Xiqg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/it-ndjson/-/it-ndjson-1.1.0.tgz", + "integrity": "sha512-vh5u/zLEqaqhN0UYjjhCtz3x01vn921k/bYNtjjawMSiYjj3m6QLxXcmocj9eTQli7fGSayAeUXj3lz57Ct5ig==", "license": "Apache-2.0 OR MIT" }, "node_modules/it-pair": { @@ -22746,17 +22401,18 @@ } }, "node_modules/iterator.prototype": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", - "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.4.tgz", + "integrity": "sha512-x4WH0BWmrMmg4oHHl+duwubhrvczGlyuGAZu3nvrf0UXOfPu8IhZObFEr7DE/iv01YgVZrsOiRcqw2srkKEDIA==", "dev": true, "license": "MIT", "dependencies": { - "define-properties": "^1.2.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "reflect.getprototypeof": "^1.0.4", - "set-function-name": "^2.0.1" + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "reflect.getprototypeof": "^1.0.8", + "set-function-name": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -22772,15 +22428,6 @@ "node": ">= 0.6.0" } }, - "node_modules/jiti": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.1.tgz", - "integrity": "sha512-yPBThwecp1wS9DmoA4x4KR2h3QoslacnDR8ypuFM962kI4/456Iy1oHx2RAgh4jfZNdn0bctsdadceiBUgpU1g==", - "license": "MIT", - "bin": { - "jiti": "lib/jiti-cli.mjs" - } - }, "node_modules/jose": { "version": "5.9.6", "resolved": "https://registry.npmjs.org/jose/-/jose-5.9.6.tgz", @@ -22816,9 +22463,9 @@ } }, "node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "license": "MIT", "bin": { "jsesc": "bin/jsesc" @@ -22888,12 +22535,13 @@ "license": "MIT" }, "node_modules/json-stable-stringify": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz", - "integrity": "sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.2.1.tgz", + "integrity": "sha512-Lp6HbbBgosLmJbjx0pBLbgvx68FaFU1sdkmBuckmhhJ88kL13OA51CDtR2yJB50eCNMH9wRqtQNNiAqQH4YXnA==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "isarray": "^2.0.5", "jsonify": "^0.0.1", "object-keys": "^1.1.1" @@ -23114,36 +22762,38 @@ } }, "node_modules/libp2p": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-2.3.1.tgz", - "integrity": "sha512-b8SydqWzScHXiS5A+c29w2JGbkYBajW+AGFmWmtaF5r53ZpMTetnPmlczkT7D2Zd9+k4yKC7plGBWBNku/KNXQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-2.4.2.tgz", + "integrity": "sha512-8y+moEpzzkDjRbK7e+0k8zgtCnL4RkttFnjxrnzoVLQdk6ki3xf0SQkH3aD6FHyz8fdHlG48Av6BEOsT+F9TKg==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.7", - "@libp2p/interface": "^2.2.1", - "@libp2p/interface-internal": "^2.1.1", - "@libp2p/logger": "^5.1.4", - "@libp2p/multistream-select": "^6.0.9", - "@libp2p/peer-collections": "^6.0.12", - "@libp2p/peer-id": "^5.0.8", - "@libp2p/peer-store": "^11.0.12", - "@libp2p/utils": "^6.2.1", + "@chainsafe/is-ip": "^2.0.2", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/crypto": "^5.0.8", + "@libp2p/interface": "^2.3.0", + "@libp2p/interface-internal": "^2.2.1", + "@libp2p/logger": "^5.1.5", + "@libp2p/multistream-select": "^6.0.10", + "@libp2p/peer-collections": "^6.0.13", + "@libp2p/peer-id": "^5.0.9", + "@libp2p/peer-store": "^11.0.13", + "@libp2p/utils": "^6.3.0", "@multiformats/dns": "^1.0.6", - "@multiformats/multiaddr": "^12.2.3", - "@multiformats/multiaddr-matcher": "^1.2.1", + "@multiformats/multiaddr": "^12.3.3", + "@multiformats/multiaddr-matcher": "^1.6.0", "any-signal": "^4.1.1", - "datastore-core": "^10.0.0", - "interface-datastore": "^8.3.0", - "it-byte-stream": "^1.0.12", + "datastore-core": "^10.0.2", + "interface-datastore": "^8.3.1", + "it-byte-stream": "^1.1.0", "it-merge": "^3.0.5", - "it-parallel": "^3.0.7", + "it-parallel": "^3.0.8", "merge-options": "^3.0.4", - "multiformats": "^13.1.0", + "multiformats": "^13.3.1", "p-defer": "^4.0.1", - "p-retry": "^6.2.0", - "progress-events": "^1.0.0", + "p-retry": "^6.2.1", + "progress-events": "^1.0.1", "race-event": "^1.3.0", - "race-signal": "^1.0.2", + "race-signal": "^1.1.0", "uint8arrays": "^5.1.0" } }, @@ -23162,36 +22812,6 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "license": "MIT" }, - "node_modules/listhen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/listhen/-/listhen-1.9.0.tgz", - "integrity": "sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==", - "license": "MIT", - "dependencies": { - "@parcel/watcher": "^2.4.1", - "@parcel/watcher-wasm": "^2.4.1", - "citty": "^0.1.6", - "clipboardy": "^4.0.0", - "consola": "^3.2.3", - "crossws": ">=0.2.0 <0.4.0", - "defu": "^6.1.4", - "get-port-please": "^3.1.2", - "h3": "^1.12.0", - "http-shutdown": "^1.2.2", - "jiti": "^2.1.2", - "mlly": "^1.7.1", - "node-forge": "^1.3.1", - "pathe": "^1.1.2", - "std-env": "^3.7.0", - "ufo": "^1.5.4", - "untun": "^0.1.3", - "uqr": "^0.1.2" - }, - "bin": { - "listen": "bin/listhen.mjs", - "listhen": "bin/listhen.mjs" - } - }, "node_modules/lit": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz", @@ -23475,9 +23095,9 @@ } }, "node_modules/magic-string": { - "version": "0.30.14", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.14.tgz", - "integrity": "sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==", + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" @@ -23529,9 +23149,9 @@ } }, "node_modules/marked-terminal/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", "dev": true, "license": "MIT", "engines": { @@ -23541,6 +23161,15 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -24539,7 +24168,6 @@ "version": "9.0.3", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" @@ -24595,18 +24223,6 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", "license": "MIT" }, - "node_modules/mlly": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.3.tgz", - "integrity": "sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==", - "license": "MIT", - "dependencies": { - "acorn": "^8.14.0", - "pathe": "^1.1.2", - "pkg-types": "^1.2.1", - "ufo": "^1.5.4" - } - }, "node_modules/moment": { "version": "2.30.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", @@ -24971,15 +24587,6 @@ "integrity": "sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==", "license": "MIT" }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "license": "(BSD-3-Clause OR GPL-2.0)", - "engines": { - "node": ">= 6.13.0" - } - }, "node_modules/node-gyp-build": { "version": "4.8.4", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", @@ -25104,9 +24711,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "license": "MIT" }, "node_modules/node-stdlib-browser": { @@ -25243,7 +24850,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^7.0.0", @@ -25258,7 +24864,6 @@ "version": "7.0.2", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^10.0.1" @@ -25271,14 +24876,12 @@ "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, "license": "ISC" }, "node_modules/normalize-package-data/node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -25313,6 +24916,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/notistack/-/notistack-3.0.1.tgz", "integrity": "sha512-ntVZXXgSQH5WYfyU+3HfcXuKaapzAJ8fBLQ/G618rn3yvSzEbnOB8ZSOwhX+dAORy/lw+GC2N061JA0+gYWTVA==", + "license": "MIT", "dependencies": { "clsx": "^1.1.0", "goober": "^2.0.33" @@ -28002,14 +27606,16 @@ } }, "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", "object-keys": "^1.1.1" }, "engines": { @@ -28069,13 +27675,14 @@ } }, "node_modules/object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, @@ -28197,10 +27804,27 @@ "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", "license": "MIT" }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/ox": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.1.2.tgz", - "integrity": "sha512-ak/8K0Rtphg9vnRJlbOdaX9R7cmxD2MiSthjWGaQdMk3D7hrAlDoM+6Lxn7hN52Za3vrXfZ7enfke/5WjolDww==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.0.tgz", + "integrity": "sha512-blUzTLidvUlshv0O02CnLFqBLidNzPoAZdIth894avUAotTuWziznv6IENv5idRuOSSP3dH8WzcYw84zVdu0Aw==", "funding": [ { "type": "github", @@ -28290,9 +27914,9 @@ } }, "node_modules/ox/node_modules/abitype": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.7.tgz", - "integrity": "sha512-ZfYYSktDQUwc2eduYu8C4wOs+RDPmnRYMh7zNfzeMtGGgb0U+6tLGjixUic6mXf5xKKCcgT5Qp6cv39tOARVFw==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", + "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/wevm" @@ -28410,7 +28034,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz", "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==", - "dev": true, "license": "MIT", "engines": { "node": ">=18" @@ -28722,12 +28345,13 @@ } }, "node_modules/permissionless": { - "version": "0.2.21", - "resolved": "https://registry.npmjs.org/permissionless/-/permissionless-0.2.21.tgz", - "integrity": "sha512-hNrRR/I5InbqkKgRBLhXQY5R0j9biqp688ECBxsW5AO99jOv9HPjz82EdRT87OG4XkCjO4AY20hi4ZPoc+XjRg==", + "version": "0.2.24", + "resolved": "https://registry.npmjs.org/permissionless/-/permissionless-0.2.24.tgz", + "integrity": "sha512-46B/2zuvuEifIMRMLRJEH60LvxduPhEGnX6jzei9f7AoJEL3TEWQorPxOLwx3XUASU2c+ssTNSFigNmVGRkGCw==", "license": "MIT", "peerDependencies": { - "viem": "^2.21.22" + "viem": "^2.21.54", + "webauthn-p256": "0.0.10" } }, "node_modules/picocolors": { @@ -28904,17 +28528,6 @@ "node": ">=10" } }, - "node_modules/pkg-types": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.2.1.tgz", - "integrity": "sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==", - "license": "MIT", - "dependencies": { - "confbox": "^0.1.8", - "mlly": "^1.7.2", - "pathe": "^1.1.2" - } - }, "node_modules/pngjs": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", @@ -28991,9 +28604,9 @@ } }, "node_modules/preact": { - "version": "10.25.1", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.25.1.tgz", - "integrity": "sha512-frxeZV2vhQSohQwJ7FvlqC40ze89+8friponWUFeVEkaCfhC6Eu4V0iND5C9CXz8JLndV07QRDeXzH1+Anz5Og==", + "version": "10.25.4", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.25.4.tgz", + "integrity": "sha512-jLdZDb+Q+odkHJ+MpW/9U5cODzqnB+fy2EiHSZES7ldV5LK7yjlVzTp7R8Xy6W6y75kfK8iWYtFVH7lvjwrCMA==", "license": "MIT", "funding": { "type": "opencollective", @@ -29622,6 +29235,19 @@ "node": ">=0.10.0" } }, + "node_modules/react-apexcharts": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/react-apexcharts/-/react-apexcharts-1.7.0.tgz", + "integrity": "sha512-03oScKJyNLRf0Oe+ihJxFZliBQM9vW3UWwomVn4YVRTN1jsIR58dLWt0v1sb8RwJVHDMbeHiKQueM0KGpn7nOA==", + "license": "MIT", + "dependencies": { + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "apexcharts": ">=4.0.0", + "react": ">=0.13" + } + }, "node_modules/react-dom": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", @@ -29682,9 +29308,9 @@ "license": "MIT" }, "node_modules/react-hook-form": { - "version": "7.53.2", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.53.2.tgz", - "integrity": "sha512-YVel6fW5sOeedd1524pltpHX+jgU2u3DSDtXEaBORNdqiNrsX/nUI/iGXONegttg0mJVnfrIkiV0cmTU6Oo2xw==", + "version": "7.54.2", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.54.2.tgz", + "integrity": "sha512-eHpAUgUjWbZocoQYUHposymRb4ZP6d0uwUnooL2uOybA9/3tPUvoAKqEWK1WaSiTxxOfTpffNZP7QwlnM3/gEg==", "license": "MIT", "engines": { "node": ">=18.0.0" @@ -29720,22 +29346,22 @@ } }, "node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.0.0.tgz", + "integrity": "sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==", "license": "MIT" }, "node_modules/react-lazy-load-image-component": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/react-lazy-load-image-component/-/react-lazy-load-image-component-1.6.2.tgz", - "integrity": "sha512-dAdH5PsRgvDMlHC7QpZRA9oRzEZl1kPFwowmR9Mt0IUUhxk2wwq43PB6Ffwv84HFYuPmsxDUCka0E9KVXi8roQ==", + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/react-lazy-load-image-component/-/react-lazy-load-image-component-1.6.3.tgz", + "integrity": "sha512-kdQYUDbuISF3T9El0sBLNoWrmPohqlytcG4ognLtHYjY8bZAsJ0/Ez+VaV+0QlVyUY3K6dDXkuQAz3GpvdjBkw==", "license": "MIT", "dependencies": { "lodash.debounce": "^4.0.8", "lodash.throttle": "^4.1.1" }, "peerDependencies": { - "react": "^15.x.x || ^16.x.x || ^17.x.x || ^18.x.x" + "react": "^15.x.x || ^16.x.x || ^17.x.x || ^18.x.x || ^19.x.x" } }, "node_modules/react-markdown": { @@ -29769,6 +29395,12 @@ "react": ">=16" } }, + "node_modules/react-markdown/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, "node_modules/react-native-webrtc": { "version": "124.0.4", "resolved": "https://registry.npmjs.org/react-native-webrtc/-/react-native-webrtc-124.0.4.tgz", @@ -29865,17 +29497,17 @@ } }, "node_modules/react-redux": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.1.2.tgz", - "integrity": "sha512-0OA4dhM1W48l3uzmv6B7TXPCGmokUU4p1M44DGN2/D9a1FjVPukVjER1PcPX97jIg6aUeLq1XJo1IpfbgULn0w==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", + "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==", "license": "MIT", "dependencies": { - "@types/use-sync-external-store": "^0.0.3", - "use-sync-external-store": "^1.0.0" + "@types/use-sync-external-store": "^0.0.6", + "use-sync-external-store": "^1.4.0" }, "peerDependencies": { - "@types/react": "^18.2.25", - "react": "^18.0", + "@types/react": "^18.2.25 || ^19", + "react": "^18.0 || ^19", "redux": "^5.0.0" }, "peerDependenciesMeta": { @@ -29898,23 +29530,23 @@ } }, "node_modules/react-remove-scroll": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.0.tgz", - "integrity": "sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.2.tgz", + "integrity": "sha512-KmONPx5fnlXYJQqC62Q+lwIeAk64ws/cUw6omIumRzMRPqgnYqhSSti99nbj0Ry13bv7dF+BKn7NB+OqkdZGTw==", "license": "MIT", "dependencies": { - "react-remove-scroll-bar": "^2.3.6", + "react-remove-scroll-bar": "^2.3.7", "react-style-singleton": "^2.2.1", "tslib": "^2.1.0", - "use-callback-ref": "^1.3.0", + "use-callback-ref": "^1.3.3", "use-sidecar": "^1.1.2" }, "engines": { "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -29923,20 +29555,20 @@ } }, "node_modules/react-remove-scroll-bar": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", - "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", "license": "MIT", "dependencies": { - "react-style-singleton": "^2.2.1", + "react-style-singleton": "^2.2.2", "tslib": "^2.0.0" }, "engines": { "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -29945,9 +29577,9 @@ } }, "node_modules/react-router": { - "version": "6.28.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.28.0.tgz", - "integrity": "sha512-HrYdIFqdrnhDw0PqG/AKjAqEqM7AvxCz0DQ4h2W8k6nqmc5uRBYDag0SBxx9iYz5G8gnuNVLzUe13wl9eAsXXg==", + "version": "6.28.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.28.1.tgz", + "integrity": "sha512-2omQTA3rkMljmrvvo6WtewGdVh45SpL9hGiCI9uUrwGGfNFDIvGK4gYJsKlJoNVi6AQZcopSCballL+QGOm7fA==", "license": "MIT", "dependencies": { "@remix-run/router": "1.21.0" @@ -29960,13 +29592,13 @@ } }, "node_modules/react-router-dom": { - "version": "6.28.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.28.0.tgz", - "integrity": "sha512-kQ7Unsl5YdyOltsPGl31zOjLrDv+m2VcIEcIHqYYD3Lp0UppLjrzcfJqDJwXxFw3TH/yvapbnUvPlAj7Kx5nbg==", + "version": "6.28.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.28.1.tgz", + "integrity": "sha512-YraE27C/RdjcZwl5UCqF/ffXnZDxpJdk9Q6jw38SZHjXs7NNdpViq2l2c7fO7+4uWaEfcwfGCv3RSg4e1By/fQ==", "license": "MIT", "dependencies": { "@remix-run/router": "1.21.0", - "react-router": "6.28.0" + "react-router": "6.28.1" }, "engines": { "node": ">=14.0.0" @@ -29994,21 +29626,20 @@ } }, "node_modules/react-style-singleton": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", - "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", "license": "MIT", "dependencies": { "get-nonce": "^1.0.0", - "invariant": "^2.2.4", "tslib": "^2.0.0" }, "engines": { "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -30089,9 +29720,9 @@ } }, "node_modules/readable-stream": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", - "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.6.0.tgz", + "integrity": "sha512-cbAdYt0VcnpN2Bekq7PU+k363ZRsPwJoEEJOEtSJQlJXzwaxt3FIo/uL+KeDSGIjJqtkwyge4KQgD2S2kd+CQw==", "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", @@ -30196,18 +29827,19 @@ "license": "Apache-2.0" }, "node_modules/reflect.getprototypeof": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.7.tgz", - "integrity": "sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.9.tgz", + "integrity": "sha512-r0Ay04Snci87djAsI4U+WNRcSw5S4pOH7qFjd/veA5gC7TbqESR3tcj28ia95L/fYUDw11JKP7uqUKUAfVvV5Q==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", + "dunder-proto": "^1.0.1", + "es-abstract": "^1.23.6", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "which-builtin-type": "^1.1.4" + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "which-builtin-type": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -30321,6 +29953,19 @@ "regjsparser": "bin/parser" } }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/rehackt": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/rehackt/-/rehackt-0.1.0.tgz", @@ -30452,18 +30097,21 @@ "license": "MIT" }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -30497,9 +30145,9 @@ } }, "node_modules/retimeable-signal": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/retimeable-signal/-/retimeable-signal-0.0.0.tgz", - "integrity": "sha512-jxnBbSwD7khkZIf0cnD6j3BVawwhrbcT4y1WWWZq14l5Ds+z+csataLeBSRtKVqn5tjuT4WPCbMDJLKI2C/WUA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/retimeable-signal/-/retimeable-signal-1.0.1.tgz", + "integrity": "sha512-Cy26CYfbWnYu8HMoJeDhaMpW/EYFIbne3vMf6G9RSrOyWYXbPehja/BEdzpqmM84uy2bfBD7NPZhoQ4GZEtgvg==", "license": "Apache-2.0 OR MIT" }, "node_modules/retry": { @@ -30621,9 +30269,9 @@ } }, "node_modules/rollup": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.28.0.tgz", - "integrity": "sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.29.1.tgz", + "integrity": "sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==", "dev": true, "license": "MIT", "dependencies": { @@ -30637,24 +30285,25 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.28.0", - "@rollup/rollup-android-arm64": "4.28.0", - "@rollup/rollup-darwin-arm64": "4.28.0", - "@rollup/rollup-darwin-x64": "4.28.0", - "@rollup/rollup-freebsd-arm64": "4.28.0", - "@rollup/rollup-freebsd-x64": "4.28.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.28.0", - "@rollup/rollup-linux-arm-musleabihf": "4.28.0", - "@rollup/rollup-linux-arm64-gnu": "4.28.0", - "@rollup/rollup-linux-arm64-musl": "4.28.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.28.0", - "@rollup/rollup-linux-riscv64-gnu": "4.28.0", - "@rollup/rollup-linux-s390x-gnu": "4.28.0", - "@rollup/rollup-linux-x64-gnu": "4.28.0", - "@rollup/rollup-linux-x64-musl": "4.28.0", - "@rollup/rollup-win32-arm64-msvc": "4.28.0", - "@rollup/rollup-win32-ia32-msvc": "4.28.0", - "@rollup/rollup-win32-x64-msvc": "4.28.0", + "@rollup/rollup-android-arm-eabi": "4.29.1", + "@rollup/rollup-android-arm64": "4.29.1", + "@rollup/rollup-darwin-arm64": "4.29.1", + "@rollup/rollup-darwin-x64": "4.29.1", + "@rollup/rollup-freebsd-arm64": "4.29.1", + "@rollup/rollup-freebsd-x64": "4.29.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.29.1", + "@rollup/rollup-linux-arm-musleabihf": "4.29.1", + "@rollup/rollup-linux-arm64-gnu": "4.29.1", + "@rollup/rollup-linux-arm64-musl": "4.29.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.29.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.29.1", + "@rollup/rollup-linux-riscv64-gnu": "4.29.1", + "@rollup/rollup-linux-s390x-gnu": "4.29.1", + "@rollup/rollup-linux-x64-gnu": "4.29.1", + "@rollup/rollup-linux-x64-musl": "4.29.1", + "@rollup/rollup-win32-arm64-msvc": "4.29.1", + "@rollup/rollup-win32-ia32-msvc": "4.29.1", + "@rollup/rollup-win32-x64-msvc": "4.29.1", "fsevents": "~2.3.2" } }, @@ -30717,14 +30366,15 @@ } }, "node_modules/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", "isarray": "^2.0.5" }, "engines": { @@ -30760,15 +30410,31 @@ "integrity": "sha512-SAJWGKDs50tAbiDXLf89PDwt9XYkWyANFWVzn4dTXl5QyI8t2o/bW5/OJl3lvc2WVU4MEpTo9Yz5NVFNsp+OJQ==", "license": "MIT" }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", - "is-regex": "^1.1.4" + "is-regex": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -30982,9 +30648,9 @@ } }, "node_modules/semantic-release/node_modules/execa": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-9.5.1.tgz", - "integrity": "sha512-QY5PPtSonnGwhhHDNI7+3RvY285c7iuJFFB+lU+oEzMY/gEGJ808owqJsrr8Otd1E/x07po1LkUBmdAc5duPAg==", + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.5.2.tgz", + "integrity": "sha512-EHlpxMCpHWSAh1dgS6bVeoLAXGnJNdR93aabr4QCGbzOM73o5XmRfM/e5FUqsw3aagP8S8XEWUWFAxnRBnAF0Q==", "dev": true, "license": "MIT", "dependencies": { @@ -31318,15 +30984,69 @@ } }, "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -31508,23 +31228,21 @@ "license": "MIT" }, "node_modules/simplebar-core": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/simplebar-core/-/simplebar-core-1.2.6.tgz", - "integrity": "sha512-H5NYU+O+uvqOH5VXw3+lgoc1vTI6jL8LOZJsw4xgRpV7uIPjRpmLPdz0TrouxwKHBhpVLzVIlyKhaRLelIThMw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/simplebar-core/-/simplebar-core-1.3.0.tgz", + "integrity": "sha512-LpWl3w0caz0bl322E68qsrRPpIn+rWBGAaEJ0lUJA7Xpr2sw92AkIhg6VWj988IefLXYh50ILatfAnbNoCFrlA==", "license": "MIT", "dependencies": { - "@types/lodash-es": "^4.17.6", - "lodash": "^4.17.21", - "lodash-es": "^4.17.21" + "lodash": "^4.17.21" } }, "node_modules/simplebar-react": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/simplebar-react/-/simplebar-react-3.2.6.tgz", - "integrity": "sha512-8jDiBuVCG86JmOrsmkA+4q77iFAEbhU9EX62PohLisg3dnxdLXFFhkxnx2Es3Cxt8IlZFlJsF9GaobFL3ukwiA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/simplebar-react/-/simplebar-react-3.3.0.tgz", + "integrity": "sha512-sxzy+xRuU41He4tT4QLGYutchtOuye/xxVeq7xhyOiwMiHNK1ZpvbOTyy+7P0i7gfpXLGTJ8Bep8+4Mhdgtz/g==", "license": "MIT", "dependencies": { - "simplebar-core": "^1.2.6" + "simplebar-core": "^1.3.0" }, "peerDependencies": { "react": ">=16.8.0" @@ -31577,6 +31295,23 @@ "node": ">=10.0.0" } }, + "node_modules/socket.io-client/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/socket.io-parser": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", @@ -31590,6 +31325,23 @@ "node": ">=10.0.0" } }, + "node_modules/socket.io-parser/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/solady": { "version": "0.0.180", "resolved": "https://registry.npmjs.org/solady/-/solady-0.0.180.tgz", @@ -31651,7 +31403,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "spdx-expression-parse": "^3.0.0", @@ -31662,14 +31413,12 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true, "license": "CC-BY-3.0" }, "node_modules/spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", @@ -31680,7 +31429,6 @@ "version": "3.0.20", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", - "dev": true, "license": "CC0-1.0" }, "node_modules/split-on-first": { @@ -31722,12 +31470,6 @@ "dev": true, "license": "MIT" }, - "node_modules/std-env": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz", - "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==", - "license": "MIT" - }, "node_modules/stream-browserify": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", @@ -31965,24 +31707,25 @@ } }, "node_modules/string.prototype.matchall": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", - "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", + "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "regexp.prototype.flags": "^1.5.2", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", "set-function-name": "^2.0.2", - "side-channel": "^1.0.6" + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -32003,15 +31746,18 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -32021,15 +31767,19 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -32190,7 +31940,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -32229,16 +31978,16 @@ } }, "node_modules/swr": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/swr/-/swr-2.2.5.tgz", - "integrity": "sha512-QtxqyclFeAsxEUeZIYmsaQ0UjimSq1RZ9Un7I68/0ClKK/U3LoyQunwkQfJZr2fc22DfIXLNDc2wFyTEikCUpg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/swr/-/swr-2.3.0.tgz", + "integrity": "sha512-NyZ76wA4yElZWBHzSgEJc28a0u6QZvhb6w0azeL2k7+Q1gAzVK+IqQYXhVOC/mzi+HZIozrZvBVeSeOZNR2bqA==", "license": "MIT", "dependencies": { - "client-only": "^0.0.1", - "use-sync-external-store": "^1.2.0" + "dequal": "^2.0.3", + "use-sync-external-store": "^1.4.0" }, "peerDependencies": { - "react": "^16.11.0 || ^17.0.0 || ^18.0.0" + "react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/symbol-observable": { @@ -32267,18 +32016,6 @@ "url": "https://opencollective.com/unts" } }, - "node_modules/system-architecture": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/system-architecture/-/system-architecture-0.1.0.tgz", - "integrity": "sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -32468,7 +32205,6 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, "license": "MIT" }, "node_modules/thenify": { @@ -33274,19 +33010,19 @@ } }, "node_modules/thirdweb/node_modules/@walletconnect/sign-client": { - "version": "2.17.2", - "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.17.2.tgz", - "integrity": "sha512-/wigdCIQjlBXSWY43Id0IPvZ5biq4HiiQZti8Ljvx408UYjmqcxcBitbj2UJXMYkid7704JWAB2mw32I1HgshQ==", + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.17.3.tgz", + "integrity": "sha512-OzOWxRTfVGCHU3OOF6ibPkgPfDpivFJjuknfcOUt9PYWpTAv6YKOmT4cyfBPhc7llruyHpV44fYbykMcLIvEcg==", "license": "Apache-2.0", "dependencies": { - "@walletconnect/core": "2.17.2", + "@walletconnect/core": "2.17.3", "@walletconnect/events": "1.0.1", "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/logger": "2.1.2", "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.17.2", - "@walletconnect/utils": "2.17.2", + "@walletconnect/types": "2.17.3", + "@walletconnect/utils": "2.17.3", "events": "3.3.0" } }, @@ -33806,9 +33542,9 @@ } }, "node_modules/type-fest": { - "version": "4.30.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.0.tgz", - "integrity": "sha512-G6zXWS1dLj6eagy6sVhOMQiLtJdxQBHIA9Z6HFUNLOlr6MFOgzV8wvmidtPONfPtEUv0uZsy77XJNzTAfwPDaA==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.31.0.tgz", + "integrity": "sha512-yCxltHW07Nkhv/1F6wWBr8kz+5BGMfP+RbRSYFnegVb0qV/UMT0G0ElBloPVerqn4M2ZV80Ir1FtCcYv1cT6vQ==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -33819,30 +33555,30 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -33852,18 +33588,18 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.3.tgz", - "integrity": "sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "reflect.getprototypeof": "^1.0.6" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" }, "engines": { "node": ">= 0.4" @@ -33945,15 +33681,15 @@ } }, "node_modules/typescript-eslint": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.17.0.tgz", - "integrity": "sha512-409VXvFd/f1br1DCbuKNFqQpXICoTB+V51afcwG1pn1a3Cp92MqAUges3YjwEdQ0cMUoCIodjVDAYzyD8h3SYA==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.19.0.tgz", + "integrity": "sha512-Ni8sUkVWYK4KAcTtPjQ/UTiRk6jcsuDhPpxULapUDi8A/l8TSBk+t1GtJA1RsCzIJg0q6+J7bf35AwQigENWRQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.17.0", - "@typescript-eslint/parser": "8.17.0", - "@typescript-eslint/utils": "8.17.0" + "@typescript-eslint/eslint-plugin": "8.19.0", + "@typescript-eslint/parser": "8.19.0", + "@typescript-eslint/utils": "8.19.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -33963,26 +33699,22 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.17.0.tgz", - "integrity": "sha512-HU1KAdW3Tt8zQkdvNoIijfWDMvdSweFYm4hWh+KwhPstv+sCmWb89hCIP8msFm9N1R/ooh9honpSuvqKWlYy3w==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.19.0.tgz", + "integrity": "sha512-NggSaEZCdSrFddbctrVjkVZvFC6KGfKfNK0CU7mNK/iKHGKbzT4Wmgm08dKpcZECBu9f5FypndoMyRHkdqfT1Q==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.17.0", - "@typescript-eslint/type-utils": "8.17.0", - "@typescript-eslint/utils": "8.17.0", - "@typescript-eslint/visitor-keys": "8.17.0", + "@typescript-eslint/scope-manager": "8.19.0", + "@typescript-eslint/type-utils": "8.19.0", + "@typescript-eslint/utils": "8.19.0", + "@typescript-eslint/visitor-keys": "8.19.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -33997,25 +33729,21 @@ }, "peerDependencies": { "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.17.0.tgz", - "integrity": "sha512-Drp39TXuUlD49F7ilHHCG7TTg8IkA+hxCuULdmzWYICxGXvDXmDmWEjJYZQYgf6l/TFfYNE167m7isnc3xlIEg==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.19.0.tgz", + "integrity": "sha512-6M8taKyOETY1TKHp0x8ndycipTVgmp4xtg5QpEZzXxDhNvvHOJi5rLRkLr8SK3jTgD5l4fTlvBiRdfsuWydxBw==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.17.0", - "@typescript-eslint/types": "8.17.0", - "@typescript-eslint/typescript-estree": "8.17.0", - "@typescript-eslint/visitor-keys": "8.17.0", + "@typescript-eslint/scope-manager": "8.19.0", + "@typescript-eslint/types": "8.19.0", + "@typescript-eslint/typescript-estree": "8.19.0", + "@typescript-eslint/visitor-keys": "8.19.0", "debug": "^4.3.4" }, "engines": { @@ -34026,23 +33754,19 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/scope-manager": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.17.0.tgz", - "integrity": "sha512-/ewp4XjvnxaREtqsZjF4Mfn078RD/9GmiEAtTeLQ7yFdKnqwTOgRMSvFz4et9U5RiJQ15WTGXPLj89zGusvxBg==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.19.0.tgz", + "integrity": "sha512-hkoJiKQS3GQ13TSMEiuNmSCvhz7ujyqD1x3ShbaETATHrck+9RaDdUbt+osXaUuns9OFwrDTTrjtwsU8gJyyRA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.17.0", - "@typescript-eslint/visitor-keys": "8.17.0" + "@typescript-eslint/types": "8.19.0", + "@typescript-eslint/visitor-keys": "8.19.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -34053,14 +33777,14 @@ } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/type-utils": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.17.0.tgz", - "integrity": "sha512-q38llWJYPd63rRnJ6wY/ZQqIzPrBCkPdpIsaCfkR3Q4t3p6sb422zougfad4TFW9+ElIFLVDzWGiGAfbb/v2qw==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.19.0.tgz", + "integrity": "sha512-TZs0I0OSbd5Aza4qAMpp1cdCYVnER94IziudE3JU328YUHgWu9gwiwhag+fuLeJ2LkWLXI+F/182TbG+JaBdTg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.17.0", - "@typescript-eslint/utils": "8.17.0", + "@typescript-eslint/typescript-estree": "8.19.0", + "@typescript-eslint/utils": "8.19.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -34072,18 +33796,14 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/types": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.17.0.tgz", - "integrity": "sha512-gY2TVzeve3z6crqh2Ic7Cr+CAv6pfb0Egee7J5UAVWCpVvDI/F71wNfolIim4FE6hT15EbpZFVUj9j5i38jYXA==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.19.0.tgz", + "integrity": "sha512-8XQ4Ss7G9WX8oaYvD4OOLCjIQYgRQxO+qCiR2V2s2GxI9AUpo7riNwo6jDhKtTcaJjT8PY54j2Yb33kWtSJsmA==", "dev": true, "license": "MIT", "engines": { @@ -34095,14 +33815,14 @@ } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.17.0.tgz", - "integrity": "sha512-JqkOopc1nRKZpX+opvKqnM3XUlM7LpFMD0lYxTqOTKQfCWAmxw45e3qlOCsEqEB2yuacujivudOFpCnqkBDNMw==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.19.0.tgz", + "integrity": "sha512-WW9PpDaLIFW9LCbucMSdYUuGeFUz1OkWYS/5fwZwTA+l2RwlWFdJvReQqMUMBw4yJWJOfqd7An9uwut2Oj8sLw==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.17.0", - "@typescript-eslint/visitor-keys": "8.17.0", + "@typescript-eslint/types": "8.19.0", + "@typescript-eslint/visitor-keys": "8.19.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -34117,23 +33837,21 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.17.0.tgz", - "integrity": "sha512-bQC8BnEkxqG8HBGKwG9wXlZqg37RKSMY7v/X8VEWD8JG2JuTHuNK0VFvMPMUKQcbk6B+tf05k+4AShAEtCtJ/w==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.19.0.tgz", + "integrity": "sha512-PTBG+0oEMPH9jCZlfg07LCB2nYI0I317yyvXGfxnvGvw4SHIOuRnQ3kadyyXY6tGdChusIHIbM5zfIbp4M6tCg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.17.0", - "@typescript-eslint/types": "8.17.0", - "@typescript-eslint/typescript-estree": "8.17.0" + "@typescript-eslint/scope-manager": "8.19.0", + "@typescript-eslint/types": "8.19.0", + "@typescript-eslint/typescript-estree": "8.19.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -34143,22 +33861,18 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.17.0.tgz", - "integrity": "sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.19.0.tgz", + "integrity": "sha512-mCFtBbFBJDCNCWUl5y6sZSCHXw1DEFEk3c/M3nRK2a4XUB8StGFtmcEMizdjKuBzB6e/smJAAWYug3VrdLMr1w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.17.0", + "@typescript-eslint/types": "8.19.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -34260,15 +33974,18 @@ } }, "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", + "call-bound": "^1.0.3", "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -34550,36 +34267,39 @@ } }, "node_modules/unstorage": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.13.1.tgz", - "integrity": "sha512-ELexQHUrG05QVIM/iUeQNdl9FXDZhqLJ4yP59fnmn2jGUh0TEulwOgov1ubOb3Gt2ZGK/VMchJwPDNVEGWQpRg==", + "version": "1.14.4", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.14.4.tgz", + "integrity": "sha512-1SYeamwuYeQJtJ/USE1x4l17LkmQBzg7deBJ+U9qOBoHo15d1cDxG4jM31zKRgF7pG0kirZy4wVMX6WL6Zoscg==", "license": "MIT", "dependencies": { "anymatch": "^3.1.3", "chokidar": "^3.6.0", - "citty": "^0.1.6", "destr": "^2.0.3", "h3": "^1.13.0", - "listhen": "^1.9.0", "lru-cache": "^10.4.3", "node-fetch-native": "^1.6.4", "ofetch": "^1.4.1", "ufo": "^1.5.4" }, "peerDependencies": { - "@azure/app-configuration": "^1.7.0", - "@azure/cosmos": "^4.1.1", - "@azure/data-tables": "^13.2.2", + "@azure/app-configuration": "^1.8.0", + "@azure/cosmos": "^4.2.0", + "@azure/data-tables": "^13.3.0", "@azure/identity": "^4.5.0", "@azure/keyvault-secrets": "^4.9.0", - "@azure/storage-blob": "^12.25.0", - "@capacitor/preferences": "^6.0.2", + "@azure/storage-blob": "^12.26.0", + "@capacitor/preferences": "^6.0.3", + "@deno/kv": ">=0.8.4", "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", + "@vercel/blob": ">=0.27.0", "@vercel/kv": "^1.0.1", + "aws4fetch": "^1.0.20", + "db0": ">=0.2.1", "idb-keyval": "^6.2.1", - "ioredis": "^5.4.1" + "ioredis": "^5.4.2", + "uploadthing": "^7.4.1" }, "peerDependenciesMeta": { "@azure/app-configuration": { @@ -34603,6 +34323,9 @@ "@capacitor/preferences": { "optional": true }, + "@deno/kv": { + "optional": true + }, "@netlify/blobs": { "optional": true }, @@ -34612,14 +34335,26 @@ "@upstash/redis": { "optional": true }, + "@vercel/blob": { + "optional": true + }, "@vercel/kv": { "optional": true }, + "aws4fetch": { + "optional": true + }, + "db0": { + "optional": true + }, "idb-keyval": { "optional": true }, "ioredis": { "optional": true + }, + "uploadthing": { + "optional": true } } }, @@ -34629,20 +34364,6 @@ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "license": "ISC" }, - "node_modules/untun": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/untun/-/untun-0.1.3.tgz", - "integrity": "sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==", - "license": "MIT", - "dependencies": { - "citty": "^0.1.5", - "consola": "^3.2.3", - "pathe": "^1.1.1" - }, - "bin": { - "untun": "bin/untun.mjs" - } - }, "node_modules/update-browserslist-db": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", @@ -34727,9 +34448,9 @@ "license": "MIT" }, "node_modules/use-callback-ref": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", - "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", "license": "MIT", "dependencies": { "tslib": "^2.0.0" @@ -34738,8 +34459,8 @@ "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -34748,9 +34469,9 @@ } }, "node_modules/use-sidecar": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", - "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", "license": "MIT", "dependencies": { "detect-node-es": "^1.1.0", @@ -34760,8 +34481,8 @@ "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -34857,7 +34578,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, "license": "Apache-2.0", "dependencies": { "spdx-correct": "^3.0.0", @@ -34949,9 +34669,9 @@ } }, "node_modules/viem": { - "version": "2.21.54", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.21.54.tgz", - "integrity": "sha512-G9mmtbua3UtnVY9BqAtWdNp+3AO+oWhD0B9KaEsZb6gcrOWgmA4rz02yqEMg+qW9m6KgKGie7q3zcHqJIw6AqA==", + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.22.0.tgz", + "integrity": "sha512-ZhBiSQYqXeoJHqvEEaRiA9zphO9hlpbGYv+I4F/cQOo7NsJQA+F1EbZT0c7BoUG9nOmKmxyF9b69S+iI2PESqA==", "funding": [ { "type": "github", @@ -34966,7 +34686,7 @@ "@scure/bip39": "1.5.0", "abitype": "1.0.7", "isows": "1.0.6", - "ox": "0.1.2", + "ox": "0.6.0", "webauthn-p256": "0.0.10", "ws": "8.18.0" }, @@ -35664,16 +35384,16 @@ } }, "node_modules/which-boxed-primitive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.0.tgz", - "integrity": "sha512-Ei7Miu/AXe2JJ4iNF5j/UphAgRoma4trE6PtisM09bPygb3egMH3YLW/befsWb1A1AxvNSFidOFTB18XtnIIng==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", "license": "MIT", "dependencies": { "is-bigint": "^1.1.0", - "is-boolean-object": "^1.2.0", - "is-number-object": "^1.1.0", - "is-string": "^1.1.0", - "is-symbol": "^1.1.0" + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" }, "engines": { "node": ">= 0.4" @@ -35683,24 +35403,24 @@ } }, "node_modules/which-builtin-type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.0.tgz", - "integrity": "sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", - "is-date-object": "^1.0.5", + "is-date-object": "^1.1.0", "is-finalizationregistry": "^1.1.0", "is-generator-function": "^1.0.10", - "is-regex": "^1.1.4", + "is-regex": "^1.2.1", "is-weakref": "^1.0.2", "isarray": "^2.0.5", - "which-boxed-primitive": "^1.0.2", + "which-boxed-primitive": "^1.1.0", "which-collection": "^1.0.2", - "which-typed-array": "^1.1.15" + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -35734,15 +35454,16 @@ "license": "ISC" }, "node_modules/which-typed-array": { - "version": "1.1.16", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.16.tgz", - "integrity": "sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "for-each": "^0.3.3", - "gopd": "^1.0.1", + "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" }, "engines": { @@ -35997,9 +35718,9 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", - "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", "license": "ISC", "bin": { "yaml": "bin.mjs" @@ -36074,9 +35795,9 @@ } }, "node_modules/yup": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/yup/-/yup-1.5.0.tgz", - "integrity": "sha512-NJfBIHnp1QbqZwxcgl6irnDMIsb/7d1prNhFx02f1kp8h+orpi4xs3w90szNpOh68a/iHPdMsYvhZWoDmUvXBQ==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/yup/-/yup-1.6.1.tgz", + "integrity": "sha512-JED8pB50qbA4FOkDol0bYF/p60qSEDQqBD0/qeIrUCG1KbPBIQ776fCUNb9ldbPcSTxA69g/47XTo4TqWiuXOA==", "license": "MIT", "dependencies": { "property-expr": "^2.0.5", @@ -36123,21 +35844,21 @@ } }, "node_modules/zod": { - "version": "3.23.8", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", - "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz", + "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" } }, "node_modules/zod-to-json-schema": { - "version": "3.23.5", - "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.23.5.tgz", - "integrity": "sha512-5wlSS0bXfF/BrL4jPAbz9da5hDlDptdEppYfe+x4eIJ7jioqKG9uUxOwPzqof09u/XeVdrgFu29lZi+8XNDJtA==", + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.1.tgz", + "integrity": "sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==", "license": "ISC", "peerDependencies": { - "zod": "^3.23.3" + "zod": "^3.24.1" } }, "node_modules/zwitch": { diff --git a/package.json b/package.json index 9bb019ab0..30d813a09 100644 --- a/package.json +++ b/package.json @@ -71,6 +71,7 @@ "@web3auth/ethereum-provider": "~9.4.0", "@web3auth/modal": "~9.4.0", "@web3auth/modal-react-hooks": "~9.4.0", + "apexcharts": "^4.3.0", "autosuggest-highlight": "^3.3.4", "axios": "^1.4.0", "date-fns": "^2.30.0", @@ -93,6 +94,7 @@ "numeral": "^2.0.6", "pbkdf2": "^3.1.2", "react": "^18.2.0", + "react-apexcharts": "^1.7.0", "react-dom": "^18.2.0", "react-dropzone": "^14.2.3", "react-helmet-async": "^1.3.0", diff --git a/src/App.tsx b/src/App.tsx index 53dd5d1eb..cbd2f376a 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -3,6 +3,7 @@ import { store } from '@redux/store'; import '@src/locales/i18n'; // scrollbar +// @ts-ignore import 'simplebar-react/dist/simplebar.min.css'; // lightbox @@ -11,13 +12,17 @@ import 'yet-another-react-lightbox/plugins/captions.css'; import 'yet-another-react-lightbox/plugins/thumbnails.css'; // editor +// @ts-ignore import 'react-quill/dist/quill.snow.css'; // carousel +// @ts-ignore import 'slick-carousel/slick/slick.css'; +// @ts-ignore import 'slick-carousel/slick/slick-theme.css'; // image +// @ts-ignore import 'react-lazy-load-image-component/src/effects/blur.css'; // ---------------------------------------------------------------------- @@ -83,6 +88,7 @@ export default function App() { + diff --git a/src/_mock/_mock.ts b/src/_mock/_mock.ts new file mode 100644 index 000000000..1d1f6a95d --- /dev/null +++ b/src/_mock/_mock.ts @@ -0,0 +1,73 @@ +import { sub } from 'date-fns'; +// config +import { ASSETS_API } from '@src/config-global'; +// +import { + _id, + _ages, + _roles, + _prices, + _emails, + _ratings, + _nativeS, + _nativeM, + _nativeL, + _percents, + _booleans, + _sentences, + _lastNames, + _fullNames, + _tourNames, + _jobTitles, + _taskNames, + _postTitles, + _firstNames, + _fullAddress, + _companyNames, + _productNames, + _descriptions, + _phoneNumbers, +} from './assets'; + +export const _mock = { + id: (index: number) => _id[index], + time: (index: number) => sub(new Date(), { days: index, hours: index }), + boolean: (index: number) => _booleans[index], + role: (index: number) => _roles[index], + // Text + taskNames: (index: number) => _taskNames[index], + postTitle: (index: number) => _postTitles[index], + jobTitle: (index: number) => _jobTitles[index], + tourName: (index: number) => _tourNames[index], + productName: (index: number) => _productNames[index], + sentence: (index: number) => _sentences[index], + description: (index: number) => _descriptions[index], + // Contact + email: (index: number) => _emails[index], + phoneNumber: (index: number) => _phoneNumbers[index], + fullAddress: (index: number) => _fullAddress[index], + // Name + firstName: (index: number) => _firstNames[index], + lastName: (index: number) => _lastNames[index], + fullName: (index: number) => _fullNames[index], + companyName: (index: number) => _companyNames[index], + // Number + number: { + percent: (index: number) => _percents[index], + rating: (index: number) => _ratings[index], + age: (index: number) => _ages[index], + price: (index: number) => _prices[index], + nativeS: (index: number) => _nativeS[index], + nativeM: (index: number) => _nativeM[index], + nativeL: (index: number) => _nativeL[index], + }, + // Image + image: { + cover: (index: number) => `${ASSETS_API}/assets/images/cover/cover_${index + 1}.jpg`, + avatar: (index: number) => `${ASSETS_API}/assets/images/avatar/avatar_${index + 1}.jpg`, + travel: (index: number) => `${ASSETS_API}/assets/images/travel/travel_${index + 1}.jpg`, + company: (index: number) => `${ASSETS_API}/assets/images/company/company_${index + 1}.png`, + product: (index: number) => `${ASSETS_API}/assets/images/m_product/product_${index + 1}.jpg`, + portrait: (index: number) => `${ASSETS_API}/assets/images/portrait/portrait_${index + 1}.jpg`, + }, +}; diff --git a/src/_mock/_overview.ts b/src/_mock/_overview.ts new file mode 100644 index 000000000..7abd6d118 --- /dev/null +++ b/src/_mock/_overview.ts @@ -0,0 +1,62 @@ +import { _mock } from './_mock'; + +// BANKING +// ---------------------------------------------------------------------- + +export const _bankingRecentTransitions = [ + { + id: _mock.id(2), + name: _mock.fullName(2), + avatarUrl: _mock.image.avatar(2), + type: 'Income', + message: 'Receive money from', + category: 'Annette Black', + date: _mock.time(2), + status: 'progress', + amount: _mock.number.price(2), + }, + { + id: _mock.id(3), + name: _mock.fullName(3), + avatarUrl: _mock.image.avatar(3), + type: 'Expenses', + message: 'Payment for', + category: 'Courtney Henry', + date: _mock.time(3), + status: 'completed', + amount: _mock.number.price(3), + }, + { + id: _mock.id(4), + name: _mock.fullName(4), + avatarUrl: _mock.image.avatar(4), + type: 'Receive', + message: 'Payment for', + category: 'Theresa Webb', + date: _mock.time(4), + status: 'failed', + amount: _mock.number.price(4), + }, + { + id: _mock.id(5), + name: null, + avatarUrl: null, + type: 'Expenses', + message: 'Payment for', + category: 'Beauty & Health', + date: _mock.time(5), + status: 'completed', + amount: _mock.number.price(5), + }, + { + id: _mock.id(6), + name: null, + avatarUrl: null, + type: 'Expenses', + message: 'Payment for', + category: 'Books', + date: _mock.time(6), + status: 'progress', + amount: _mock.number.price(6), + }, +]; diff --git a/src/_mock/assets.ts b/src/_mock/assets.ts index 138cfc8d3..41cada26d 100644 --- a/src/_mock/assets.ts +++ b/src/_mock/assets.ts @@ -1,3 +1,417 @@ +// ---------------------------------------------------------------------- + +export const _id = [...Array(40)].map( + (_, index) => `e99f09a7-dd88-49d5-b1c8-1daf80c2d7b${index + 1}` +); + +export const _fullAddress = [ + '19034 Verna Unions Apt. 164 - Honolulu, RI / 87535', + '1147 Rohan Drive Suite 819 - Burlington, VT / 82021', + '18605 Thompson Circle Apt. 086 - Idaho Falls, WV / 50337', + '110 Lamar Station Apt. 730 - Hagerstown, OK / 49808', + '36901 Elmer Spurs Apt. 762 - Miramar, DE / 92836', + '2089 Runolfsson Harbors Suite 886 - Chapel Hill, TX / 32827', + '279 Karolann Ports Apt. 774 - Prescott Valley, WV / 53905', + '96607 Claire Square Suite 591 - St. Louis Park, HI / 40802', + '9388 Auer Station Suite 573 - Honolulu, AK / 98024', + '47665 Adaline Squares Suite 510 - Blacksburg, NE / 53515', + '989 Vernice Flats Apt. 183 - Billings, NV / 04147', + '91020 Wehner Locks Apt. 673 - Albany, WY / 68763', + '585 Candelario Pass Suite 090 - Columbus, LA / 25376', + '80988 Renner Crest Apt. 000 - Fargo, VA / 24266', + '28307 Shayne Pike Suite 523 - North Las Vegas, AZ / 28550', + '205 Farrell Highway Suite 333 - Rock Hill, OK / 63421', + '253 Kara Motorway Suite 821 - Manchester, SD / 09331', + '13663 Kiara Oval Suite 606 - Missoula, AR / 44478', + '8110 Claire Port Apt. 703 - Anchorage, TN / 01753', + '4642 Demetris Lane Suite 407 - Edmond, AZ / 60888', + '74794 Asha Flat Suite 890 - Lancaster, OR / 13466', + '8135 Keeling Pines Apt. 326 - Alexandria, MA / 89442', + '441 Gibson Shores Suite 247 - Pasco, NM / 60678', + '4373 Emelia Valley Suite 596 - Columbia, NM / 42586', +]; + +// ---------------------------------------------------------------------- + +export const _booleans = [ + true, + true, + true, + false, + false, + true, + false, + false, + false, + false, + true, + true, + true, + false, + false, + false, + true, + false, + false, + false, + true, + false, + false, + true, +]; + +// ---------------------------------------------------------------------- + +export const _emails = [ + 'nannie_abernathy70@yahoo.com', + 'ashlynn_ohara62@gmail.com', + 'milo.farrell@hotmail.com', + 'violet.ratke86@yahoo.com', + 'letha_lubowitz24@yahoo.com', + 'aditya_greenfelder31@gmail.com', + 'lenna_bergnaum27@hotmail.com', + 'luella.ryan33@gmail.com', + 'joana.simonis84@gmail.com', + 'marjolaine_white94@gmail.com', + 'vergie_block82@hotmail.com', + 'vito.hudson@hotmail.com', + 'tyrel_greenholt@gmail.com', + 'dwight.block85@yahoo.com', + 'mireya13@hotmail.com', + 'dasia_jenkins@hotmail.com', + 'benny89@yahoo.com', + 'dawn.goyette@gmail.com', + 'zella_hickle4@yahoo.com', + 'avery43@hotmail.com', + 'olen_legros@gmail.com', + 'jimmie.gerhold73@hotmail.com', + 'genevieve.powlowski@hotmail.com', + 'louie.kuphal39@gmail.com', +]; + +// ---------------------------------------------------------------------- + +export const _fullNames = [ + 'Jayvion Simon', + 'Lucian Obrien', + 'Deja Brady', + 'Harrison Stein', + 'Reece Chung', + 'Lainey Davidson', + 'Cristopher Cardenas', + 'Melanie Noble', + 'Chase Day', + 'Shawn Manning', + 'Soren Durham', + 'Cortez Herring', + 'Brycen Jimenez', + 'Giana Brandt', + 'Aspen Schmitt', + 'Colten Aguilar', + 'Angelique Morse', + 'Selina Boyer', + 'Lawson Bass', + 'Ariana Lang', + 'Amiah Pruitt', + 'Harold Mcgrath', + 'Esperanza Mcintyre', + 'Mireya Conner', +]; + +export const _firstNames = [ + 'Mossie', + 'David', + 'Ebba', + 'Chester', + 'Eula', + 'Jaren', + 'Boyd', + 'Brady', + 'Aida', + 'Anastasia', + 'Gregoria', + 'Julianne', + 'Ila', + 'Elyssa', + 'Lucio', + 'Lewis', + 'Jacinthe', + 'Molly', + 'Brown', + 'Fritz', + 'Keon', + 'Ella', + 'Ken', + 'Whitney', +]; + +export const _lastNames = [ + 'Carroll', + 'Simonis', + 'Yost', + 'Hand', + 'Emmerich', + 'Wilderman', + 'Howell', + 'Sporer', + 'Boehm', + 'Morar', + 'Koch', + 'Reynolds', + 'Padberg', + 'Watsica', + 'Upton', + 'Yundt', + 'Pfeffer', + 'Parker', + 'Zulauf', + 'Treutel', + 'McDermott', + 'McDermott', + 'Cruickshank', + 'Parisian', +]; + +// ---------------------------------------------------------------------- + +export const _prices = [ + 83.74, 97.14, 68.71, 85.21, 52.17, 25.18, 43.84, 60.98, 98.42, 53.37, 72.75, 56.61, 64.55, 77.32, + 60.62, 79.81, 93.68, 47.44, 76.24, 92.87, 72.91, 20.54, 94.25, 37.51, +]; + +export const _ratings = [ + 4.2, 3.7, 4.5, 3.5, 0.5, 3.0, 2.5, 2.8, 4.9, 3.6, 2.5, 1.7, 3.9, 2.8, 4.1, 4.5, 2.2, 3.2, 0.6, + 1.3, 3.8, 3.8, 3.8, 2.0, +]; + +export const _ages = [ + 30, 26, 59, 47, 29, 46, 18, 56, 39, 19, 45, 18, 46, 56, 38, 41, 44, 48, 32, 45, 42, 60, 33, 57, +]; + +export const _percents = [ + 10.1, 13.6, 28.2, 42.1, 37.2, 18.5, 40.1, 94.8, 91.4, 53.0, 25.4, 62.9, 86.6, 62.4, 35.4, 17.6, + 52.0, 6.8, 95.3, 26.6, 69.9, 92.1, 46.2, 85.6, +]; + +export const _nativeS = [ + 11, 10, 7, 10, 12, 5, 10, 1, 8, 8, 10, 11, 12, 8, 4, 11, 8, 9, 4, 9, 2, 6, 3, 7, +]; + +export const _nativeM = [ + 497, 763, 684, 451, 433, 463, 951, 194, 425, 435, 807, 521, 538, 839, 394, 269, 453, 821, 364, + 849, 804, 776, 263, 239, +]; + +export const _nativeL = [ + 9911, 1947, 9124, 6984, 8488, 2034, 3364, 8401, 8996, 5271, 8478, 1139, 8061, 3035, 6733, 3952, + 2405, 3127, 6843, 4672, 6995, 6053, 5192, 9686, +]; + +// ---------------------------------------------------------------------- + +export const _phoneNumbers = [ + '365-374-4961', + '904-966-2836', + '399-757-9909', + '692-767-2903', + '990-588-5716', + '955-439-2578', + '226-924-4058', + '552-917-1454', + '285-840-9338', + '306-269-2446', + '883-373-6253', + '476-509-8866', + '201-465-1954', + '538-295-9408', + '531-492-6028', + '981-699-7588', + '500-268-4826', + '205-952-3828', + '222-255-5190', + '408-439-8033', + '272-940-8266', + '812-685-8057', + '353-801-5212', + '606-285-8928', +]; + +// ---------------------------------------------------------------------- + +export const _roles = [ + 'HR Manager', + 'Data Analyst', + 'Legal Counsel', + 'UX/UI Designer', + 'Project Manager', + 'Account Manager', + 'Registered Nurse', + 'Business Analyst', + 'Creative Director', + 'Financial Planner', + 'Event Coordinator', + 'Marketing Director', + 'Software Developer', + 'Research Scientist', + 'Content Strategist', + 'Operations Manager', + 'Sales Representative', + 'Supply Chain Analyst', + 'Operations Coordinator', + 'Customer Service Associate', + 'Quality Assurance Specialist', + 'CEO', + 'CFO', + 'CTO', +]; + +// ---------------------------------------------------------------------- + +export const _postTitles = [ + '10 Essential Tips for Healthy Living', + 'The Ultimate Guide to Productivity Hacks', + 'Exploring the Hidden Gems of [Destination]', + 'How to Master the Art of Public Speaking', + 'The Future of Artificial Intelligence: Trends and Insights', + 'Delicious Recipes for a Vegan Diet', + "A Beginner's Guide to Investing in Stocks", + 'The Impact of Social Media on Society', + '10 Must-Visit Destinations for Adventure Travelers', + 'The Benefits of Mindfulness Meditation', + 'The Importance of Mental Health Awareness', + 'Building a Strong Personal Brand: Tips and Strategies', + '10 Effective Strategies for Digital Marketing Success', + 'Unveiling the Secrets of Successful Entrepreneurs', + 'The Rise of Remote Work and its Impact on the Workforce', + 'The Art of Landscape Photography: Techniques and Inspiration', + 'Understanding Blockchain Technology and its Potential Applications', + 'How to Create Engaging Content for Social Media', + 'The Role of Artificial Intelligence in Healthcare', + '10 Home Organization Hacks for a Clutter-Free Space', + 'Exploring the History and Culture of [City/Region]', + 'The Power of Positive Thinking: Transform Your Mindset', + 'The Influence of Music on Mood and Emotions', + 'Travel Photography Tips: Capturing Memories Around the World', +]; + +// ---------------------------------------------------------------------- + +export const _productNames = [ + 'Nike Air Force 1 NDESTRUKT', + 'Foundations Matte Flip Flop', + 'Nike Air Zoom Pegasus 37 A.I.R. Chaz Bear', + 'Arizona Soft Footbed Sandal', + 'Boston Soft Footbed Sandal', + 'Zoom Freak 2', + 'Gazelle Vintage low-top sneakers', + 'Jordan Delta', + 'Air Jordan XXXV PF', + 'Rod Laver low-top sneakers', + 'Kyrie 7 EP Sisterhood', + 'Pharrell Williams Human Race NMD sneakers', + 'Nike Blazer Low 77 Vintage', + 'ASMC Winter Boot Cold.Rdy', + 'ZX 8000 Lego sneakers', + 'Ultraboost 21 sneakers', + '2750 Cotu Classic Sneaker', + 'ZX 9000 A-ZX Series sneakers', + 'Madrid Big Buckle Sandal', + 'Chuck 70 Hi Sneaker', + 'Relaxed Adjustable Strap Slingback Sandal', + 'Superturf Adventure X Atmos', + 'Chuck Taylor All Star Lift Sneaker', + 'Run Star Hike Platform Sneaker', +]; + +// ---------------------------------------------------------------------- + +export const _tourNames = [ + 'Adventure Seekers Expedition', + 'Historic Heritage Tour', + 'Culinary Delights Exploration', + "Nature's Wonders Escapade", + 'Cultural Immersion Journey', + 'Wildlife Safari Expedition', + "Urban Explorer's City Tour", + 'Coastal Paradise Getaway', + 'Wine Tasting Experience', + 'Spiritual Retreat Tour', + 'Outdoor Adventure Trek', + 'Photography Expedition', + 'Music and Arts Discovery Tour', + 'Wellness and Yoga Retreat', + 'Hidden Gems Discovery Tour', + 'Volcano and Geothermal Exploration', + "Foodie's Gastronomic Tour", + 'Hiking and Camping Adventure', + 'Architecture and Design Tour', + 'Coastal Cruise and Island Hopping', + 'Scenic Train Ride Experience', + 'Historical Landmarks Expedition', + 'Surfing and Beach Adventure', + 'Nightlife and Entertainment Tour', +]; + +// ---------------------------------------------------------------------- + +export const _jobTitles = [ + 'Software Engineer', + 'Marketing Manager', + 'Financial Analyst', + 'Graphic Designer', + 'Sales Representative', + 'Project Manager', + 'Data Scientist', + 'Human Resources Coordinator', + 'Accountant', + 'Customer Service Representative', + 'Nurse', + 'Product Manager', + 'Operations Manager', + 'Social Media Specialist', + 'Business Development Executive', + 'Content Writer', + 'Web Developer', + 'Electrical Engineer', + 'Research Scientist', + 'Legal Assistant', + 'Chef', + 'Financial Planner', + 'Architect', + 'Event Planner', +]; + +// ---------------------------------------------------------------------- + +export const _companyNames = [ + 'Lueilwitz and Sons', + 'Gleichner, Mueller and Tromp', + 'Nikolaus - Leuschke', + 'Hegmann, Kreiger and Bayer', + 'Grimes Inc', + 'Durgan - Murazik', + 'Altenwerth, Medhurst and Roberts', + 'Raynor Group', + 'Mraz, Donnelly and Collins', + 'Padberg - Bailey', + 'Heidenreich, Stokes and Parker', + 'Pagac and Sons', + 'Rempel, Hand and Herzog', + 'Dare - Treutel', + 'Kihn, Marquardt and Crist', + 'Nolan - Kunde', + 'Wuckert Inc', + 'Dibbert Inc', + 'Goyette and Sons', + 'Feest Group', + 'Bosco and Sons', + 'Bartell - Kovacek', + 'Schimmel - Raynor', + 'Tremblay LLC', +]; + +// ---------------------------------------------------------------------- + export const _tags = [ 'Technology', 'Marketing', @@ -24,3 +438,90 @@ export const _tags = [ 'Selfcare', 'Writing', ]; + +// ---------------------------------------------------------------------- + +export const _taskNames = [ + 'Complete Project Proposal', + 'Conduct Market Research', + 'Design User Interface Mockups', + 'Develop Backend API', + 'Implement Authentication System', + 'Write Test Cases', + 'Perform Database Optimization', + 'Create Content Marketing Plan', + 'Update Website Copy', + 'Conduct A/B Testing', + 'Create Social Media Graphics', + 'Optimize Website Performance', + 'Review Competitor Websites', + 'Implement Payment Gateway Integration', + 'Conduct User Acceptance Testing', + 'Prepare Monthly Sales Report', + 'Enhance SEO Strategy', + 'Conduct Customer Satisfaction Survey', + 'Design Email Newsletter Template', + 'Monitor Server Logs for Errors', + 'Create Training Materials', + 'Plan and Execute Marketing Campaign', + 'Develop Mobile Application', + 'Coordinate Project Meetings', +]; + +// ---------------------------------------------------------------------- + +export const _sentences = [ + 'The sun slowly set over the horizon, painting the sky in vibrant hues of orange and pink.', + 'She eagerly opened the gift, her eyes sparkling with excitement.', + 'The old oak tree stood tall and majestic, its branches swaying gently in the breeze.', + 'The aroma of freshly brewed coffee filled the air, awakening my senses.', + 'The children giggled with joy as they ran through the sprinklers on a hot summer day.', + 'He carefully crafted a beautiful sculpture out of clay, his hands skillfully shaping the intricate details.', + 'The concert was a mesmerizing experience, with the music filling the venue and the crowd cheering in delight.', + 'The waves crashed against the shore, creating a soothing symphony of sound.', + 'The scent of blooming flowers wafted through the garden, creating a fragrant paradise.', + 'She gazed up at the night sky, marveling at the twinkling stars that dotted the darkness.', + 'The professor delivered a captivating lecture, engaging the students with thought-provoking ideas.', + 'The hiker trekked through the dense forest, guided by the soft glow of sunlight filtering through the trees.', + 'The delicate butterfly gracefully fluttered from flower to flower, sipping nectar with its slender proboscis.', + 'The aroma of freshly baked cookies filled the kitchen, tempting everyone with its irresistible scent.', + "The majestic waterfall cascaded down the rocks, creating a breathtaking display of nature's power.", + 'The actor delivered a powerful performance, moving the audience to tears with his emotional portrayal.', + 'The book transported me to a magical world, where imagination knew no bounds.', + 'The scent of rain filled the air as dark clouds gathered overhead, promising a refreshing downpour.', + 'The chef skillfully plated the dish, turning simple ingredients into a work of culinary art.', + 'The newborn baby let out a tiny cry, announcing its arrival to the world.', + 'The athlete sprinted across the finish line, arms raised in victory as the crowd erupted in applause.', + 'The ancient ruins stood as a testament to a civilization long gone, their grandeur still awe-inspiring.', + 'The artist dipped the brush into vibrant paint, bringing the canvas to life with bold strokes and vivid colors.', + 'The laughter of children echoed through the playground, filling the atmosphere with pure joy.', +]; + +// ---------------------------------------------------------------------- + +export const _descriptions = [ + `Occaecati est et illo quibusdam accusamus qui. Incidunt aut et molestiae ut facere aut. Est quidem iusto praesentium excepturi harum nihil tenetur facilis. Ut omnis voluptates nihil accusantium doloribus eaque debitis.`, + `Atque eaque ducimus minima distinctio velit. Laborum et veniam officiis. Delectus ex saepe hic id laboriosam officia. Odit nostrum qui illum saepe debitis ullam. Laudantium beatae modi fugit ut. Dolores consequatur beatae nihil voluptates rem maiores.`, + `Rerum eius velit dolores. Explicabo ad nemo quibusdam. Voluptatem eum suscipit et ipsum et consequatur aperiam quia. Rerum nulla sequi recusandae illum velit quia quas. Et error laborum maiores cupiditate occaecati.`, + `Et non omnis qui. Qui sunt deserunt dolorem aut velit cumque adipisci aut enim. Nihil quis quisquam nesciunt dicta nobis ab aperiam dolorem repellat. Voluptates non blanditiis. Error et tenetur iste soluta cupiditate ratione perspiciatis et. Quibusdam aliquid nam sunt et quisquam non esse.`, + `Nihil ea sunt facilis praesentium atque. Ab animi alias sequi molestias aut velit ea. Sed possimus eos. Et est aliquid est voluptatem.`, + `Non rerum modi. Accusamus voluptatem odit nihil in. Quidem et iusto numquam veniam culpa aperiam odio aut enim. Quae vel dolores. Pariatur est culpa veritatis aut dolorem.`, + `Est enim et sit non impedit aperiam cumque animi. Aut eius impedit saepe blanditiis. Totam molestias magnam minima fugiat.`, + `Unde a inventore et. Sed esse ut. Atque ducimus quibusdam fuga quas id qui fuga.`, + `Eaque natus adipisci soluta nostrum dolorem. Nesciunt ipsum molestias ut aliquid natus ut omnis qui fugiat. Dolor et rem. Ut neque voluptatem blanditiis quasi ullam deleniti.`, + `Nam et error exercitationem qui voluptate optio. Officia omnis qui accusantium ipsam qui. Quia sequi nulla perspiciatis optio vero omnis maxime omnis ipsum. Perspiciatis consequuntur asperiores veniam dolores.`, + `Perspiciatis nulla ut ut ut voluptates totam consectetur eligendi qui. Optio ut cum. Dolorum sapiente qui laborum. Impedit temporibus totam delectus nihil. Voluptatem corrupti rem.`, + `Distinctio omnis similique omnis eos. Repellat cumque rerum nisi. Reiciendis soluta non ut veniam temporibus. Accusantium et dolorem voluptas harum. Nemo eius voluptate dicta et hic nemo. Dolorem assumenda et beatae molestias sit quo mollitia quis consequatur.`, + `Sed ut mollitia tempore ipsam et illum doloribus ut. Occaecati ratione veritatis explicabo. Omnis nam omnis sunt placeat tempore accusantium placeat distinctio velit.`, + `Eum illo dicta et perspiciatis ut blanditiis eos sequi. Ea veritatis aut et voluptas aut. Laborum eos quia tempore a culpa.`, + `Aut quos quae dolores repudiandae similique perferendis perferendis earum laudantium. Facere placeat natus nobis. Eius vitae ullam dolorem.`, + `Vero dolorem et voluptatem fugit tempore a quam iure. Fuga consequatur corrupti sunt asperiores vitae. Libero totam repellendus animi debitis illum et sunt officia.`, + `Cupiditate illum officiis id molestiae. Numquam non molestiae aliquid et natus sed hic. Alias quia explicabo sed corrupti sint. Natus in et odio qui unde facilis quia. Est sit eius laboriosam aliquid non aperiam quia quo corporis.`, + `Et a ab. Optio aspernatur minus tempora amet vitae consectetur inventore cumque. Sed et omnis. Aspernatur a magnam.`, + `Ipsum omnis et. Quia ea et autem tempore consequuntur veniam dolorem officiis. Ipsa dicta et ut quidem quia doloremque. Sequi vitae doloremque temporibus. Deserunt incidunt id aperiam itaque natus. Earum sit eaque quas incidunt nihil.`, + `Quae consequatur reiciendis. Consequatur non optio. Eaque id placeat. Commodi quo officia aut repudiandae reiciendis tempore voluptatem et. Ut accusamus qui itaque maxime aliquam. Fugit ut animi molestiae porro maiores.`, + `Modi hic asperiores ab cumque quam est aut. Voluptas atque quos molestias. Ut excepturi distinctio ipsam aspernatur sit.`, + `Sunt totam facilis. Quam commodi voluptatem veniam. Tempora deleniti itaque fugit nihil voluptas.`, + `Ipsam aliquam velit nobis repellendus officiis aut deserunt id et. Nihil sunt aut dolores aut. Dolores est ipsa quia et laborum quidem laborum accusamus id. Facilis odit quod hic laudantium saepe omnis nisi in sint. Sed cupiditate possimus id.`, + `Magnam non eveniet optio optio ut aliquid atque. Velit libero aspernatur quis laborum consequatur laudantium. Tempora facere optio fugit accusantium ut. Omnis aspernatur reprehenderit autem esse ut ut enim voluptatibus.`, +]; diff --git a/src/_mock/index.ts b/src/_mock/index.ts index df6446646..985eb5f06 100644 --- a/src/_mock/index.ts +++ b/src/_mock/index.ts @@ -1 +1,2 @@ export * from './assets'; +export * from './_overview'; diff --git a/src/assets/audio/notify.mp3 b/src/assets/audio/notify.mp3 new file mode 100644 index 000000000..d2eacaafd Binary files /dev/null and b/src/assets/audio/notify.mp3 differ diff --git a/src/assets/illustrations/booking-illustration.tsx b/src/assets/illustrations/booking-illustration.tsx new file mode 100644 index 000000000..abb163f42 --- /dev/null +++ b/src/assets/illustrations/booking-illustration.tsx @@ -0,0 +1,307 @@ +import { memo } from 'react'; +// @mui +import { useTheme } from '@mui/material/styles'; +import Box, { BoxProps } from '@mui/material/Box'; + +// ---------------------------------------------------------------------- + +function BookingIllustration({ ...other }: BoxProps) { + const theme = useTheme(); + + const PRIMARY_LIGHTER = theme.palette.primary.lighter; + + const PRIMARY_LIGHT = theme.palette.primary.light; + + const PRIMARY_MAIN = theme.palette.primary.main; + + const PRIMARY_DARK = theme.palette.primary.dark; + + const PRIMARY_DARKER = theme.palette.primary.darker; + + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default memo(BookingIllustration); diff --git a/src/assets/illustrations/check-in-illustration.tsx b/src/assets/illustrations/check-in-illustration.tsx new file mode 100644 index 000000000..232c2e845 --- /dev/null +++ b/src/assets/illustrations/check-in-illustration.tsx @@ -0,0 +1,96 @@ +import { memo } from 'react'; +// @mui +import { useTheme } from '@mui/material/styles'; +import Box, { BoxProps } from '@mui/material/Box'; + +// ---------------------------------------------------------------------- + +function CheckInIllustration({ ...other }: BoxProps) { + const theme = useTheme(); + + const PRIMARY_LIGHTER = theme.palette.primary.lighter; + + const PRIMARY_LIGHT = theme.palette.primary.light; + + const PRIMARY_MAIN = theme.palette.primary.main; + + const PRIMARY_DARK = theme.palette.primary.dark; + + const PRIMARY_DARKER = theme.palette.primary.darker; + + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default memo(CheckInIllustration); diff --git a/src/assets/illustrations/check-out-illustration.tsx b/src/assets/illustrations/check-out-illustration.tsx new file mode 100644 index 000000000..b124b5a53 --- /dev/null +++ b/src/assets/illustrations/check-out-illustration.tsx @@ -0,0 +1,69 @@ +import { memo } from 'react'; +// @mui +import { useTheme } from '@mui/material/styles'; +import Box, { BoxProps } from '@mui/material/Box'; + +// ---------------------------------------------------------------------- + +function CheckoutIllustration({ ...other }: BoxProps) { + const theme = useTheme(); + + const PRIMARY_LIGHT = theme.palette.primary.light; + + const PRIMARY_MAIN = theme.palette.primary.main; + + const PRIMARY_DARK = theme.palette.primary.dark; + + const PRIMARY_DARKER = theme.palette.primary.darker; + + return ( + + + + + + + + + + + + + + + ); +} + +export default memo(CheckoutIllustration); diff --git a/public/assets/illustrations/empty-notifications.png b/src/assets/illustrations/empty-notifications.png similarity index 100% rename from public/assets/illustrations/empty-notifications.png rename to src/assets/illustrations/empty-notifications.png diff --git a/src/assets/illustrations/index.ts b/src/assets/illustrations/index.ts index 9d3358458..73ee0b5cc 100644 --- a/src/assets/illustrations/index.ts +++ b/src/assets/illustrations/index.ts @@ -1,3 +1,6 @@ +export { default as BookingIllustration } from './booking-illustration'; +export { default as CheckInIllustration } from './check-in-illustration'; +export { default as CheckoutIllustration } from './check-out-illustration'; export { default as UploadIllustration } from './upload-illustration'; export { default as ForbiddenIllustration } from './forbidden-illustration'; export { default as SeverErrorIllustration } from './sever-error-illustration'; diff --git a/src/assets/illustrations/seo-illustration.tsx b/src/assets/illustrations/seo-illustration.tsx new file mode 100644 index 000000000..68fd7ef6a --- /dev/null +++ b/src/assets/illustrations/seo-illustration.tsx @@ -0,0 +1,234 @@ +import { memo } from 'react'; +// @mui +import { useTheme } from '@mui/material/styles'; +import Box, { BoxProps } from '@mui/material/Box'; +// +import BackgroundShape from './background-shape'; + +// ---------------------------------------------------------------------- + +function SeoIllustration({ ...other }: BoxProps) { + const theme = useTheme(); + + const PRIMARY_LIGHT = theme.palette.primary.light; + + const PRIMARY_DARK = theme.palette.primary.dark; + + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default memo(SeoIllustration); diff --git a/src/clients/viem/publicClient.ts b/src/clients/viem/publicClient.ts index 138d5e90a..133fdf186 100644 --- a/src/clients/viem/publicClient.ts +++ b/src/clients/viem/publicClient.ts @@ -1,7 +1,14 @@ -import { createPublicClient, http } from 'viem'; +import { createPublicClient, http, webSocket } from 'viem'; import { polygonAmoy } from 'viem/chains'; +const WS_URL = 'wss://polygon-amoy-bor-rpc.publicnode.com'; + export const publicClient = createPublicClient({ chain: polygonAmoy, transport: http(polygonAmoy.rpcUrls.default.http[0]), }); + +export const publicClientWebSocket = createPublicClient({ + chain: polygonAmoy, + transport: webSocket(WS_URL) +}); diff --git a/src/clients/viem/walletClient.ts b/src/clients/viem/walletClient.ts new file mode 100644 index 000000000..bee5aaf0f --- /dev/null +++ b/src/clients/viem/walletClient.ts @@ -0,0 +1,27 @@ +import {createWalletClient, custom} from "viem"; +import {polygonAmoy} from "viem/chains"; +import "viem/window"; +import {publicClient} from "@src/clients/viem/publicClient"; + +export async function ConnectWalletClient() { + // window.ethereum is an object provided by MetaMask or other web3 wallets + let transport; + if (window.ethereum) { + // If window.ethereum exists, create a custom transport using it + transport = custom(window.ethereum); + } else { + // If window.ethereum is not available, throw an error + const errorMessage = + "MetaMask or another web3 wallet is not installed. Please install one to proceed."; + throw new Error(errorMessage); + } + // Return the wallet client + return createWalletClient({ + chain: polygonAmoy, + transport: transport, + }); +} + +export function ConnectPublicClient() { + return publicClient +} diff --git a/src/components/activate-subscription-profile-modal.tsx b/src/components/activate-subscription-profile-modal.tsx index 8cf5711e2..9b4936654 100644 --- a/src/components/activate-subscription-profile-modal.tsx +++ b/src/components/activate-subscription-profile-modal.tsx @@ -9,7 +9,6 @@ import { DialogTitle, DialogContent, DialogActions, - CircularProgress, Typography, Stack, Paper, @@ -26,6 +25,9 @@ import { encodeAbiParameters } from 'viem'; import { GLOBAL_CONSTANTS } from '@src/config-global'; import { useAuthorizePolicy } from '@src/hooks/use-authorize-policy.ts'; import { useSnackbar } from 'notistack'; +import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; +import Box from "@mui/material/Box"; +import LoadingButton from "@mui/lab/LoadingButton"; // ---------------------------------------------------------------------- @@ -107,6 +109,7 @@ export const ActivateSubscriptionProfileModal = ({ const fifteenDaysCost = (amountNumber * 15).toFixed(2); const monthlyCost = (amountNumber * 30).toFixed(2); + const RainbowEffect = loading ? NeonPaper : Box; return ( <> @@ -229,14 +232,17 @@ export const ActivateSubscriptionProfileModal = ({ - + + + Confirm price + + diff --git a/src/components/chart/chart.tsx b/src/components/chart/chart.tsx new file mode 100644 index 000000000..b50b9c85b --- /dev/null +++ b/src/components/chart/chart.tsx @@ -0,0 +1,67 @@ +import { memo } from 'react'; +import ApexChart from 'react-apexcharts'; +// @mui +import { alpha, styled } from '@mui/material/styles'; +// theme +import { bgBlur } from '@src/theme/css'; + +// ---------------------------------------------------------------------- + +const Chart = styled(ApexChart)(({ theme }) => ({ + '& .apexcharts-canvas': { + // Tooltip + '& .apexcharts-tooltip': { + ...bgBlur({ + color: theme.palette.background.default, + }), + color: theme.palette.text.primary, + boxShadow: theme.customShadows.dropdown, + borderRadius: theme.shape.borderRadius * 1.25, + '&.apexcharts-theme-light': { + borderColor: 'transparent', + ...bgBlur({ + color: theme.palette.background.default, + }), + }, + }, + '& .apexcharts-xaxistooltip': { + ...bgBlur({ + color: theme.palette.background.default, + }), + borderColor: 'transparent', + color: theme.palette.text.primary, + boxShadow: theme.customShadows.dropdown, + borderRadius: theme.shape.borderRadius * 1.25, + '&:before': { + borderBottomColor: alpha(theme.palette.grey[500], 0.24), + }, + '&:after': { + borderBottomColor: alpha(theme.palette.background.default, 0.8), + }, + }, + '& .apexcharts-tooltip-title': { + textAlign: 'center', + fontWeight: theme.typography.fontWeightBold, + backgroundColor: alpha(theme.palette.grey[500], 0.08), + color: theme.palette.text[theme.palette.mode === 'light' ? 'secondary' : 'primary'], + }, + + // LEGEND + '& .apexcharts-legend': { + padding: 0, + }, + '& .apexcharts-legend-series': { + display: 'inline-flex !important', + alignItems: 'center', + }, + '& .apexcharts-legend-marker': { + marginRight: 8, + }, + '& .apexcharts-legend-text': { + lineHeight: '18px', + textTransform: 'capitalize', + }, + }, +})); + +export default memo(Chart); diff --git a/src/components/chart/index.ts b/src/components/chart/index.ts new file mode 100644 index 000000000..046920972 --- /dev/null +++ b/src/components/chart/index.ts @@ -0,0 +1,5 @@ +// ---------------------------------------------------------------------- + +export { default as useChart } from './use-chart'; + +export { default } from './chart'; diff --git a/src/components/chart/use-chart.ts b/src/components/chart/use-chart.ts new file mode 100644 index 000000000..e8e9475e5 --- /dev/null +++ b/src/components/chart/use-chart.ts @@ -0,0 +1,213 @@ +import merge from 'lodash/merge'; +import { ApexOptions } from 'apexcharts'; +// @mui +import { useTheme, alpha } from '@mui/material/styles'; + +// ---------------------------------------------------------------------- + +export default function useChart(options?: ApexOptions) { + const theme = useTheme(); + + const LABEL_TOTAL = { + show: true, + label: 'Total', + color: theme.palette.text.secondary, + fontSize: theme.typography.subtitle2.fontSize, + fontWeight: theme.typography.subtitle2.fontWeight, + lineHeight: theme.typography.subtitle2.lineHeight, + }; + + const LABEL_VALUE = { + offsetY: 8, + color: theme.palette.text.primary, + fontSize: theme.typography.h3.fontSize, + fontWeight: theme.typography.h3.fontWeight, + lineHeight: theme.typography.h3.lineHeight, + }; + + const baseOptions = { + // Colors + colors: [ + theme.palette.primary.main, + theme.palette.warning.main, + theme.palette.info.main, + theme.palette.error.main, + theme.palette.success.main, + theme.palette.warning.dark, + theme.palette.success.darker, + theme.palette.info.dark, + theme.palette.info.darker, + ], + + // Chart + chart: { + toolbar: { show: false }, + zoom: { enabled: false }, + // animations: { enabled: false }, + foreColor: theme.palette.text.disabled, + fontFamily: theme.typography.fontFamily, + }, + + // States + states: { + hover: { + filter: { + type: 'lighten', + value: 0.04, + }, + }, + active: { + filter: { + type: 'darken', + value: 0.88, + }, + }, + }, + + // Fill + fill: { + opacity: 1, + gradient: { + type: 'vertical', + shadeIntensity: 0, + opacityFrom: 0.4, + opacityTo: 0, + stops: [0, 100], + }, + }, + + // Datalabels + dataLabels: { + enabled: false, + }, + + // Stroke + stroke: { + width: 3, + curve: 'smooth', + lineCap: 'round', + }, + + // Grid + grid: { + strokeDashArray: 3, + borderColor: theme.palette.divider, + xaxis: { + lines: { + show: false, + }, + }, + }, + + // Xaxis + xaxis: { + axisBorder: { show: false }, + axisTicks: { show: false }, + }, + + // Markers + markers: { + size: 0, + strokeColors: theme.palette.background.paper, + }, + + // Tooltip + tooltip: { + theme: false, + x: { + show: true, + }, + }, + + // Legend + legend: { + show: true, + fontSize: 13, + position: 'top', + horizontalAlign: 'right', + markers: { + radius: 12, + }, + fontWeight: 500, + itemMargin: { + horizontal: 8, + }, + labels: { + colors: theme.palette.text.primary, + }, + }, + + // plotOptions + plotOptions: { + // Bar + bar: { + borderRadius: 4, + columnWidth: '28%', + borderRadiusApplication: 'end', + borderRadiusWhenStacked: 'last', + }, + + // Pie + Donut + pie: { + donut: { + labels: { + show: true, + value: LABEL_VALUE, + total: LABEL_TOTAL, + }, + }, + }, + + // Radialbar + radialBar: { + track: { + strokeWidth: '100%', + background: alpha(theme.palette.grey[500], 0.16), + }, + dataLabels: { + value: LABEL_VALUE, + total: LABEL_TOTAL, + }, + }, + + // Radar + radar: { + polygons: { + fill: { colors: ['transparent'] }, + strokeColors: theme.palette.divider, + connectorColors: theme.palette.divider, + }, + }, + + // polarArea + polarArea: { + rings: { + strokeColor: theme.palette.divider, + }, + spokes: { + connectorColors: theme.palette.divider, + }, + }, + }, + + // Responsive + responsive: [ + { + // sm + breakpoint: theme.breakpoints.values.sm, + options: { + plotOptions: { bar: { columnWidth: '40%' } }, + }, + }, + { + // md + breakpoint: theme.breakpoints.values.md, + options: { + plotOptions: { bar: { columnWidth: '32%' } }, + }, + }, + ], + }; + + return merge(baseOptions, options); +} diff --git a/src/components/custom-date-range-picker/custom-date-range-picker.tsx b/src/components/custom-date-range-picker/custom-date-range-picker.tsx new file mode 100644 index 000000000..6f6985b9f --- /dev/null +++ b/src/components/custom-date-range-picker/custom-date-range-picker.tsx @@ -0,0 +1,119 @@ +// @mui +import { DatePicker } from '@mui/x-date-pickers/DatePicker'; +import { DateCalendar } from '@mui/x-date-pickers/DateCalendar'; +import Paper from '@mui/material/Paper'; +import Stack from '@mui/material/Stack'; +import Button from '@mui/material/Button'; +import Dialog from '@mui/material/Dialog'; +import DialogTitle from '@mui/material/DialogTitle'; +import DialogActions from '@mui/material/DialogActions'; +import DialogContent from '@mui/material/DialogContent'; +import FormHelperText from '@mui/material/FormHelperText'; +// hooks +import { useResponsive } from '@src/hooks/use-responsive'; +// +import { DateRangePickerProps } from './types'; + +// ---------------------------------------------------------------------- + +export default function CustomDateRangePicker({ + title = 'Select date range', + variant = 'input', + // + startDate, + endDate, + // + onChangeStartDate, + onChangeEndDate, + // + open, + onClose, + // + error, +}: DateRangePickerProps) { + const mdUp = useResponsive('up', 'md'); + + const isCalendarView = variant === 'calendar'; + + return ( + + {title} + + + + {isCalendarView ? ( + <> + + + + + + + + + ) : ( + <> + + + + + )} + + + {error && ( + + End date must be later than start date + + )} + + + + + + + + + ); +} diff --git a/src/components/custom-date-range-picker/index.ts b/src/components/custom-date-range-picker/index.ts new file mode 100644 index 000000000..9f4e86257 --- /dev/null +++ b/src/components/custom-date-range-picker/index.ts @@ -0,0 +1,6 @@ +export * from './utils'; +export * from './types'; + +export { default as useDateRangePicker } from './use-date-range-picker'; + +export { default } from './custom-date-range-picker'; diff --git a/src/components/custom-date-range-picker/types.ts b/src/components/custom-date-range-picker/types.ts new file mode 100644 index 000000000..6aeb5a81d --- /dev/null +++ b/src/components/custom-date-range-picker/types.ts @@ -0,0 +1,25 @@ +// ---------------------------------------------------------------------- + +export type DateRangePickerProps = { + startDate: Date | null; + endDate: Date | null; + onChangeStartDate: (newValue: Date | null) => void; + onChangeEndDate: (newValue: Date | null) => void; + // + open: boolean; + onOpen?: VoidFunction; + onClose: VoidFunction; + onReset?: VoidFunction; + // + selected?: boolean; + error?: boolean; + // + label?: string; + shortLabel?: string; + // + title?: string; + variant?: 'calendar' | 'input'; + // + setStartDate?: React.Dispatch>; + setEndDate?: React.Dispatch>; +}; diff --git a/src/components/custom-date-range-picker/use-date-range-picker.ts b/src/components/custom-date-range-picker/use-date-range-picker.ts new file mode 100644 index 000000000..65f159155 --- /dev/null +++ b/src/components/custom-date-range-picker/use-date-range-picker.ts @@ -0,0 +1,68 @@ +import { useState, useCallback } from 'react'; +// utils +import { fDate } from '@src/utils/format-time'; +// +import { shortDateLabel } from './utils'; +import { DateRangePickerProps } from './types'; + +// ---------------------------------------------------------------------- + +type ReturnType = DateRangePickerProps; + +export default function useDateRangePicker(start: Date | null, end: Date | null): ReturnType { + const [open, setOpen] = useState(false); + + const [endDate, setEndDate] = useState(end); + + const [startDate, setStartDate] = useState(start); + + const error = start && end ? new Date(start).getTime() > new Date(end).getTime() : false; + + const onOpen = useCallback(() => { + setOpen(true); + }, []); + + const onClose = useCallback(() => { + setOpen(false); + }, []); + + const onChangeStartDate = useCallback((newValue: Date | null) => { + setStartDate(newValue); + }, []); + + const onChangeEndDate = useCallback( + (newValue: Date | null) => { + if (error) { + setEndDate(null); + } + setEndDate(newValue); + }, + [error] + ); + + const onReset = useCallback(() => { + setStartDate(null); + setEndDate(null); + }, []); + + return { + startDate, + endDate, + onChangeStartDate, + onChangeEndDate, + // + open, + onOpen, + onClose, + onReset, + // + selected: !!startDate && !!endDate, + error, + // + label: `${fDate(startDate)} - ${fDate(endDate)}`, + shortLabel: shortDateLabel(startDate, endDate), + // + setStartDate, + setEndDate, + }; +} diff --git a/src/components/custom-date-range-picker/utils.ts b/src/components/custom-date-range-picker/utils.ts new file mode 100644 index 000000000..2479f038e --- /dev/null +++ b/src/components/custom-date-range-picker/utils.ts @@ -0,0 +1,32 @@ +import { isSameDay, isSameMonth, getYear } from 'date-fns'; +// utils +import { fDate } from '@src/utils/format-time'; + +// ---------------------------------------------------------------------- + +export function shortDateLabel(startDate: Date | null, endDate: Date | null) { + const getCurrentYear = new Date().getFullYear(); + + const startDateYear = startDate ? getYear(startDate) : null; + + const endDateYear = endDate ? getYear(endDate) : null; + + const currentYear = getCurrentYear === startDateYear && getCurrentYear === endDateYear; + + const sameDay = startDate && endDate ? isSameDay(new Date(startDate), new Date(endDate)) : false; + + const sameMonth = + startDate && endDate ? isSameMonth(new Date(startDate), new Date(endDate)) : false; + + if (currentYear) { + if (sameMonth) { + if (sameDay) { + return fDate(endDate, 'dd MMM yy'); + } + return `${fDate(startDate, 'dd')} - ${fDate(endDate, 'dd MMM yy')}`; + } + return `${fDate(startDate, 'dd MMM')} - ${fDate(endDate, 'dd MMM yy')}`; + } + + return `${fDate(startDate, 'dd MMM yy')} - ${fDate(endDate, 'dd MMM yy')}`; +} diff --git a/src/components/input-amount.tsx b/src/components/input-amount.tsx new file mode 100644 index 000000000..779937543 --- /dev/null +++ b/src/components/input-amount.tsx @@ -0,0 +1,52 @@ +import { useEffect, useState } from 'react'; +import Stack from '@mui/material/Stack'; +import Typography from '@mui/material/Typography'; +import Input, { InputProps, inputClasses } from '@mui/material/Input'; + +const STEP = 50; +const MIN_AMOUNT = 0; + +export interface InputAmountProps extends InputProps { + max: number; + amount: number | number[]; +} + +export const InputAmount = ({ amount, onBlur, onChange, max, sx, ...other }: InputAmountProps) => { + const [autoWidth, setAutoWidth] = useState(32); + + useEffect(() => { + const getNumberLength = amount.toString().length || 1; + setAutoWidth(getNumberLength * 24); + }, [amount]); + + return ( + + + + MMC + + ); +}; diff --git a/src/components/login-modal/modal.tsx b/src/components/login-modal/modal.tsx index e93cf3ffa..2b2545ecc 100644 --- a/src/components/login-modal/modal.tsx +++ b/src/components/login-modal/modal.tsx @@ -122,12 +122,13 @@ export const LoginModal: React.FC = ({ open, onClose }) => { xs: '90%', sm: 500, }, - height: '85%', + maxHeight: '85%', bgcolor: loading ? 'transparent' : 'background.paper', borderRadius: 2, boxShadow: loading ? 0 : 24, outline: 'none', transition: 'all 0.5s ease-in-out', + overflow: 'auto' }} > {loading ? ( diff --git a/src/components/login-modal/profile-form-view.tsx b/src/components/login-modal/profile-form-view.tsx index f98bea4ce..6b1751c3a 100644 --- a/src/components/login-modal/profile-form-view.tsx +++ b/src/components/login-modal/profile-form-view.tsx @@ -331,7 +331,7 @@ export const ProfileFormView: React.FC = ({ sx={{ display: 'none' }} /> - + {/* Background Image */} = ({icon, subtitle} ) => { + const dispatch = useDispatch(); + const sessionData = useSelector((state: any) => state.auth.session); + + const handleClicked = () => { + if (!sessionData?.authenticated) return dispatch(openLoginModal()); + } + + return ( + + + Sign in required + + {subtitle} + + + + ); +} + +export default NotLoggedIn; diff --git a/src/components/should-login/withAuth.tsx b/src/components/should-login/withAuth.tsx new file mode 100644 index 000000000..93916f63f --- /dev/null +++ b/src/components/should-login/withAuth.tsx @@ -0,0 +1,17 @@ +import React from 'react'; +import { useSelector } from 'react-redux'; +import ShouldLogin from '@src/components/should-login/should-login'; + +const withAuth = (WrappedComponent: React.ComponentType, icon: string, subtitle: string) => { + return (props: any) => { + const sessionData = useSelector((state: any) => state.auth.session); + + if (!sessionData?.authenticated) { + return ; + } + + return ; + }; +}; + +export default withAuth; diff --git a/src/components/subscribe-profile-modal.tsx b/src/components/subscribe-profile-modal.tsx index 7d8dc4faa..028445d2c 100644 --- a/src/components/subscribe-profile-modal.tsx +++ b/src/components/subscribe-profile-modal.tsx @@ -25,18 +25,19 @@ import { Address } from 'viem'; import LoadingButton from '@mui/lab/LoadingButton'; import { useSubscribe } from '@src/hooks/use-subscribe.ts'; import { Profile } from '@lens-protocol/api-bindings'; -import { useResolveTerms } from '@src/hooks/use-resolve-terms.ts'; +import { useGetPolicyTerms } from '@src/hooks/use-get-policy-terms.ts'; import LinearProgress from '@mui/material/LinearProgress'; -import { ProfileSession, useSession } from '@lens-protocol/react-web'; // @ts-ignore -import { ReadResult } from '@lens-protocol/react/dist/declarations/src/helpers/reads'; import { setBalance } from '@redux/auth'; import { useDispatch, useSelector } from 'react-redux'; import { useGetBalance } from '@src/hooks/use-get-balance.ts'; import { useSnackbar } from 'notistack'; import {useNotifications} from "@src/hooks/use-notifications.ts"; import { useNotificationPayload } from '@src/hooks/use-notification-payload.ts'; +import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; +import Box from "@mui/material/Box"; +import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; // ---------------------------------------------------------------------- @@ -70,7 +71,7 @@ export const SubscribeProfileModal = ({ // Hooks for subscription and terms resolution const { data, error, loading, subscribe } = useSubscribe(); - const { terms, loading: loadingTerms } = useResolveTerms(profile?.ownedBy?.address as Address); + const { terms, loading: loadingTerms } = useGetPolicyTerms(GLOBAL_CONSTANTS.SUBSCRIPTION_POLICY_ADDRESS as Address, profile?.ownedBy?.address as Address); const { sendNotification } = useNotifications(); const { generatePayload } = useNotificationPayload(sessionData); @@ -119,7 +120,7 @@ export const SubscribeProfileModal = ({ if (error) { enqueueSnackbar(error.shortMessage ?? error.message, { variant: 'error' }) setErrorMessage(error.shortMessage ?? error.message); - }; + } }, [error]); // Effect to handle successful subscription @@ -187,6 +188,8 @@ export const SubscribeProfileModal = ({ } }; + const RainbowEffect = loading ? NeonPaper : Box; + return ( <> @@ -294,6 +297,8 @@ export const SubscribeProfileModal = ({ + + Join + )} diff --git a/src/components/subscribe-to-unlock-card.tsx b/src/components/subscribe-to-unlock-card.tsx index 6810980e9..816a25998 100644 --- a/src/components/subscribe-to-unlock-card.tsx +++ b/src/components/subscribe-to-unlock-card.tsx @@ -1,9 +1,10 @@ import { Box, Card, CardContent, Typography, Stack } from '@mui/material'; import { IconLock, IconPlayerPlay } from '@tabler/icons-react'; import { ethers } from 'ethers'; -import { useResolveTerms } from '@src/hooks/use-resolve-terms.ts'; +import { useGetPolicyTerms } from '@src/hooks/use-get-policy-terms.ts'; import { Address } from 'viem'; import LoadingButton from '@mui/lab/LoadingButton'; +import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; interface Props { post: any; @@ -18,7 +19,7 @@ export const SubscribeToUnlockCard = ({ subscribeDisabled, post, }: Props) => { - const { terms } = useResolveTerms(post?.by?.ownedBy?.address as Address); + const { terms } = useGetPolicyTerms(GLOBAL_CONSTANTS.SUBSCRIPTION_POLICY_ADDRESS as Address, post?.by?.ownedBy?.address as Address); const durationDays = 30; // a month const totalCostWei = terms?.amount ? terms?.amount * BigInt(durationDays) : 0; // Calculate total cost in Wei: DAILY_COST_WEI * durationDays const totalCostMMC = ethers.formatUnits(totalCostWei, 18); // Converts Wei to MMC diff --git a/src/components/table/index.ts b/src/components/table/index.ts new file mode 100644 index 000000000..9a470e23a --- /dev/null +++ b/src/components/table/index.ts @@ -0,0 +1,11 @@ +export * from './types'; +export * from './utils'; + +export { default as useTable } from './use-table'; + +export { default as TableNoData } from './table-no-data'; +export { default as TableSkeleton } from './table-skeleton'; +export { default as TableEmptyRows } from './table-empty-rows'; +export { default as TableHeadCustom } from './table-head-custom'; +export { default as TableSelectedAction } from './table-selected-action'; +export { default as TablePaginationCustom } from './table-pagination-custom'; diff --git a/src/components/table/table-empty-rows.tsx b/src/components/table/table-empty-rows.tsx new file mode 100644 index 000000000..87f6781b8 --- /dev/null +++ b/src/components/table/table-empty-rows.tsx @@ -0,0 +1,28 @@ +// @mui +import TableRow from '@mui/material/TableRow'; +import TableCell from '@mui/material/TableCell'; + +// ---------------------------------------------------------------------- + +type Props = { + height?: number; + emptyRows: number; +}; + +export default function TableEmptyRows({ emptyRows, height }: Props) { + if (!emptyRows) { + return null; + } + + return ( + + + + ); +} diff --git a/src/components/table/table-head-custom.tsx b/src/components/table/table-head-custom.tsx new file mode 100644 index 000000000..52b4a4580 --- /dev/null +++ b/src/components/table/table-head-custom.tsx @@ -0,0 +1,92 @@ +// @mui +import { Theme, SxProps } from '@mui/material/styles'; +import Box from '@mui/material/Box'; +import TableRow from '@mui/material/TableRow'; +import Checkbox from '@mui/material/Checkbox'; +import TableHead from '@mui/material/TableHead'; +import TableCell from '@mui/material/TableCell'; +import TableSortLabel from '@mui/material/TableSortLabel'; + +// ---------------------------------------------------------------------- + +const visuallyHidden = { + border: 0, + margin: -1, + padding: 0, + width: '1px', + height: '1px', + overflow: 'hidden', + position: 'absolute', + whiteSpace: 'nowrap', + clip: 'rect(0 0 0 0)', +} as const; + +// ---------------------------------------------------------------------- + +type Props = { + order?: 'asc' | 'desc'; + orderBy?: string; + headLabel: any[]; + rowCount?: number; + numSelected?: number; + onSort?: (id: string) => void; + onSelectAllRows?: (checked: boolean) => void; + sx?: SxProps; +}; + +export default function TableHeadCustom({ + order, + orderBy, + rowCount = 0, + headLabel, + numSelected = 0, + onSort, + onSelectAllRows, + sx, +}: Props) { + return ( + + + {onSelectAllRows && ( + + ) => + onSelectAllRows(event.target.checked) + } + /> + + )} + + {headLabel.map((headCell) => ( + + {onSort ? ( + onSort(headCell.id)} + > + {headCell.label} + + {orderBy === headCell.id ? ( + + {order === 'desc' ? 'sorted descending' : 'sorted ascending'} + + ) : null} + + ) : ( + headCell.label + )} + + ))} + + + ); +} diff --git a/src/components/table/table-no-data.tsx b/src/components/table/table-no-data.tsx new file mode 100644 index 000000000..51ae5941b --- /dev/null +++ b/src/components/table/table-no-data.tsx @@ -0,0 +1,34 @@ +// @mui +import { Theme, SxProps } from '@mui/material/styles'; +import TableRow from '@mui/material/TableRow'; +import TableCell from '@mui/material/TableCell'; +// +import EmptyContent from '../empty-content'; + +// ---------------------------------------------------------------------- + +type Props = { + notFound: boolean; + sx?: SxProps; +}; + +export default function TableNoData({ notFound, sx }: Props) { + return ( + + {notFound ? ( + + + + ) : ( + + )} + + ); +} diff --git a/src/components/table/table-pagination-custom.tsx b/src/components/table/table-pagination-custom.tsx new file mode 100644 index 000000000..4a8f0c1b4 --- /dev/null +++ b/src/components/table/table-pagination-custom.tsx @@ -0,0 +1,50 @@ +// @mui +import { Theme, SxProps } from '@mui/material/styles'; +import Box from '@mui/material/Box'; +import Switch from '@mui/material/Switch'; +import FormControlLabel from '@mui/material/FormControlLabel'; +import TablePagination, { TablePaginationProps } from '@mui/material/TablePagination'; + +// ---------------------------------------------------------------------- + +type Props = { + dense?: boolean; + onChangeDense?: (event: React.ChangeEvent) => void; + sx?: SxProps; +}; + +export default function TablePaginationCustom({ + dense, + onChangeDense, + rowsPerPageOptions = [5, 10, 25], + sx, + ...other +}: Props & TablePaginationProps) { + return ( + + + + {onChangeDense && ( + } + sx={{ + pl: 2, + py: 1.5, + top: 0, + position: { + sm: 'absolute', + }, + }} + /> + )} + + ); +} diff --git a/src/components/table/table-selected-action.tsx b/src/components/table/table-selected-action.tsx new file mode 100644 index 000000000..21fb0bfb0 --- /dev/null +++ b/src/components/table/table-selected-action.tsx @@ -0,0 +1,75 @@ +// @mui +import Checkbox from '@mui/material/Checkbox'; +import Typography from '@mui/material/Typography'; +import Stack, { StackProps } from '@mui/material/Stack'; + +// ---------------------------------------------------------------------- + +interface Props extends StackProps { + dense?: boolean; + action?: React.ReactNode; + rowCount: number; + numSelected: number; + onSelectAllRows: (checked: boolean) => void; +} + +export default function TableSelectedAction({ + dense, + action, + rowCount, + numSelected, + onSelectAllRows, + sx, + ...other +}: Props) { + if (!numSelected) { + return null; + } + + return ( + + ) => + onSelectAllRows(event.target.checked) + } + /> + + + {numSelected} selected + + + {action && action} + + ); +} diff --git a/src/components/table/table-skeleton.tsx b/src/components/table/table-skeleton.tsx new file mode 100644 index 000000000..b8be83c9b --- /dev/null +++ b/src/components/table/table-skeleton.tsx @@ -0,0 +1,24 @@ +// @mui +import Stack from '@mui/material/Stack'; +import Skeleton from '@mui/material/Skeleton'; +import TableCell from '@mui/material/TableCell'; +import TableRow, { TableRowProps } from '@mui/material/TableRow'; + +// ---------------------------------------------------------------------- + +export default function TableSkeleton({ ...other }: TableRowProps) { + return ( + + + + + + + + + + + + + ); +} diff --git a/src/components/table/types.ts b/src/components/table/types.ts new file mode 100644 index 000000000..8fcb6b2d0 --- /dev/null +++ b/src/components/table/types.ts @@ -0,0 +1,36 @@ +// ---------------------------------------------------------------------- + +export type TableProps = { + dense: boolean; + page: number; + rowsPerPage: number; + order: 'asc' | 'desc'; + orderBy: string; + // + selected: string[]; + onSelectRow: (id: string) => void; + onSelectAllRows: (checked: boolean, newSelecteds: (string | number)[]) => void; + // + onResetPage: VoidFunction; + onSort: (id: string) => void; + onChangePage: (event: unknown, newPage: number) => void; + onChangeRowsPerPage: (event: React.ChangeEvent) => void; + onChangeDense: (event: React.ChangeEvent) => void; + onUpdatePageDeleteRow: (totalRowsInPage: number) => void; + onUpdatePageDeleteRows: ({ + totalRows, + totalRowsInPage, + totalRowsFiltered, + }: { + totalRows: number; + totalRowsInPage: number; + totalRowsFiltered: number; + }) => void; + // + setPage: React.Dispatch>; + setDense: React.Dispatch>; + setOrder: React.Dispatch>; + setOrderBy: React.Dispatch>; + setSelected: React.Dispatch>; + setRowsPerPage: React.Dispatch>; +}; diff --git a/src/components/table/use-table.ts b/src/components/table/use-table.ts new file mode 100644 index 000000000..6b91f64f1 --- /dev/null +++ b/src/components/table/use-table.ts @@ -0,0 +1,144 @@ +import { useState, useCallback } from 'react'; +// +import { TableProps } from './types'; + +// ---------------------------------------------------------------------- + +type ReturnType = TableProps; + +export type UseTableProps = { + defaultDense?: boolean; + defaultOrder?: 'asc' | 'desc'; + defaultOrderBy?: string; + defaultSelected?: string[]; + defaultRowsPerPage?: number; + defaultCurrentPage?: number; +}; + +export default function useTable(props?: UseTableProps): ReturnType { + const [dense, setDense] = useState(!!props?.defaultDense); + + const [page, setPage] = useState(props?.defaultCurrentPage || 0); + + const [orderBy, setOrderBy] = useState(props?.defaultOrderBy || 'name'); + + const [rowsPerPage, setRowsPerPage] = useState(props?.defaultRowsPerPage || 5); + + const [order, setOrder] = useState<'asc' | 'desc'>(props?.defaultOrder || 'asc'); + + const [selected, setSelected] = useState(props?.defaultSelected || []); + + const onSort = useCallback( + (id: string) => { + const isAsc = orderBy === id && order === 'asc'; + if (id !== '') { + setOrder(isAsc ? 'desc' : 'asc'); + setOrderBy(id); + } + }, + [order, orderBy] + ); + + const onSelectRow = useCallback( + (inputValue: string) => { + const newSelected = selected.includes(inputValue) + ? selected.filter((value) => value !== inputValue) + : [...selected, inputValue]; + + setSelected(newSelected); + }, + [selected] + ); + + const onChangeRowsPerPage = useCallback((event: React.ChangeEvent) => { + setPage(0); + setRowsPerPage(parseInt(event.target.value, 10)); + }, []); + + const onChangeDense = useCallback((event: React.ChangeEvent) => { + setDense(event.target.checked); + }, []); + + const onSelectAllRows = useCallback((checked: boolean, inputValue: string[]) => { + if (checked) { + setSelected(inputValue); + return; + } + setSelected([]); + }, []); + + const onChangePage = useCallback((event: unknown, newPage: number) => { + setPage(newPage); + }, []); + + const onResetPage = useCallback(() => { + setPage(0); + }, []); + + const onUpdatePageDeleteRow = useCallback( + (totalRowsInPage: number) => { + setSelected([]); + if (page) { + if (totalRowsInPage < 2) { + setPage(page - 1); + } + } + }, + [page] + ); + + const onUpdatePageDeleteRows = useCallback( + ({ + totalRows, + totalRowsInPage, + totalRowsFiltered, + }: { + totalRows: number; + totalRowsInPage: number; + totalRowsFiltered: number; + }) => { + const totalSelected = selected.length; + + setSelected([]); + + if (page) { + if (totalSelected === totalRowsInPage) { + setPage(page - 1); + } else if (totalSelected === totalRowsFiltered) { + setPage(0); + } else if (totalSelected > totalRowsInPage) { + const newPage = Math.ceil((totalRows - totalSelected) / rowsPerPage) - 1; + setPage(newPage); + } + } + }, + [page, rowsPerPage, selected.length] + ); + + return { + dense, + order, + page, + orderBy, + rowsPerPage, + // + selected, + onSelectRow, + onSelectAllRows, + // + onSort, + onChangePage, + onChangeDense, + onResetPage, + onChangeRowsPerPage, + onUpdatePageDeleteRow, + onUpdatePageDeleteRows, + // + setPage, + setDense, + setOrder, + setOrderBy, + setSelected, + setRowsPerPage, + }; +} diff --git a/src/components/table/utils.ts b/src/components/table/utils.ts new file mode 100644 index 000000000..08d28132d --- /dev/null +++ b/src/components/table/utils.ts @@ -0,0 +1,30 @@ +// ---------------------------------------------------------------------- + +export function emptyRows(page: number, rowsPerPage: number, arrayLength: number) { + return page ? Math.max(0, (1 + page) * rowsPerPage - arrayLength) : 0; +} + +function descendingComparator(a: T, b: T, orderBy: keyof T) { + if (a[orderBy] === null) { + return 1; + } + if (b[orderBy] === null) { + return -1; + } + if (b[orderBy] < a[orderBy]) { + return -1; + } + if (b[orderBy] > a[orderBy]) { + return 1; + } + return 0; +} + +export function getComparator( + order: 'asc' | 'desc', + orderBy: Key +): (a: { [key in Key]: number | string }, b: { [key in Key]: number | string }) => number { + return order === 'desc' + ? (a, b) => descendingComparator(a, b, orderBy) + : (a, b) => -descendingComparator(a, b, orderBy); +} diff --git a/src/config-global.ts b/src/config-global.ts index a19d1a1bc..eb3f87834 100644 --- a/src/config-global.ts +++ b/src/config-global.ts @@ -10,14 +10,30 @@ export const ASSETS_API = import.meta.env.VITE_ASSETS_API || 'https://default-as export const GLOBAL_CONSTANTS = { MMC_ADDRESS: process.env.VITE_MMC_ADDRESS || import.meta.env.VITE_MMC_ADDRESS || '', - AGREEMENT_PORTAL_ADDRESS: - process.env.VITE_AGREEMENT_PORTAL_ADDRESS || - import.meta.env.VITE_AGREEMENT_PORTAL_ADDRESS || - '', SUBSCRIPTION_POLICY_ADDRESS: process.env.VITE_SUBSCRIPTION_POLICY_ADDRESS || import.meta.env.VITE_SUBSCRIPTION_POLICY_ADDRESS || '', + ACCESS_WORKFLOW_ADDRESS: + process.env.VITE_ACCESS_WORKFLOW_ADDRESS || + import.meta.env.VITE_ACCESS_WORKFLOW_ADDRESS || + '', + ACCESS_AGG_ADDRESS: + process.env.VITE_ACCESS_AGG_ADDRESS || + import.meta.env.VITE_ACCESS_AGG_ADDRESS || + '', + POLICIES_AGG_ADDRESS: + process.env.VITE_POLICIES_AGG_ADDRESS || + import.meta.env.VITE_POLICIES_AGG_ADDRESS || + '', + LEDGER_VAULT_ADDRESS: + process.env.VITE_LEDGER_VAULT_ADDRESS || + import.meta.env.VITE_LEDGER_VAULT_ADDRESS || + '', + OKLINK_API_KEY: + process.env.VITE_OKLINK_API_KEY || + import.meta.env.VITE_OKLINK_API_KEY || + '', RIGHT_POLICY_AUTHORIZER: process.env.VITE_RIGHT_POLICY_AUTHORIZER || import.meta.env.VITE_RIGHT_POLICY_AUTHORIZER || '', SENTRY_AUTH_TOKEN: diff --git a/src/config/abi/AccessAgg.json b/src/config/abi/AccessAgg.json new file mode 100644 index 000000000..8f23eb335 --- /dev/null +++ b/src/config/abi/AccessAgg.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"rightsPolicyManager","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"RIGHTS_POLICY_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsPolicyManager"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAccessAllowedByAsset","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"assetId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isAccessAllowedByHolder","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60c03461014557601f6111fc38819003918201601f19168301916001600160401b038311848410176101495780849260209460405283398101031261014557516001600160a01b0381169081900361014557306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16610136576002600160401b03196001600160401b038216016100cd575b5060a05260405161109e908161015e8239608051818181610820015261093f015260a05181818160d101526105470152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61009b565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80634f1ef2861461089857806352d1902d146107db5780637a9e5e4b146106e65780638fb3603714610635578063929cd2e0146105bf578063a1a2dac6146104a6578063ad3cb1cc14610425578063bf7e214f146103b5578063c4d66de8146100f95763f1bdc45214610087575f80fd5b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100f55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557610130610d48565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103ad575b60011490816103a3575b15908161039a575b5061037257818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561031d575b506101f3610f78565b6101fb610f78565b610203610f78565b61020b610f78565b61021481610ecd565b61021c610f78565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561028a57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101ea565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610181565b303b159150610179565b84915061016f565b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576104a2604051610464604082610d6b565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610e13565b0390f35b346100f55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55761052e60406104e2610d48565b8151906024356020830152602082526104fb8383610d6b565b825193849283927fbe5fb16600000000000000000000000000000000000000000000000000000000845260048401610e9d565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156105b4576020915f91610584575b506040519015158152f35b6105a6915060403d6040116105ad575b61059e8183610d6b565b810190610e63565b5082610579565b503d610594565b6040513d5f823e3d90fd5b346100f55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576105f6610d48565b6024359073ffffffffffffffffffffffffffffffffffffffff82168092036100f55761052e916040918251916020830152602082526104fb8383610d6b565b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156106de5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6106b4565b346100f55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55761071d610d48565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036107af57803b1561076d5761076b90610ecd565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108705760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576108ca610d48565b6024359067ffffffffffffffff82116100f557366023830112156100f5578160040135906108f782610dd9565b916109056040519384610d6b565b808352602083019336602483830101116100f557815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610d06575b50610870576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa9081156105b4575f91610cbb575b5015610c375773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610c03575b50610a7657847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610bd85750823b15610bad57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610b7b575f809161076b945190845af43d15610b73573d91610b5783610dd9565b92610b656040519485610d6b565b83523d5f602085013e610fcf565b606091610fcf565b50505034610b8557005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610c2f575b81610c1f60209383610d6b565b810103126100f557519086610a45565b3d9150610c12565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610cfe575b81610cd660409383610d6b565b810103126100f5576020610ce982610e56565b91015163ffffffff8116036100f557846109f0565b3d9150610cc9565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614158461096a565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100f557565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610dac57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff8111610dac57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b519081151582036100f557565b91908260409103126100f5576020610e7a83610e56565b92015173ffffffffffffffffffffffffffffffffffffffff811681036100f55790565b60409073ffffffffffffffffffffffffffffffffffffffff610eca94931681528160208201520190610e13565b90565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615610fa757565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9061100c5750805115610fe457805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b8151158061105f575b61101d575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561101556fea26469706673582212202e5754fb7e75dbb169594500b936583cd6d90b9799eb24010bce9d850919e7de64736f6c634300081a0033","sourceMap":"474:2431:2:-:0;;;;;;;;;;;;;-1:-1:-1;;474:2431:2;;;;-1:-1:-1;;;;;474:2431:2;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;474:2431:2;;;;;;;;1171:4:56;1163:13;;8837:64:55;474:2431:2;;;;;;7896:76:55;;-1:-1:-1;;;;;;;;;;;474:2431:2;;7985:34:55;7981:146;;-1:-1:-1;1020:65:2;;;474:2431;;;;;;;;1163:13:56;474:2431:2;;;;;;;;;;1020:65;474:2431;;;;;;;;;;;7981:146:55;-1:-1:-1;;;;;;474:2431:2;-1:-1:-1;;;;;474:2431:2;;;8837:64:55;474:2431:2;;;;;;8087:29:55;;474:2431:2;;8087:29:55;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:55;;-1:-1:-1;7938:23:55;474:2431:2;-1:-1:-1;474:2431:2;;;;;;-1:-1:-1;474:2431:2;;;;;-1:-1:-1;474:2431:2","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80634f1ef2861461089857806352d1902d146107db5780637a9e5e4b146106e65780638fb3603714610635578063929cd2e0146105bf578063a1a2dac6146104a6578063ad3cb1cc14610425578063bf7e214f146103b5578063c4d66de8146100f95763f1bdc45214610087575f80fd5b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100f55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557610130610d48565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103ad575b60011490816103a3575b15908161039a575b5061037257818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561031d575b506101f3610f78565b6101fb610f78565b610203610f78565b61020b610f78565b61021481610ecd565b61021c610f78565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561028a57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101ea565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610181565b303b159150610179565b84915061016f565b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576104a2604051610464604082610d6b565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610e13565b0390f35b346100f55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55761052e60406104e2610d48565b8151906024356020830152602082526104fb8383610d6b565b825193849283927fbe5fb16600000000000000000000000000000000000000000000000000000000845260048401610e9d565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156105b4576020915f91610584575b506040519015158152f35b6105a6915060403d6040116105ad575b61059e8183610d6b565b810190610e63565b5082610579565b503d610594565b6040513d5f823e3d90fd5b346100f55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576105f6610d48565b6024359073ffffffffffffffffffffffffffffffffffffffff82168092036100f55761052e916040918251916020830152602082526104fb8383610d6b565b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156106de5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6106b4565b346100f55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55761071d610d48565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036107af57803b1561076d5761076b90610ecd565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108705760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576108ca610d48565b6024359067ffffffffffffffff82116100f557366023830112156100f5578160040135906108f782610dd9565b916109056040519384610d6b565b808352602083019336602483830101116100f557815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610d06575b50610870576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa9081156105b4575f91610cbb575b5015610c375773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610c03575b50610a7657847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610bd85750823b15610bad57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610b7b575f809161076b945190845af43d15610b73573d91610b5783610dd9565b92610b656040519485610d6b565b83523d5f602085013e610fcf565b606091610fcf565b50505034610b8557005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610c2f575b81610c1f60209383610d6b565b810103126100f557519086610a45565b3d9150610c12565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610cfe575b81610cd660409383610d6b565b810103126100f5576020610ce982610e56565b91015163ffffffff8116036100f557846109f0565b3d9150610cc9565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614158461096a565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100f557565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610dac57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff8111610dac57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b519081151582036100f557565b91908260409103126100f5576020610e7a83610e56565b92015173ffffffffffffffffffffffffffffffffffffffff811681036100f55790565b60409073ffffffffffffffffffffffffffffffffffffffff610eca94931681528160208201520190610e13565b90565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615610fa757565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9061100c5750805115610fe457805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b8151158061105f575b61101d575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561101556fea26469706673582212202e5754fb7e75dbb169594500b936583cd6d90b9799eb24010bce9d850919e7de64736f6c634300081a0033","sourceMap":"474:2431:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;628:59;474:2431;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8837:64:55;474:2431:2;;;;;;4301:16:55;474:2431:2;;;;4726:16:55;;:34;;;;474:2431:2;4805:1:55;4790:16;:50;;;;474:2431:2;4855:13:55;:30;;;;474:2431:2;4851:91:55;;;474:2431:2;;4805:1:55;474:2431:2;;;;;8837:64:55;474:2431:2;4979:67:55;;474:2431:2;6893:76:55;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:54;;;:::i;:::-;6893:76:55;;:::i;:::-;474:2431:2;;3295:62:102;474:2431:2;;;3295:62:102;474:2431:2;5066:101:55;;474:2431:2;5066:101:55;474:2431:2;8837:64:55;474:2431:2;;8837:64:55;474:2431:2;5142:14:55;474:2431:2;;;4805:1:55;474:2431:2;;5142:14:55;474:2431:2;4979:67:55;474:2431:2;;;;8837:64:55;474:2431:2;4979:67:55;;;4851:91;4908:23;474:2431:2;4908:23:55;474:2431:2;;4908:23:55;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:55;;4726:34;;;-1:-1:-1;4726:34:55;;474:2431:2;;;;;;;;;;;;;1782:71:54;474:2431:2;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;2429:56;474:2431;;;:::i;:::-;;;;;;;2382:19;;474:2431;;2382:19;;;;;;:::i;:::-;474:2431;;2429:56;;;;;474:2431;2429:56;;474:2431;2429:56;;;:::i;:::-;;:21;474:2431;2429:21;474:2431;2429:56;;;;;;474:2431;2429:56;474:2431;2429:56;;;474:2431;;;;;;;;;;2429:56;;;;474:2431;2429:56;474:2431;2429:56;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;474:2431;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;1902:56;474:2431;;;;;1856:18;474:2431;1856:18;;474:2431;;1856:18;;;;;;:::i;474:2431::-;;;;;;;;;;;1782:71:54;474:2431:2;;;;;4698:71:54;;;474:2431:2;;4698:71:54;474:2431:2;;;;;;;;4698:71:54;474:2431:2;;4698:71:54;;474:2431:2;;;;;;;;;;;;;:::i;:::-;;1782:71:54;474:2431:2;;966:10:57;4258:21:54;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;474:2431:2;4355:110:54;474:2431:2;4411:43:54;;474:2431:2;4411:43:54;474:2431:2;;;;;4411:43:54;4254:92;4302:33;474:2431:2;4302:33:54;966:10:57;474:2431:2;;;;4302:33:54;474:2431:2;;;;;;;;;;;;5115:6:56;474:2431:2;5106:4:56;5098:23;5094:145;;474:2431:2;;;811:66:68;474:2431:2;;;5094:145:56;5199:29;474:2431:2;5199:29:56;474:2431:2;;5199:29:56;474:2431:2;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:56;474:2431:2;4683:4:56;;4675:23;:120;;;;;474:2431:2;4658:251:56;;;3058:30:102;474:2431:2;;3295:62:102;474:2431:2;;;;3058:30:102;;;;474:2431:2;3058:30:102;;474:2431:2;;3058:30:102;;474:2431:2;1893:10:102;474:2431:2;;;;3058:30:102;;;;;;;474:2431:2;3058:30:102;;;474:2431:2;1869:35:102;;1865:140;;474:2431:2;;;;;;;6156:52:56;;474:2431:2;6156:52:56;474:2431:2;6156:52:56;;;;474:2431:2;;6156:52:56;;;474:2431:2;-1:-1:-1;6152:437:56;;6518:60;;474:2431:2;6518:60:56;474:2431:2;;;;6518:60:56;6152:437;6250:40;811:66:68;6250:40:56;;;6246:120;;1748:29:68;;;:34;1744:119;;474:2431:2;;811:66:68;474:2431:2;;;811:66:68;474:2431:2;2407:36:68;474:2431:2;2407:36:68;;474:2431:2;;2458:15:68;:11;;474:2431:2;4049:25:75;;4091:55;4049:25;;;;;;474:2431:2;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4091:55:75;:::i;474:2431:2:-;;;4091:55:75;:::i;2454:148:68:-;6163:9;;;;6159:70;;474:2431:2;6159:70:68;6199:19;474:2431:2;6199:19:68;474:2431:2;;6199:19:68;1744:119;1805:47;474:2431:2;1805:47:68;474:2431:2;;;;1805:47:68;6246:120:56;6317:34;474:2431:2;6317:34:56;474:2431:2;;;;6317:34:56;6156:52;;;;474:2431:2;6156:52:56;;474:2431:2;6156:52:56;;;;;;474:2431:2;6156:52:56;;;:::i;:::-;;;474:2431:2;;;;;6156:52:56;;;;;;;-1:-1:-1;6156:52:56;;1865:140:102;1927:67;474:2431:2;;1927:67:102;;;474:2431:2;;1927:67:102;;520:1:100;474:2431:2;;520:1:100;;474:2431:2;520:1:100;3058:30:102;474:2431:2;;520:1:100;;;;;;1927:67:102;3058:30;;;474:2431:2;3058:30:102;;474:2431:2;3058:30:102;;;;;;474:2431:2;3058:30:102;;;:::i;:::-;;;474:2431:2;;;;;;;;:::i;:::-;;;;;;;;;;3058:30:102;;;;;;-1:-1:-1;3058:30:102;;4675:120:56;474:2431:2;;;811:66:68;474:2431:2;;4753:42:56;;4675:120;;;474:2431:2;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;474:2431:2;;;;;-1:-1:-1;474:2431:2;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;474:2431:2;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;4964:220:54:-;474:2431:2;;5147:30:54;4964:220;474:2431:2;;;1782:71:54;474:2431:2;;;1782:71:54;474:2431:2;;;;;;5147:30:54;4964:220::o;7084:141:55:-;474:2431:2;8837:64:55;474:2431:2;;;;7150:18:55;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:55;;-1:-1:-1;7191:17:55;4421:582:75;;4593:8;;-1:-1:-1;474:2431:2;;5674:21:75;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;474:2431:2;;4841:22:75;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;474:2431:2;4917:24:75;;4862:1;4917:24;474:2431:2;4917:24:75;474:2431:2;;4862:1:75;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"103":[{"start":209,"length":32},{"start":1351,"length":32}],"43541":[{"start":2080,"length":32},{"start":2367,"length":32}]}},"methodIdentifiers":{"RIGHTS_POLICY_MANAGER()":"f1bdc452","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","initialize(address)":"c4d66de8","isAccessAllowedByAsset(address,uint256)":"a1a2dac6","isAccessAllowedByHolder(address,address)":"929cd2e0","isConsumingScheduledOp()":"8fb36037","proxiableUUID()":"52d1902d","setAuthority(address)":"7a9e5e4b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightsPolicyManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_MANAGER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"assetId\",\"type\":\"uint256\"}],\"name\":\"isAccessAllowedByAsset\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"isAccessAllowedByHolder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"initialize(address)\":{\"details\":\"Sets up the contract for usage.\",\"params\":{\"accessManager\":\"Address of the Access Manager contract used for permission handling.\"}},\"isAccessAllowedByAsset(address,uint256)\":{\"params\":{\"account\":\"Address of the account to verify.\",\"assetId\":\"ID of the asset used as criteria.\"},\"returns\":{\"_0\":\"active True if the account has access; otherwise, false.\"}},\"isAccessAllowedByHolder(address,address)\":{\"params\":{\"account\":\"Address of the account to verify.\",\"holder\":\"Address of the rights holder used as criteria.\"},\"returns\":{\"_0\":\"active True if the account has access; otherwise, false.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"RIGHTS_POLICY_MANAGER\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"},\"isAccessAllowedByAsset(address,uint256)\":{\"notice\":\"Checks if an account has access to a specific asset ID.\"},\"isAccessAllowedByHolder(address,address)\":{\"notice\":\"Checks if an account has access rights based on a holder's criteria.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/aggregation/AccessAgg.sol\":\"AccessAgg\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/aggregation/AccessAgg.sol\":{\"keccak256\":\"0xac84fdeac803313a0de33ee07e3ec0b9f115b5aa80976f401b296c513774b28e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec0ac0b41d4bfb64700a638ebd4a47e883cb872dba088f2472f160ee70b57eb8\",\"dweb:/ipfs/QmVFnvcMLTVbFxFEvDw7545vvnqZ7U4TiPU7Y8urQSyR56\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol\":{\"keccak256\":\"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6\",\"dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"rightsPolicyManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_POLICY_MANAGER","outputs":[{"internalType":"contract IRightsPolicyManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"assetId","type":"uint256"}],"stateMutability":"view","type":"function","name":"isAccessAllowedByAsset","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"isAccessAllowedByHolder","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"initialize(address)":{"details":"Sets up the contract for usage.","params":{"accessManager":"Address of the Access Manager contract used for permission handling."}},"isAccessAllowedByAsset(address,uint256)":{"params":{"account":"Address of the account to verify.","assetId":"ID of the asset used as criteria."},"returns":{"_0":"active True if the account has access; otherwise, false."}},"isAccessAllowedByHolder(address,address)":{"params":{"account":"Address of the account to verify.","holder":"Address of the rights holder used as criteria."},"returns":{"_0":"active True if the account has access; otherwise, false."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"initialize(address)":{"notice":"Initializes the proxy state."},"isAccessAllowedByAsset(address,uint256)":{"notice":"Checks if an account has access to a specific asset ID."},"isAccessAllowedByHolder(address,address)":{"notice":"Checks if an account has access rights based on a holder's criteria."}},"version":1}},"settings":{"remappings":["@account-abstraction/=node_modules/@account-abstraction/","@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=node_modules/@synaps3/types/contracts/","@uniswap/=node_modules/@uniswap/","base64-sol/=node_modules/base64-sol/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/aggregation/AccessAgg.sol":"AccessAgg"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/aggregation/AccessAgg.sol":{"keccak256":"0xac84fdeac803313a0de33ee07e3ec0b9f115b5aa80976f401b296c513774b28e","urls":["bzz-raw://ec0ac0b41d4bfb64700a638ebd4a47e883cb872dba088f2472f160ee70b57eb8","dweb:/ipfs/QmVFnvcMLTVbFxFEvDw7545vvnqZ7U4TiPU7Y8urQSyR56"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol":{"keccak256":"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e","urls":["bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6","dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df","urls":["bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2","dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"contracts/aggregation/AccessAgg.sol","id":203,"exportedSymbols":{"AccessAgg":[202],"AccessControlledUpgradeable":[51361],"IRightsPolicyManager":[50447],"Initializable":[43521],"UUPSUpgradeable":[43703]},"nodeType":"SourceUnit","src":"32:2874:2","nodes":[{"id":85,"nodeType":"PragmaDirective","src":"32:23:2","nodes":[],"literals":["solidity","0.8",".26"]},{"id":87,"nodeType":"ImportDirective","src":"57:98:2","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":203,"sourceUnit":43522,"symbolAliases":[{"foreign":{"id":86,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43521,"src":"66:13:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":89,"nodeType":"ImportDirective","src":"156:102:2","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":203,"sourceUnit":43704,"symbolAliases":[{"foreign":{"id":88,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43703,"src":"165:15:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91,"nodeType":"ImportDirective","src":"260:115:2","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":203,"sourceUnit":51362,"symbolAliases":[{"foreign":{"id":90,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51361,"src":"269:27:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":93,"nodeType":"ImportDirective","src":"376:96:2","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol","file":"@synaps3/core/interfaces/rights/IRightsPolicyManager.sol","nameLocation":"-1:-1:-1","scope":203,"sourceUnit":50448,"symbolAliases":[{"foreign":{"id":92,"name":"IRightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50447,"src":"385:20:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":202,"nodeType":"ContractDefinition","src":"474:2431:2","nodes":[{"id":103,"nodeType":"VariableDeclaration","src":"628:59:2","nodes":[],"constant":false,"documentation":{"id":100,"nodeType":"StructuredDocumentation","src":"562:61:2","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"f1bdc452","mutability":"immutable","name":"RIGHTS_POLICY_MANAGER","nameLocation":"666:21:2","scope":202,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"},"typeName":{"id":102,"nodeType":"UserDefinedTypeName","pathNode":{"id":101,"name":"IRightsPolicyManager","nameLocations":["628:20:2"],"nodeType":"IdentifierPath","referencedDeclaration":50447,"src":"628:20:2"},"referencedDeclaration":50447,"src":"628:20:2","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}},"visibility":"public"},{"id":119,"nodeType":"FunctionDefinition","src":"747:345:2","nodes":[],"body":{"id":118,"nodeType":"Block","src":"788:304:2","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":109,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43489,"src":"988:20:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"988:22:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":111,"nodeType":"ExpressionStatement","src":"988:22:2"},{"expression":{"id":116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":112,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"1020:21:2","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":114,"name":"rightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106,"src":"1065:19:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":113,"name":"IRightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50447,"src":"1044:20:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRightsPolicyManager_$50447_$","typeString":"type(contract IRightsPolicyManager)"}},"id":115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1044:41:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}},"src":"1020:65:2","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}},"id":117,"nodeType":"ExpressionStatement","src":"1020:65:2"}]},"documentation":{"id":104,"nodeType":"StructuredDocumentation","src":"694:48:2","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":106,"mutability":"mutable","name":"rightsPolicyManager","nameLocation":"767:19:2","nodeType":"VariableDeclaration","scope":119,"src":"759:27:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":105,"name":"address","nodeType":"ElementaryTypeName","src":"759:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"758:29:2"},"returnParameters":{"id":108,"nodeType":"ParameterList","parameters":[],"src":"788:0:2"},"scope":202,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":135,"nodeType":"FunctionDefinition","src":"1286:151:2","nodes":[],"body":{"id":134,"nodeType":"Block","src":"1348:89:2","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":127,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43575,"src":"1358:22:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1358:24:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":129,"nodeType":"ExpressionStatement","src":"1358:24:2"},{"expression":{"arguments":[{"id":131,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122,"src":"1416:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":130,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51296,"src":"1392:23:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1392:38:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133,"nodeType":"ExpressionStatement","src":"1392:38:2"}]},"documentation":{"id":120,"nodeType":"StructuredDocumentation","src":"1098:183:2","text":"@notice Initializes the proxy state.\n @dev Sets up the contract for usage.\n @param accessManager Address of the Access Manager contract used for permission handling."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":125,"kind":"modifierInvocation","modifierName":{"id":124,"name":"initializer","nameLocations":["1336:11:2"],"nodeType":"IdentifierPath","referencedDeclaration":43375,"src":"1336:11:2"},"nodeType":"ModifierInvocation","src":"1336:11:2"}],"name":"initialize","nameLocation":"1295:10:2","parameters":{"id":123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":122,"mutability":"mutable","name":"accessManager","nameLocation":"1314:13:2","nodeType":"VariableDeclaration","scope":135,"src":"1306:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121,"name":"address","nodeType":"ElementaryTypeName","src":"1306:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1305:23:2"},"returnParameters":{"id":126,"nodeType":"ParameterList","parameters":[],"src":"1348:0:2"},"scope":202,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":163,"nodeType":"FunctionDefinition","src":"1727:261:2","nodes":[],"body":{"id":162,"nodeType":"Block","src":"1822:166:2","nodes":[],"statements":[{"assignments":[146],"declarations":[{"constant":false,"id":146,"mutability":"mutable","name":"criteria","nameLocation":"1845:8:2","nodeType":"VariableDeclaration","scope":162,"src":"1832:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":145,"name":"bytes","nodeType":"ElementaryTypeName","src":"1832:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":151,"initialValue":{"arguments":[{"id":149,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":140,"src":"1867:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":147,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1856:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1860:6:2","memberName":"encode","nodeType":"MemberAccess","src":"1856:10:2","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1856:18:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1832:42:2"},{"assignments":[153,null],"declarations":[{"constant":false,"id":153,"mutability":"mutable","name":"active","nameLocation":"1890:6:2","nodeType":"VariableDeclaration","scope":162,"src":"1885:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":152,"name":"bool","nodeType":"ElementaryTypeName","src":"1885:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":159,"initialValue":{"arguments":[{"id":156,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"1940:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":157,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"1949:8:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":154,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"1902:21:2","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}},"id":155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1924:15:2","memberName":"getActivePolicy","nodeType":"MemberAccess","referencedDeclaration":50421,"src":"1902:37:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_address_$","typeString":"function (address,bytes memory) view external returns (bool,address)"}},"id":158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1902:56:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$","typeString":"tuple(bool,address)"}},"nodeType":"VariableDeclarationStatement","src":"1884:74:2"},{"expression":{"id":160,"name":"active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":153,"src":"1975:6:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":144,"id":161,"nodeType":"Return","src":"1968:13:2"}]},"documentation":{"id":136,"nodeType":"StructuredDocumentation","src":"1443:279:2","text":"@notice Checks if an account has access rights based on a holder's criteria.\n @param account Address of the account to verify.\n @param holder Address of the rights holder used as criteria.\n @return active True if the account has access; otherwise, false."},"functionSelector":"929cd2e0","implemented":true,"kind":"function","modifiers":[],"name":"isAccessAllowedByHolder","nameLocation":"1736:23:2","parameters":{"id":141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":138,"mutability":"mutable","name":"account","nameLocation":"1768:7:2","nodeType":"VariableDeclaration","scope":163,"src":"1760:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":137,"name":"address","nodeType":"ElementaryTypeName","src":"1760:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":140,"mutability":"mutable","name":"holder","nameLocation":"1785:6:2","nodeType":"VariableDeclaration","scope":163,"src":"1777:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":139,"name":"address","nodeType":"ElementaryTypeName","src":"1777:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1759:33:2"},"returnParameters":{"id":144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":143,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163,"src":"1816:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":142,"name":"bool","nodeType":"ElementaryTypeName","src":"1816:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1815:6:2"},"scope":202,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":191,"nodeType":"FunctionDefinition","src":"2253:262:2","nodes":[],"body":{"id":190,"nodeType":"Block","src":"2348:167:2","nodes":[],"statements":[{"assignments":[174],"declarations":[{"constant":false,"id":174,"mutability":"mutable","name":"criteria","nameLocation":"2371:8:2","nodeType":"VariableDeclaration","scope":190,"src":"2358:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":173,"name":"bytes","nodeType":"ElementaryTypeName","src":"2358:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":179,"initialValue":{"arguments":[{"id":177,"name":"assetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"2393:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":175,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2382:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2386:6:2","memberName":"encode","nodeType":"MemberAccess","src":"2382:10:2","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2382:19:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2358:43:2"},{"assignments":[181,null],"declarations":[{"constant":false,"id":181,"mutability":"mutable","name":"active","nameLocation":"2417:6:2","nodeType":"VariableDeclaration","scope":190,"src":"2412:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":180,"name":"bool","nodeType":"ElementaryTypeName","src":"2412:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":187,"initialValue":{"arguments":[{"id":184,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166,"src":"2467:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":185,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174,"src":"2476:8:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":182,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"2429:21:2","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}},"id":183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2451:15:2","memberName":"getActivePolicy","nodeType":"MemberAccess","referencedDeclaration":50421,"src":"2429:37:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_address_$","typeString":"function (address,bytes memory) view external returns (bool,address)"}},"id":186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2429:56:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$","typeString":"tuple(bool,address)"}},"nodeType":"VariableDeclarationStatement","src":"2411:74:2"},{"expression":{"id":188,"name":"active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":181,"src":"2502:6:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":172,"id":189,"nodeType":"Return","src":"2495:13:2"}]},"documentation":{"id":164,"nodeType":"StructuredDocumentation","src":"1994:254:2","text":"@notice Checks if an account has access to a specific asset ID.\n @param account Address of the account to verify.\n @param assetId ID of the asset used as criteria.\n @return active True if the account has access; otherwise, false."},"functionSelector":"a1a2dac6","implemented":true,"kind":"function","modifiers":[],"name":"isAccessAllowedByAsset","nameLocation":"2262:22:2","parameters":{"id":169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":166,"mutability":"mutable","name":"account","nameLocation":"2293:7:2","nodeType":"VariableDeclaration","scope":191,"src":"2285:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":165,"name":"address","nodeType":"ElementaryTypeName","src":"2285:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":168,"mutability":"mutable","name":"assetId","nameLocation":"2310:7:2","nodeType":"VariableDeclaration","scope":191,"src":"2302:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":167,"name":"uint256","nodeType":"ElementaryTypeName","src":"2302:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2284:34:2"},"returnParameters":{"id":172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":171,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":191,"src":"2342:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":170,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:2"},"scope":202,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":201,"nodeType":"FunctionDefinition","src":"2819:84:2","nodes":[],"body":{"id":200,"nodeType":"Block","src":"2901:2:2","nodes":[],"statements":[]},"baseFunctions":[43657],"documentation":{"id":192,"nodeType":"StructuredDocumentation","src":"2521:293:2","text":"@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-"},"implemented":true,"kind":"function","modifiers":[{"id":198,"kind":"modifierInvocation","modifierName":{"id":197,"name":"onlyAdmin","nameLocations":["2891:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":51279,"src":"2891:9:2"},"nodeType":"ModifierInvocation","src":"2891:9:2"}],"name":"_authorizeUpgrade","nameLocation":"2828:17:2","overrides":{"id":196,"nodeType":"OverrideSpecifier","overrides":[],"src":"2882:8:2"},"parameters":{"id":195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":194,"mutability":"mutable","name":"newImplementation","nameLocation":"2854:17:2","nodeType":"VariableDeclaration","scope":201,"src":"2846:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":193,"name":"address","nodeType":"ElementaryTypeName","src":"2846:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2845:27:2"},"returnParameters":{"id":199,"nodeType":"ParameterList","parameters":[],"src":"2901:0:2"},"scope":202,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":94,"name":"Initializable","nameLocations":["496:13:2"],"nodeType":"IdentifierPath","referencedDeclaration":43521,"src":"496:13:2"},"id":95,"nodeType":"InheritanceSpecifier","src":"496:13:2"},{"baseName":{"id":96,"name":"UUPSUpgradeable","nameLocations":["511:15:2"],"nodeType":"IdentifierPath","referencedDeclaration":43703,"src":"511:15:2"},"id":97,"nodeType":"InheritanceSpecifier","src":"511:15:2"},{"baseName":{"id":98,"name":"AccessControlledUpgradeable","nameLocations":["528:27:2"],"nodeType":"IdentifierPath","referencedDeclaration":51361,"src":"528:27:2"},"id":99,"nodeType":"InheritanceSpecifier","src":"528:27:2"}],"canonicalName":"AccessAgg","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[202,51361,43267,43871,43749,43703,44440,43521],"name":"AccessAgg","nameLocation":"483:9:2","scope":203,"usedErrors":[43284,43287,43548,43553,43842,43848,43852,44498,44511,45462,45724,51261],"usedEvents":[43292,43838,44413]}],"license":"MIT"},"id":2} \ No newline at end of file diff --git a/src/config/abi/AccessWorkflow.json b/src/config/abi/AccessWorkflow.json new file mode 100644 index 000000000..2c7461dc6 --- /dev/null +++ b/src/config/abi/AccessWorkflow.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"rightsPolicyManager","type":"address","internalType":"address"},{"name":"agreementManager","type":"address","internalType":"address"},{"name":"mmc","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"AGREEMENT_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAgreementManager"}],"stateMutability":"view"},{"type":"function","name":"MMC","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"RIGHTS_POLICY_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsPolicyManager"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerAccessAgreement","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"holder","type":"address","internalType":"address"},{"name":"policyAddress","type":"address","internalType":"address"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AccessAgreementCreated","inputs":[{"name":"holder","type":"address","indexed":true,"internalType":"address"},{"name":"policyAddress","type":"address","indexed":true,"internalType":"address"},{"name":"proof","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x6101003461018b57601f61156c38819003918201601f19168301916001600160401b0383118484101761018f5780849260609460405283398101031261018b57610048816101a3565b90610061604061005a602084016101a3565b92016101a3565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c1661017c576002600160401b03196001600160401b03821601610113575b506001600160a01b0390811660a05290811660c0521660e0526040516113b490816101b882396080518181816105fd01526106fe015260a05181818160c00152610c66015260c051818181610d820152611121015260e051818181610b400152610cd20152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f6100ac565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361018b5756fe6080806040526004361015610012575f80fd5b5f3560e01c908162efe0c3146110f757508063290ed22114610b6457806344dea5a714610b145780634f1ef2861461067557806352d1902d146105d65780637a9e5e4b146104ff5780638fb360371461046c578063ad3cb1cc146103d8578063bf7e214f14610386578063c4d66de8146100e85763f1bdc45214610094575f80fd5b346100e4575f6003193601126100e457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100e45760206003193601126100e457610101611145565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161037e575b6001149081610374575b15908161036b575b5061034357818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556102ee575b506101c461128e565b6101cc61128e565b6101d461128e565b6101dc61128e565b6101e5816111e3565b6101ed61128e565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561025b57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101bb565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610152565b303b15915061014a565b849150610140565b346100e4575f6003193601126100e457602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100e4575f6003193601126100e45760408051906103f78183611168565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b346100e4575f6003193601126100e4577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156104f75760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6104cd565b346100e45760206003193601126100e457610518611145565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036105aa57803b1561056857610566906111e3565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100e4575f6003193601126100e45773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361064d5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60406003193601126100e457610689611145565b6024359067ffffffffffffffff82116100e457366023830112156100e4578160040135906106b6826111a9565b916106c46040519384611168565b808352602083019336602483830101116100e457815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610ad2575b5061064d576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610ac7575f91610a7a575b50156109f65773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f91816109c2575b5061083557847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8692036109975750823b1561096c57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561093a575f8091610566945190845af43d15610932573d91610916836111a9565b926109246040519485611168565b83523d5f602085013e6112e5565b6060916112e5565b5050503461094457005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d6020116109ee575b816109de60209383611168565b810103126100e457519086610804565b3d91506109d1565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610abf575b81610a9560409383611168565b810103126100e45780519081151582036100e4576020015163ffffffff8116036100e457846107af565b3d9150610a88565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610729565b346100e4575f6003193601126100e457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100e45760a06003193601126100e45760043560243573ffffffffffffffffffffffffffffffffffffffff81168091036100e4576044359073ffffffffffffffffffffffffffffffffffffffff82168092036100e4576064359267ffffffffffffffff84116100e457366023850112156100e45783600401359067ffffffffffffffff82116100e4573660248360051b870101116100e4576084359467ffffffffffffffff86116100e457366023870112156100e457856004013567ffffffffffffffff81116100e45736602482890101116100e457821561109957851561103b578315610fdd57959273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016966040519485927f3f5d1b6f0000000000000000000000000000000000000000000000000000000084528060a4850187600487015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248701528b604487015260a0606487015252602460c485019501905f905b808210610f9d57505050837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f846020979560248896600319888c9a0301608489015282875201878601375f8682860101520116010301815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1918215610ac7575f92610f67575b505f80956064604051809881937f9f7434f40000000000000000000000000000000000000000000000000000000083528760048401528860248401528960448401525af1948515610ac7575f95610e79575b507f8cd9a647baec62fb1bd2494f394b09cfbf79545a0b3ba82a6ce7b934fc4077899160409182519182526020820152a36040518091602082016020835281518091526020604084019201905f5b818110610e60575050500390f35b8251845285945060209384019390920191600101610e52565b9094503d805f833e610e8b8183611168565b8101906020818303126100e45780519067ffffffffffffffff82116100e457019080601f830112156100e45781519167ffffffffffffffff8311610f3a578260051b9060405193610edf6020840186611168565b84526020808501928201019283116100e457602001905b828210610f2a5750919591507f8cd9a647baec62fb1bd2494f394b09cfbf79545a0b3ba82a6ce7b934fc4077899050610e04565b8151815260209182019101610ef6565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b9491506020853d602011610f95575b81610f8360209383611168565b810103126100e457935190935f610db2565b3d9150610f76565b9195909293945085359073ffffffffffffffffffffffffffffffffffffffff82168092036100e45760208160019382935201960192018794939291610d11565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f506172746965732063616e6e6f7420626520656d7074790000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f506f6c69637920616464726573732063616e6e6f74206265207a65726f0000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f416d6f756e742063616e6e6f74206265207a65726f00000000000000000000006044820152fd5b346100e4575f6003193601126100e45760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100e457565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f3a57604052565b67ffffffffffffffff8111610f3a57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156112bd57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9061132257508051156112fa57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611375575b611333575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561132b56fea26469706673582212205820754a04ca0b0a3942409cfe71d6906ffd4bbcc7ea28d600bd6aadded56c0764736f6c634300081a0033","sourceMap":"1218:3646:6:-:0;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;-1:-1:-1;;;;;1218:3646:6;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;1171:4:56;;1163:13;;8837:64:55;1218:3646:6;;;;;;7896:76:55;;-1:-1:-1;;;;;;;;;;;1218:3646:6;;7985:34:55;7981:146;;-1:-1:-1;;;;;;;1218:3646:6;;;;2527:65;1218:3646;;;2602:55;;1218:3646;2667:17;;1218:3646;;;;;;;;1163:13:56;1218:3646:6;;;;;;;;;;2527:65;1218:3646;;;;;;;;;;2602:55;1218:3646;;;;;;;;;;2667:17;1218:3646;;;;;;;;;;;7981:146:55;-1:-1:-1;;;;;;1218:3646:6;-1:-1:-1;;;;;1218:3646:6;;;8837:64:55;1218:3646:6;;;;;;8087:29:55;;1218:3646:6;;8087:29:55;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:55;;-1:-1:-1;7938:23:55;1218:3646:6;-1:-1:-1;1218:3646:6;;;;;;-1:-1:-1;1218:3646:6;;;;;-1:-1:-1;1218:3646:6;;;;-1:-1:-1;;;;;1218:3646:6;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c908162efe0c3146110f757508063290ed22114610b6457806344dea5a714610b145780634f1ef2861461067557806352d1902d146105d65780637a9e5e4b146104ff5780638fb360371461046c578063ad3cb1cc146103d8578063bf7e214f14610386578063c4d66de8146100e85763f1bdc45214610094575f80fd5b346100e4575f6003193601126100e457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100e45760206003193601126100e457610101611145565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161037e575b6001149081610374575b15908161036b575b5061034357818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556102ee575b506101c461128e565b6101cc61128e565b6101d461128e565b6101dc61128e565b6101e5816111e3565b6101ed61128e565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561025b57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101bb565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610152565b303b15915061014a565b849150610140565b346100e4575f6003193601126100e457602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100e4575f6003193601126100e45760408051906103f78183611168565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b346100e4575f6003193601126100e4577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156104f75760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6104cd565b346100e45760206003193601126100e457610518611145565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036105aa57803b1561056857610566906111e3565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100e4575f6003193601126100e45773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361064d5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60406003193601126100e457610689611145565b6024359067ffffffffffffffff82116100e457366023830112156100e4578160040135906106b6826111a9565b916106c46040519384611168565b808352602083019336602483830101116100e457815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610ad2575b5061064d576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610ac7575f91610a7a575b50156109f65773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f91816109c2575b5061083557847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8692036109975750823b1561096c57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561093a575f8091610566945190845af43d15610932573d91610916836111a9565b926109246040519485611168565b83523d5f602085013e6112e5565b6060916112e5565b5050503461094457005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d6020116109ee575b816109de60209383611168565b810103126100e457519086610804565b3d91506109d1565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610abf575b81610a9560409383611168565b810103126100e45780519081151582036100e4576020015163ffffffff8116036100e457846107af565b3d9150610a88565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610729565b346100e4575f6003193601126100e457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100e45760a06003193601126100e45760043560243573ffffffffffffffffffffffffffffffffffffffff81168091036100e4576044359073ffffffffffffffffffffffffffffffffffffffff82168092036100e4576064359267ffffffffffffffff84116100e457366023850112156100e45783600401359067ffffffffffffffff82116100e4573660248360051b870101116100e4576084359467ffffffffffffffff86116100e457366023870112156100e457856004013567ffffffffffffffff81116100e45736602482890101116100e457821561109957851561103b578315610fdd57959273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016966040519485927f3f5d1b6f0000000000000000000000000000000000000000000000000000000084528060a4850187600487015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248701528b604487015260a0606487015252602460c485019501905f905b808210610f9d57505050837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f846020979560248896600319888c9a0301608489015282875201878601375f8682860101520116010301815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1918215610ac7575f92610f67575b505f80956064604051809881937f9f7434f40000000000000000000000000000000000000000000000000000000083528760048401528860248401528960448401525af1948515610ac7575f95610e79575b507f8cd9a647baec62fb1bd2494f394b09cfbf79545a0b3ba82a6ce7b934fc4077899160409182519182526020820152a36040518091602082016020835281518091526020604084019201905f5b818110610e60575050500390f35b8251845285945060209384019390920191600101610e52565b9094503d805f833e610e8b8183611168565b8101906020818303126100e45780519067ffffffffffffffff82116100e457019080601f830112156100e45781519167ffffffffffffffff8311610f3a578260051b9060405193610edf6020840186611168565b84526020808501928201019283116100e457602001905b828210610f2a5750919591507f8cd9a647baec62fb1bd2494f394b09cfbf79545a0b3ba82a6ce7b934fc4077899050610e04565b8151815260209182019101610ef6565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b9491506020853d602011610f95575b81610f8360209383611168565b810103126100e457935190935f610db2565b3d9150610f76565b9195909293945085359073ffffffffffffffffffffffffffffffffffffffff82168092036100e45760208160019382935201960192018794939291610d11565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f506172746965732063616e6e6f7420626520656d7074790000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f506f6c69637920616464726573732063616e6e6f74206265207a65726f0000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f416d6f756e742063616e6e6f74206265207a65726f00000000000000000000006044820152fd5b346100e4575f6003193601126100e45760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100e457565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f3a57604052565b67ffffffffffffffff8111610f3a57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156112bd57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9061132257508051156112fa57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611375575b611333575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561132b56fea26469706673582212205820754a04ca0b0a3942409cfe71d6906ffd4bbcc7ea28d600bd6aadded56c0764736f6c634300081a0033","sourceMap":"1218:3646:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;;;;1414:59;1218:3646;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;;:::i;:::-;8837:64:55;1218:3646:6;;;;;;4301:16:55;1218:3646:6;;;;4726:16:55;;:34;;;;1218:3646:6;4805:1:55;4790:16;:50;;;;1218:3646:6;4855:13:55;:30;;;;1218:3646:6;4851:91:55;;;1218:3646:6;;4805:1:55;1218:3646:6;;;;;8837:64:55;1218:3646:6;4979:67:55;;1218:3646:6;6893:76:55;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:54;;;:::i;:::-;6893:76:55;;:::i;:::-;1218:3646:6;;3295:62:102;1218:3646:6;;;3295:62:102;1218:3646:6;5066:101:55;;1218:3646:6;5066:101:55;1218:3646:6;8837:64:55;1218:3646:6;;8837:64:55;1218:3646:6;5142:14:55;1218:3646:6;;;4805:1:55;1218:3646:6;;5142:14:55;1218:3646:6;4979:67:55;1218:3646:6;;;;8837:64:55;1218:3646:6;4979:67:55;;;4851:91;4908:23;1218:3646:6;4908:23:55;1218:3646:6;;4908:23:55;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:55;;4726:34;;;-1:-1:-1;4726:34:55;;1218:3646:6;;;;;-1:-1:-1;;1218:3646:6;;;;;;;1782:71:54;1218:3646:6;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;1782:71:54;1218:3646:6;;;;;4698:71:54;;;1218:3646:6;;4698:71:54;1218:3646:6;;;;;;;;4698:71:54;1218:3646:6;;4698:71:54;;1218:3646:6;;;;;-1:-1:-1;;1218:3646:6;;;;;;;:::i;:::-;;1782:71:54;1218:3646:6;;966:10:57;4258:21:54;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;1218:3646:6;4355:110:54;1218:3646:6;4411:43:54;;1218:3646:6;4411:43:54;1218:3646:6;;;;;4411:43:54;4254:92;4302:33;1218:3646:6;4302:33:54;966:10:57;1218:3646:6;;;;4302:33:54;1218:3646:6;;;;;-1:-1:-1;;1218:3646:6;;;;;;5115:6:56;1218:3646:6;5106:4:56;5098:23;5094:145;;1218:3646:6;;;811:66:68;1218:3646:6;;;5094:145:56;5199:29;1218:3646:6;5199:29:56;1218:3646:6;;5199:29:56;1218:3646:6;;-1:-1:-1;;1218:3646:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:56;1218:3646:6;4683:4:56;;4675:23;:120;;;;;1218:3646:6;4658:251:56;;;3058:30:102;1218:3646:6;;3295:62:102;1218:3646:6;;;;3058:30:102;;;;1218:3646:6;3058:30:102;;1218:3646:6;;3058:30:102;;1218:3646:6;1893:10:102;1218:3646:6;;;;3058:30:102;;;;;;;1218:3646:6;3058:30:102;;;1218:3646:6;1869:35:102;;1865:140;;1218:3646:6;;;;;;;6156:52:56;;1218:3646:6;6156:52:56;1218:3646:6;6156:52:56;;;;1218:3646:6;;6156:52:56;;;1218:3646:6;-1:-1:-1;6152:437:56;;6518:60;;1218:3646:6;6518:60:56;1218:3646:6;;;;6518:60:56;6152:437;6250:40;811:66:68;6250:40:56;;;6246:120;;1748:29:68;;;:34;1744:119;;1218:3646:6;;811:66:68;1218:3646:6;;;811:66:68;1218:3646:6;2407:36:68;1218:3646:6;2407:36:68;;1218:3646:6;;2458:15:68;:11;;1218:3646:6;4049:25:75;;4091:55;4049:25;;;;;;1218:3646:6;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4091:55:75;:::i;1218:3646:6:-;;;4091:55:75;:::i;2454:148:68:-;6163:9;;;;6159:70;;1218:3646:6;6159:70:68;6199:19;1218:3646:6;6199:19:68;1218:3646:6;;6199:19:68;1744:119;1805:47;1218:3646:6;1805:47:68;1218:3646:6;;;;1805:47:68;6246:120:56;6317:34;1218:3646:6;6317:34:56;1218:3646:6;;;;6317:34:56;6156:52;;;;1218:3646:6;6156:52:56;;1218:3646:6;6156:52:56;;;;;;1218:3646:6;6156:52:56;;;:::i;:::-;;;1218:3646:6;;;;;6156:52:56;;;;;;;-1:-1:-1;6156:52:56;;1865:140:102;1927:67;1218:3646:6;;1927:67:102;;;1218:3646:6;;1927:67:102;;520:1:100;1218:3646:6;;520:1:100;;1218:3646:6;520:1:100;3058:30:102;1218:3646:6;;520:1:100;;;;;;1927:67:102;3058:30;;;1218:3646:6;3058:30:102;;1218:3646:6;3058:30:102;;;;;;1218:3646:6;3058:30:102;;;:::i;:::-;;;1218:3646:6;;;;;;;;;;;;;;;;;;;;;;;3058:30:102;;;;;;-1:-1:-1;3058:30:102;;;1218:3646:6;;;;;;;;;4675:120:56;1218:3646:6;;;811:66:68;1218:3646:6;;4753:42:56;;4675:120;;;1218:3646:6;;;;;-1:-1:-1;;1218:3646:6;;;;;;;;;1669:27;1218:3646;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3796:10;;1218:3646;;3850:27;;1218:3646;;3929:18;;1218:3646;;4052:21;;1218:3646;4052:21;1218:3646;;;;4178:77;;;1218:3646;4178:77;;1218:3646;;;;4178:77;1218:3646;4178:77;;1218:3646;;4013:3;1218:3646;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;;;;;;;;;;;;;;;;;;;;;;4178:77;;:17;1218:3646;;4178:17;1218:3646;4178:77;;;;;;;1218:3646;4178:77;;;1218:3646;;;;;;;;4297:66;;;;1218:3646;4297:66;;;1218:3646;4297:66;;1218:3646;;;;;;;;;;;4297:66;;;;;;;1218:3646;4297:66;;;1218:3646;;4378:60;1218:3646;;;;;;;;;;;;4378:60;1218:3646;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1218:3646:6;;;;;;;;;;;;;4297:66;;;;;;1218:3646;4297:66;;;;;;:::i;:::-;;;1218:3646;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4297:66:6;;;-1:-1:-1;4378:60:6;;-1:-1:-1;4297:66:6;;1218:3646;;;;;;;;;;;;;;;;;;;;;;;4178:77;;;;1218:3646;4178:77;;1218:3646;4178:77;;;;;;1218:3646;4178:77;;;:::i;:::-;;;1218:3646;;;;;;4178:77;;1218:3646;4178:77;;;;;-1:-1:-1;4178:77:6;;1218:3646;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;1545:52;1218:3646;1545:52;1218:3646;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;4964:220:54:-;1218:3646:6;;5147:30:54;4964:220;1218:3646:6;;;1782:71:54;1218:3646:6;;;1782:71:54;1218:3646:6;;;;;;5147:30:54;4964:220::o;7084:141:55:-;1218:3646:6;8837:64:55;1218:3646:6;;;;7150:18:55;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:55;;-1:-1:-1;7191:17:55;4421:582:75;;4593:8;;-1:-1:-1;1218:3646:6;;5674:21:75;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;1218:3646:6;;4841:22:75;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;1218:3646:6;4917:24:75;;4862:1;4917:24;1218:3646:6;4917:24:75;1218:3646:6;;4862:1:75;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"1120":[{"start":192,"length":32},{"start":3174,"length":32}],"1124":[{"start":3458,"length":32},{"start":4385,"length":32}],"1128":[{"start":2880,"length":32},{"start":3282,"length":32}],"43541":[{"start":1533,"length":32},{"start":1790,"length":32}]}},"methodIdentifiers":{"AGREEMENT_MANAGER()":"00efe0c3","MMC()":"44dea5a7","RIGHTS_POLICY_MANAGER()":"f1bdc452","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","proxiableUUID()":"52d1902d","registerAccessAgreement(uint256,address,address,address[],bytes)":"290ed221","setAuthority(address)":"7a9e5e4b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightsPolicyManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"agreementManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"mmc\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"policyAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"AccessAgreementCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"AGREEMENT_MANAGER\",\"outputs\":[{\"internalType\":\"contract IAgreementManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MMC\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_MANAGER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"policyAddress\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"registerAccessAgreement\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract provides a unified interface to interact with multiple core protocol components involved in access and policy management.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AccessAgreementCreated(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"The amount of MMC tokens used in the agreement.\",\"holder\":\"The address of the rights holder.\",\"policyAddress\":\"The address of the registered policy.\",\"proof\":\"The unique identifier of the agreement.\"}},\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"registerAccessAgreement(uint256,address,address,address[],bytes)\":{\"details\":\"Encapsulates agreement creation and access policy registration into one cohesive workflow.\",\"params\":{\"amount\":\"The amount of MMC tokens to be used in the agreement.\",\"holder\":\"The address of the rights holder.\",\"parties\":\"An array of addresses representing the parties involved in the agreement.\",\"payload\":\"Additional data required for the agreement creation.\",\"policyAddress\":\"The address of the policy contract being used.\"},\"returns\":{\"_0\":\"attestationIds An array of registered attestations under the agreement.\"}},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"AGREEMENT_MANAGER\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"MMC\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"RIGHTS_POLICY_MANAGER\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"title\":\"AccessWorkflow\",\"version\":1},\"userdoc\":{\"events\":{\"AccessAgreementCreated(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a policy agreement workflow is successfully completed.\"}},\"kind\":\"user\",\"methods\":{\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"},\"registerAccessAgreement(uint256,address,address,address[],bytes)\":{\"notice\":\"Creates and registers a new access agreement in a single transaction.\"}},\"notice\":\"Handles comprehensive workflows for access management, including agreement creation, policy registration, and related operations.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/facades/AccessWorkflow.sol\":\"AccessWorkflow\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/facades/AccessWorkflow.sol\":{\"keccak256\":\"0x7307825991759923678ba86a8ce58e6522e2b13c44db19ebb4574aeef8417508\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df7e3bcf83697db234dcc22b9b13b7ac653b2e87ad1cb70a772f417cc59fd0a8\",\"dweb:/ipfs/QmTVJo6Q4QnUtbu97uE531EjZLUZoVsRnZTKYgiwKUMe3T\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/financial/IAgreementManager.sol\":{\"keccak256\":\"0xd6e6eecd11819f0031962e653d55ad529f616f0e4b57751623c2c7481bc4fa67\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cfe472eae18ebebe8bdb62247dd951143742b963c196d863173d431a27e175ff\",\"dweb:/ipfs/QmTMYXFTcLvim8KS3wwc15uwCDjjWXhDCcdmPQPWnq4qGk\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405\",\"dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol\":{\"keccak256\":\"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6\",\"dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu\"]},\"node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol\":{\"keccak256\":\"0x562c5b305577ec5b57c5fba5df98afdaba99d7871772962502e0959852e92215\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d37937cd5fe0432f714aebba49d342dab1e9577c9d1edc3fe568a02e636e1a3d\",\"dweb:/ipfs/QmVteEKdVkvwKKEHyweJWbns75LU3jsqrQtAhcHY7eTwhX\"]},\"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol\":{\"keccak256\":\"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2\",\"dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf\",\"dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe\"]},\"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"rightsPolicyManager","type":"address"},{"internalType":"address","name":"agreementManager","type":"address"},{"internalType":"address","name":"mmc","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"holder","type":"address","indexed":true},{"internalType":"address","name":"policyAddress","type":"address","indexed":true},{"internalType":"uint256","name":"proof","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"AccessAgreementCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"AGREEMENT_MANAGER","outputs":[{"internalType":"contract IAgreementManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MMC","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_POLICY_MANAGER","outputs":[{"internalType":"contract IRightsPolicyManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"policyAddress","type":"address"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerAccessAgreement","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"registerAccessAgreement(uint256,address,address,address[],bytes)":{"details":"Encapsulates agreement creation and access policy registration into one cohesive workflow.","params":{"amount":"The amount of MMC tokens to be used in the agreement.","holder":"The address of the rights holder.","parties":"An array of addresses representing the parties involved in the agreement.","payload":"Additional data required for the agreement creation.","policyAddress":"The address of the policy contract being used."},"returns":{"_0":"attestationIds An array of registered attestations under the agreement."}},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"initialize(address)":{"notice":"Initializes the proxy state."},"registerAccessAgreement(uint256,address,address,address[],bytes)":{"notice":"Creates and registers a new access agreement in a single transaction."}},"version":1}},"settings":{"remappings":["@account-abstraction/=node_modules/@account-abstraction/","@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=node_modules/@synaps3/types/contracts/","@uniswap/=node_modules/@uniswap/","base64-sol/=node_modules/base64-sol/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/facades/AccessWorkflow.sol":"AccessWorkflow"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/facades/AccessWorkflow.sol":{"keccak256":"0x7307825991759923678ba86a8ce58e6522e2b13c44db19ebb4574aeef8417508","urls":["bzz-raw://df7e3bcf83697db234dcc22b9b13b7ac653b2e87ad1cb70a772f417cc59fd0a8","dweb:/ipfs/QmTVJo6Q4QnUtbu97uE531EjZLUZoVsRnZTKYgiwKUMe3T"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/financial/IAgreementManager.sol":{"keccak256":"0xd6e6eecd11819f0031962e653d55ad529f616f0e4b57751623c2c7481bc4fa67","urls":["bzz-raw://cfe472eae18ebebe8bdb62247dd951143742b963c196d863173d431a27e175ff","dweb:/ipfs/QmTMYXFTcLvim8KS3wwc15uwCDjjWXhDCcdmPQPWnq4qGk"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol":{"keccak256":"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02","urls":["bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405","dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol":{"keccak256":"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e","urls":["bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6","dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol":{"keccak256":"0x562c5b305577ec5b57c5fba5df98afdaba99d7871772962502e0959852e92215","urls":["bzz-raw://d37937cd5fe0432f714aebba49d342dab1e9577c9d1edc3fe568a02e636e1a3d","dweb:/ipfs/QmVteEKdVkvwKKEHyweJWbns75LU3jsqrQtAhcHY7eTwhX"],"license":"GPL-3.0-or-later"},"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol":{"keccak256":"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411","urls":["bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2","dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Types.sol":{"keccak256":"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1","urls":["bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf","dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df","urls":["bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2","dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"contracts/facades/AccessWorkflow.sol","id":1289,"exportedSymbols":{"AccessControlledUpgradeable":[51361],"AccessWorkflow":[1288],"FinancialOps":[50725],"IAgreementManager":[50235],"IERC20":[44896],"IPolicy":[50308],"IRightsPolicyManager":[50447],"Initializable":[43521],"LoopOps":[50745],"T":[51233],"UUPSUpgradeable":[43703]},"nodeType":"SourceUnit","src":"32:4833:6","nodes":[{"id":1086,"nodeType":"PragmaDirective","src":"32:23:6","nodes":[],"literals":["solidity","0.8",".26"]},{"id":1088,"nodeType":"ImportDirective","src":"57:71:6","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol","file":"@openzeppelin/contracts/interfaces/IERC20.sol","nameLocation":"-1:-1:-1","scope":1289,"sourceUnit":44431,"symbolAliases":[{"foreign":{"id":1087,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44896,"src":"66:6:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1090,"nodeType":"ImportDirective","src":"129:98:6","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":1289,"sourceUnit":43522,"symbolAliases":[{"foreign":{"id":1089,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43521,"src":"138:13:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1092,"nodeType":"ImportDirective","src":"228:102:6","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":1289,"sourceUnit":43704,"symbolAliases":[{"foreign":{"id":1091,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43703,"src":"237:15:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1094,"nodeType":"ImportDirective","src":"331:115:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":1289,"sourceUnit":51362,"symbolAliases":[{"foreign":{"id":1093,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51361,"src":"340:27:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1096,"nodeType":"ImportDirective","src":"448:96:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol","file":"@synaps3/core/interfaces/rights/IRightsPolicyManager.sol","nameLocation":"-1:-1:-1","scope":1289,"sourceUnit":50448,"symbolAliases":[{"foreign":{"id":1095,"name":"IRightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50447,"src":"457:20:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1098,"nodeType":"ImportDirective","src":"545:72:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol","file":"@synaps3/core/libraries/FinancialOps.sol","nameLocation":"-1:-1:-1","scope":1289,"sourceUnit":50726,"symbolAliases":[{"foreign":{"id":1097,"name":"FinancialOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50725,"src":"554:12:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1100,"nodeType":"ImportDirective","src":"618:62:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol","file":"@synaps3/core/libraries/LoopOps.sol","nameLocation":"-1:-1:-1","scope":1289,"sourceUnit":50746,"symbolAliases":[{"foreign":{"id":1099,"name":"LoopOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50745,"src":"627:7:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1102,"nodeType":"ImportDirective","src":"681:93:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/financial/IAgreementManager.sol","file":"@synaps3/core/interfaces/financial/IAgreementManager.sol","nameLocation":"-1:-1:-1","scope":1289,"sourceUnit":50236,"symbolAliases":[{"foreign":{"id":1101,"name":"IAgreementManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50235,"src":"690:17:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1104,"nodeType":"ImportDirective","src":"775:72:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol","file":"@synaps3/core/interfaces/policies/IPolicy.sol","nameLocation":"-1:-1:-1","scope":1289,"sourceUnit":50309,"symbolAliases":[{"foreign":{"id":1103,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50308,"src":"784:7:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1106,"nodeType":"ImportDirective","src":"848:55:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/Types.sol","file":"@synaps3/core/primitives/Types.sol","nameLocation":"-1:-1:-1","scope":1289,"sourceUnit":51234,"symbolAliases":[{"foreign":{"id":1105,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51233,"src":"857:1:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1288,"nodeType":"ContractDefinition","src":"1218:3646:6","nodes":[{"id":1116,"nodeType":"UsingForDirective","src":"1311:31:6","nodes":[],"global":false,"libraryName":{"id":1114,"name":"FinancialOps","nameLocations":["1317:12:6"],"nodeType":"IdentifierPath","referencedDeclaration":50725,"src":"1317:12:6"},"typeName":{"id":1115,"name":"address","nodeType":"ElementaryTypeName","src":"1334:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":1120,"nodeType":"VariableDeclaration","src":"1414:59:6","nodes":[],"constant":false,"documentation":{"id":1117,"nodeType":"StructuredDocumentation","src":"1348:61:6","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"f1bdc452","mutability":"immutable","name":"RIGHTS_POLICY_MANAGER","nameLocation":"1452:21:6","scope":1288,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"},"typeName":{"id":1119,"nodeType":"UserDefinedTypeName","pathNode":{"id":1118,"name":"IRightsPolicyManager","nameLocations":["1414:20:6"],"nodeType":"IdentifierPath","referencedDeclaration":50447,"src":"1414:20:6"},"referencedDeclaration":50447,"src":"1414:20:6","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}},"visibility":"public"},{"id":1124,"nodeType":"VariableDeclaration","src":"1545:52:6","nodes":[],"constant":false,"documentation":{"id":1121,"nodeType":"StructuredDocumentation","src":"1479:61:6","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"00efe0c3","mutability":"immutable","name":"AGREEMENT_MANAGER","nameLocation":"1580:17:6","scope":1288,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAgreementManager_$50235","typeString":"contract IAgreementManager"},"typeName":{"id":1123,"nodeType":"UserDefinedTypeName","pathNode":{"id":1122,"name":"IAgreementManager","nameLocations":["1545:17:6"],"nodeType":"IdentifierPath","referencedDeclaration":50235,"src":"1545:17:6"},"referencedDeclaration":50235,"src":"1545:17:6","typeDescriptions":{"typeIdentifier":"t_contract$_IAgreementManager_$50235","typeString":"contract IAgreementManager"}},"visibility":"public"},{"id":1128,"nodeType":"VariableDeclaration","src":"1669:27:6","nodes":[],"constant":false,"documentation":{"id":1125,"nodeType":"StructuredDocumentation","src":"1603:61:6","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"44dea5a7","mutability":"immutable","name":"MMC","nameLocation":"1693:3:6","scope":1288,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$44896","typeString":"contract IERC20"},"typeName":{"id":1127,"nodeType":"UserDefinedTypeName","pathNode":{"id":1126,"name":"IERC20","nameLocations":["1669:6:6"],"nodeType":"IdentifierPath","referencedDeclaration":44896,"src":"1669:6:6"},"referencedDeclaration":44896,"src":"1669:6:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$44896","typeString":"contract IERC20"}},"visibility":"public"},{"id":1139,"nodeType":"EventDefinition","src":"2041:115:6","nodes":[],"anonymous":false,"documentation":{"id":1129,"nodeType":"StructuredDocumentation","src":"1703:333:6","text":"@notice Emitted when a policy agreement workflow is successfully completed.\n @param holder The address of the rights holder.\n @param policyAddress The address of the registered policy.\n @param proof The unique identifier of the agreement.\n @param amount The amount of MMC tokens used in the agreement."},"eventSelector":"8cd9a647baec62fb1bd2494f394b09cfbf79545a0b3ba82a6ce7b934fc407789","name":"AccessAgreementCreated","nameLocation":"2047:22:6","parameters":{"id":1138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1131,"indexed":true,"mutability":"mutable","name":"holder","nameLocation":"2086:6:6","nodeType":"VariableDeclaration","scope":1139,"src":"2070:22:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1130,"name":"address","nodeType":"ElementaryTypeName","src":"2070:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1133,"indexed":true,"mutability":"mutable","name":"policyAddress","nameLocation":"2110:13:6","nodeType":"VariableDeclaration","scope":1139,"src":"2094:29:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1132,"name":"address","nodeType":"ElementaryTypeName","src":"2094:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1135,"indexed":false,"mutability":"mutable","name":"proof","nameLocation":"2133:5:6","nodeType":"VariableDeclaration","scope":1139,"src":"2125:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1134,"name":"uint256","nodeType":"ElementaryTypeName","src":"2125:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1137,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2148:6:6","nodeType":"VariableDeclaration","scope":1139,"src":"2140:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1136,"name":"uint256","nodeType":"ElementaryTypeName","src":"2140:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2069:86:6"}},{"id":1171,"nodeType":"FunctionDefinition","src":"2215:476:6","nodes":[],"body":{"id":1170,"nodeType":"Block","src":"2295:396:6","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1149,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43489,"src":"2495:20:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2495:22:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1151,"nodeType":"ExpressionStatement","src":"2495:22:6"},{"expression":{"id":1156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1152,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1120,"src":"2527:21:6","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1154,"name":"rightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1142,"src":"2572:19:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1153,"name":"IRightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50447,"src":"2551:20:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRightsPolicyManager_$50447_$","typeString":"type(contract IRightsPolicyManager)"}},"id":1155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2551:41:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}},"src":"2527:65:6","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}},"id":1157,"nodeType":"ExpressionStatement","src":"2527:65:6"},{"expression":{"id":1162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1158,"name":"AGREEMENT_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1124,"src":"2602:17:6","typeDescriptions":{"typeIdentifier":"t_contract$_IAgreementManager_$50235","typeString":"contract IAgreementManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1160,"name":"agreementManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1144,"src":"2640:16:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1159,"name":"IAgreementManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50235,"src":"2622:17:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAgreementManager_$50235_$","typeString":"type(contract IAgreementManager)"}},"id":1161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2622:35:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAgreementManager_$50235","typeString":"contract IAgreementManager"}},"src":"2602:55:6","typeDescriptions":{"typeIdentifier":"t_contract$_IAgreementManager_$50235","typeString":"contract IAgreementManager"}},"id":1163,"nodeType":"ExpressionStatement","src":"2602:55:6"},{"expression":{"id":1168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1164,"name":"MMC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1128,"src":"2667:3:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$44896","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1166,"name":"mmc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1146,"src":"2680:3:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1165,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44896,"src":"2673:6:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$44896_$","typeString":"type(contract IERC20)"}},"id":1167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2673:11:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$44896","typeString":"contract IERC20"}},"src":"2667:17:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$44896","typeString":"contract IERC20"}},"id":1169,"nodeType":"ExpressionStatement","src":"2667:17:6"}]},"documentation":{"id":1140,"nodeType":"StructuredDocumentation","src":"2162:48:6","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":1147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1142,"mutability":"mutable","name":"rightsPolicyManager","nameLocation":"2235:19:6","nodeType":"VariableDeclaration","scope":1171,"src":"2227:27:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1141,"name":"address","nodeType":"ElementaryTypeName","src":"2227:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1144,"mutability":"mutable","name":"agreementManager","nameLocation":"2264:16:6","nodeType":"VariableDeclaration","scope":1171,"src":"2256:24:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1143,"name":"address","nodeType":"ElementaryTypeName","src":"2256:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1146,"mutability":"mutable","name":"mmc","nameLocation":"2290:3:6","nodeType":"VariableDeclaration","scope":1171,"src":"2282:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1145,"name":"address","nodeType":"ElementaryTypeName","src":"2282:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2226:68:6"},"returnParameters":{"id":1148,"nodeType":"ParameterList","parameters":[],"src":"2295:0:6"},"scope":1288,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1187,"nodeType":"FunctionDefinition","src":"2742:151:6","nodes":[],"body":{"id":1186,"nodeType":"Block","src":"2804:89:6","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1179,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43575,"src":"2814:22:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2814:24:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1181,"nodeType":"ExpressionStatement","src":"2814:24:6"},{"expression":{"arguments":[{"id":1183,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1174,"src":"2872:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1182,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51296,"src":"2848:23:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2848:38:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1185,"nodeType":"ExpressionStatement","src":"2848:38:6"}]},"documentation":{"id":1172,"nodeType":"StructuredDocumentation","src":"2697:40:6","text":"@notice Initializes the proxy state."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":1177,"kind":"modifierInvocation","modifierName":{"id":1176,"name":"initializer","nameLocations":["2792:11:6"],"nodeType":"IdentifierPath","referencedDeclaration":43375,"src":"2792:11:6"},"nodeType":"ModifierInvocation","src":"2792:11:6"}],"name":"initialize","nameLocation":"2751:10:6","parameters":{"id":1175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1174,"mutability":"mutable","name":"accessManager","nameLocation":"2770:13:6","nodeType":"VariableDeclaration","scope":1187,"src":"2762:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1173,"name":"address","nodeType":"ElementaryTypeName","src":"2762:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2761:23:6"},"returnParameters":{"id":1178,"nodeType":"ParameterList","parameters":[],"src":"2804:0:6"},"scope":1288,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1277,"nodeType":"FunctionDefinition","src":"3558:916:6","nodes":[],"body":{"id":1276,"nodeType":"Block","src":"3778:696:6","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1206,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"3796:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3805:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3796:10:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416d6f756e742063616e6e6f74206265207a65726f","id":1209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3808:23:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_8beea76deddeff1012d90e1e8da369393f885b0575eb094a33da9912cc4bbb8b","typeString":"literal_string \"Amount cannot be zero\""},"value":"Amount cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8beea76deddeff1012d90e1e8da369393f885b0575eb094a33da9912cc4bbb8b","typeString":"literal_string \"Amount cannot be zero\""}],"id":1205,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3788:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3788:44:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1211,"nodeType":"ExpressionStatement","src":"3788:44:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1213,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1194,"src":"3850:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3875:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3867:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1214,"name":"address","nodeType":"ElementaryTypeName","src":"3867:7:6","typeDescriptions":{}}},"id":1217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3867:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3850:27:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"506f6c69637920616464726573732063616e6e6f74206265207a65726f","id":1219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3879:31:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a6661da13a8d67bc98e42ccc9fa9bc111e1eed8bd8a52fe22b2daae01e33d93","typeString":"literal_string \"Policy address cannot be zero\""},"value":"Policy address cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8a6661da13a8d67bc98e42ccc9fa9bc111e1eed8bd8a52fe22b2daae01e33d93","typeString":"literal_string \"Policy address cannot be zero\""}],"id":1212,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3842:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3842:69:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1221,"nodeType":"ExpressionStatement","src":"3842:69:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1223,"name":"parties","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1197,"src":"3929:7:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3937:6:6","memberName":"length","nodeType":"MemberAccess","src":"3929:14:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3946:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3929:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"506172746965732063616e6e6f7420626520656d707479","id":1227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3949:25:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_d35ccab2b07909e583991ce966a16acaa97b44c1d919c7f20eecf9f30f3804ae","typeString":"literal_string \"Parties cannot be empty\""},"value":"Parties cannot be empty"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d35ccab2b07909e583991ce966a16acaa97b44c1d919c7f20eecf9f30f3804ae","typeString":"literal_string \"Parties cannot be empty\""}],"id":1222,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3921:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3921:54:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1229,"nodeType":"ExpressionStatement","src":"3921:54:6"},{"assignments":[1231],"declarations":[{"constant":false,"id":1231,"mutability":"mutable","name":"currency","nameLocation":"3994:8:6","nodeType":"VariableDeclaration","scope":1276,"src":"3986:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1230,"name":"address","nodeType":"ElementaryTypeName","src":"3986:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1236,"initialValue":{"arguments":[{"id":1234,"name":"MMC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1128,"src":"4013:3:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$44896","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$44896","typeString":"contract IERC20"}],"id":1233,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4005:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1232,"name":"address","nodeType":"ElementaryTypeName","src":"4005:7:6","typeDescriptions":{}}},"id":1235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4005:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3986:31:6"},{"assignments":[1238],"declarations":[{"constant":false,"id":1238,"mutability":"mutable","name":"broker","nameLocation":"4035:6:6","nodeType":"VariableDeclaration","scope":1276,"src":"4027:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1237,"name":"address","nodeType":"ElementaryTypeName","src":"4027:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1243,"initialValue":{"arguments":[{"id":1241,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1120,"src":"4052:21:6","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}],"id":1240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4044:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1239,"name":"address","nodeType":"ElementaryTypeName","src":"4044:7:6","typeDescriptions":{}}},"id":1242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4044:30:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4027:47:6"},{"assignments":[1245],"declarations":[{"constant":false,"id":1245,"mutability":"mutable","name":"proof","nameLocation":"4170:5:6","nodeType":"VariableDeclaration","scope":1276,"src":"4162:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1244,"name":"uint256","nodeType":"ElementaryTypeName","src":"4162:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1254,"initialValue":{"arguments":[{"id":1248,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"4212:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1249,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1231,"src":"4220:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1250,"name":"broker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1238,"src":"4230:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1251,"name":"parties","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1197,"src":"4238:7:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":1252,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1199,"src":"4247:7:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":1246,"name":"AGREEMENT_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1124,"src":"4178:17:6","typeDescriptions":{"typeIdentifier":"t_contract$_IAgreementManager_$50235","typeString":"contract IAgreementManager"}},"id":1247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4196:15:6","memberName":"createAgreement","nodeType":"MemberAccess","referencedDeclaration":50216,"src":"4178:33:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,address,address,address[] memory,bytes memory) external returns (uint256)"}},"id":1253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4178:77:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4162:93:6"},{"assignments":[1259],"declarations":[{"constant":false,"id":1259,"mutability":"mutable","name":"attestations","nameLocation":"4282:12:6","nodeType":"VariableDeclaration","scope":1276,"src":"4265:29:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1257,"name":"uint256","nodeType":"ElementaryTypeName","src":"4265:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1258,"nodeType":"ArrayTypeName","src":"4265:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":1266,"initialValue":{"arguments":[{"id":1262,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1245,"src":"4334:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1263,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1192,"src":"4341:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1264,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1194,"src":"4349:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1260,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1120,"src":"4297:21:6","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}},"id":1261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4319:14:6","memberName":"registerPolicy","nodeType":"MemberAccess","referencedDeclaration":50446,"src":"4297:36:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256,address,address) external returns (uint256[] memory)"}},"id":1265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4297:66:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4265:98:6"},{"eventCall":{"arguments":[{"id":1268,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1192,"src":"4401:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1269,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1194,"src":"4409:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1270,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1245,"src":"4424:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1271,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"4431:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1267,"name":"AccessAgreementCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1139,"src":"4378:22:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":1272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4378:60:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1273,"nodeType":"EmitStatement","src":"4373:65:6"},{"expression":{"id":1274,"name":"attestations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"4455:12:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":1204,"id":1275,"nodeType":"Return","src":"4448:19:6"}]},"documentation":{"id":1188,"nodeType":"StructuredDocumentation","src":"2899:654:6","text":"@notice Creates and registers a new access agreement in a single transaction.\n @dev Encapsulates agreement creation and access policy registration into one cohesive workflow.\n @param amount The amount of MMC tokens to be used in the agreement.\n @param holder The address of the rights holder.\n @param policyAddress The address of the policy contract being used.\n @param parties An array of addresses representing the parties involved in the agreement.\n @param payload Additional data required for the agreement creation.\n @return attestationIds An array of registered attestations under the agreement."},"functionSelector":"290ed221","implemented":true,"kind":"function","modifiers":[],"name":"registerAccessAgreement","nameLocation":"3567:23:6","parameters":{"id":1200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1190,"mutability":"mutable","name":"amount","nameLocation":"3608:6:6","nodeType":"VariableDeclaration","scope":1277,"src":"3600:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1189,"name":"uint256","nodeType":"ElementaryTypeName","src":"3600:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1192,"mutability":"mutable","name":"holder","nameLocation":"3632:6:6","nodeType":"VariableDeclaration","scope":1277,"src":"3624:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1191,"name":"address","nodeType":"ElementaryTypeName","src":"3624:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1194,"mutability":"mutable","name":"policyAddress","nameLocation":"3656:13:6","nodeType":"VariableDeclaration","scope":1277,"src":"3648:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1193,"name":"address","nodeType":"ElementaryTypeName","src":"3648:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1197,"mutability":"mutable","name":"parties","nameLocation":"3698:7:6","nodeType":"VariableDeclaration","scope":1277,"src":"3679:26:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1195,"name":"address","nodeType":"ElementaryTypeName","src":"3679:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1196,"nodeType":"ArrayTypeName","src":"3679:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1199,"mutability":"mutable","name":"payload","nameLocation":"3730:7:6","nodeType":"VariableDeclaration","scope":1277,"src":"3715:22:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1198,"name":"bytes","nodeType":"ElementaryTypeName","src":"3715:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3590:153:6"},"returnParameters":{"id":1204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1203,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1277,"src":"3760:16:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1201,"name":"uint256","nodeType":"ElementaryTypeName","src":"3760:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1202,"nodeType":"ArrayTypeName","src":"3760:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"3759:18:6"},"scope":1288,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1287,"nodeType":"FunctionDefinition","src":"4778:84:6","nodes":[],"body":{"id":1286,"nodeType":"Block","src":"4860:2:6","nodes":[],"statements":[]},"baseFunctions":[43657],"documentation":{"id":1278,"nodeType":"StructuredDocumentation","src":"4480:293:6","text":"@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-"},"implemented":true,"kind":"function","modifiers":[{"id":1284,"kind":"modifierInvocation","modifierName":{"id":1283,"name":"onlyAdmin","nameLocations":["4850:9:6"],"nodeType":"IdentifierPath","referencedDeclaration":51279,"src":"4850:9:6"},"nodeType":"ModifierInvocation","src":"4850:9:6"}],"name":"_authorizeUpgrade","nameLocation":"4787:17:6","overrides":{"id":1282,"nodeType":"OverrideSpecifier","overrides":[],"src":"4841:8:6"},"parameters":{"id":1281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1280,"mutability":"mutable","name":"newImplementation","nameLocation":"4813:17:6","nodeType":"VariableDeclaration","scope":1287,"src":"4805:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1279,"name":"address","nodeType":"ElementaryTypeName","src":"4805:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4804:27:6"},"returnParameters":{"id":1285,"nodeType":"ParameterList","parameters":[],"src":"4860:0:6"},"scope":1288,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":1108,"name":"Initializable","nameLocations":["1245:13:6"],"nodeType":"IdentifierPath","referencedDeclaration":43521,"src":"1245:13:6"},"id":1109,"nodeType":"InheritanceSpecifier","src":"1245:13:6"},{"baseName":{"id":1110,"name":"UUPSUpgradeable","nameLocations":["1260:15:6"],"nodeType":"IdentifierPath","referencedDeclaration":43703,"src":"1260:15:6"},"id":1111,"nodeType":"InheritanceSpecifier","src":"1260:15:6"},{"baseName":{"id":1112,"name":"AccessControlledUpgradeable","nameLocations":["1277:27:6"],"nodeType":"IdentifierPath","referencedDeclaration":51361,"src":"1277:27:6"},"id":1113,"nodeType":"InheritanceSpecifier","src":"1277:27:6"}],"canonicalName":"AccessWorkflow","contractDependencies":[],"contractKind":"contract","documentation":{"id":1107,"nodeType":"StructuredDocumentation","src":"905:313:6","text":"@title AccessWorkflow\n @notice Handles comprehensive workflows for access management, including agreement creation, policy registration, and related operations.\n @dev This contract provides a unified interface to interact with multiple core protocol components involved in access and policy management."},"fullyImplemented":true,"linearizedBaseContracts":[1288,51361,43267,43871,43749,43703,44440,43521],"name":"AccessWorkflow","nameLocation":"1227:14:6","scope":1289,"usedErrors":[43284,43287,43548,43553,43842,43848,43852,44498,44511,45462,45724,51261],"usedEvents":[1139,43292,43838,44413]}],"license":"MIT"},"id":6} \ No newline at end of file diff --git a/src/config/abi/AgreementPortal.json b/src/config/abi/AgreementPortal.json deleted file mode 100644 index ded053270..000000000 --- a/src/config/abi/AgreementPortal.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"rightsPolicyManager","type":"address","internalType":"address"},{"name":"rightsAgreement","type":"address","internalType":"address"},{"name":"mmc","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"MMC","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"RIGHTS_AGREEMENT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsAccessAgreement"}],"stateMutability":"view"},{"type":"function","name":"RIGHTS_POLICY_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsPolicyManager"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"flashPolicyAgreement","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"holder","type":"address","internalType":"address"},{"name":"policyAddress","type":"address","internalType":"address"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailDuringDeposit","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x6101003461018b57601f61189f38819003918201601f19168301916001600160401b0383118484101761018f5780849260609460405283398101031261018b57610048816101a3565b90610061604061005a602084016101a3565b92016101a3565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c1661017c576002600160401b03196001600160401b03821601610113575b506001600160a01b0390811660a05290811660c0521660e0526040516116e790816101b882396080518181816105fb015261074c015260a05181818160be0152610cd6015260c05181818161069f0152610d1c015260e051818181610b8e0152610c9e0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f6100ac565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361018b5756fe60806040526004361015610011575f80fd5b5f3560e01c8063445b562a14610bb257806344dea5a714610b625780634f1ef286146106c35780634f622ffe1461067357806352d1902d146105d45780637a9e5e4b146104fd5780638fb360371461046a578063ad3cb1cc146103d6578063bf7e214f14610384578063c4d66de8146100e65763f1bdc45214610092575f80fd5b346100e2575f6003193601126100e257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100e25760206003193601126100e2576100ff611141565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161037c575b6001149081610372575b159081610369575b5061034157818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556102ec575b506101c261153a565b6101ca61153a565b6101d261153a565b6101da61153a565b6101e3816113d6565b6101eb61153a565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561025957005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101b9565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610150565b303b159150610148565b84915061013e565b346100e2575f6003193601126100e257602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100e2575f6003193601126100e25760408051906103f58183611164565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b346100e2575f6003193601126100e2577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156104f55760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6104cb565b346100e25760206003193601126100e257610516611141565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036105a857803b1561056657610564906113d6565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100e2575f6003193601126100e25773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361064b5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b346100e2575f6003193601126100e257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b60406003193601126100e2576106d7611141565b6024359067ffffffffffffffff82116100e257366023830112156100e257816004013590610704826111d2565b916107126040519384611164565b808352602083019336602483830101116100e257815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610b20575b5061064b576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610b15575f91610ac8575b5015610a445773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610a10575b5061088357847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8692036109e55750823b156109ba57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610988575f8091610564945190845af43d15610980573d91610964836111d2565b926109726040519485611164565b83523d5f602085013e611618565b606091611618565b5050503461099257005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610a3c575b81610a2c60209383611164565b810103126100e257519086610852565b3d9150610a1f565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610b0d575b81610ae360409383611164565b810103126100e25780519081151582036100e2576020015163ffffffff8116036100e257846107fd565b3d9150610ad6565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610777565b346100e2575f6003193601126100e257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100e25760a06003193601126100e25760243573ffffffffffffffffffffffffffffffffffffffff81168091036100e2576044359073ffffffffffffffffffffffffffffffffffffffff82168092036100e2576064359067ffffffffffffffff82116100e257366023830112156100e25781600401359167ffffffffffffffff83116100e2573660248460051b830101116100e2576084359267ffffffffffffffff84116100e257366023850112156100e25783600401359167ffffffffffffffff83116100e25736602484870101116100e25773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001695610d04856004353361120c565b9373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169486158015611139575b6110b6576040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff87166024820152906020826044818b5afa918215610b15575f92611082575b5080820180921161105557829160205f60405192828401907f095ea7b30000000000000000000000000000000000000000000000000000000082528b6024860152604485015260448452610dff606485611164565b835190828d5af15f513d82611039575b505015610fdc575b5096949392916040519788967f3f5d1b6f00000000000000000000000000000000000000000000000000000000885260a4880191600489015260248801528a604488015260a0606488015252602460c486019401905f905b808210610f9c57505050602084847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f86849760245f98600319888a9f9d030160848901528287520187860137868682860101520116010301925af1908115610b15575f91610f69575b506064905f60209460405196879586947f9f7434f40000000000000000000000000000000000000000000000000000000086526004860152602485015260448401525af18015610b15575f90610f36575b602090604051908152f35b506020813d602011610f61575b81610f5060209383611164565b810103126100e25760209051610f2b565b3d9150610f43565b90506020813d602011610f94575b81610f8460209383611164565b810103126100e257516020610eda565b3d9150610f77565b91955091929385359073ffffffffffffffffffffffffffffffffffffffff82168092036100e2576020816001938293520196019201879594939291610e6f565b6110339061102d6040517f095ea7b30000000000000000000000000000000000000000000000000000000060208201528a60248201525f604482015260448152611027606482611164565b8b611591565b89611591565b8b610e17565b90915061104d5750883b15155b8d80610e0f565b600114611046565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9091506020813d6020116110ae575b8161109e60209383611164565b810103126100e25751908b610daa565b3d9150611091565b60846040517f23c75658000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f496e76616c6964207370656e646572206f7220616c6c6f77616e63652061747460448201527f656d7074000000000000000000000000000000000000000000000000000000006064820152fd5b508015610d46565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100e257565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176111a557604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff81116111a557601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b91909182156113785773ffffffffffffffffffffffffffffffffffffffff821691821561130d5761123d9082611481565b83116112af576112ac9173ffffffffffffffffffffffffffffffffffffffff604051927f23b872dd000000000000000000000000000000000000000000000000000000006020850152166024830152306044830152836064830152606482526112a7608483611164565b611591565b90565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652e000000000000006044820152fd5b50505034811161131a5790565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f416d6f756e7420657863656564732062616c616e63652e0000000000000000006044820152fd5b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f20616d6f756e742e0000000000000000000000006044820152fd5b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b9073ffffffffffffffffffffffffffffffffffffffff168015611534576040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff929092166004830152306024830152602090829060449082905afa908115610b15575f91611505575090565b90506020813d60201161152c575b8161152060209383611164565b810103126100e2575190565b3d9150611513565b50503490565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561156957565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b905f602091828151910182855af115610b15575f513d61160f575073ffffffffffffffffffffffffffffffffffffffff81163b155b6115cd5750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b600114156115c6565b90611655575080511561162d57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806116a8575b611666575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561165e56fea264697066735822122032c91252acfbd0bee37869d6e4cf0ec48bfe0465ea59dc92f7d6f483d0e433ac64736f6c634300081a0033","sourceMap":"904:2905:1:-:0;;;;;;;;;;;;;-1:-1:-1;;904:2905:1;;;;-1:-1:-1;;;;;904:2905:1;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;1171:4:40;;1163:13;;8837:64:39;904:2905:1;;;;;;7896:76:39;;-1:-1:-1;;;;;;;;;;;904:2905:1;;7985:34:39;7981:146;;-1:-1:-1;;;;;;;904:2905:1;;;;1757:65;904:2905;;;1832:58;;904:2905;1900:17;;904:2905;;;;;;;;1163:13:40;904:2905:1;;;;;;;;;;1757:65;904:2905;;;;;;;;;;1832:58;904:2905;;;;;;;;;;1900:17;904:2905;;;;;;;;;;;7981:146:39;-1:-1:-1;;;;;;904:2905:1;-1:-1:-1;;;;;904:2905:1;;;8837:64:39;904:2905:1;;;;;;8087:29:39;;904:2905:1;;8087:29:39;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:39;;-1:-1:-1;7938:23:39;904:2905:1;-1:-1:-1;904:2905:1;;;;;;-1:-1:-1;904:2905:1;;;;;-1:-1:-1;904:2905:1;;;;-1:-1:-1;;;;;904:2905:1;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063445b562a14610bb257806344dea5a714610b625780634f1ef286146106c35780634f622ffe1461067357806352d1902d146105d45780637a9e5e4b146104fd5780638fb360371461046a578063ad3cb1cc146103d6578063bf7e214f14610384578063c4d66de8146100e65763f1bdc45214610092575f80fd5b346100e2575f6003193601126100e257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100e25760206003193601126100e2576100ff611141565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161037c575b6001149081610372575b159081610369575b5061034157818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556102ec575b506101c261153a565b6101ca61153a565b6101d261153a565b6101da61153a565b6101e3816113d6565b6101eb61153a565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561025957005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101b9565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610150565b303b159150610148565b84915061013e565b346100e2575f6003193601126100e257602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100e2575f6003193601126100e25760408051906103f58183611164565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b346100e2575f6003193601126100e2577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156104f55760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6104cb565b346100e25760206003193601126100e257610516611141565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036105a857803b1561056657610564906113d6565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100e2575f6003193601126100e25773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361064b5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b346100e2575f6003193601126100e257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b60406003193601126100e2576106d7611141565b6024359067ffffffffffffffff82116100e257366023830112156100e257816004013590610704826111d2565b916107126040519384611164565b808352602083019336602483830101116100e257815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610b20575b5061064b576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610b15575f91610ac8575b5015610a445773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610a10575b5061088357847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8692036109e55750823b156109ba57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610988575f8091610564945190845af43d15610980573d91610964836111d2565b926109726040519485611164565b83523d5f602085013e611618565b606091611618565b5050503461099257005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610a3c575b81610a2c60209383611164565b810103126100e257519086610852565b3d9150610a1f565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610b0d575b81610ae360409383611164565b810103126100e25780519081151582036100e2576020015163ffffffff8116036100e257846107fd565b3d9150610ad6565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610777565b346100e2575f6003193601126100e257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100e25760a06003193601126100e25760243573ffffffffffffffffffffffffffffffffffffffff81168091036100e2576044359073ffffffffffffffffffffffffffffffffffffffff82168092036100e2576064359067ffffffffffffffff82116100e257366023830112156100e25781600401359167ffffffffffffffff83116100e2573660248460051b830101116100e2576084359267ffffffffffffffff84116100e257366023850112156100e25783600401359167ffffffffffffffff83116100e25736602484870101116100e25773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001695610d04856004353361120c565b9373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169486158015611139575b6110b6576040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff87166024820152906020826044818b5afa918215610b15575f92611082575b5080820180921161105557829160205f60405192828401907f095ea7b30000000000000000000000000000000000000000000000000000000082528b6024860152604485015260448452610dff606485611164565b835190828d5af15f513d82611039575b505015610fdc575b5096949392916040519788967f3f5d1b6f00000000000000000000000000000000000000000000000000000000885260a4880191600489015260248801528a604488015260a0606488015252602460c486019401905f905b808210610f9c57505050602084847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f86849760245f98600319888a9f9d030160848901528287520187860137868682860101520116010301925af1908115610b15575f91610f69575b506064905f60209460405196879586947f9f7434f40000000000000000000000000000000000000000000000000000000086526004860152602485015260448401525af18015610b15575f90610f36575b602090604051908152f35b506020813d602011610f61575b81610f5060209383611164565b810103126100e25760209051610f2b565b3d9150610f43565b90506020813d602011610f94575b81610f8460209383611164565b810103126100e257516020610eda565b3d9150610f77565b91955091929385359073ffffffffffffffffffffffffffffffffffffffff82168092036100e2576020816001938293520196019201879594939291610e6f565b6110339061102d6040517f095ea7b30000000000000000000000000000000000000000000000000000000060208201528a60248201525f604482015260448152611027606482611164565b8b611591565b89611591565b8b610e17565b90915061104d5750883b15155b8d80610e0f565b600114611046565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9091506020813d6020116110ae575b8161109e60209383611164565b810103126100e25751908b610daa565b3d9150611091565b60846040517f23c75658000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f496e76616c6964207370656e646572206f7220616c6c6f77616e63652061747460448201527f656d7074000000000000000000000000000000000000000000000000000000006064820152fd5b508015610d46565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100e257565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176111a557604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff81116111a557601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b91909182156113785773ffffffffffffffffffffffffffffffffffffffff821691821561130d5761123d9082611481565b83116112af576112ac9173ffffffffffffffffffffffffffffffffffffffff604051927f23b872dd000000000000000000000000000000000000000000000000000000006020850152166024830152306044830152836064830152606482526112a7608483611164565b611591565b90565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652e000000000000006044820152fd5b50505034811161131a5790565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f416d6f756e7420657863656564732062616c616e63652e0000000000000000006044820152fd5b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f20616d6f756e742e0000000000000000000000006044820152fd5b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b9073ffffffffffffffffffffffffffffffffffffffff168015611534576040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff929092166004830152306024830152602090829060449082905afa908115610b15575f91611505575090565b90506020813d60201161152c575b8161152060209383611164565b810103126100e2575190565b3d9150611513565b50503490565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561156957565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b905f602091828151910182855af115610b15575f513d61160f575073ffffffffffffffffffffffffffffffffffffffff81163b155b6115cd5750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b600114156115c6565b90611655575080511561162d57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806116a8575b611666575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561165e56fea264697066735822122032c91252acfbd0bee37869d6e4cf0ec48bfe0465ea59dc92f7d6f483d0e433ac64736f6c634300081a0033","sourceMap":"904:2905:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;904:2905:1;;;;;;;;;1100:59;904:2905;;;;;;;;;;;;;-1:-1:-1;;904:2905:1;;;;;;;:::i;:::-;8837:64:39;904:2905:1;;;;;;4301:16:39;904:2905:1;;;;4726:16:39;;:34;;;;904:2905:1;4805:1:39;4790:16;:50;;;;904:2905:1;4855:13:39;:30;;;;904:2905:1;4851:91:39;;;904:2905:1;;4805:1:39;904:2905:1;;;;;8837:64:39;904:2905:1;4979:67:39;;904:2905:1;6893:76:39;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:38;;;:::i;:::-;6893:76:39;;:::i;:::-;904:2905:1;;3295:62:75;904:2905:1;;;3295:62:75;904:2905:1;5066:101:39;;904:2905:1;5066:101:39;904:2905:1;8837:64:39;904:2905:1;;8837:64:39;904:2905:1;5142:14:39;904:2905:1;;;4805:1:39;904:2905:1;;5142:14:39;904:2905:1;4979:67:39;904:2905:1;;;;8837:64:39;904:2905:1;4979:67:39;;;4851:91;4908:23;904:2905:1;4908:23:39;904:2905:1;;4908:23:39;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:39;;4726:34;;;-1:-1:-1;4726:34:39;;904:2905:1;;;;;-1:-1:-1;;904:2905:1;;;;;;;1782:71:38;904:2905:1;;;;;;;;;;;;;-1:-1:-1;;904:2905:1;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;904:2905:1;;;;;1782:71:38;904:2905:1;;;;;4698:71:38;;;904:2905:1;;4698:71:38;904:2905:1;;;;;;;;4698:71:38;904:2905:1;;4698:71:38;;904:2905:1;;;;;-1:-1:-1;;904:2905:1;;;;;;;:::i;:::-;;1782:71:38;904:2905:1;;966:10:41;4258:21:38;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;904:2905:1;4355:110:38;904:2905:1;4411:43:38;;904:2905:1;4411:43:38;904:2905:1;;;;;4411:43:38;4254:92;4302:33;904:2905:1;4302:33:38;966:10:41;904:2905:1;;;;4302:33:38;904:2905:1;;;;;-1:-1:-1;;904:2905:1;;;;;;5115:6:40;904:2905:1;5106:4:40;5098:23;5094:145;;904:2905:1;;;811:66:52;904:2905:1;;;5094:145:40;5199:29;904:2905:1;5199:29:40;904:2905:1;;5199:29:40;904:2905:1;;;;;-1:-1:-1;;904:2905:1;;;;;;;;;1231:56;904:2905;;;;;;-1:-1:-1;;904:2905:1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:40;904:2905:1;4683:4:40;;4675:23;:120;;;;;904:2905:1;4658:251:40;;;3058:30:75;904:2905:1;;3295:62:75;904:2905:1;;;;3058:30:75;;;;904:2905:1;3058:30:75;;904:2905:1;;3058:30:75;;904:2905:1;1893:10:75;904:2905:1;;;;3058:30:75;;;;;;;904:2905:1;3058:30:75;;;904:2905:1;1869:35:75;;1865:140;;904:2905:1;;;;;;;6156:52:40;;904:2905:1;6156:52:40;904:2905:1;6156:52:40;;;;904:2905:1;;6156:52:40;;;904:2905:1;-1:-1:-1;6152:437:40;;6518:60;;904:2905:1;6518:60:40;904:2905:1;;;;6518:60:40;6152:437;6250:40;811:66:52;6250:40:40;;;6246:120;;1748:29:52;;;:34;1744:119;;904:2905:1;;811:66:52;904:2905:1;;;811:66:52;904:2905:1;2407:36:52;904:2905:1;2407:36:52;;904:2905:1;;2458:15:52;:11;;904:2905:1;4049:25:57;;4091:55;4049:25;;;;;;904:2905:1;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4091:55:57;:::i;904:2905:1:-;;;4091:55:57;:::i;2454:148:52:-;6163:9;;;;6159:70;;904:2905:1;6159:70:52;6199:19;904:2905:1;6199:19:52;904:2905:1;;6199:19:52;1744:119;1805:47;904:2905:1;1805:47:52;904:2905:1;;;;1805:47:52;6246:120:40;6317:34;904:2905:1;6317:34:40;904:2905:1;;;;6317:34:40;6156:52;;;;904:2905:1;6156:52:40;;904:2905:1;6156:52:40;;;;;;904:2905:1;6156:52:40;;;:::i;:::-;;;904:2905:1;;;;;6156:52:40;;;;;;;-1:-1:-1;6156:52:40;;1865:140:75;1927:67;904:2905:1;;1927:67:75;;;904:2905:1;;1927:67:75;;520:1:73;904:2905:1;;520:1:73;;904:2905:1;520:1:73;3058:30:75;904:2905:1;;520:1:73;;;;;;1927:67:75;3058:30;;;904:2905:1;3058:30:75;;904:2905:1;3058:30:75;;;;;;904:2905:1;3058:30:75;;;:::i;:::-;;;904:2905:1;;;;;;;;;;;;;;;;;;;;;;;3058:30:75;;;;;;-1:-1:-1;3058:30:75;;;904:2905:1;;;;;;;;;4675:120:40;904:2905:1;;;811:66:52;904:2905:1;;4753:42:40;;4675:120;;;904:2905:1;;;;;-1:-1:-1;;904:2905:1;;;;;;;;;1359:27;904:2905;;;;;;;;;-1:-1:-1;;904:2905:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2848:3;904:2905;2887:21;904:2905;2887:21;904:2905;;3031:40;904:2905;;;3031:10;:40;:::i;:::-;3090:16;904:2905;3090:16;904:2905;2071:19:72;;;:34;;;;904:2905:1;2067:104:72;;904:2905:1;;;2633:39:56;;2657:4;904:2905:1;2633:39:56;;904:2905:1;;;;;;;;;;;;;2633:39:56;;;;;;;;904:2905:1;2633:39:56;;;904:2905:1;;;;;;;;;;;;;;;;4567:47:56;;;;;904:2905:1;4567:47:56;;;904:2905:1;4567:47:56;;904:2905:1;;;;;;4567:47:56;;;904:2905:1;4567:47:56;;:::i;:::-;9138:199;;;;;;;904:2905:1;9138:199:56;;9353:80;;;904:2905:1;4629:45:56;;;4625:201;;904:2905:1;;;;;;;;;3250:79;;;904:2905;3250:79;;904:2905;;;3250:79;904:2905;3250:79;;904:2905;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4567:47:56;904:2905:1;;;;;;;-1:-1:-1;;904:2905:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;3250:79;;;;;;;;;;904:2905;3250:79;;;904:2905;;;;;;;;;3346:66;;;;;904:2905;3346:66;;904:2905;3346:66;;904:2905;;;;;;;;;3346:66;;;;;;904:2905;3346:66;;;904:2905;;;;;;;;;3346:66;;904:2905;3346:66;;904:2905;3346:66;;;;;;904:2905;3346:66;;;:::i;:::-;;;904:2905;;;;;;;3346:66;;;;;-1:-1:-1;3346:66:1;;3250:79;;;904:2905;3250:79;;904:2905;3250:79;;;;;;904:2905;3250:79;;;:::i;:::-;;;904:2905;;;;;;3250:79;;;;;-1:-1:-1;3250:79:1;;904:2905;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4625:201:56;4802:12;904:2905:1;4717:43:56;904:2905:1;;;;4717:43:56;;;;904:2905:1;4717:43:56;;904:2905:1;;;;;;;4717:43:56;;;904:2905:1;4717:43:56;;:::i;:::-;;;:::i;:::-;4802:12;;:::i;:::-;4625:201;;;9353:80;9365:67;;-1:-1:-1;9365:15:56;;9383:26;;;:30;;9365:67;9353:80;;;;9365:67;904:2905:1;9416:16:56;9365:67;;904:2905:1;;;;;;;;;;2633:39:56;;;;904:2905:1;2633:39:56;;904:2905:1;2633:39:56;;;;;;904:2905:1;2633:39:56;;;:::i;:::-;;;904:2905:1;;;;;2633:39:56;;;;;;;-1:-1:-1;2633:39:56;;2067:104:72;904:2905:1;;;2114:57:72;;;904:2905:1;;2114:57:72;;904:2905:1;;;;;;;;;;;;;;;;2114:57:72;2071:34;2094:11;;;2071:34;;904:2905:1;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;904:2905:1;;;;;-1:-1:-1;904:2905:1;;;;;;;;;;;;;;:::o;3539:881:72:-;;;;3646:11;;3642:65;;904:2905:1;;;3721:19:72;;;3717:230;;3970:22;;;;:::i;:::-;3961:31;;3957:90;;1797:53:56;904:2905:1;;;;1797:53:56;904:2905:1;1797:53:56;;;;904:2905:1;1797:53:56;;;904:2905:1;4376:4:72;904:2905:1;;;;;;;;;;1797:53:56;;;;;;:::i;:::-;;:::i;:::-;3539:881:72;:::o;3957:90::-;4001:46;904:2905:1;;4001:46:72;;;904:2905:1;4001:46:72;;;904:2905:1;;;;;;;;;;;4001:46:72;3717:230;3769:9;;;;3760:18;;3756:75;;3923:13;:::o;3756:75::-;3787:44;904:2905:1;;3787:44:72;;;904:2905:1;3787:44:72;;;904:2905:1;;;;;;;;;;;3787:44:72;3642:65;3666:41;904:2905:1;;3666:41:72;;;904:2905:1;3666:41:72;;;904:2905:1;;;;;;;;;;;3666:41:72;4964:220:38;904:2905:1;;5147:30:38;4964:220;904:2905:1;;;1782:71:38;904:2905:1;;;1782:71:38;904:2905:1;;;;;;5147:30:38;4964:220::o;2841:201:72:-;;904:2905:1;;2936:19:72;;2932:41;;904:2905:1;;;2990:45:72;;904:2905:1;;;;;2990:45:72;;;904:2905:1;3029:4:72;904:2905:1;;;;2990:45:72;;904:2905:1;;;;;;2990:45:72;;;;;;;904:2905:1;2990:45:72;;;2983:52;2841:201;:::o;2990:45::-;;;;;;;;;;;;;904:2905:1;2990:45:72;;;:::i;:::-;;;904:2905:1;;;;;2841:201:72;:::o;2990:45::-;;;-1:-1:-1;2990:45:72;;2932:41;2964:9;;;2957:16;:::o;7084:141:39:-;904:2905:1;8837:64:39;904:2905:1;;;;7150:18:39;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:39;;-1:-1:-1;7191:17:39;7738:720:56;;-1:-1:-1;7875:421:56;7738:720;7875:421;;;;;;;;;;;;-1:-1:-1;7875:421:56;;8310:15;;904:2905:1;;;;8328:26:56;:31;8310:68;8306:146;;7738:720;:::o;8306:146::-;904:2905:1;8401:40:56;;-1:-1:-1;8401:40:56;904:2905:1;8401:40:56;904:2905:1;;-1:-1:-1;8401:40:56;8310:68;8377:1;8362:16;;8310:68;;4421:582:57;;4593:8;;-1:-1:-1;904:2905:1;;5674:21:57;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;904:2905:1;;4841:22:57;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;904:2905:1;4917:24:57;;4862:1;4917:24;904:2905:1;4917:24:57;904:2905:1;;4862:1:57;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"41018":[{"start":1531,"length":32},{"start":1868,"length":32}],"65":[{"start":190,"length":32},{"start":3286,"length":32}],"69":[{"start":1695,"length":32},{"start":3356,"length":32}],"73":[{"start":2958,"length":32},{"start":3230,"length":32}]}},"methodIdentifiers":{"MMC()":"44dea5a7","RIGHTS_AGREEMENT()":"4f622ffe","RIGHTS_POLICY_MANAGER()":"f1bdc452","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","flashPolicyAgreement(uint256,address,address,address[],bytes)":"445b562a","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","proxiableUUID()":"52d1902d","setAuthority(address)":"7a9e5e4b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightsPolicyManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rightsAgreement\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"mmc\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailDuringDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MMC\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RIGHTS_AGREEMENT\",\"outputs\":[{\"internalType\":\"contract IRightsAccessAgreement\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_MANAGER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"policyAddress\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"flashPolicyAgreement\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"flashPolicyAgreement(uint256,address,address,address[],bytes)\":{\"params\":{\"amount\":\"The amount of MMC tokens to be involved in the agreement.\",\"holder\":\"The address of the rights holder.\",\"parties\":\"An array of addresses representing the parties involved in the agreement.\",\"payload\":\"Additional data required for the agreement creation.\",\"policyAddress\":\"The address of the policy contract being used.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"MMC\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"RIGHTS_AGREEMENT\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"RIGHTS_POLICY_MANAGER\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"flashPolicyAgreement(uint256,address,address,address[],bytes)\":{\"notice\":\"Creates and registers a new policy agreement in a single transaction.\"},\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/agreements/AgreementPortal.sol\":\"AgreementPortal\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/agreements/AgreementPortal.sol\":{\"keccak256\":\"0x6ff14fc9872dd4f57ab9df29c0c1d157d70f2a233c9e087209179fe28068362d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5d6aa0563dc75ec341b4d477572a651f57154fb2bd8c8e158199d6752f8a49b\",\"dweb:/ipfs/QmVkDoN913vn8iFy8sMW12n1o79AqhMXwkmydQWiCsjqyD\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x27c3c648062924bd44cd6f38541c78e6de145dd49515ee62321e42fc1b72e5c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cce2ebc0392b5a96f5c7bbaaf5c3d23c0e7190e64cfa05a49978badc1496141\",\"dweb:/ipfs/QmYQC1U12igR1osVyjRHaHiiTgYYuPjncAxwmjbZ452dCL\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f\",\"dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsAccessAgreement.sol\":{\"keccak256\":\"0xe0be9f69e85ab24e431f0628f22c1dd5f3a135aa144c912e79d0df06f955fd84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e71e58b682dfdaf815aaf048bfdd55bd6a9c8e848970141f39c9f26592558a7\",\"dweb:/ipfs/QmUSWXADxF2apdYsaiS3SvNcSpb52WkY4FwVZeHQnQCXLw\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol\":{\"keccak256\":\"0x2d25427bd4c59976467fbfef442df6afdb204968c5360a2863bdfc692060b3e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a56bdf37887bb8ceb5c43d0778d7816e08bfcb7f0b06ab7e2cc8bc7fbabacba\",\"dweb:/ipfs/QmWebigGGudvv95NRsHvYiKWPdFPJsdXVi4bFhAfAnSCaq\"]},\"node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol\":{\"keccak256\":\"0x562c5b305577ec5b57c5fba5df98afdaba99d7871772962502e0959852e92215\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d37937cd5fe0432f714aebba49d342dab1e9577c9d1edc3fe568a02e636e1a3d\",\"dweb:/ipfs/QmVteEKdVkvwKKEHyweJWbns75LU3jsqrQtAhcHY7eTwhX\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0x67da75876d8a614c9be2d0da22664a0c1ff93cbd080ab3e893c451fbc8bb2f81\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16d5e8f5cd1c4bf9731d163bc70e67bce4f8152207aa784e17f295e0c515b685\",\"dweb:/ipfs/QmXi1YSH8cUn6UBmFz6YNsUhCUEH3SuPXDQzS4cu4ooM9a\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x15d6829e0b988ba6c933d1adff8926b91c5e5f8f0fdabd00d87b8c8c541a3eb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c4c1edb78e52731d57d6e0d583d398287e01960f966231839ddc1ff12c48003\",\"dweb:/ipfs/QmYw5hKqdD5FX4cA4Cce6JrT164zNMGipUekUihMc3vP1S\"]},\"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"rightsPolicyManager","type":"address"},{"internalType":"address","name":"rightsAgreement","type":"address"},{"internalType":"address","name":"mmc","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"FailDuringDeposit"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MMC","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_AGREEMENT","outputs":[{"internalType":"contract IRightsAccessAgreement","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_POLICY_MANAGER","outputs":[{"internalType":"contract IRightsPolicyManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"policyAddress","type":"address"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"flashPolicyAgreement","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"flashPolicyAgreement(uint256,address,address,address[],bytes)":{"params":{"amount":"The amount of MMC tokens to be involved in the agreement.","holder":"The address of the rights holder.","parties":"An array of addresses representing the parties involved in the agreement.","payload":"Additional data required for the agreement creation.","policyAddress":"The address of the policy contract being used."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"flashPolicyAgreement(uint256,address,address,address[],bytes)":{"notice":"Creates and registers a new policy agreement in a single transaction."},"initialize(address)":{"notice":"Initializes the proxy state."}},"version":1}},"settings":{"remappings":["@account-abstraction/=node_modules/@account-abstraction/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=node_modules/@synaps3/types/contracts/","@uniswap/=node_modules/@uniswap/","base64-sol/=node_modules/base64-sol/","forge-std/=lib/forge-std/src/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/agreements/AgreementPortal.sol":"AgreementPortal"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/agreements/AgreementPortal.sol":{"keccak256":"0x6ff14fc9872dd4f57ab9df29c0c1d157d70f2a233c9e087209179fe28068362d","urls":["bzz-raw://c5d6aa0563dc75ec341b4d477572a651f57154fb2bd8c8e158199d6752f8a49b","dweb:/ipfs/QmVkDoN913vn8iFy8sMW12n1o79AqhMXwkmydQWiCsjqyD"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x27c3c648062924bd44cd6f38541c78e6de145dd49515ee62321e42fc1b72e5c2","urls":["bzz-raw://1cce2ebc0392b5a96f5c7bbaaf5c3d23c0e7190e64cfa05a49978badc1496141","dweb:/ipfs/QmYQC1U12igR1osVyjRHaHiiTgYYuPjncAxwmjbZ452dCL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212","urls":["bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f","dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsAccessAgreement.sol":{"keccak256":"0xe0be9f69e85ab24e431f0628f22c1dd5f3a135aa144c912e79d0df06f955fd84","urls":["bzz-raw://7e71e58b682dfdaf815aaf048bfdd55bd6a9c8e848970141f39c9f26592558a7","dweb:/ipfs/QmUSWXADxF2apdYsaiS3SvNcSpb52WkY4FwVZeHQnQCXLw"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol":{"keccak256":"0x2d25427bd4c59976467fbfef442df6afdb204968c5360a2863bdfc692060b3e7","urls":["bzz-raw://5a56bdf37887bb8ceb5c43d0778d7816e08bfcb7f0b06ab7e2cc8bc7fbabacba","dweb:/ipfs/QmWebigGGudvv95NRsHvYiKWPdFPJsdXVi4bFhAfAnSCaq"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol":{"keccak256":"0x562c5b305577ec5b57c5fba5df98afdaba99d7871772962502e0959852e92215","urls":["bzz-raw://d37937cd5fe0432f714aebba49d342dab1e9577c9d1edc3fe568a02e636e1a3d","dweb:/ipfs/QmVteEKdVkvwKKEHyweJWbns75LU3jsqrQtAhcHY7eTwhX"],"license":"GPL-3.0-or-later"},"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol":{"keccak256":"0x67da75876d8a614c9be2d0da22664a0c1ff93cbd080ab3e893c451fbc8bb2f81","urls":["bzz-raw://16d5e8f5cd1c4bf9731d163bc70e67bce4f8152207aa784e17f295e0c515b685","dweb:/ipfs/QmXi1YSH8cUn6UBmFz6YNsUhCUEH3SuPXDQzS4cu4ooM9a"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Types.sol":{"keccak256":"0x15d6829e0b988ba6c933d1adff8926b91c5e5f8f0fdabd00d87b8c8c541a3eb8","urls":["bzz-raw://3c4c1edb78e52731d57d6e0d583d398287e01960f966231839ddc1ff12c48003","dweb:/ipfs/QmYw5hKqdD5FX4cA4Cce6JrT164zNMGipUekUihMc3vP1S"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df","urls":["bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2","dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"contracts/agreements/AgreementPortal.sol","id":201,"exportedSymbols":{"AccessControlledUpgradeable":[48814],"AgreementPortal":[200],"ERC165Checker":[43756],"EnumerableSet":[47896],"FinancialOps":[48586],"IERC20":[42373],"IRightsAccessAgreement":[48253],"IRightsPolicyManager":[48308],"Initializable":[40998],"UUPSUpgradeable":[41180]},"nodeType":"SourceUnit","src":"32:3778:1","nodes":[{"id":34,"nodeType":"PragmaDirective","src":"32:23:1","nodes":[],"literals":["solidity","0.8",".26"]},{"id":36,"nodeType":"ImportDirective","src":"57:98:1","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":201,"sourceUnit":40999,"symbolAliases":[{"foreign":{"id":35,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40998,"src":"66:13:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38,"nodeType":"ImportDirective","src":"156:102:1","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":201,"sourceUnit":41181,"symbolAliases":[{"foreign":{"id":37,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41180,"src":"165:15:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40,"nodeType":"ImportDirective","src":"259:88:1","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":201,"sourceUnit":47897,"symbolAliases":[{"foreign":{"id":39,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47896,"src":"268:13:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42,"nodeType":"ImportDirective","src":"348:94:1","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/utils/introspection/ERC165Checker.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol","nameLocation":"-1:-1:-1","scope":201,"sourceUnit":43757,"symbolAliases":[{"foreign":{"id":41,"name":"ERC165Checker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43756,"src":"357:13:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44,"nodeType":"ImportDirective","src":"443:71:1","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol","file":"@openzeppelin/contracts/interfaces/IERC20.sol","nameLocation":"-1:-1:-1","scope":201,"sourceUnit":41908,"symbolAliases":[{"foreign":{"id":43,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42373,"src":"452:6:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46,"nodeType":"ImportDirective","src":"516:72:1","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol","file":"@synaps3/core/libraries/FinancialOps.sol","nameLocation":"-1:-1:-1","scope":201,"sourceUnit":48587,"symbolAliases":[{"foreign":{"id":45,"name":"FinancialOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48586,"src":"525:12:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48,"nodeType":"ImportDirective","src":"589:115:1","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":201,"sourceUnit":48815,"symbolAliases":[{"foreign":{"id":47,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48814,"src":"598:27:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50,"nodeType":"ImportDirective","src":"705:96:1","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol","file":"@synaps3/core/interfaces/rights/IRightsPolicyManager.sol","nameLocation":"-1:-1:-1","scope":201,"sourceUnit":48309,"symbolAliases":[{"foreign":{"id":49,"name":"IRightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48308,"src":"714:20:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52,"nodeType":"ImportDirective","src":"802:100:1","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsAccessAgreement.sol","file":"@synaps3/core/interfaces/rights/IRightsAccessAgreement.sol","nameLocation":"-1:-1:-1","scope":201,"sourceUnit":48254,"symbolAliases":[{"foreign":{"id":51,"name":"IRightsAccessAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48253,"src":"811:22:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":200,"nodeType":"ContractDefinition","src":"904:2905:1","nodes":[{"id":61,"nodeType":"UsingForDirective","src":"998:31:1","nodes":[],"global":false,"libraryName":{"id":59,"name":"FinancialOps","nameLocations":["1004:12:1"],"nodeType":"IdentifierPath","referencedDeclaration":48586,"src":"1004:12:1"},"typeName":{"id":60,"name":"address","nodeType":"ElementaryTypeName","src":"1021:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":65,"nodeType":"VariableDeclaration","src":"1100:59:1","nodes":[],"constant":false,"documentation":{"id":62,"nodeType":"StructuredDocumentation","src":"1034:61:1","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"f1bdc452","mutability":"immutable","name":"RIGHTS_POLICY_MANAGER","nameLocation":"1138:21:1","scope":200,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$48308","typeString":"contract IRightsPolicyManager"},"typeName":{"id":64,"nodeType":"UserDefinedTypeName","pathNode":{"id":63,"name":"IRightsPolicyManager","nameLocations":["1100:20:1"],"nodeType":"IdentifierPath","referencedDeclaration":48308,"src":"1100:20:1"},"referencedDeclaration":48308,"src":"1100:20:1","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$48308","typeString":"contract IRightsPolicyManager"}},"visibility":"public"},{"id":69,"nodeType":"VariableDeclaration","src":"1231:56:1","nodes":[],"constant":false,"documentation":{"id":66,"nodeType":"StructuredDocumentation","src":"1165:61:1","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"4f622ffe","mutability":"immutable","name":"RIGHTS_AGREEMENT","nameLocation":"1271:16:1","scope":200,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsAccessAgreement_$48253","typeString":"contract IRightsAccessAgreement"},"typeName":{"id":68,"nodeType":"UserDefinedTypeName","pathNode":{"id":67,"name":"IRightsAccessAgreement","nameLocations":["1231:22:1"],"nodeType":"IdentifierPath","referencedDeclaration":48253,"src":"1231:22:1"},"referencedDeclaration":48253,"src":"1231:22:1","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsAccessAgreement_$48253","typeString":"contract IRightsAccessAgreement"}},"visibility":"public"},{"id":73,"nodeType":"VariableDeclaration","src":"1359:27:1","nodes":[],"constant":false,"documentation":{"id":70,"nodeType":"StructuredDocumentation","src":"1293:61:1","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"44dea5a7","mutability":"immutable","name":"MMC","nameLocation":"1383:3:1","scope":200,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$42373","typeString":"contract IERC20"},"typeName":{"id":72,"nodeType":"UserDefinedTypeName","pathNode":{"id":71,"name":"IERC20","nameLocations":["1359:6:1"],"nodeType":"IdentifierPath","referencedDeclaration":42373,"src":"1359:6:1"},"referencedDeclaration":42373,"src":"1359:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$42373","typeString":"contract IERC20"}},"visibility":"public"},{"id":105,"nodeType":"FunctionDefinition","src":"1446:478:1","nodes":[],"body":{"id":104,"nodeType":"Block","src":"1525:399:1","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40966,"src":"1725:20:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":84,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1725:22:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85,"nodeType":"ExpressionStatement","src":"1725:22:1"},{"expression":{"id":90,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65,"src":"1757:21:1","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$48308","typeString":"contract IRightsPolicyManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":88,"name":"rightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"1802:19:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":87,"name":"IRightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48308,"src":"1781:20:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRightsPolicyManager_$48308_$","typeString":"type(contract IRightsPolicyManager)"}},"id":89,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1781:41:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$48308","typeString":"contract IRightsPolicyManager"}},"src":"1757:65:1","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$48308","typeString":"contract IRightsPolicyManager"}},"id":91,"nodeType":"ExpressionStatement","src":"1757:65:1"},{"expression":{"id":96,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":92,"name":"RIGHTS_AGREEMENT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69,"src":"1832:16:1","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsAccessAgreement_$48253","typeString":"contract IRightsAccessAgreement"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":94,"name":"rightsAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78,"src":"1874:15:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":93,"name":"IRightsAccessAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48253,"src":"1851:22:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRightsAccessAgreement_$48253_$","typeString":"type(contract IRightsAccessAgreement)"}},"id":95,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1851:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRightsAccessAgreement_$48253","typeString":"contract IRightsAccessAgreement"}},"src":"1832:58:1","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsAccessAgreement_$48253","typeString":"contract IRightsAccessAgreement"}},"id":97,"nodeType":"ExpressionStatement","src":"1832:58:1"},{"expression":{"id":102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":98,"name":"MMC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"1900:3:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$42373","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":100,"name":"mmc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80,"src":"1913:3:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":99,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42373,"src":"1906:6:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$42373_$","typeString":"type(contract IERC20)"}},"id":101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1906:11:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$42373","typeString":"contract IERC20"}},"src":"1900:17:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$42373","typeString":"contract IERC20"}},"id":103,"nodeType":"ExpressionStatement","src":"1900:17:1"}]},"documentation":{"id":74,"nodeType":"StructuredDocumentation","src":"1393:48:1","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":81,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76,"mutability":"mutable","name":"rightsPolicyManager","nameLocation":"1466:19:1","nodeType":"VariableDeclaration","scope":105,"src":"1458:27:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75,"name":"address","nodeType":"ElementaryTypeName","src":"1458:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78,"mutability":"mutable","name":"rightsAgreement","nameLocation":"1495:15:1","nodeType":"VariableDeclaration","scope":105,"src":"1487:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77,"name":"address","nodeType":"ElementaryTypeName","src":"1487:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80,"mutability":"mutable","name":"mmc","nameLocation":"1520:3:1","nodeType":"VariableDeclaration","scope":105,"src":"1512:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79,"name":"address","nodeType":"ElementaryTypeName","src":"1512:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1457:67:1"},"returnParameters":{"id":82,"nodeType":"ParameterList","parameters":[],"src":"1525:0:1"},"scope":200,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":121,"nodeType":"FunctionDefinition","src":"1975:151:1","nodes":[],"body":{"id":120,"nodeType":"Block","src":"2037:89:1","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":113,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41052,"src":"2047:22:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2047:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":115,"nodeType":"ExpressionStatement","src":"2047:24:1"},{"expression":{"arguments":[{"id":117,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108,"src":"2105:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":116,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48749,"src":"2081:23:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2081:38:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":119,"nodeType":"ExpressionStatement","src":"2081:38:1"}]},"documentation":{"id":106,"nodeType":"StructuredDocumentation","src":"1930:40:1","text":"@notice Initializes the proxy state."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":111,"kind":"modifierInvocation","modifierName":{"id":110,"name":"initializer","nameLocations":["2025:11:1"],"nodeType":"IdentifierPath","referencedDeclaration":40852,"src":"2025:11:1"},"nodeType":"ModifierInvocation","src":"2025:11:1"}],"name":"initialize","nameLocation":"1984:10:1","parameters":{"id":109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":108,"mutability":"mutable","name":"accessManager","nameLocation":"2003:13:1","nodeType":"VariableDeclaration","scope":121,"src":"1995:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":107,"name":"address","nodeType":"ElementaryTypeName","src":"1995:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1994:23:1"},"returnParameters":{"id":112,"nodeType":"ParameterList","parameters":[],"src":"2037:0:1"},"scope":200,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":189,"nodeType":"FunctionDefinition","src":"2603:816:1","nodes":[],"body":{"id":188,"nodeType":"Block","src":"2811:608:1","nodes":[],"statements":[{"assignments":[139],"declarations":[{"constant":false,"id":139,"mutability":"mutable","name":"currency","nameLocation":"2829:8:1","nodeType":"VariableDeclaration","scope":188,"src":"2821:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":138,"name":"address","nodeType":"ElementaryTypeName","src":"2821:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":144,"initialValue":{"arguments":[{"id":142,"name":"MMC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"2848:3:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$42373","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$42373","typeString":"contract IERC20"}],"id":141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2840:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":140,"name":"address","nodeType":"ElementaryTypeName","src":"2840:7:1","typeDescriptions":{}}},"id":143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2840:12:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2821:31:1"},{"assignments":[146],"declarations":[{"constant":false,"id":146,"mutability":"mutable","name":"broker","nameLocation":"2870:6:1","nodeType":"VariableDeclaration","scope":188,"src":"2862:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":145,"name":"address","nodeType":"ElementaryTypeName","src":"2862:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":151,"initialValue":{"arguments":[{"id":149,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65,"src":"2887:21:1","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$48308","typeString":"contract IRightsPolicyManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRightsPolicyManager_$48308","typeString":"contract IRightsPolicyManager"}],"id":148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2879:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":147,"name":"address","nodeType":"ElementaryTypeName","src":"2879:7:1","typeDescriptions":{}}},"id":150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2879:30:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2862:47:1"},{"assignments":[153],"declarations":[{"constant":false,"id":153,"mutability":"mutable","name":"confirmed","nameLocation":"3019:9:1","nodeType":"VariableDeclaration","scope":188,"src":"3011:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":152,"name":"uint256","nodeType":"ElementaryTypeName","src":"3011:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":160,"initialValue":{"arguments":[{"id":157,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":124,"src":"3054:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":158,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"3062:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":154,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3031:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3035:6:1","memberName":"sender","nodeType":"MemberAccess","src":"3031:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3042:11:1","memberName":"safeDeposit","nodeType":"MemberAccess","referencedDeclaration":48506,"src":"3031:22:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,uint256,address) returns (uint256)"}},"id":159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3031:40:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3011:60:1"},{"expression":{"arguments":[{"id":166,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":153,"src":"3126:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":167,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"3137:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":163,"name":"RIGHTS_AGREEMENT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69,"src":"3090:16:1","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsAccessAgreement_$48253","typeString":"contract IRightsAccessAgreement"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRightsAccessAgreement_$48253","typeString":"contract IRightsAccessAgreement"}],"id":162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3082:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":161,"name":"address","nodeType":"ElementaryTypeName","src":"3082:7:1","typeDescriptions":{}}},"id":164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3082:25:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3108:17:1","memberName":"increaseAllowance","nodeType":"MemberAccess","referencedDeclaration":48409,"src":"3082:43:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$attached_to$_t_address_$","typeString":"function (address,uint256,address)"}},"id":168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3082:64:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":169,"nodeType":"ExpressionStatement","src":"3082:64:1"},{"assignments":[171],"declarations":[{"constant":false,"id":171,"mutability":"mutable","name":"proof","nameLocation":"3242:5:1","nodeType":"VariableDeclaration","scope":188,"src":"3234:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":170,"name":"uint256","nodeType":"ElementaryTypeName","src":"3234:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":180,"initialValue":{"arguments":[{"id":174,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":153,"src":"3283:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":175,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"3294:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":176,"name":"broker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"3304:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":177,"name":"parties","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":131,"src":"3312:7:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":178,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133,"src":"3321:7:1","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":172,"name":"RIGHTS_AGREEMENT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69,"src":"3250:16:1","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsAccessAgreement_$48253","typeString":"contract IRightsAccessAgreement"}},"id":173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3267:15:1","memberName":"createAgreement","nodeType":"MemberAccess","referencedDeclaration":48216,"src":"3250:32:1","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,address,address,address[] memory,bytes memory) external returns (uint256)"}},"id":179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3250:79:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3234:95:1"},{"expression":{"arguments":[{"id":183,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"3383:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":184,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126,"src":"3390:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":185,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":128,"src":"3398:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":181,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65,"src":"3346:21:1","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$48308","typeString":"contract IRightsPolicyManager"}},"id":182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3368:14:1","memberName":"registerPolicy","nodeType":"MemberAccess","referencedDeclaration":48295,"src":"3346:36:1","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address,address) external returns (uint256)"}},"id":186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3346:66:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":137,"id":187,"nodeType":"Return","src":"3339:73:1"}]},"documentation":{"id":122,"nodeType":"StructuredDocumentation","src":"2132:466:1","text":"@notice Creates and registers a new policy agreement in a single transaction.\n @param amount The amount of MMC tokens to be involved in the agreement.\n @param holder The address of the rights holder.\n @param policyAddress The address of the policy contract being used.\n @param parties An array of addresses representing the parties involved in the agreement.\n @param payload Additional data required for the agreement creation."},"functionSelector":"445b562a","implemented":true,"kind":"function","modifiers":[],"name":"flashPolicyAgreement","nameLocation":"2612:20:1","parameters":{"id":134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":124,"mutability":"mutable","name":"amount","nameLocation":"2650:6:1","nodeType":"VariableDeclaration","scope":189,"src":"2642:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":123,"name":"uint256","nodeType":"ElementaryTypeName","src":"2642:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":126,"mutability":"mutable","name":"holder","nameLocation":"2674:6:1","nodeType":"VariableDeclaration","scope":189,"src":"2666:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":125,"name":"address","nodeType":"ElementaryTypeName","src":"2666:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":128,"mutability":"mutable","name":"policyAddress","nameLocation":"2698:13:1","nodeType":"VariableDeclaration","scope":189,"src":"2690:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":127,"name":"address","nodeType":"ElementaryTypeName","src":"2690:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":131,"mutability":"mutable","name":"parties","nameLocation":"2740:7:1","nodeType":"VariableDeclaration","scope":189,"src":"2721:26:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":129,"name":"address","nodeType":"ElementaryTypeName","src":"2721:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":130,"nodeType":"ArrayTypeName","src":"2721:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":133,"mutability":"mutable","name":"payload","nameLocation":"2772:7:1","nodeType":"VariableDeclaration","scope":189,"src":"2757:22:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":132,"name":"bytes","nodeType":"ElementaryTypeName","src":"2757:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2632:153:1"},"returnParameters":{"id":137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":136,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":189,"src":"2802:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":135,"name":"uint256","nodeType":"ElementaryTypeName","src":"2802:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2801:9:1"},"scope":200,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":199,"nodeType":"FunctionDefinition","src":"3723:84:1","nodes":[],"body":{"id":198,"nodeType":"Block","src":"3805:2:1","nodes":[],"statements":[]},"baseFunctions":[41134],"documentation":{"id":190,"nodeType":"StructuredDocumentation","src":"3425:293:1","text":"@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-"},"implemented":true,"kind":"function","modifiers":[{"id":196,"kind":"modifierInvocation","modifierName":{"id":195,"name":"onlyAdmin","nameLocations":["3795:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":48732,"src":"3795:9:1"},"nodeType":"ModifierInvocation","src":"3795:9:1"}],"name":"_authorizeUpgrade","nameLocation":"3732:17:1","overrides":{"id":194,"nodeType":"OverrideSpecifier","overrides":[],"src":"3786:8:1"},"parameters":{"id":193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":192,"mutability":"mutable","name":"newImplementation","nameLocation":"3758:17:1","nodeType":"VariableDeclaration","scope":199,"src":"3750:25:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":191,"name":"address","nodeType":"ElementaryTypeName","src":"3750:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3749:27:1"},"returnParameters":{"id":197,"nodeType":"ParameterList","parameters":[],"src":"3805:0:1"},"scope":200,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":53,"name":"Initializable","nameLocations":["932:13:1"],"nodeType":"IdentifierPath","referencedDeclaration":40998,"src":"932:13:1"},"id":54,"nodeType":"InheritanceSpecifier","src":"932:13:1"},{"baseName":{"id":55,"name":"UUPSUpgradeable","nameLocations":["947:15:1"],"nodeType":"IdentifierPath","referencedDeclaration":41180,"src":"947:15:1"},"id":56,"nodeType":"InheritanceSpecifier","src":"947:15:1"},{"baseName":{"id":57,"name":"AccessControlledUpgradeable","nameLocations":["964:27:1"],"nodeType":"IdentifierPath","referencedDeclaration":48814,"src":"964:27:1"},"id":58,"nodeType":"InheritanceSpecifier","src":"964:27:1"}],"canonicalName":"AgreementPortal","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[200,48814,40744,41348,41226,41180,41917,40998],"name":"AgreementPortal","nameLocation":"913:15:1","scope":201,"usedErrors":[40761,40764,41025,41030,41319,41325,41329,41975,41988,42387,42794,43056,48328,48714],"usedEvents":[40769,41315,41890]}],"license":"MIT"},"id":1} \ No newline at end of file diff --git a/src/config/abi/LedgerVault.json b/src/config/abi/LedgerVault.json new file mode 100644 index 000000000..9994dc0b1 --- /dev/null +++ b/src/config/abi/LedgerVault.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"deposit","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getBalance","inputs":[{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLedgerBalance","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"lock","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"release","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transfer","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdraw","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsClaimed","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsDeposited","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"origin","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsLocked","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsReleased","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsTransferred","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"origin","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsWithdrawn","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"origin","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailDuringDeposit","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"FailDuringTransfer","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NoFundsToClaim","inputs":[]},{"type":"error","name":"NoFundsToLock","inputs":[]},{"type":"error","name":"NoFundsToRelease","inputs":[]},{"type":"error","name":"NoFundsToTransfer","inputs":[]},{"type":"error","name":"NoFundsToWithdraw","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60a080604052346100e857306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b60405161202590816100ed8239608051818181610bb50152610cd40152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610054565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806315f41501146111f75780634bbc170a146110a65780634f1ef28614610c2d57806352d1902d14610b7057806369328dec146109d85780637a9e5e4b146108e35780638fb36037146108325780639e96a26014610747578063ad3cb1cc14610695578063bf7e214f14610625578063c4d66de814610351578063d949b84414610287578063dbba0f0114610190578063f45346dc1461010c5763f8b2cb4f146100be575f80fd5b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085760206101006100fa6112e1565b30611933565b604051908152f35b5f80fd5b3461010857602061012861011f36611304565b80939133611c82565b916101348184846117aa565b6040805184815273ffffffffffffffffffffffffffffffffffffffff92831660208201523393909216917f2d26b12df00031a51cbd91c763887ccf6992992e54b2701fbe5bd7b2c738a4e291819081015b0390a3604051908152f35b346101085761019e36611304565b91335f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2073ffffffffffffffffffffffffffffffffffffffff84165f526020528160405f20541061025f57826101ff6020948433611819565b61020a8184846117aa565b6040805184815273ffffffffffffffffffffffffffffffffffffffff92831660208201523393909216917fe93251c2a6f732155f1cd84502a2c66884e81835c0d4768a10d81fcd79510be79181908101610185565b7fd1df6ed0000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108576102be6112e1565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036101085761033b73ffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b91165f52602052602060405f2054604051908152f35b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108576103886112e1565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161061d575b6001149081610613575b15908161060a575b506105e257818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561058d575b5061044b611c2b565b610453611c2b565b61045b611c2b565b610463611c2b565b61046b611c2b565b610473611c2b565b61047b611c2b565b61048481611888565b61048c611c2b565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556104fa57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610442565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b905015846103d9565b303b1591506103d1565b8491506103c7565b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010857602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085760408051906106d28183611376565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b346101085761075536611304565b61075f363361141e565b73ffffffffffffffffffffffffffffffffffffffff83165f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f20541061080a576107b4818360209561174a565b6107bf8183336117aa565b73ffffffffffffffffffffffffffffffffffffffff6040519183835216907f07b798e47a298c7004dfddcb1196e6b8f9a6488dd1db7eeedbc8a4c3f4831563843392a3604051908152f35b7fdff46e2b000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156108db5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6108b1565b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085761091a6112e1565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036109ac57803b1561096a5761096890611888565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b34610108576109e636611304565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610b485760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d335f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f205410610b2057602092610a90828433611819565b610a9b828483611a4a565b73ffffffffffffffffffffffffffffffffffffffff6040519284845216917f823b7dcdbd5806d97a2a3c64fe281a8d31155b2a7dade87fdaa7437c79c12b118573ffffffffffffffffffffffffffffffffffffffff33941692a45f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d604051908152f35b7f67e3990d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610c055760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010857610c5f6112e1565b6024359067ffffffffffffffff8211610108573660238301121561010857816004013590610c8c826113e4565b91610c9a6040519384611376565b8083526020830193366024838301011161010857815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115611064575b50610c05576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115611059575f91611029575b5015610fa55773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610f71575b50610e0b57847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610f465750823b15610f1b57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610ee9575f8091610968945190845af4610ee36119e4565b91611ecf565b50505034610ef357005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610f9d575b81610f8d60209383611376565b8101031261010857519086610dda565b3d9150610f80565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b61104b915060403d604011611052575b6110438183611376565b810190611a20565b5084610d85565b503d611039565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610cff565b34610108576110b436611304565b6110be363361141e565b6111058373ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f2054106111cf5773ffffffffffffffffffffffffffffffffffffffff8361114f8385602097611819565b16805f525f845260405f2073ffffffffffffffffffffffffffffffffffffffff83165f52845260405f2061118484825461179d565b90557fa372d74f11f208f0466eb410f699d101da6ccbe3717f711988fb355eac737f628473ffffffffffffffffffffffffffffffffffffffff604051948686521693a3604051908152f35b7fa9e575de000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101085761120536611304565b61120f363361141e565b73ffffffffffffffffffffffffffffffffffffffff8316805f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f526020528260405f2054106112b95761127082848661126b838360209a61174a565b6117aa565b7f29f33620d8742cb2079bba3afb003116b7db185e4f58a4bd6bc4291b6d99fcbc8473ffffffffffffffffffffffffffffffffffffffff604051948686521693a3604051908152f35b7fb7cc22bc000000000000000000000000000000000000000000000000000000005f5260045ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361010857565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60609101126101085760043573ffffffffffffffffffffffffffffffffffffffff8116810361010857906024359060443573ffffffffffffffffffffffffffffffffffffffff811681036101085790565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176113b757604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff81116113b757601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b907ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00549173ffffffffffffffffffffffffffffffffffffffff83169282600411610108575f805f806040519573ffffffffffffffffffffffffffffffffffffffff60208801917fb700961300000000000000000000000000000000000000000000000000000000835216968760248201523060448201527fffffffff000000000000000000000000000000000000000000000000000000008335166064820152606481526114ed608482611376565b5190895afa6114fa6119e4565b906116b2575b501561150e575b5050505050565b63ffffffff1615611686577fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055823b15610108577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0925f92836064601f94604051978896879586937f94c7d7ee00000000000000000000000000000000000000000000000000000000855260048501526040602485015280604485015280868686013785858286010152011681010301925af1801561105957611676575b507fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0054167ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00555f80808080611507565b5f61168091611376565b5f611605565b507f068ca9d8000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b8051929091604084106116da5750506020806116d2938301019101611a20565b905b5f611500565b91909260208110156116ee575b50506116d4565b81925090602091810103126101085760206117099101611a13565b5f806116e7565b9190820391821161171d57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff90929192165f525f60205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205261179960405f20918254611710565b9055565b9190820180921161171d57565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205261179960405f2091825461179d565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205261179960405f20918254611710565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b9073ffffffffffffffffffffffffffffffffffffffff169081156119de5773ffffffffffffffffffffffffffffffffffffffff602460209260405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa908115611059575f916119af575090565b90506020813d6020116119d6575b816119ca60209383611376565b81010312610108575190565b3d91506119bd565b90503190565b3d15611a0e573d906119f5826113e4565b91611a036040519384611376565b82523d5f602084013e565b606090565b5190811515820361010857565b9190826040910312610108576020611a3783611a13565b92015163ffffffff811681036101085790565b90918215611bcd5782611a5d8230611933565b10611b6f5773ffffffffffffffffffffffffffffffffffffffff168015611ae257611ae09273ffffffffffffffffffffffffffffffffffffffff604051937fa9059cbb000000000000000000000000000000000000000000000000000000006020860152166024840152604483015260448252611adb606483611376565b611f68565b565b505f80809373ffffffffffffffffffffffffffffffffffffffff8294165af1611b096119e4565b5015611b1157565b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5472616e73666572206661696c656400000000000000000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e73756666696369656e742062616c616e63652e00000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f496e76616c6964207a65726f20616d6f756e7420746f207472616e736665722e6044820152fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615611c5a57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9190918215611de95773ffffffffffffffffffffffffffffffffffffffff8216918215611d7e57611cb39082611e47565b8311611d2057611d1d9173ffffffffffffffffffffffffffffffffffffffff604051927f23b872dd00000000000000000000000000000000000000000000000000000000602085015216602483015230604483015283606483015260648252611adb608483611376565b90565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652e000000000000006044820152fd5b505050348111611d8b5790565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f416d6f756e7420657863656564732062616c616e63652e0000000000000000006044820152fd5b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f20616d6f756e742e0000000000000000000000006044820152fd5b9073ffffffffffffffffffffffffffffffffffffffff16908115611ec95773ffffffffffffffffffffffffffffffffffffffff604460209260405194859384927fdd62ed3e0000000000000000000000000000000000000000000000000000000084521660048301523060248301525afa908115611059575f916119af575090565b50503490565b90611f0c5750805115611ee457805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611f5f575b611f1d575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b15611f15565b905f602091828151910182855af115611059575f513d611fe6575073ffffffffffffffffffffffffffffffffffffffff81163b155b611fa45750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60011415611f9d56fea26469706673582212209c9a1eda87eb80f8aaecb5fc01f998c3f9bbb320844e92b87497d7da9cc15c6464736f6c634300081a0033","sourceMap":"1146:9161:54:-:0;;;;;;;1171:4:93;1163:13;;8837:64:92;1146:9161:54;;;;;;7896:76:92;;-1:-1:-1;;;;;;;;;;;1146:9161:54;;7985:34:92;7981:146;;-1:-1:-1;1146:9161:54;;;;;;;;1163:13:93;1146:9161:54;;;;;;;;;;;7981:146:92;-1:-1:-1;;;;;;1146:9161:54;-1:-1:-1;;;;;1146:9161:54;;;8837:64:92;1146:9161:54;;;8087:29:92;;1146:9161:54;;8087:29:92;7981:146;;;;7896:76;7938:23;;;-1:-1:-1;7938:23:92;;-1:-1:-1;7938:23:92;1146:9161:54;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806315f41501146111f75780634bbc170a146110a65780634f1ef28614610c2d57806352d1902d14610b7057806369328dec146109d85780637a9e5e4b146108e35780638fb36037146108325780639e96a26014610747578063ad3cb1cc14610695578063bf7e214f14610625578063c4d66de814610351578063d949b84414610287578063dbba0f0114610190578063f45346dc1461010c5763f8b2cb4f146100be575f80fd5b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085760206101006100fa6112e1565b30611933565b604051908152f35b5f80fd5b3461010857602061012861011f36611304565b80939133611c82565b916101348184846117aa565b6040805184815273ffffffffffffffffffffffffffffffffffffffff92831660208201523393909216917f2d26b12df00031a51cbd91c763887ccf6992992e54b2701fbe5bd7b2c738a4e291819081015b0390a3604051908152f35b346101085761019e36611304565b91335f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2073ffffffffffffffffffffffffffffffffffffffff84165f526020528160405f20541061025f57826101ff6020948433611819565b61020a8184846117aa565b6040805184815273ffffffffffffffffffffffffffffffffffffffff92831660208201523393909216917fe93251c2a6f732155f1cd84502a2c66884e81835c0d4768a10d81fcd79510be79181908101610185565b7fd1df6ed0000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108576102be6112e1565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036101085761033b73ffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b91165f52602052602060405f2054604051908152f35b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108576103886112e1565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161061d575b6001149081610613575b15908161060a575b506105e257818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561058d575b5061044b611c2b565b610453611c2b565b61045b611c2b565b610463611c2b565b61046b611c2b565b610473611c2b565b61047b611c2b565b61048481611888565b61048c611c2b565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556104fa57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610442565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b905015846103d9565b303b1591506103d1565b8491506103c7565b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010857602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085760408051906106d28183611376565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b346101085761075536611304565b61075f363361141e565b73ffffffffffffffffffffffffffffffffffffffff83165f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f20541061080a576107b4818360209561174a565b6107bf8183336117aa565b73ffffffffffffffffffffffffffffffffffffffff6040519183835216907f07b798e47a298c7004dfddcb1196e6b8f9a6488dd1db7eeedbc8a4c3f4831563843392a3604051908152f35b7fdff46e2b000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156108db5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6108b1565b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085761091a6112e1565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036109ac57803b1561096a5761096890611888565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b34610108576109e636611304565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610b485760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d335f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f205410610b2057602092610a90828433611819565b610a9b828483611a4a565b73ffffffffffffffffffffffffffffffffffffffff6040519284845216917f823b7dcdbd5806d97a2a3c64fe281a8d31155b2a7dade87fdaa7437c79c12b118573ffffffffffffffffffffffffffffffffffffffff33941692a45f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d604051908152f35b7f67e3990d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610c055760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010857610c5f6112e1565b6024359067ffffffffffffffff8211610108573660238301121561010857816004013590610c8c826113e4565b91610c9a6040519384611376565b8083526020830193366024838301011161010857815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115611064575b50610c05576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115611059575f91611029575b5015610fa55773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610f71575b50610e0b57847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610f465750823b15610f1b57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610ee9575f8091610968945190845af4610ee36119e4565b91611ecf565b50505034610ef357005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610f9d575b81610f8d60209383611376565b8101031261010857519086610dda565b3d9150610f80565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b61104b915060403d604011611052575b6110438183611376565b810190611a20565b5084610d85565b503d611039565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610cff565b34610108576110b436611304565b6110be363361141e565b6111058373ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f2054106111cf5773ffffffffffffffffffffffffffffffffffffffff8361114f8385602097611819565b16805f525f845260405f2073ffffffffffffffffffffffffffffffffffffffff83165f52845260405f2061118484825461179d565b90557fa372d74f11f208f0466eb410f699d101da6ccbe3717f711988fb355eac737f628473ffffffffffffffffffffffffffffffffffffffff604051948686521693a3604051908152f35b7fa9e575de000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101085761120536611304565b61120f363361141e565b73ffffffffffffffffffffffffffffffffffffffff8316805f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f526020528260405f2054106112b95761127082848661126b838360209a61174a565b6117aa565b7f29f33620d8742cb2079bba3afb003116b7db185e4f58a4bd6bc4291b6d99fcbc8473ffffffffffffffffffffffffffffffffffffffff604051948686521693a3604051908152f35b7fb7cc22bc000000000000000000000000000000000000000000000000000000005f5260045ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361010857565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60609101126101085760043573ffffffffffffffffffffffffffffffffffffffff8116810361010857906024359060443573ffffffffffffffffffffffffffffffffffffffff811681036101085790565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176113b757604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff81116113b757601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b907ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00549173ffffffffffffffffffffffffffffffffffffffff83169282600411610108575f805f806040519573ffffffffffffffffffffffffffffffffffffffff60208801917fb700961300000000000000000000000000000000000000000000000000000000835216968760248201523060448201527fffffffff000000000000000000000000000000000000000000000000000000008335166064820152606481526114ed608482611376565b5190895afa6114fa6119e4565b906116b2575b501561150e575b5050505050565b63ffffffff1615611686577fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055823b15610108577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0925f92836064601f94604051978896879586937f94c7d7ee00000000000000000000000000000000000000000000000000000000855260048501526040602485015280604485015280868686013785858286010152011681010301925af1801561105957611676575b507fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0054167ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00555f80808080611507565b5f61168091611376565b5f611605565b507f068ca9d8000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b8051929091604084106116da5750506020806116d2938301019101611a20565b905b5f611500565b91909260208110156116ee575b50506116d4565b81925090602091810103126101085760206117099101611a13565b5f806116e7565b9190820391821161171d57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff90929192165f525f60205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205261179960405f20918254611710565b9055565b9190820180921161171d57565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205261179960405f2091825461179d565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205261179960405f20918254611710565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b9073ffffffffffffffffffffffffffffffffffffffff169081156119de5773ffffffffffffffffffffffffffffffffffffffff602460209260405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa908115611059575f916119af575090565b90506020813d6020116119d6575b816119ca60209383611376565b81010312610108575190565b3d91506119bd565b90503190565b3d15611a0e573d906119f5826113e4565b91611a036040519384611376565b82523d5f602084013e565b606090565b5190811515820361010857565b9190826040910312610108576020611a3783611a13565b92015163ffffffff811681036101085790565b90918215611bcd5782611a5d8230611933565b10611b6f5773ffffffffffffffffffffffffffffffffffffffff168015611ae257611ae09273ffffffffffffffffffffffffffffffffffffffff604051937fa9059cbb000000000000000000000000000000000000000000000000000000006020860152166024840152604483015260448252611adb606483611376565b611f68565b565b505f80809373ffffffffffffffffffffffffffffffffffffffff8294165af1611b096119e4565b5015611b1157565b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5472616e73666572206661696c656400000000000000000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e73756666696369656e742062616c616e63652e00000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f496e76616c6964207a65726f20616d6f756e7420746f207472616e736665722e6044820152fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615611c5a57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9190918215611de95773ffffffffffffffffffffffffffffffffffffffff8216918215611d7e57611cb39082611e47565b8311611d2057611d1d9173ffffffffffffffffffffffffffffffffffffffff604051927f23b872dd00000000000000000000000000000000000000000000000000000000602085015216602483015230604483015283606483015260648252611adb608483611376565b90565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652e000000000000006044820152fd5b505050348111611d8b5790565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f416d6f756e7420657863656564732062616c616e63652e0000000000000000006044820152fd5b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f20616d6f756e742e0000000000000000000000006044820152fd5b9073ffffffffffffffffffffffffffffffffffffffff16908115611ec95773ffffffffffffffffffffffffffffffffffffffff604460209260405194859384927fdd62ed3e0000000000000000000000000000000000000000000000000000000084521660048301523060248301525afa908115611059575f916119af575090565b50503490565b90611f0c5750805115611ee457805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611f5f575b611f1d575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b15611f15565b905f602091828151910182855af115611059575f513d611fe6575073ffffffffffffffffffffffffffffffffffffffff81163b155b611fa45750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60011415611f9d56fea26469706673582212209c9a1eda87eb80f8aaecb5fc01f998c3f9bbb320844e92b87497d7da9cc15c6464736f6c634300081a0033","sourceMap":"1146:9161:54:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1896:33:45;1146:9161:54;;:::i;:::-;1904:4:45;1896:33;:::i;:::-;1146:9161:54;;;;;;;;;;;;;;;2371:40:45;1146:9161:54;;;:::i;:::-;2371:10:45;;;;:40;:::i;:::-;2459:8;;;;;;:::i;:::-;1146:9161:54;;;;;;;;;;;;;;2371:10:45;;1146:9161:54;;;;4235:58;;1146:9161;;;;4235:58;;;;1146:9161;;;;;;;;;;;;;:::i;:::-;3927:10:45;;1146:9161:54;;4178:54:47;1146:9161:54;;;;;;;;-1:-1:-1;1146:9161:54;;;;;-1:-1:-1;1146:9161:54;;3910:47:45;3906:79;;3927:10;4031:8;1146:9161:54;3927:10:45;;;4031:8;:::i;:::-;4085;;;;;:::i;:::-;1146:9161:54;;;;;;;;;;;;;;3927:10:45;;1146:9161:54;;;;5736:60;;1146:9161;;;;5736:60;1146:9161;3906:79:45;3966:19;1146:9161:54;3966:19:45;1146:9161:54;;3966:19:45;1146:9161:54;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;1469:18:47;1146:9161:54;1469:18:47;1146:9161:54;;;;4178:54:47;1146:9161:54;;;;;;;1469:18:47;:28;1146:9161:54;-1:-1:-1;1146:9161:54;;;;;-1:-1:-1;1146:9161:54;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8837:64:92;1146:9161:54;;;;;;4301:16:92;1146:9161:54;;;;4726:16:92;;:34;;;;1146:9161:54;4805:1:92;4790:16;:50;;;;1146:9161:54;4855:13:92;:30;;;;1146:9161:54;4851:91:92;;;1146:9161:54;;4805:1:92;1146:9161:54;;;;;8837:64:92;1146:9161:54;4979:67:92;;1146:9161:54;6893:76:92;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:90;;;:::i;:::-;6893:76:92;;:::i;:::-;1146:9161:54;;3295:62:44;1146:9161:54;;;3295:62:44;1146:9161:54;5066:101:92;;1146:9161:54;5066:101:92;1146:9161:54;8837:64:92;1146:9161:54;;8837:64:92;1146:9161:54;5142:14:92;1146:9161:54;;;4805:1:92;1146:9161:54;;5142:14:92;1146:9161:54;4979:67:92;1146:9161:54;;;;8837:64:92;1146:9161:54;4979:67:92;;;4851:91;4908:23;1146:9161:54;4908:23:92;1146:9161:54;;4908:23:92;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:92;;4726:34;;;-1:-1:-1;4726:34:92;;1146:9161:54;;;;;;;;;;;;;1782:71:90;1146:9161:54;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3871:10:90;1146:9161:54;966:10:96;3871::90;:::i;:::-;1146:9161:54;;;;;;;;;;;;;;-1:-1:-1;1146:9161:54;;;;;-1:-1:-1;1146:9161:54;;7943:44;7939:73;;8056:8;;;1146:9161;8056:8;;:::i;:::-;8114;966:10:96;;;8114:8:54;:::i;:::-;1146:9161;;;;;;;;966:10:96;8138:42:54;966:10:96;;8138:42:54;;1146:9161;;;;;;7939:73;7996:16;1146:9161;7996:16;1146:9161;;7996:16;1146:9161;;;;;;;;;;;1782:71:90;1146:9161:54;;;;;4698:71:90;;;1146:9161:54;;4698:71:90;1146:9161:54;;;;;;;;4698:71:90;1146:9161:54;;4698:71:90;;1146:9161:54;;;;;;;;;;;;;:::i;:::-;;1782:71:90;1146:9161:54;;966:10:96;4258:21:90;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;1146:9161:54;4355:110:90;1146:9161:54;4411:43:90;;1146:9161:54;4411:43:90;1146:9161:54;;;;;4411:43:90;4254:92;4302:33;1146:9161:54;4302:33:90;966:10:96;1146:9161:54;;;;4302:33:90;1146:9161:54;;;;;;;:::i;:::-;757:66:99;3321:69:160;1706:93:99;;1917:4;757:66;3550:68:160;3060:10:45;1146:9161:54;;4178:54:47;1146:9161:54;;;;;;;;-1:-1:-1;1146:9161:54;;;;;-1:-1:-1;1146:9161:54;;3043:47:45;3039:79;;1146:9161:54;3060:10:45;3164:8;3060:10;;;3164:8;:::i;:::-;3210;;;;;:::i;:::-;1146:9161:54;;;;;;;;3060:10:45;4991:58:54;3060:10:45;1146:9161:54;3060:10:45;1146:9161:54;;4991:58;;1146:9161;757:66:99;3550:68:160;1146:9161:54;;;;;;3039:79:45;3099:19;1146:9161:54;3099:19:45;1146:9161:54;;3099:19:45;1706:93:99;1758:30;1146:9161:54;1758:30:99;1146:9161:54;;1758:30:99;1146:9161:54;;;;;;;;;;;;5115:6:93;1146:9161:54;5106:4:93;5098:23;5094:145;;1146:9161:54;;;811:66:130;1146:9161:54;;;5094:145:93;5199:29;1146:9161:54;5199:29:93;1146:9161:54;;5199:29:93;1146:9161:54;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:93;1146:9161:54;4683:4:93;;4675:23;:120;;;;;1146:9161:54;4658:251:93;;;3058:30:44;1146:9161:54;;3295:62:44;1146:9161:54;;;;3058:30:44;;;;1146:9161:54;3058:30:44;;1146:9161:54;;3058:30:44;;1146:9161:54;1893:10:44;1146:9161:54;;;;3058:30:44;;;;;;;1146:9161:54;3058:30:44;;;1146:9161:54;1869:35:44;;1865:140;;1146:9161:54;;;;;;;6156:52:93;;1146:9161:54;6156:52:93;1146:9161:54;6156:52:93;;;;1146:9161:54;;6156:52:93;;;1146:9161:54;-1:-1:-1;6152:437:93;;6518:60;;1146:9161:54;6518:60:93;1146:9161:54;;;;6518:60:93;6152:437;6250:40;811:66:130;6250:40:93;;;6246:120;;1748:29:130;;;:34;1744:119;;1146:9161:54;;811:66:130;1146:9161:54;;;811:66:130;1146:9161:54;2407:36:130;1146:9161:54;2407:36:130;;1146:9161:54;;2458:15:130;:11;;1146:9161:54;4049:25:151;;4091:55;4049:25;;;;;;;;:::i;:::-;4091:55;;:::i;2454:148:130:-;6163:9;;;;6159:70;;1146:9161:54;6159:70:130;6199:19;1146:9161:54;6199:19:130;1146:9161:54;;6199:19:130;1744:119;1805:47;1146:9161:54;1805:47:130;1146:9161:54;;;;1805:47:130;6246:120:93;6317:34;1146:9161:54;6317:34:93;1146:9161:54;;;;6317:34:93;6156:52;;;;1146:9161:54;6156:52:93;;1146:9161:54;6156:52:93;;;;;;1146:9161:54;6156:52:93;;;:::i;:::-;;;1146:9161:54;;;;;6156:52:93;;;;;;;-1:-1:-1;6156:52:93;;1865:140:44;1927:67;1146:9161:54;;1927:67:44;;;1146:9161:54;;1927:67:44;;520:1:42;1146:9161:54;;520:1:42;;1146:9161:54;520:1:42;3058:30:44;1146:9161:54;;520:1:42;;;;;;1927:67:44;3058:30;;;;1146:9161:54;3058:30:44;1146:9161:54;3058:30:44;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;1146:9161:54;;;;;;;;;4675:120:93;1146:9161:54;;;811:66:130;1146:9161:54;;4753:42:93;;4675:120;;;1146:9161:54;;;;;;;:::i;:::-;3871:10:90;1146:9161:54;966:10:96;3871::90;:::i;:::-;1469:18:47;;1146:9161:54;;;;4178:54:47;1146:9161:54;;;;;;;1469:18:47;1146:9161:54;;;-1:-1:-1;1146:9161:54;;;;;-1:-1:-1;1146:9161:54;;6418:44;6414:72;;1146:9161;6529:8;;;;1146:9161;6529:8;;:::i;:::-;1146:9161;;;;;;;;;;;;;-1:-1:-1;1146:9161:54;;;;-1:-1:-1;1146:9161:54;9281:36;1146:9161;;;9281:36;:::i;:::-;1146:9161;;6606:38;1146:9161;;;;;;;;;6606:38;;1146:9161;;;;;;6414:72;6471:15;1146:9161;6471:15;1146:9161;;6471:15;1146:9161;;;;;;;:::i;:::-;3871:10:90;1146:9161:54;966:10:96;3871::90;:::i;:::-;1146:9161:54;;;;;;;;;;;;;;;-1:-1:-1;1146:9161:54;;;;;-1:-1:-1;1146:9161:54;;7111:44;7107:75;;7278:8;7226;;;;;;1146:9161;7226:8;;:::i;:::-;7278;:::i;:::-;7302:40;1146:9161;;;;;;;;;7302:40;;1146:9161;;;;;;7107:75;7164:18;1146:9161;7164:18;1146:9161;;7164:18;1146:9161;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;1146:9161:54;;;;;-1:-1:-1;1146:9161:54;;;;;;;;;;;;;;:::o;5359:667:90:-;;1782:71;1146:9161:54;;;;;;;5679:1:90;1146:9161:54;;;;;;;;;856:62:105;1146:9161:54;856:62:105;;;;;;;1146:9161:54;856:62:105;;;;;1146:9161:54;5646:4:90;1146:9161:54;;;;;;;;;;;;;856:62:105;;;;;;:::i;:::-;822:106;;;;;;;:::i;:::-;938:248;;;5359:667:90;5706:10;;5702:318;;5359:667;;;;;;:::o;5702:318::-;1146:9161:54;;5736:9:90;1146:9161:54;;;;;;1782:71:90;1146:9161:54;5810:60:90;;;;;856:62:105;1146:9161:54;;;;;;;;;5810:60:90;;;;;;;1146:9161:54;5810:60:90;;5679:1;5810:60;;1146:9161:54;;856:62:105;1146:9161:54;;;;;;;;;;;;;;;;;;;;;;;;;5810:60:90;;;;;;;;;;;5732:278;1146:9161:54;;1782:71:90;1146:9161:54;;1782:71:90;1146:9161:54;5702:318:90;;;;;;;5810:60;1146:9161:54;5810:60:90;;;:::i;:::-;1146:9161:54;5810:60:90;;5732:278;5962:33;;1146:9161:54;5962:33:90;5679:1;1146:9161:54;856:62:105;1146:9161:54;5962:33:90;938:248:105;1146:9161:54;;;;;;969:19:105;;1146:9161:54;;1029:32:105;;856:62;1029:32;;;;;;;;;:::i;:::-;1008:53;965:211;938:248;;;965:211;1086:19;;;856:62;1086:19;;;1082:94;;965:211;;;;;1082:94;1137:24;;;;856:62;1137:24;;;1146:9161:54;;;;856:62:105;1146:9161:54;1137:24:105;;1146:9161:54;:::i;:::-;1082:94:105;;;;1146:9161:54;;;;;;;;;;:::o;:::-;;;;;;;;;;8632:138;1146:9161;8632:138;;;;1146:9161;8727:7;1146:9161;8727:7;1146:9161;;;;8727:7;1146:9161;8727:26;1146:9161;-1:-1:-1;1146:9161:54;;;8727:36;1146:9161;-1:-1:-1;1146:9161:54;;;;8727:36;:::i;:::-;1146:9161;;8632:138::o;1146:9161::-;;;;;;;;;;:::o;3116:195:47:-;1146:9161:54;3116:195:47;;;;1146:9161:54;-1:-1:-1;1146:9161:54;4178:54:47;1146:9161:54;;;;-1:-1:-1;1146:9161:54;3266:28:47;1146:9161:54;-1:-1:-1;1146:9161:54;;;3266:38:47;1146:9161:54;-1:-1:-1;1146:9161:54;;;;3266:38:47;:::i;3743:195::-;1146:9161:54;3743:195:47;;;;1146:9161:54;-1:-1:-1;1146:9161:54;4178:54:47;1146:9161:54;;;;-1:-1:-1;1146:9161:54;3893:28:47;1146:9161:54;-1:-1:-1;1146:9161:54;;;3893:38:47;1146:9161:54;-1:-1:-1;1146:9161:54;;;;3893:38:47;:::i;4964:220:90:-;1146:9161:54;;5147:30:90;4964:220;1146:9161:54;;;1782:71:90;1146:9161:54;;;1782:71:90;1146:9161:54;;;;;;5147:30:90;4964:220::o;4674:193:39:-;;1146:9161:54;;4770:19:39;;;4766:46;;1146:9161:54;4829:31:39;1146:9161:54;;;;4829:31:39;;;;;1146:9161:54;4829:31:39;;1146:9161:54;4829:31:39;;;1146:9161:54;4829:31:39;;;;;;;1146:9161:54;4829:31:39;;;4822:38;4674:193;:::o;4829:31::-;;;1146:9161:54;4829:31:39;;1146:9161:54;4829:31:39;;;;;;1146:9161:54;4829:31:39;;;:::i;:::-;;;1146:9161:54;;;;;4674:193:39;:::o;4829:31::-;;;-1:-1:-1;4829:31:39;;4766:46;4798:14;;;4791:21;:::o;1146:9161:54:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1146:9161:54;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;5233:383:39:-;;;5317:11;;5313:78;;5423:4;5405:31;5423:4;;5405:31;:::i;:::-;:40;5401:96;;1146:9161:54;;5511:19:39;;5507:59;;1380:43:144;1146:9161:54;;;;1380:43:144;1146:9161:54;1380:43:144;;;;1146:9161:54;1380:43:144;;;1146:9161:54;;;;;;1380:43:144;;;;;;:::i;:::-;;:::i;:::-;5233:383:39:o;5507:59::-;1146:9161:54;5327:1:39;1146:9161:54;;;;;;;904:37:39;;;;:::i;:::-;;955:8;951:58;;5532:34::o;951:58::-;972:37;1146:9161:54;;972:37:39;;;1146:9161:54;972:37:39;;;1146:9161:54;;;;;;;;;;;972:37:39;5401:96;5454:43;1146:9161:54;;5454:43:39;;;1146:9161:54;5454:43:39;;;1146:9161:54;;;;;;;;;;;5454:43:39;5313:78;5337:54;1146:9161:54;;5337:54:39;;;1146:9161:54;5337:54:39;;;1146:9161:54;;;;;;;;;;;5337:54:39;7084:141:92;1146:9161:54;8837:64:92;1146:9161:54;;;;7150:18:92;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:92;;-1:-1:-1;7191:17:92;3539:881:39;;;;3646:11;;3642:65;;1146:9161:54;;;3721:19:39;;;3717:230;;3970:22;;;;:::i;:::-;3961:31;;3957:90;;1797:53:144;1146:9161:54;;;;1797:53:144;1146:9161:54;1797:53:144;;;;1146:9161:54;1797:53:144;;;1146:9161:54;4376:4:39;1146:9161:54;;;;;;;;;;1797:53:144;;;;;;:::i;:::-;3539:881:39;:::o;3957:90::-;4001:46;1146:9161:54;;4001:46:39;;;1146:9161:54;4001:46:39;;;1146:9161:54;;;;;;;;;;;4001:46:39;3717:230;3769:9;;;;3760:18;;3756:75;;3923:13;:::o;3756:75::-;3787:44;1146:9161:54;;3787:44:39;;;1146:9161:54;3787:44:39;;;1146:9161:54;;;;;;;;;;;3787:44:39;3642:65;3666:41;1146:9161:54;;3666:41:39;;;1146:9161:54;3666:41:39;;;1146:9161:54;;;;;;;;;;;3666:41:39;2841:201;;1146:9161:54;;2936:19:39;;;2932:41;;1146:9161:54;2990:45:39;1146:9161:54;;;;2990:45:39;;;;;1146:9161:54;2990:45:39;;1146:9161:54;2990:45:39;;;1146:9161:54;3029:4:39;1146:9161:54;;;;2990:45:39;;;;;;;1146:9161:54;2990:45:39;;;2983:52;2841:201;:::o;2932:41::-;2964:9;;;2957:16;:::o;4421:582:151:-;;4593:8;;-1:-1:-1;1146:9161:54;;5674:21:151;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;1146:9161:54;;4841:22:151;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;1146:9161:54;4917:24:151;;4862:1;4917:24;1146:9161:54;4917:24:151;1146:9161:54;;4862:1:151;4917:24;4841:49;4867:18;;;:23;4841:49;;7738:720:144;;-1:-1:-1;7875:421:144;7738:720;7875:421;;;;;;;;;;;;-1:-1:-1;7875:421:144;;8310:15;;1146:9161:54;;;;8328:26:144;:31;8310:68;8306:146;;7738:720;:::o;8306:146::-;1146:9161:54;8401:40:144;;-1:-1:-1;8401:40:144;1146:9161:54;8401:40:144;1146:9161:54;;-1:-1:-1;8401:40:144;8310:68;8377:1;8362:16;;8310:68;","linkReferences":{},"immutableReferences":{"50482":[{"start":2997,"length":32},{"start":3284,"length":32}]}},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","claim(address,uint256,address)":"9e96a260","deposit(address,uint256,address)":"f45346dc","getBalance(address)":"f8b2cb4f","getLedgerBalance(address,address)":"d949b844","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","lock(address,uint256,address)":"4bbc170a","proxiableUUID()":"52d1902d","release(address,uint256,address)":"15f41501","setAuthority(address)":"7a9e5e4b","transfer(address,uint256,address)":"dbba0f01","upgradeToAndCall(address,bytes)":"4f1ef286","withdraw(address,uint256,address)":"69328dec"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailDuringDeposit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailDuringTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToLock\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToRelease\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"origin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"origin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"origin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"getLedgerBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"lock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"release\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract includes administrative methods (`restricted`) and general user methods. Supports operations such as deposits, withdrawals, transfers, and locked funds management.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailDuringTransfer(string)\":[{\"params\":{\"reason\":\"The reason for the transfer failure.\"}}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NoFundsToClaim()\":[{\"details\":\"This error occurs if an account or claimer tries to claim funds that are not locked or insufficient.\"}],\"NoFundsToLock()\":[{\"details\":\"This error occurs if an account attempts to lock more funds than available.\"}],\"NoFundsToRelease()\":[{\"details\":\"This error occurs if an operator tries to releases funds that are not locked or insufficient.\"}],\"NoFundsToTransfer()\":[{\"details\":\"This error is triggered when a transfer is attempted but the sender has insufficient funds or no balance.\"}],\"NoFundsToWithdraw()\":[{\"details\":\"This error is triggered when a withdrawal is attempted but the contract has insufficient funds.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"FundsClaimed(address,uint256,address)\":{\"params\":{\"amount\":\"The amount of funds claimed.\",\"claimer\":\"The address of the entity claiming the funds.\",\"currency\":\"The address of the currency in which the funds were claimed.\"}},\"FundsDeposited(address,address,uint256,address)\":{\"params\":{\"amount\":\"The amount of currency deposited.\",\"currency\":\"The address of the ERC20 token deposited.\",\"origin\":\"The address sending the deposit funds.\",\"recipient\":\"The address of the account credited with the deposit.\"}},\"FundsLocked(address,uint256,address)\":{\"params\":{\"account\":\"The address of the account whose funds were locked.\",\"amount\":\"The amount of funds that were locked.\",\"currency\":\"The address of the currency in which the funds were locked.\"}},\"FundsReleased(address,uint256,address)\":{\"params\":{\"account\":\"The address of the account whose funds were released.\",\"amount\":\"The amount of funds that were locked.\",\"currency\":\"The address of the currency in which the funds were locked.\"}},\"FundsTransferred(address,address,uint256,address)\":{\"params\":{\"amount\":\"The amount of currency transferred.\",\"currency\":\"The address of the ERC20 token transferred. Use `address(0)` for native tokens.\",\"origin\":\"The address of the account initiating the transfer.\",\"recipient\":\"The address of the account receiving the funds.\"}},\"FundsWithdrawn(address,address,uint256,address)\":{\"params\":{\"amount\":\"The amount of funds being withdrawn.\",\"currency\":\"The currency used for the withdrawal.\",\"origin\":\"The address sending the withdrawn funds.\",\"recipient\":\"The address receiving the withdrawn funds.\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"claim(address,uint256,address)\":{\"details\":\"The claimer is authorized to process the funds from the account. Only operator role can handle this methods.\",\"params\":{\"account\":\"The address of the account whose funds are being claimed.\",\"amount\":\"The amount of funds to claim.\",\"currency\":\"The currency to associate claim with. Use address(0) for the native coin.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"deposit(address,uint256,address)\":{\"params\":{\"amount\":\"The amount of currency to deposit.\",\"currency\":\"The address of the ERC20 token to deposit.\",\"recipient\":\"The address of the account to credit with the deposit.\"}},\"getBalance(address)\":{\"details\":\"The function checks the balance for both native and ERC-20 tokens.\",\"params\":{\"currency\":\"The address of the currency to check the balance of.\"}},\"getLedgerBalance(address,address)\":{\"params\":{\"account\":\"The address of the account whose balance is being queried.\",\"currency\":\"The address of the currency to retrieve the balance for.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"lock(address,uint256,address)\":{\"details\":\"The funds are immobilized and cannot be withdrawn or transferred until released or claimed. Only operator role can handle this methods.\",\"params\":{\"account\":\"The address of the account for which the funds will be locked.\",\"amount\":\"The amount of funds to lock.\",\"currency\":\"The currency to associate lock with. Use address(0) for the native coin.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"release(address,uint256,address)\":{\"params\":{\"account\":\"The address of the account for which the funds will be released.\",\"amount\":\"The amount of funds to release.\",\"currency\":\"The currency to associate release with. Use address(0) for the native coin.\"}},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"transfer(address,uint256,address)\":{\"details\":\"Ensures the caller has sufficient balance before performing the transfer. Updates the ledger accordingly.\",\"params\":{\"amount\":\"The amount of currency to transfer.\",\"currency\":\"The address of the ERC20 token to transfer. Use `address(0)` for native tokens.\",\"recipient\":\"The address of the account to credit with the transfer.\"}},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"withdraw(address,uint256,address)\":{\"details\":\"This function withdraws funds from the caller's balance and transfers them to the recipient.\",\"params\":{\"amount\":\"The amount of tokens to withdraw.\",\"currency\":\"The currency to associate fees with. Use address(0) for the native coin.\",\"recipient\":\"The address that will receive the withdrawn tokens.\"}}},\"stateVariables\":{\"_locked\":{\"details\":\"Holds the registry of locked funds for accounts.\"}},\"title\":\"LedgerVault\",\"version\":1},\"userdoc\":{\"errors\":{\"FailDuringTransfer(string)\":[{\"notice\":\"Error to be thrown when a transfer fails.\"}],\"NoFundsToClaim()\":[{\"notice\":\"Thrown when there are no locked funds available to claim.\"}],\"NoFundsToLock()\":[{\"notice\":\"Thrown when there are no available funds to lock.\"}],\"NoFundsToRelease()\":[{\"notice\":\"Thrown when there are no locked funds available to release.\"}],\"NoFundsToTransfer()\":[{\"notice\":\"Error indicating that there are no funds available to transfer.\"}],\"NoFundsToWithdraw()\":[{\"notice\":\"Error indicating that there are no funds available to withdraw.\"}]},\"events\":{\"FundsClaimed(address,uint256,address)\":{\"notice\":\"Emitted when locked funds are successfully claimed.\"},\"FundsDeposited(address,address,uint256,address)\":{\"notice\":\"Emitted when funds are successfully deposited into the pool.\"},\"FundsLocked(address,uint256,address)\":{\"notice\":\"Emitted when funds are locked in the ledger.\"},\"FundsReleased(address,uint256,address)\":{\"notice\":\"Emitted when locked funds are successfully released.\"},\"FundsTransferred(address,address,uint256,address)\":{\"notice\":\"Emitted when funds are successfully transferred between accounts.\"},\"FundsWithdrawn(address,address,uint256,address)\":{\"notice\":\"Emitted when funds are withdrawn from the contract.\"}},\"kind\":\"user\",\"methods\":{\"claim(address,uint256,address)\":{\"notice\":\"Claims a specific amount of locked funds on behalf of a claimer.\"},\"deposit(address,uint256,address)\":{\"notice\":\"Deposits a specified amount of currency into the pool for a given recipient.\"},\"getBalance(address)\":{\"notice\":\"Returns the general's balance for the specified currency.\"},\"getLedgerBalance(address,address)\":{\"notice\":\"Retrieves the ledger balance of an account for a specific currency.\"},\"lock(address,uint256,address)\":{\"notice\":\"Locks a specific amount of funds for a given account.\"},\"release(address,uint256,address)\":{\"notice\":\"Release a specific amount of funds from locked pool.\"},\"transfer(address,uint256,address)\":{\"notice\":\"Transfers a specified amount of currency from the caller's balance to a given recipient.\"},\"withdraw(address,uint256,address)\":{\"notice\":\"Withdraws tokens from the contract to a specified recipient's address.\"}},\"notice\":\"A vault contract designed to store, lock, release, and manage funds securely.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/financial/LedgerVault.sol\":\"LedgerVault\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=contracts/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solady/=lib/solady/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"contracts/core/interfaces/base/IBalanceDepositor.sol\":{\"keccak256\":\"0x5c52b09eb3ef3b077d02c9a989624b2dc1e2a00f026b65a04b6bc67206c751d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945732e1b234e80dee53dfd566862640bba93e6bdc360637c9dc2e1446757d2\",\"dweb:/ipfs/QmRGnSxbbDBFDcJiNkKyAj1K8Y88PbLub13Pf6jiWmT4Vn\"]},\"contracts/core/interfaces/base/IBalanceOperator.sol\":{\"keccak256\":\"0x15c496cd62a30864c5e2a97c6c42f32dff53dbaa6a39423ccae999712c76361e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ad4f9ae16eded8d662578e6435b9edb2b39df26e776a1ae3459bda696ce20c1\",\"dweb:/ipfs/QmYxNU1zexpUevj5GecxfYPvCM7DPs6xKVrEBSfQAyZ4Rx\"]},\"contracts/core/interfaces/base/IBalanceTransferable.sol\":{\"keccak256\":\"0x1ab8599894aaabb22bbcdd9ef55246991aa1a8c7d91fdb3af11d0a9da76c8657\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8449bddd07f95f25e5651246a0d925a09d18077e7d8af1e590f14766b6e951de\",\"dweb:/ipfs/QmQHrcXFVZizwXpHK4D2TteXqDkPJiaCdHwrxegMTRn1iQ\"]},\"contracts/core/interfaces/base/IBalanceWithdrawable.sol\":{\"keccak256\":\"0x4b4f6ed37ea5ae7a453e075ad49f6e99aee09cb7c3ed6152b81bd8d42cef1b40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc42910ff3935f00aff6b5b39479021212ef6281f323c130e68b8a62cc4d96ec\",\"dweb:/ipfs/QmdVmmna2ZCwBDbpGZXvYABN8fNwCmU7JciXFzq93s2yE7\"]},\"contracts/core/interfaces/base/ILedgerVerifiable.sol\":{\"keccak256\":\"0x89d88c2c231d74479d218a74c495696e7cce624ec5f0fea83840171ac9a90e95\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7b0548dc0eb2cd40fc1907b5b1576c050faef5e18a5bc6237666288c3084ffd\",\"dweb:/ipfs/Qman5EaGE4tgrQ4kq6w9n7mLNDAhgXXC1Cyj9dUP8e3KKG\"]},\"contracts/core/libraries/FinancialOps.sol\":{\"keccak256\":\"0x562c5b305577ec5b57c5fba5df98afdaba99d7871772962502e0959852e92215\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d37937cd5fe0432f714aebba49d342dab1e9577c9d1edc3fe568a02e636e1a3d\",\"dweb:/ipfs/QmVteEKdVkvwKKEHyweJWbns75LU3jsqrQtAhcHY7eTwhX\"]},\"contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]},\"contracts/core/primitives/upgradeable/BalanceOperatorUpgradeable.sol\":{\"keccak256\":\"0xdcb66f86cc94a88725347da0add854997b3759b4f98efce0923f313c9759a03f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afa2db1b1e817131b5925e546c1cb8ab8b256e7d6d38752e60807d88631ca403\",\"dweb:/ipfs/QmShNiZ2QJWVrrshkMWKBkyMmu1i2ngfobuPpZV1LeAhh1\"]},\"contracts/core/primitives/upgradeable/LedgerUpgradeable.sol\":{\"keccak256\":\"0x2e51d076c533c1161e843e808db34e7f774b9acdb61e6c83dbeda6fe07920c2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4482e61cfc721dc96e1ef47f56010ad0f37c225949609bba0f03c406a8ac0c2\",\"dweb:/ipfs/QmdSXpbPbrXFDUr4sHQ6BJeRUGWq2EpoCiiS8APxFeYysX\"]},\"contracts/financial/LedgerVault.sol\":{\"keccak256\":\"0x501aab236fcb7377a9687fe5c555b074861244bf8fe8b7d63ddc34f29f7f3b08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://705dd2f42064b55be00ce5696ee6fd18626ff0f39afe3e7904f45c04ca08afcf\",\"dweb:/ipfs/QmYFci4aRBQQaxP7yMSxnK7sUVvPRZ5g2tPjNAh44F1gk1\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x04b70c397e00597da0f023706f7c44ac8c7b4276a1ddff05d3ca5449775bc6f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4b8599331bffb75c9d40ad57cf5025c29d384099ece48758fea2f0f5b969eab\",\"dweb:/ipfs/QmXXMq1kgvMdUn3DiTS4zEZNy9EDXfevM2wvYHWwfSW6Yu\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"FailDuringDeposit"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"FailDuringTransfer"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NoFundsToClaim"},{"inputs":[],"type":"error","name":"NoFundsToLock"},{"inputs":[],"type":"error","name":"NoFundsToRelease"},{"inputs":[],"type":"error","name":"NoFundsToTransfer"},{"inputs":[],"type":"error","name":"NoFundsToWithdraw"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":true}],"type":"event","name":"FundsClaimed","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"address","name":"origin","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":false}],"type":"event","name":"FundsDeposited","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":true}],"type":"event","name":"FundsLocked","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":true}],"type":"event","name":"FundsReleased","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"address","name":"origin","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":false}],"type":"event","name":"FundsTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"address","name":"origin","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":true}],"type":"event","name":"FundsWithdrawn","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"view","type":"function","name":"getLedgerBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"lock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"release","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"claim(address,uint256,address)":{"details":"The claimer is authorized to process the funds from the account. Only operator role can handle this methods.","params":{"account":"The address of the account whose funds are being claimed.","amount":"The amount of funds to claim.","currency":"The currency to associate claim with. Use address(0) for the native coin."}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"deposit(address,uint256,address)":{"params":{"amount":"The amount of currency to deposit.","currency":"The address of the ERC20 token to deposit.","recipient":"The address of the account to credit with the deposit."}},"getBalance(address)":{"details":"The function checks the balance for both native and ERC-20 tokens.","params":{"currency":"The address of the currency to check the balance of."}},"getLedgerBalance(address,address)":{"params":{"account":"The address of the account whose balance is being queried.","currency":"The address of the currency to retrieve the balance for."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"lock(address,uint256,address)":{"details":"The funds are immobilized and cannot be withdrawn or transferred until released or claimed. Only operator role can handle this methods.","params":{"account":"The address of the account for which the funds will be locked.","amount":"The amount of funds to lock.","currency":"The currency to associate lock with. Use address(0) for the native coin."}},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"release(address,uint256,address)":{"params":{"account":"The address of the account for which the funds will be released.","amount":"The amount of funds to release.","currency":"The currency to associate release with. Use address(0) for the native coin."}},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"transfer(address,uint256,address)":{"details":"Ensures the caller has sufficient balance before performing the transfer. Updates the ledger accordingly.","params":{"amount":"The amount of currency to transfer.","currency":"The address of the ERC20 token to transfer. Use `address(0)` for native tokens.","recipient":"The address of the account to credit with the transfer."}},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"withdraw(address,uint256,address)":{"details":"This function withdraws funds from the caller's balance and transfers them to the recipient.","params":{"amount":"The amount of tokens to withdraw.","currency":"The currency to associate fees with. Use address(0) for the native coin.","recipient":"The address that will receive the withdrawn tokens."}}},"version":1},"userdoc":{"kind":"user","methods":{"claim(address,uint256,address)":{"notice":"Claims a specific amount of locked funds on behalf of a claimer."},"deposit(address,uint256,address)":{"notice":"Deposits a specified amount of currency into the pool for a given recipient."},"getBalance(address)":{"notice":"Returns the general's balance for the specified currency."},"getLedgerBalance(address,address)":{"notice":"Retrieves the ledger balance of an account for a specific currency."},"lock(address,uint256,address)":{"notice":"Locks a specific amount of funds for a given account."},"release(address,uint256,address)":{"notice":"Release a specific amount of funds from locked pool."},"transfer(address,uint256,address)":{"notice":"Transfers a specified amount of currency from the caller's balance to a given recipient."},"withdraw(address,uint256,address)":{"notice":"Withdraws tokens from the contract to a specified recipient's address."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=contracts/","ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solady/=lib/solady/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/financial/LedgerVault.sol":"LedgerVault"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"contracts/core/interfaces/base/IBalanceDepositor.sol":{"keccak256":"0x5c52b09eb3ef3b077d02c9a989624b2dc1e2a00f026b65a04b6bc67206c751d8","urls":["bzz-raw://0945732e1b234e80dee53dfd566862640bba93e6bdc360637c9dc2e1446757d2","dweb:/ipfs/QmRGnSxbbDBFDcJiNkKyAj1K8Y88PbLub13Pf6jiWmT4Vn"],"license":"MIT"},"contracts/core/interfaces/base/IBalanceOperator.sol":{"keccak256":"0x15c496cd62a30864c5e2a97c6c42f32dff53dbaa6a39423ccae999712c76361e","urls":["bzz-raw://7ad4f9ae16eded8d662578e6435b9edb2b39df26e776a1ae3459bda696ce20c1","dweb:/ipfs/QmYxNU1zexpUevj5GecxfYPvCM7DPs6xKVrEBSfQAyZ4Rx"],"license":"MIT"},"contracts/core/interfaces/base/IBalanceTransferable.sol":{"keccak256":"0x1ab8599894aaabb22bbcdd9ef55246991aa1a8c7d91fdb3af11d0a9da76c8657","urls":["bzz-raw://8449bddd07f95f25e5651246a0d925a09d18077e7d8af1e590f14766b6e951de","dweb:/ipfs/QmQHrcXFVZizwXpHK4D2TteXqDkPJiaCdHwrxegMTRn1iQ"],"license":"MIT"},"contracts/core/interfaces/base/IBalanceWithdrawable.sol":{"keccak256":"0x4b4f6ed37ea5ae7a453e075ad49f6e99aee09cb7c3ed6152b81bd8d42cef1b40","urls":["bzz-raw://cc42910ff3935f00aff6b5b39479021212ef6281f323c130e68b8a62cc4d96ec","dweb:/ipfs/QmdVmmna2ZCwBDbpGZXvYABN8fNwCmU7JciXFzq93s2yE7"],"license":"MIT"},"contracts/core/interfaces/base/ILedgerVerifiable.sol":{"keccak256":"0x89d88c2c231d74479d218a74c495696e7cce624ec5f0fea83840171ac9a90e95","urls":["bzz-raw://b7b0548dc0eb2cd40fc1907b5b1576c050faef5e18a5bc6237666288c3084ffd","dweb:/ipfs/Qman5EaGE4tgrQ4kq6w9n7mLNDAhgXXC1Cyj9dUP8e3KKG"],"license":"MIT"},"contracts/core/libraries/FinancialOps.sol":{"keccak256":"0x562c5b305577ec5b57c5fba5df98afdaba99d7871772962502e0959852e92215","urls":["bzz-raw://d37937cd5fe0432f714aebba49d342dab1e9577c9d1edc3fe568a02e636e1a3d","dweb:/ipfs/QmVteEKdVkvwKKEHyweJWbns75LU3jsqrQtAhcHY7eTwhX"],"license":"GPL-3.0-or-later"},"contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df","urls":["bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2","dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj"],"license":"MIT"},"contracts/core/primitives/upgradeable/BalanceOperatorUpgradeable.sol":{"keccak256":"0xdcb66f86cc94a88725347da0add854997b3759b4f98efce0923f313c9759a03f","urls":["bzz-raw://afa2db1b1e817131b5925e546c1cb8ab8b256e7d6d38752e60807d88631ca403","dweb:/ipfs/QmShNiZ2QJWVrrshkMWKBkyMmu1i2ngfobuPpZV1LeAhh1"],"license":"MIT"},"contracts/core/primitives/upgradeable/LedgerUpgradeable.sol":{"keccak256":"0x2e51d076c533c1161e843e808db34e7f774b9acdb61e6c83dbeda6fe07920c2a","urls":["bzz-raw://a4482e61cfc721dc96e1ef47f56010ad0f37c225949609bba0f03c406a8ac0c2","dweb:/ipfs/QmdSXpbPbrXFDUr4sHQ6BJeRUGWq2EpoCiiS8APxFeYysX"],"license":"MIT"},"contracts/financial/LedgerVault.sol":{"keccak256":"0x501aab236fcb7377a9687fe5c555b074861244bf8fe8b7d63ddc34f29f7f3b08","urls":["bzz-raw://705dd2f42064b55be00ce5696ee6fd18626ff0f39afe3e7904f45c04ca08afcf","dweb:/ipfs/QmYFci4aRBQQaxP7yMSxnK7sUVvPRZ5g2tPjNAh44F1gk1"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x04b70c397e00597da0f023706f7c44ac8c7b4276a1ddff05d3ca5449775bc6f5","urls":["bzz-raw://d4b8599331bffb75c9d40ad57cf5025c29d384099ece48758fea2f0f5b969eab","dweb:/ipfs/QmXXMq1kgvMdUn3DiTS4zEZNy9EDXfevM2wvYHWwfSW6Yu"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol":{"keccak256":"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1","urls":["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889","dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":4706,"contract":"contracts/financial/LedgerVault.sol:LedgerVault","label":"_locked","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"contracts/financial/LedgerVault.sol","id":5070,"exportedSymbols":{"AccessControlledUpgradeable":[2660],"BalanceOperatorUpgradeable":[2824],"FinancialOps":[2031],"Initializable":[50462],"LedgerVault":[5069],"ReentrancyGuardTransientUpgradeable":[52553],"UUPSUpgradeable":[50644]},"nodeType":"SourceUnit","src":"124:10184:54","nodes":[{"id":4673,"nodeType":"PragmaDirective","src":"124:23:54","nodes":[],"literals":["solidity","0.8",".26"]},{"id":4675,"nodeType":"ImportDirective","src":"149:98:54","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":5070,"sourceUnit":50463,"symbolAliases":[{"foreign":{"id":4674,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50462,"src":"158:13:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4677,"nodeType":"ImportDirective","src":"248:102:54","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5070,"sourceUnit":50645,"symbolAliases":[{"foreign":{"id":4676,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50644,"src":"257:15:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4679,"nodeType":"ImportDirective","src":"396:136:54","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5070,"sourceUnit":52554,"symbolAliases":[{"foreign":{"id":4678,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52553,"src":"405:35:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4681,"nodeType":"ImportDirective","src":"533:115:54","nodes":[],"absolutePath":"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5070,"sourceUnit":2661,"symbolAliases":[{"foreign":{"id":4680,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2660,"src":"542:27:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4683,"nodeType":"ImportDirective","src":"649:113:54","nodes":[],"absolutePath":"contracts/core/primitives/upgradeable/BalanceOperatorUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/BalanceOperatorUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5070,"sourceUnit":2825,"symbolAliases":[{"foreign":{"id":4682,"name":"BalanceOperatorUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2824,"src":"658:26:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4685,"nodeType":"ImportDirective","src":"763:72:54","nodes":[],"absolutePath":"contracts/core/libraries/FinancialOps.sol","file":"@synaps3/core/libraries/FinancialOps.sol","nameLocation":"-1:-1:-1","scope":5070,"sourceUnit":2032,"symbolAliases":[{"foreign":{"id":4684,"name":"FinancialOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2031,"src":"772:12:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5069,"nodeType":"ContractDefinition","src":"1146:9161:54","nodes":[{"id":4699,"nodeType":"UsingForDirective","src":"1321:31:54","nodes":[],"global":false,"libraryName":{"id":4697,"name":"FinancialOps","nameLocations":["1327:12:54"],"nodeType":"IdentifierPath","referencedDeclaration":2031,"src":"1327:12:54"},"typeName":{"id":4698,"name":"address","nodeType":"ElementaryTypeName","src":"1344:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":4706,"nodeType":"VariableDeclaration","src":"1420:63:54","nodes":[],"constant":false,"documentation":{"id":4700,"nodeType":"StructuredDocumentation","src":"1358:57:54","text":"@dev Holds the registry of locked funds for accounts."},"mutability":"mutable","name":"_locked","nameLocation":"1476:7:54","scope":5069,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":4705,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4701,"name":"address","nodeType":"ElementaryTypeName","src":"1428:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1420:47:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4704,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4702,"name":"address","nodeType":"ElementaryTypeName","src":"1447:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1439:27:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4703,"name":"uint256","nodeType":"ElementaryTypeName","src":"1458:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"id":4715,"nodeType":"EventDefinition","src":"1770:85:54","nodes":[],"anonymous":false,"documentation":{"id":4707,"nodeType":"StructuredDocumentation","src":"1490:275:54","text":"@notice Emitted when funds are locked in the ledger.\n @param account The address of the account whose funds were locked.\n @param amount The amount of funds that were locked.\n @param currency The address of the currency in which the funds were locked."},"eventSelector":"a372d74f11f208f0466eb410f699d101da6ccbe3717f711988fb355eac737f62","name":"FundsLocked","nameLocation":"1776:11:54","parameters":{"id":4714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4709,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1804:7:54","nodeType":"VariableDeclaration","scope":4715,"src":"1788:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4708,"name":"address","nodeType":"ElementaryTypeName","src":"1788:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4711,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1821:6:54","nodeType":"VariableDeclaration","scope":4715,"src":"1813:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4710,"name":"uint256","nodeType":"ElementaryTypeName","src":"1813:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4713,"indexed":true,"mutability":"mutable","name":"currency","nameLocation":"1845:8:54","nodeType":"VariableDeclaration","scope":4715,"src":"1829:24:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4712,"name":"address","nodeType":"ElementaryTypeName","src":"1829:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1787:67:54"}},{"id":4724,"nodeType":"EventDefinition","src":"2151:87:54","nodes":[],"anonymous":false,"documentation":{"id":4716,"nodeType":"StructuredDocumentation","src":"1861:285:54","text":"@notice Emitted when locked funds are successfully released.\n @param account The address of the account whose funds were released.\n @param amount The amount of funds that were locked.\n @param currency The address of the currency in which the funds were locked."},"eventSelector":"29f33620d8742cb2079bba3afb003116b7db185e4f58a4bd6bc4291b6d99fcbc","name":"FundsReleased","nameLocation":"2157:13:54","parameters":{"id":4723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4718,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"2187:7:54","nodeType":"VariableDeclaration","scope":4724,"src":"2171:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4717,"name":"address","nodeType":"ElementaryTypeName","src":"2171:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4720,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2204:6:54","nodeType":"VariableDeclaration","scope":4724,"src":"2196:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4719,"name":"uint256","nodeType":"ElementaryTypeName","src":"2196:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4722,"indexed":true,"mutability":"mutable","name":"currency","nameLocation":"2228:8:54","nodeType":"VariableDeclaration","scope":4724,"src":"2212:24:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4721,"name":"address","nodeType":"ElementaryTypeName","src":"2212:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2170:67:54"}},{"id":4733,"nodeType":"EventDefinition","src":"2517:86:54","nodes":[],"anonymous":false,"documentation":{"id":4725,"nodeType":"StructuredDocumentation","src":"2244:268:54","text":"@notice Emitted when locked funds are successfully claimed.\n @param claimer The address of the entity claiming the funds.\n @param amount The amount of funds claimed.\n @param currency The address of the currency in which the funds were claimed."},"eventSelector":"07b798e47a298c7004dfddcb1196e6b8f9a6488dd1db7eeedbc8a4c3f4831563","name":"FundsClaimed","nameLocation":"2523:12:54","parameters":{"id":4732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4727,"indexed":true,"mutability":"mutable","name":"claimer","nameLocation":"2552:7:54","nodeType":"VariableDeclaration","scope":4733,"src":"2536:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4726,"name":"address","nodeType":"ElementaryTypeName","src":"2536:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4729,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2569:6:54","nodeType":"VariableDeclaration","scope":4733,"src":"2561:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4728,"name":"uint256","nodeType":"ElementaryTypeName","src":"2561:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4731,"indexed":true,"mutability":"mutable","name":"currency","nameLocation":"2593:8:54","nodeType":"VariableDeclaration","scope":4733,"src":"2577:24:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4730,"name":"address","nodeType":"ElementaryTypeName","src":"2577:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2535:67:54"}},{"id":4736,"nodeType":"ErrorDefinition","src":"2764:22:54","nodes":[],"documentation":{"id":4734,"nodeType":"StructuredDocumentation","src":"2609:150:54","text":"@notice Thrown when there are no available funds to lock.\n @dev This error occurs if an account attempts to lock more funds than available."},"errorSelector":"a9e575de","name":"NoFundsToLock","nameLocation":"2770:13:54","parameters":{"id":4735,"nodeType":"ParameterList","parameters":[],"src":"2783:2:54"}},{"id":4739,"nodeType":"ErrorDefinition","src":"2980:23:54","nodes":[],"documentation":{"id":4737,"nodeType":"StructuredDocumentation","src":"2792:183:54","text":"@notice Thrown when there are no locked funds available to claim.\n @dev This error occurs if an account or claimer tries to claim funds that are not locked or insufficient."},"errorSelector":"dff46e2b","name":"NoFundsToClaim","nameLocation":"2986:14:54","parameters":{"id":4738,"nodeType":"ParameterList","parameters":[],"src":"3000:2:54"}},{"id":4742,"nodeType":"ErrorDefinition","src":"3192:25:54","nodes":[],"documentation":{"id":4740,"nodeType":"StructuredDocumentation","src":"3009:178:54","text":"@notice Thrown when there are no locked funds available to release.\n @dev This error occurs if an operator tries to releases funds that are not locked or insufficient."},"errorSelector":"b7cc22bc","name":"NoFundsToRelease","nameLocation":"3198:16:54","parameters":{"id":4741,"nodeType":"ParameterList","parameters":[],"src":"3214:2:54"}},{"id":4750,"nodeType":"FunctionDefinition","src":"3276:243:54","nodes":[],"body":{"id":4749,"nodeType":"Block","src":"3290:229:54","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4746,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50430,"src":"3490:20:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3490:22:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4748,"nodeType":"ExpressionStatement","src":"3490:22:54"}]},"documentation":{"id":4743,"nodeType":"StructuredDocumentation","src":"3223:48:54","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":4744,"nodeType":"ParameterList","parameters":[],"src":"3287:2:54"},"returnParameters":{"id":4745,"nodeType":"ParameterList","parameters":[],"src":"3290:0:54"},"scope":5069,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":4771,"nodeType":"FunctionDefinition","src":"3525:228:54","nodes":[],"body":{"id":4770,"nodeType":"Block","src":"3587:166:54","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4757,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50516,"src":"3597:22:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3597:24:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4759,"nodeType":"ExpressionStatement","src":"3597:24:54"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4760,"name":"__BalanceOperator_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2690,"src":"3631:22:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3631:24:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4762,"nodeType":"ExpressionStatement","src":"3631:24:54"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4763,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52502,"src":"3665:31:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3665:33:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4765,"nodeType":"ExpressionStatement","src":"3665:33:54"},{"expression":{"arguments":[{"id":4767,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4752,"src":"3732:13:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4766,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2595,"src":"3708:23:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3708:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4769,"nodeType":"ExpressionStatement","src":"3708:38:54"}]},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":4755,"kind":"modifierInvocation","modifierName":{"id":4754,"name":"initializer","nameLocations":["3575:11:54"],"nodeType":"IdentifierPath","referencedDeclaration":50316,"src":"3575:11:54"},"nodeType":"ModifierInvocation","src":"3575:11:54"}],"name":"initialize","nameLocation":"3534:10:54","parameters":{"id":4753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4752,"mutability":"mutable","name":"accessManager","nameLocation":"3553:13:54","nodeType":"VariableDeclaration","scope":4771,"src":"3545:21:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4751,"name":"address","nodeType":"ElementaryTypeName","src":"3545:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3544:23:54"},"returnParameters":{"id":4756,"nodeType":"ParameterList","parameters":[],"src":"3587:0:54"},"scope":5069,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":4802,"nodeType":"FunctionDefinition","src":"4056:270:54","nodes":[],"body":{"id":4801,"nodeType":"Block","src":"4153:173:54","nodes":[],"statements":[{"assignments":[4784],"declarations":[{"constant":false,"id":4784,"mutability":"mutable","name":"confirmed","nameLocation":"4171:9:54","nodeType":"VariableDeclaration","scope":4801,"src":"4163:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4783,"name":"uint256","nodeType":"ElementaryTypeName","src":"4163:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4790,"initialValue":{"arguments":[{"id":4786,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4774,"src":"4192:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4787,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4776,"src":"4203:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4788,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4778,"src":"4211:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4785,"name":"_deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2744,"src":"4183:8:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (address,uint256,address) returns (uint256)"}},"id":4789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4183:37:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4163:57:54"},{"eventCall":{"arguments":[{"id":4792,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4774,"src":"4250:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":4793,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4261:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4265:6:54","memberName":"sender","nodeType":"MemberAccess","src":"4261:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4795,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4784,"src":"4273:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4796,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4778,"src":"4284:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4791,"name":"FundsDeposited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":934,"src":"4235:14:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,address,uint256,address)"}},"id":4797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4235:58:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4798,"nodeType":"EmitStatement","src":"4230:63:54"},{"expression":{"id":4799,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4784,"src":"4310:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4782,"id":4800,"nodeType":"Return","src":"4303:16:54"}]},"baseFunctions":[946],"documentation":{"id":4772,"nodeType":"StructuredDocumentation","src":"3759:292:54","text":"@notice Deposits a specified amount of currency into the pool for a given recipient.\n @param recipient The address of the account to credit with the deposit.\n @param amount The amount of currency to deposit.\n @param currency The address of the ERC20 token to deposit."},"functionSelector":"f45346dc","implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"4065:7:54","parameters":{"id":4779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4774,"mutability":"mutable","name":"recipient","nameLocation":"4081:9:54","nodeType":"VariableDeclaration","scope":4802,"src":"4073:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4773,"name":"address","nodeType":"ElementaryTypeName","src":"4073:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4776,"mutability":"mutable","name":"amount","nameLocation":"4100:6:54","nodeType":"VariableDeclaration","scope":4802,"src":"4092:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4775,"name":"uint256","nodeType":"ElementaryTypeName","src":"4092:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4778,"mutability":"mutable","name":"currency","nameLocation":"4116:8:54","nodeType":"VariableDeclaration","scope":4802,"src":"4108:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4777,"name":"address","nodeType":"ElementaryTypeName","src":"4108:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4072:53:54"},"returnParameters":{"id":4782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4781,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4802,"src":"4144:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4780,"name":"uint256","nodeType":"ElementaryTypeName","src":"4144:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4143:9:54"},"scope":5069,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":4835,"nodeType":"FunctionDefinition","src":"4797:285:54","nodes":[],"body":{"id":4834,"nodeType":"Block","src":"4908:174:54","nodes":[],"statements":[{"assignments":[4817],"declarations":[{"constant":false,"id":4817,"mutability":"mutable","name":"confirmed","nameLocation":"4926:9:54","nodeType":"VariableDeclaration","scope":4834,"src":"4918:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4816,"name":"uint256","nodeType":"ElementaryTypeName","src":"4918:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4823,"initialValue":{"arguments":[{"id":4819,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4805,"src":"4948:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4820,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4807,"src":"4959:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4821,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4809,"src":"4967:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4818,"name":"_withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2784,"src":"4938:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (address,uint256,address) returns (uint256)"}},"id":4822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4938:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4918:58:54"},{"eventCall":{"arguments":[{"id":4825,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4805,"src":"5006:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":4826,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5017:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5021:6:54","memberName":"sender","nodeType":"MemberAccess","src":"5017:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4828,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4817,"src":"5029:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4829,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4809,"src":"5040:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4824,"name":"FundsWithdrawn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1022,"src":"4991:14:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,address,uint256,address)"}},"id":4830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4991:58:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4831,"nodeType":"EmitStatement","src":"4986:63:54"},{"expression":{"id":4832,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4817,"src":"5066:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4815,"id":4833,"nodeType":"Return","src":"5059:16:54"}]},"baseFunctions":[1034],"documentation":{"id":4803,"nodeType":"StructuredDocumentation","src":"4374:418:54","text":"@notice Withdraws tokens from the contract to a specified recipient's address.\n @dev This function withdraws funds from the caller's balance and transfers them to the recipient.\n @param recipient The address that will receive the withdrawn tokens.\n @param amount The amount of tokens to withdraw.\n @param currency The currency to associate fees with. Use address(0) for the native coin."},"functionSelector":"69328dec","implemented":true,"kind":"function","modifiers":[{"id":4812,"kind":"modifierInvocation","modifierName":{"id":4811,"name":"nonReentrant","nameLocations":["4877:12:54"],"nodeType":"IdentifierPath","referencedDeclaration":52496,"src":"4877:12:54"},"nodeType":"ModifierInvocation","src":"4877:12:54"}],"name":"withdraw","nameLocation":"4806:8:54","parameters":{"id":4810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4805,"mutability":"mutable","name":"recipient","nameLocation":"4823:9:54","nodeType":"VariableDeclaration","scope":4835,"src":"4815:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4804,"name":"address","nodeType":"ElementaryTypeName","src":"4815:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4807,"mutability":"mutable","name":"amount","nameLocation":"4842:6:54","nodeType":"VariableDeclaration","scope":4835,"src":"4834:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4806,"name":"uint256","nodeType":"ElementaryTypeName","src":"4834:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4809,"mutability":"mutable","name":"currency","nameLocation":"4858:8:54","nodeType":"VariableDeclaration","scope":4835,"src":"4850:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4808,"name":"address","nodeType":"ElementaryTypeName","src":"4850:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4814:53:54"},"returnParameters":{"id":4815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4814,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4835,"src":"4899:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4813,"name":"uint256","nodeType":"ElementaryTypeName","src":"4899:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4898:9:54"},"scope":5069,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":4866,"nodeType":"FunctionDefinition","src":"5555:274:54","nodes":[],"body":{"id":4865,"nodeType":"Block","src":"5653:176:54","nodes":[],"statements":[{"assignments":[4848],"declarations":[{"constant":false,"id":4848,"mutability":"mutable","name":"confirmed","nameLocation":"5671:9:54","nodeType":"VariableDeclaration","scope":4865,"src":"5663:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4847,"name":"uint256","nodeType":"ElementaryTypeName","src":"5663:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4854,"initialValue":{"arguments":[{"id":4850,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4838,"src":"5693:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4851,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4840,"src":"5704:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4852,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4842,"src":"5712:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4849,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2823,"src":"5683:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (address,uint256,address) returns (uint256)"}},"id":4853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5683:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5663:58:54"},{"eventCall":{"arguments":[{"id":4856,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4838,"src":"5753:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":4857,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5764:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5768:6:54","memberName":"sender","nodeType":"MemberAccess","src":"5764:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4859,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"5776:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4860,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4842,"src":"5787:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4855,"name":"FundsTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":980,"src":"5736:16:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,address,uint256,address)"}},"id":4861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5736:60:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4862,"nodeType":"EmitStatement","src":"5731:65:54"},{"expression":{"id":4863,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"5813:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4846,"id":4864,"nodeType":"Return","src":"5806:16:54"}]},"baseFunctions":[992],"documentation":{"id":4836,"nodeType":"StructuredDocumentation","src":"5088:462:54","text":"@notice Transfers a specified amount of currency from the caller's balance to a given recipient.\n @dev Ensures the caller has sufficient balance before performing the transfer. Updates the ledger accordingly.\n @param recipient The address of the account to credit with the transfer.\n @param amount The amount of currency to transfer.\n @param currency The address of the ERC20 token to transfer. Use `address(0)` for native tokens."},"functionSelector":"dbba0f01","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"5564:8:54","parameters":{"id":4843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4838,"mutability":"mutable","name":"recipient","nameLocation":"5581:9:54","nodeType":"VariableDeclaration","scope":4866,"src":"5573:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4837,"name":"address","nodeType":"ElementaryTypeName","src":"5573:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4840,"mutability":"mutable","name":"amount","nameLocation":"5600:6:54","nodeType":"VariableDeclaration","scope":4866,"src":"5592:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4839,"name":"uint256","nodeType":"ElementaryTypeName","src":"5592:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4842,"mutability":"mutable","name":"currency","nameLocation":"5616:8:54","nodeType":"VariableDeclaration","scope":4866,"src":"5608:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4841,"name":"address","nodeType":"ElementaryTypeName","src":"5608:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5572:53:54"},"returnParameters":{"id":4846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4845,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4866,"src":"5644:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4844,"name":"uint256","nodeType":"ElementaryTypeName","src":"5644:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5643:9:54"},"scope":5069,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":4911,"nodeType":"FunctionDefinition","src":"6301:373:54","nodes":[],"body":{"id":4910,"nodeType":"Block","src":"6404:270:54","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4881,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4869,"src":"6435:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4882,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4873,"src":"6444:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4880,"name":"getLedgerBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3051,"src":"6418:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":4883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6418:35:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4884,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4871,"src":"6456:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6418:44:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4889,"nodeType":"IfStatement","src":"6414:72:54","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4886,"name":"NoFundsToLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4736,"src":"6471:13:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":4887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6471:15:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4888,"nodeType":"RevertStatement","src":"6464:22:54"}},{"expression":{"arguments":[{"id":4891,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4869,"src":"6512:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4892,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4871,"src":"6521:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4893,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4873,"src":"6529:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4890,"name":"_subLedgerEntry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3146,"src":"6496:15:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6496:42:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4895,"nodeType":"ExpressionStatement","src":"6496:42:54"},{"expression":{"arguments":[{"id":4897,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4869,"src":"6565:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4898,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4871,"src":"6574:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4899,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4873,"src":"6582:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4896,"name":"_sumLockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5041,"src":"6548:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6548:43:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4901,"nodeType":"ExpressionStatement","src":"6548:43:54"},{"eventCall":{"arguments":[{"id":4903,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4869,"src":"6618:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4904,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4871,"src":"6627:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4905,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4873,"src":"6635:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4902,"name":"FundsLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4715,"src":"6606:11:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6606:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4907,"nodeType":"EmitStatement","src":"6601:43:54"},{"expression":{"id":4908,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4871,"src":"6661:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4879,"id":4909,"nodeType":"Return","src":"6654:13:54"}]},"documentation":{"id":4867,"nodeType":"StructuredDocumentation","src":"5835:461:54","text":"@notice Locks a specific amount of funds for a given account.\n @dev The funds are immobilized and cannot be withdrawn or transferred until released or claimed.\n Only operator role can handle this methods.\n @param account The address of the account for which the funds will be locked.\n @param amount The amount of funds to lock.\n @param currency The currency to associate lock with. Use address(0) for the native coin."},"functionSelector":"4bbc170a","implemented":true,"kind":"function","modifiers":[{"id":4876,"kind":"modifierInvocation","modifierName":{"id":4875,"name":"restricted","nameLocations":["6375:10:54"],"nodeType":"IdentifierPath","referencedDeclaration":47916,"src":"6375:10:54"},"nodeType":"ModifierInvocation","src":"6375:10:54"}],"name":"lock","nameLocation":"6310:4:54","parameters":{"id":4874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4869,"mutability":"mutable","name":"account","nameLocation":"6323:7:54","nodeType":"VariableDeclaration","scope":4911,"src":"6315:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4868,"name":"address","nodeType":"ElementaryTypeName","src":"6315:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4871,"mutability":"mutable","name":"amount","nameLocation":"6340:6:54","nodeType":"VariableDeclaration","scope":4911,"src":"6332:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4870,"name":"uint256","nodeType":"ElementaryTypeName","src":"6332:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4873,"mutability":"mutable","name":"currency","nameLocation":"6356:8:54","nodeType":"VariableDeclaration","scope":4911,"src":"6348:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4872,"name":"address","nodeType":"ElementaryTypeName","src":"6348:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6314:51:54"},"returnParameters":{"id":4879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4878,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4911,"src":"6395:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4877,"name":"uint256","nodeType":"ElementaryTypeName","src":"6395:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6394:9:54"},"scope":5069,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":4956,"nodeType":"FunctionDefinition","src":"6991:381:54","nodes":[],"body":{"id":4955,"nodeType":"Block","src":"7097:275:54","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4926,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"7128:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4927,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4918,"src":"7137:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4925,"name":"_getLockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5058,"src":"7111:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":4928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7111:35:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4929,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4916,"src":"7149:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7111:44:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4934,"nodeType":"IfStatement","src":"7107:75:54","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4931,"name":"NoFundsToRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4742,"src":"7164:16:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":4932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7164:18:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4933,"nodeType":"RevertStatement","src":"7157:25:54"}},{"expression":{"arguments":[{"id":4936,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"7209:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4937,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4916,"src":"7218:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4938,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4918,"src":"7226:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4935,"name":"_subLockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5022,"src":"7192:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7192:43:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4940,"nodeType":"ExpressionStatement","src":"7192:43:54"},{"expression":{"arguments":[{"id":4942,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"7261:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4943,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4916,"src":"7270:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4944,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4918,"src":"7278:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4941,"name":"_sumLedgerEntry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3119,"src":"7245:15:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7245:42:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4946,"nodeType":"ExpressionStatement","src":"7245:42:54"},{"eventCall":{"arguments":[{"id":4948,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"7316:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4949,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4916,"src":"7325:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4950,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4918,"src":"7333:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4947,"name":"FundsReleased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4724,"src":"7302:13:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7302:40:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4952,"nodeType":"EmitStatement","src":"7297:45:54"},{"expression":{"id":4953,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4916,"src":"7359:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4924,"id":4954,"nodeType":"Return","src":"7352:13:54"}]},"documentation":{"id":4912,"nodeType":"StructuredDocumentation","src":"6680:306:54","text":"@notice Release a specific amount of funds from locked pool.\n @param account The address of the account for which the funds will be released.\n @param amount The amount of funds to release.\n @param currency The currency to associate release with. Use address(0) for the native coin."},"functionSelector":"15f41501","implemented":true,"kind":"function","modifiers":[{"id":4921,"kind":"modifierInvocation","modifierName":{"id":4920,"name":"restricted","nameLocations":["7068:10:54"],"nodeType":"IdentifierPath","referencedDeclaration":47916,"src":"7068:10:54"},"nodeType":"ModifierInvocation","src":"7068:10:54"}],"name":"release","nameLocation":"7000:7:54","parameters":{"id":4919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4914,"mutability":"mutable","name":"account","nameLocation":"7016:7:54","nodeType":"VariableDeclaration","scope":4956,"src":"7008:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4913,"name":"address","nodeType":"ElementaryTypeName","src":"7008:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4916,"mutability":"mutable","name":"amount","nameLocation":"7033:6:54","nodeType":"VariableDeclaration","scope":4956,"src":"7025:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4915,"name":"uint256","nodeType":"ElementaryTypeName","src":"7025:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4918,"mutability":"mutable","name":"currency","nameLocation":"7049:8:54","nodeType":"VariableDeclaration","scope":4956,"src":"7041:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4917,"name":"address","nodeType":"ElementaryTypeName","src":"7041:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7007:51:54"},"returnParameters":{"id":4924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4923,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4956,"src":"7088:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4922,"name":"uint256","nodeType":"ElementaryTypeName","src":"7088:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7087:9:54"},"scope":5069,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":5003,"nodeType":"FunctionDefinition","src":"7825:385:54","nodes":[],"body":{"id":5002,"nodeType":"Block","src":"7929:281:54","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4971,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4959,"src":"7960:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4972,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4963,"src":"7969:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4970,"name":"_getLockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5058,"src":"7943:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":4973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7943:35:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4974,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4961,"src":"7981:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7943:44:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4979,"nodeType":"IfStatement","src":"7939:73:54","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4976,"name":"NoFundsToClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4739,"src":"7996:14:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":4977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7996:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4978,"nodeType":"RevertStatement","src":"7989:23:54"}},{"expression":{"arguments":[{"id":4981,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4959,"src":"8039:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4982,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4961,"src":"8048:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4983,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4963,"src":"8056:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4980,"name":"_subLockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5022,"src":"8022:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8022:43:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4985,"nodeType":"ExpressionStatement","src":"8022:43:54"},{"expression":{"arguments":[{"expression":{"id":4987,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8094:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8098:6:54","memberName":"sender","nodeType":"MemberAccess","src":"8094:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4989,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4961,"src":"8106:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4990,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4963,"src":"8114:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4986,"name":"_sumLedgerEntry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3119,"src":"8078:15:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8078:45:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4992,"nodeType":"ExpressionStatement","src":"8078:45:54"},{"eventCall":{"arguments":[{"expression":{"id":4994,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8151:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8155:6:54","memberName":"sender","nodeType":"MemberAccess","src":"8151:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4996,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4961,"src":"8163:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4997,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4963,"src":"8171:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4993,"name":"FundsClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4733,"src":"8138:12:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8138:42:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4999,"nodeType":"EmitStatement","src":"8133:47:54"},{"expression":{"id":5000,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4961,"src":"8197:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4969,"id":5001,"nodeType":"Return","src":"8190:13:54"}]},"documentation":{"id":4957,"nodeType":"StructuredDocumentation","src":"7378:442:54","text":"@notice Claims a specific amount of locked funds on behalf of a claimer.\n @dev The claimer is authorized to process the funds from the account.\n Only operator role can handle this methods.\n @param account The address of the account whose funds are being claimed.\n @param amount The amount of funds to claim.\n @param currency The currency to associate claim with. Use address(0) for the native coin."},"functionSelector":"9e96a260","implemented":true,"kind":"function","modifiers":[{"id":4966,"kind":"modifierInvocation","modifierName":{"id":4965,"name":"restricted","nameLocations":["7900:10:54"],"nodeType":"IdentifierPath","referencedDeclaration":47916,"src":"7900:10:54"},"nodeType":"ModifierInvocation","src":"7900:10:54"}],"name":"claim","nameLocation":"7834:5:54","parameters":{"id":4964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4959,"mutability":"mutable","name":"account","nameLocation":"7848:7:54","nodeType":"VariableDeclaration","scope":5003,"src":"7840:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4958,"name":"address","nodeType":"ElementaryTypeName","src":"7840:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4961,"mutability":"mutable","name":"amount","nameLocation":"7865:6:54","nodeType":"VariableDeclaration","scope":5003,"src":"7857:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4960,"name":"uint256","nodeType":"ElementaryTypeName","src":"7857:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4963,"mutability":"mutable","name":"currency","nameLocation":"7881:8:54","nodeType":"VariableDeclaration","scope":5003,"src":"7873:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4962,"name":"address","nodeType":"ElementaryTypeName","src":"7873:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7839:51:54"},"returnParameters":{"id":4969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4968,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5003,"src":"7920:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4967,"name":"uint256","nodeType":"ElementaryTypeName","src":"7920:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7919:9:54"},"scope":5069,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":5022,"nodeType":"FunctionDefinition","src":"8632:138:54","nodes":[],"body":{"id":5021,"nodeType":"Block","src":"8717:53:54","nodes":[],"statements":[{"expression":{"id":5019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":5013,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4706,"src":"8727:7:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":5016,"indexExpression":{"id":5014,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5006,"src":"8735:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8727:16:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5017,"indexExpression":{"id":5015,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5010,"src":"8744:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8727:26:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":5018,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5008,"src":"8757:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8727:36:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5020,"nodeType":"ExpressionStatement","src":"8727:36:54"}]},"documentation":{"id":5004,"nodeType":"StructuredDocumentation","src":"8216:411:54","text":"@notice Reduces the locked funds of an account for a specific currency.\n @dev Deducts the specified `amount` from the `_locked` mapping for the given `account` and `currency`.\n @param account The address of the account whose locked funds are being reduced.\n @param amount The amount to subtract from the locked balance.\n @param currency The address of the currency being reduced."},"implemented":true,"kind":"function","modifiers":[],"name":"_subLockedAmount","nameLocation":"8641:16:54","parameters":{"id":5011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5006,"mutability":"mutable","name":"account","nameLocation":"8666:7:54","nodeType":"VariableDeclaration","scope":5022,"src":"8658:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5005,"name":"address","nodeType":"ElementaryTypeName","src":"8658:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5008,"mutability":"mutable","name":"amount","nameLocation":"8683:6:54","nodeType":"VariableDeclaration","scope":5022,"src":"8675:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5007,"name":"uint256","nodeType":"ElementaryTypeName","src":"8675:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5010,"mutability":"mutable","name":"currency","nameLocation":"8699:8:54","nodeType":"VariableDeclaration","scope":5022,"src":"8691:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5009,"name":"address","nodeType":"ElementaryTypeName","src":"8691:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8657:51:54"},"returnParameters":{"id":5012,"nodeType":"ParameterList","parameters":[],"src":"8717:0:54"},"scope":5069,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":5041,"nodeType":"FunctionDefinition","src":"9186:138:54","nodes":[],"body":{"id":5040,"nodeType":"Block","src":"9271:53:54","nodes":[],"statements":[{"expression":{"id":5038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":5032,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4706,"src":"9281:7:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":5035,"indexExpression":{"id":5033,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5025,"src":"9289:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9281:16:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5036,"indexExpression":{"id":5034,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5029,"src":"9298:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9281:26:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":5037,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5027,"src":"9311:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9281:36:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5039,"nodeType":"ExpressionStatement","src":"9281:36:54"}]},"documentation":{"id":5023,"nodeType":"StructuredDocumentation","src":"8776:405:54","text":"@notice Increases the locked funds of an account for a specific currency.\n @dev Adds the specified `amount` to the `_locked` mapping for the given `account` and `currency`.\n @param account The address of the account whose locked funds are being increased.\n @param amount The amount to add to the locked balance.\n @param currency The address of the currency being increased."},"implemented":true,"kind":"function","modifiers":[],"name":"_sumLockedAmount","nameLocation":"9195:16:54","parameters":{"id":5030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5025,"mutability":"mutable","name":"account","nameLocation":"9220:7:54","nodeType":"VariableDeclaration","scope":5041,"src":"9212:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5024,"name":"address","nodeType":"ElementaryTypeName","src":"9212:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5027,"mutability":"mutable","name":"amount","nameLocation":"9237:6:54","nodeType":"VariableDeclaration","scope":5041,"src":"9229:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5026,"name":"uint256","nodeType":"ElementaryTypeName","src":"9229:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5029,"mutability":"mutable","name":"currency","nameLocation":"9253:8:54","nodeType":"VariableDeclaration","scope":5041,"src":"9245:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5028,"name":"address","nodeType":"ElementaryTypeName","src":"9245:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9211:51:54"},"returnParameters":{"id":5031,"nodeType":"ParameterList","parameters":[],"src":"9271:0:54"},"scope":5069,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":5058,"nodeType":"FunctionDefinition","src":"9775:142:54","nodes":[],"body":{"id":5057,"nodeType":"Block","src":"9867:50:54","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":5051,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4706,"src":"9884:7:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":5053,"indexExpression":{"id":5052,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5044,"src":"9892:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9884:16:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5055,"indexExpression":{"id":5054,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5046,"src":"9901:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9884:26:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5050,"id":5056,"nodeType":"Return","src":"9877:33:54"}]},"documentation":{"id":5042,"nodeType":"StructuredDocumentation","src":"9330:440:54","text":"@notice Retrieves the locked balance of an account for a specific currency.\n @dev Returns the value stored in the `_locked` mapping for the given `account` and `currency`.\n @param account The address of the account whose locked balance is being queried.\n @param currency The address of the currency to check the locked balance for.\n @return The locked balance of the specified account for the given currency."},"implemented":true,"kind":"function","modifiers":[],"name":"_getLockedAmount","nameLocation":"9784:16:54","parameters":{"id":5047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5044,"mutability":"mutable","name":"account","nameLocation":"9809:7:54","nodeType":"VariableDeclaration","scope":5058,"src":"9801:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5043,"name":"address","nodeType":"ElementaryTypeName","src":"9801:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5046,"mutability":"mutable","name":"currency","nameLocation":"9826:8:54","nodeType":"VariableDeclaration","scope":5058,"src":"9818:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5045,"name":"address","nodeType":"ElementaryTypeName","src":"9818:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9800:35:54"},"returnParameters":{"id":5050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5049,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5058,"src":"9858:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5048,"name":"uint256","nodeType":"ElementaryTypeName","src":"9858:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9857:9:54"},"scope":5069,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":5068,"nodeType":"FunctionDefinition","src":"10221:84:54","nodes":[],"body":{"id":5067,"nodeType":"Block","src":"10303:2:54","nodes":[],"statements":[]},"baseFunctions":[50598],"documentation":{"id":5059,"nodeType":"StructuredDocumentation","src":"9923:293:54","text":"@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-"},"implemented":true,"kind":"function","modifiers":[{"id":5065,"kind":"modifierInvocation","modifierName":{"id":5064,"name":"onlyAdmin","nameLocations":["10293:9:54"],"nodeType":"IdentifierPath","referencedDeclaration":2578,"src":"10293:9:54"},"nodeType":"ModifierInvocation","src":"10293:9:54"}],"name":"_authorizeUpgrade","nameLocation":"10230:17:54","overrides":{"id":5063,"nodeType":"OverrideSpecifier","overrides":[],"src":"10284:8:54"},"parameters":{"id":5062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5061,"mutability":"mutable","name":"newImplementation","nameLocation":"10256:17:54","nodeType":"VariableDeclaration","scope":5068,"src":"10248:25:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5060,"name":"address","nodeType":"ElementaryTypeName","src":"10248:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10247:27:54"},"returnParameters":{"id":5066,"nodeType":"ParameterList","parameters":[],"src":"10303:0:54"},"scope":5069,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":4687,"name":"Initializable","nameLocations":["1174:13:54"],"nodeType":"IdentifierPath","referencedDeclaration":50462,"src":"1174:13:54"},"id":4688,"nodeType":"InheritanceSpecifier","src":"1174:13:54"},{"baseName":{"id":4689,"name":"UUPSUpgradeable","nameLocations":["1193:15:54"],"nodeType":"IdentifierPath","referencedDeclaration":50644,"src":"1193:15:54"},"id":4690,"nodeType":"InheritanceSpecifier","src":"1193:15:54"},{"baseName":{"id":4691,"name":"AccessControlledUpgradeable","nameLocations":["1214:27:54"],"nodeType":"IdentifierPath","referencedDeclaration":2660,"src":"1214:27:54"},"id":4692,"nodeType":"InheritanceSpecifier","src":"1214:27:54"},{"baseName":{"id":4693,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["1247:35:54"],"nodeType":"IdentifierPath","referencedDeclaration":52553,"src":"1247:35:54"},"id":4694,"nodeType":"InheritanceSpecifier","src":"1247:35:54"},{"baseName":{"id":4695,"name":"BalanceOperatorUpgradeable","nameLocations":["1288:26:54"],"nodeType":"IdentifierPath","referencedDeclaration":2824,"src":"1288:26:54"},"id":4696,"nodeType":"InheritanceSpecifier","src":"1288:26:54"}],"canonicalName":"LedgerVault","contractDependencies":[],"contractKind":"contract","documentation":{"id":4686,"nodeType":"StructuredDocumentation","src":"837:309:54","text":"@title LedgerVault\n @notice A vault contract designed to store, lock, release, and manage funds securely.\n @dev This contract includes administrative methods (`restricted`) and general user methods.\n Supports operations such as deposits, withdrawals, transfers, and locked funds management."},"fullyImplemented":true,"linearizedBaseContracts":[5069,2824,963,993,947,1035,3156,1049,52553,2660,48089,53586,52254,50644,59214,50462],"name":"LedgerVault","nameLocation":"1155:11:54","scope":5070,"usedErrors":[969,1011,1769,1773,2560,4736,4739,4742,50225,50228,50489,50494,52485,53557,53563,53567,59409,59422,60999,61705,61997],"usedEvents":[934,980,1022,4715,4724,4733,50233,53553,59136]}],"license":"MIT"},"id":54} \ No newline at end of file diff --git a/src/config/abi/PoliciesAgg.json b/src/config/abi/PoliciesAgg.json new file mode 100644 index 000000000..97e97a739 --- /dev/null +++ b/src/config/abi/PoliciesAgg.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"rightsPolicyAuthorizer","type":"address","internalType":"address"},{"name":"assetOwnership","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ASSET_OWNERSHIP","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAssetOwnership"}],"stateMutability":"view"},{"type":"function","name":"RIGHTS_POLICY_AUTHORIZER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsPolicyAuthorizer"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getAssetSpecificPolicies","inputs":[{"name":"assetId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct PoliciesAgg.PolicyTerms[]","components":[{"name":"policy","type":"address","internalType":"address"},{"name":"terms","type":"tuple","internalType":"struct T.Terms","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"rateBasis","type":"uint8","internalType":"enum T.RateBasis"},{"name":"uri","type":"string","internalType":"string"}]}]}],"stateMutability":"view"},{"type":"function","name":"getAvailablePoliciesTerms","inputs":[{"name":"holder","type":"address","internalType":"address"},{"name":"criteria","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct PoliciesAgg.PolicyTerms[]","components":[{"name":"policy","type":"address","internalType":"address"},{"name":"terms","type":"tuple","internalType":"struct T.Terms","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"rateBasis","type":"uint8","internalType":"enum T.RateBasis"},{"name":"uri","type":"string","internalType":"string"}]}]}],"stateMutability":"view"},{"type":"function","name":"getHolderWidePolicies","inputs":[{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct PoliciesAgg.PolicyTerms[]","components":[{"name":"policy","type":"address","internalType":"address"},{"name":"terms","type":"tuple","internalType":"struct T.Terms","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"rateBasis","type":"uint8","internalType":"enum T.RateBasis"},{"name":"uri","type":"string","internalType":"string"}]}]}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60e03461016657601f61169938819003918201601f19168301916001600160401b0383118484101761016a57808492604094855283398101031261016657610052602061004b8361017e565b920161017e565b90306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16610157576002600160401b03196001600160401b038216016100ee575b506001600160a01b0390811660a0521660c0526040516115069081610193823960805181818161079f0152610837015260a0518181816104e90152611011015260c05181818160c901526106ed0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61009d565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101665756fe60806040526004361015610011575f80fd5b5f3560e01c80634f1ef2861461081757806352d1902d1461077857806376e5cef1146106775780637a9e5e4b146105a05780638fb360371461050d578063968e48cf146104bd5780639f30b60f146104a3578063ad3cb1cc14610444578063bf7e214f146103f2578063c4d66de814610154578063d45944ca146100f15763f520d4eb1461009d575f80fd5b346100ed575f6003193601126100ed57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100ed5760206003193601126100ed57610150610144610110610c1d565b6040519073ffffffffffffffffffffffffffffffffffffffff811660208301526020825261013f604083610ca5565b610fb2565b60405191829182610ded565b0390f35b346100ed5760206003193601126100ed5761016d610c1d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103ea575b60011490816103e0575b1590816103d7575b506103af57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561035a575b506102306113e0565b6102386113e0565b6102406113e0565b6102486113e0565b61025181611335565b6102596113e0565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102c757005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610227565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b905015846101be565b303b1591506101b6565b8491506101ac565b346100ed575f6003193601126100ed57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100ed575f6003193601126100ed57610150604051610465604082610ca5565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610daa565b346100ed576101506101446104b736610d20565b90610fb2565b346100ed575f6003193601126100ed57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100ed575f6003193601126100ed577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105985760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f61056e565b346100ed5760206003193601126100ed576105b9610c1d565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416330361064b57803b156106095761060790611335565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100ed5760206003193601126100ed5760043560405190806020830152602082526106a4604083610ca5565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa90811561076d575f9161072a575b6101506101448484610fb2565b90506020813d602011610765575b8161074560209383610ca5565b810103126100ed576101509161075d61014492610f09565b91509161071d565b3d9150610738565b6040513d5f823e3d90fd5b346100ed575f6003193601126100ed5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036107ef5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b61082036610d20565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610bdb575b506107ef576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa90811561076d575f91610b8e575b5015610b0a5773ffffffffffffffffffffffffffffffffffffffff8216916040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481875afa5f9181610ad6575b5061096e57837f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc859203610aab5750813b15610a8057807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115610a4f575f8083602061060795519101845af4610a49610f83565b91611437565b505034610a5857005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610b02575b81610af260209383610ca5565b810103126100ed5751908561093d565b3d9150610ae5565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610bd3575b81610ba960409383610ca5565b810103126100ed5780519081151582036100ed576020015163ffffffff8116036100ed57836108e8565b3d9150610b9c565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141583610862565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100ed57565b6040810190811067ffffffffffffffff821117610c5c57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6080810190811067ffffffffffffffff821117610c5c57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610c5c57604052565b67ffffffffffffffff8111610c5c57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9060406003198301126100ed5760043573ffffffffffffffffffffffffffffffffffffffff811681036100ed579160243567ffffffffffffffff81116100ed57816023820112156100ed57806004013590610d7a82610ce6565b92610d886040519485610ca5565b828452602483830101116100ed57815f92602460209301838601378301015290565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b602081016020825282518091526040820190602060408260051b8501019401925f905b828210610e1f57505050505090565b90919293947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08282030185526020865173ffffffffffffffffffffffffffffffffffffffff8151168352015190604060208201528151604082015273ffffffffffffffffffffffffffffffffffffffff60208301511660608201526040820151916004831015610edc57610ecf8260c0606060209594600197608088970152015191608060a08201520190610daa565b9701950193920190610e10565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b519073ffffffffffffffffffffffffffffffffffffffff821682036100ed57565b67ffffffffffffffff8111610c5c5760051b60200190565b8051821015610f565760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b3d15610fad573d90610f9482610ce6565b91610fa26040519384610ca5565b82523d5f602084013e565b606090565b9073ffffffffffffffffffffffffffffffffffffffff604051927f591b43c50000000000000000000000000000000000000000000000000000000084521660048301525f8260248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561076d575f9261129a575b508151917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061108861107285610f2a565b946110806040519687610ca5565b808652610f2a565b015f5b8181106112585750508051905f5b8281106110a7575050505090565b73ffffffffffffffffffffffffffffffffffffffff6110c68284610f42565b5116905f8060405160208101907fa39371110000000000000000000000000000000000000000000000000000000082526020602482015261113a8161110e604482018c610daa565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610ca5565b5190855afa91611148610f83565b921561124e578251830160208101936020818303126100ed57602081015167ffffffffffffffff81116100ed570190608090829003126100ed576040519061118f82610c89565b602081015182526111a260408201610f09565b6020830152606081015160048110156100ed576040830152608081015167ffffffffffffffff81116100ed5760209101019380601f860112156100ed5784516111ea81610ce6565b916111f86040519384610ca5565b818352602082880101116100ed576020815f9282600199018386015e8301015260608201526040519161122a83610c40565b8252602082015261123b8288610f42565b526112468187610f42565b505b01611099565b5060019150611248565b60209060405161126781610c40565b5f815260405161127681610c89565b5f81525f848201525f6040820152606080820152838201528282880101520161108b565b9091503d805f833e6112ac8183610ca5565b8101906020818303126100ed5780519067ffffffffffffffff82116100ed57019080601f830112156100ed5781516112e381610f2a565b926112f16040519485610ca5565b81845260208085019260051b8201019283116100ed57602001905b82821061131d57505050905f611041565b6020809161132a84610f09565b81520191019061130c565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561140f57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611474575080511561144c57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806114c7575b611485575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561147d56fea26469706673582212206e198600d9375685c03c162ac2037f24828cdb44e5d9d100b2db48c6015b780664736f6c634300081a0033","sourceMap":"760:3818:3:-:0;;;;;;;;;;;;;-1:-1:-1;;760:3818:3;;;;-1:-1:-1;;;;;760:3818:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;1171:4:56;;1163:13;;8837:64:55;760:3818:3;;;;;;7896:76:55;;-1:-1:-1;;;;;;;;;;;760:3818:3;;7985:34:55;7981:146;;-1:-1:-1;;;;;;;760:3818:3;;;;1648:74;760:3818;1732:49;;760:3818;;;;;;;;1163:13:56;760:3818:3;;;;;;;;;;1648:74;760:3818;;;;;;;;;;1732:49;760:3818;;;;;;;;;;;7981:146:55;-1:-1:-1;;;;;;760:3818:3;-1:-1:-1;;;;;760:3818:3;;;8837:64:55;760:3818:3;;;;;;8087:29:55;;760:3818:3;;8087:29:55;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:55;;-1:-1:-1;7938:23:55;760:3818:3;-1:-1:-1;760:3818:3;;;;;;-1:-1:-1;760:3818:3;;;;;-1:-1:-1;760:3818:3;;;;-1:-1:-1;;;;;760:3818:3;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80634f1ef2861461081757806352d1902d1461077857806376e5cef1146106775780637a9e5e4b146105a05780638fb360371461050d578063968e48cf146104bd5780639f30b60f146104a3578063ad3cb1cc14610444578063bf7e214f146103f2578063c4d66de814610154578063d45944ca146100f15763f520d4eb1461009d575f80fd5b346100ed575f6003193601126100ed57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100ed5760206003193601126100ed57610150610144610110610c1d565b6040519073ffffffffffffffffffffffffffffffffffffffff811660208301526020825261013f604083610ca5565b610fb2565b60405191829182610ded565b0390f35b346100ed5760206003193601126100ed5761016d610c1d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103ea575b60011490816103e0575b1590816103d7575b506103af57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561035a575b506102306113e0565b6102386113e0565b6102406113e0565b6102486113e0565b61025181611335565b6102596113e0565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102c757005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610227565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b905015846101be565b303b1591506101b6565b8491506101ac565b346100ed575f6003193601126100ed57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100ed575f6003193601126100ed57610150604051610465604082610ca5565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610daa565b346100ed576101506101446104b736610d20565b90610fb2565b346100ed575f6003193601126100ed57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100ed575f6003193601126100ed577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105985760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f61056e565b346100ed5760206003193601126100ed576105b9610c1d565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416330361064b57803b156106095761060790611335565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100ed5760206003193601126100ed5760043560405190806020830152602082526106a4604083610ca5565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa90811561076d575f9161072a575b6101506101448484610fb2565b90506020813d602011610765575b8161074560209383610ca5565b810103126100ed576101509161075d61014492610f09565b91509161071d565b3d9150610738565b6040513d5f823e3d90fd5b346100ed575f6003193601126100ed5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036107ef5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b61082036610d20565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610bdb575b506107ef576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa90811561076d575f91610b8e575b5015610b0a5773ffffffffffffffffffffffffffffffffffffffff8216916040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481875afa5f9181610ad6575b5061096e57837f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc859203610aab5750813b15610a8057807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115610a4f575f8083602061060795519101845af4610a49610f83565b91611437565b505034610a5857005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610b02575b81610af260209383610ca5565b810103126100ed5751908561093d565b3d9150610ae5565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610bd3575b81610ba960409383610ca5565b810103126100ed5780519081151582036100ed576020015163ffffffff8116036100ed57836108e8565b3d9150610b9c565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141583610862565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100ed57565b6040810190811067ffffffffffffffff821117610c5c57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6080810190811067ffffffffffffffff821117610c5c57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610c5c57604052565b67ffffffffffffffff8111610c5c57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9060406003198301126100ed5760043573ffffffffffffffffffffffffffffffffffffffff811681036100ed579160243567ffffffffffffffff81116100ed57816023820112156100ed57806004013590610d7a82610ce6565b92610d886040519485610ca5565b828452602483830101116100ed57815f92602460209301838601378301015290565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b602081016020825282518091526040820190602060408260051b8501019401925f905b828210610e1f57505050505090565b90919293947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08282030185526020865173ffffffffffffffffffffffffffffffffffffffff8151168352015190604060208201528151604082015273ffffffffffffffffffffffffffffffffffffffff60208301511660608201526040820151916004831015610edc57610ecf8260c0606060209594600197608088970152015191608060a08201520190610daa565b9701950193920190610e10565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b519073ffffffffffffffffffffffffffffffffffffffff821682036100ed57565b67ffffffffffffffff8111610c5c5760051b60200190565b8051821015610f565760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b3d15610fad573d90610f9482610ce6565b91610fa26040519384610ca5565b82523d5f602084013e565b606090565b9073ffffffffffffffffffffffffffffffffffffffff604051927f591b43c50000000000000000000000000000000000000000000000000000000084521660048301525f8260248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561076d575f9261129a575b508151917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061108861107285610f2a565b946110806040519687610ca5565b808652610f2a565b015f5b8181106112585750508051905f5b8281106110a7575050505090565b73ffffffffffffffffffffffffffffffffffffffff6110c68284610f42565b5116905f8060405160208101907fa39371110000000000000000000000000000000000000000000000000000000082526020602482015261113a8161110e604482018c610daa565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610ca5565b5190855afa91611148610f83565b921561124e578251830160208101936020818303126100ed57602081015167ffffffffffffffff81116100ed570190608090829003126100ed576040519061118f82610c89565b602081015182526111a260408201610f09565b6020830152606081015160048110156100ed576040830152608081015167ffffffffffffffff81116100ed5760209101019380601f860112156100ed5784516111ea81610ce6565b916111f86040519384610ca5565b818352602082880101116100ed576020815f9282600199018386015e8301015260608201526040519161122a83610c40565b8252602082015261123b8288610f42565b526112468187610f42565b505b01611099565b5060019150611248565b60209060405161126781610c40565b5f815260405161127681610c89565b5f81525f848201525f6040820152606080820152838201528282880101520161108b565b9091503d805f833e6112ac8183610ca5565b8101906020818303126100ed5780519067ffffffffffffffff82116100ed57019080601f830112156100ed5781516112e381610f2a565b926112f16040519485610ca5565b81845260208085019260051b8201019283116100ed57602001905b82821061131d57505050905f611041565b6020809161132a84610f09565b81520191019061130c565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561140f57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611474575080511561144c57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806114c7575b611485575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561147d56fea26469706673582212206e198600d9375685c03c162ac2037f24828cdb44e5d9d100b2db48c6015b780664736f6c634300081a0033","sourceMap":"760:3818:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;760:3818:3;;;;;;;;;1240:48;760:3818;;;;;;;;;;;;;-1:-1:-1;;760:3818:3;;;;;;2503:43;760:3818;;:::i;:::-;;;;;;;;2443:18;;760:3818;;2443:18;;;760:3818;2443:18;;:::i;:::-;2503:43;:::i;:::-;760:3818;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;760:3818:3;;;;;;;:::i;:::-;8837:64:55;760:3818:3;;;;;;4301:16:55;760:3818:3;;;;4726:16:55;;:34;;;;760:3818:3;4805:1:55;4790:16;:50;;;;760:3818:3;4855:13:55;:30;;;;760:3818:3;4851:91:55;;;760:3818:3;;4805:1:55;760:3818:3;;;;;8837:64:55;760:3818:3;4979:67:55;;760:3818:3;6893:76:55;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:54;;;:::i;:::-;6893:76:55;;:::i;:::-;760:3818:3;;3295:62:102;760:3818:3;;;3295:62:102;760:3818:3;5066:101:55;;760:3818:3;5066:101:55;760:3818:3;8837:64:55;760:3818:3;;8837:64:55;760:3818:3;5142:14:55;760:3818:3;;;4805:1:55;760:3818:3;;5142:14:55;760:3818:3;4979:67:55;760:3818:3;;;;8837:64:55;760:3818:3;4979:67:55;;;4851:91;4908:23;760:3818:3;4908:23:55;760:3818:3;;4908:23:55;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:55;;4726:34;;;-1:-1:-1;4726:34:55;;760:3818:3;;;;;-1:-1:-1;;760:3818:3;;;;;;;1782:71:54;760:3818:3;;;;;;;;;;;;;-1:-1:-1;;760:3818:3;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;760:3818:3;;;;;;;;;1103:65;760:3818;;;;;;;;;-1:-1:-1;;760:3818:3;;;;;1782:71:54;760:3818:3;;;;;4698:71:54;;;760:3818:3;;4698:71:54;760:3818:3;;;;;;;;4698:71:54;760:3818:3;;4698:71:54;;760:3818:3;;;;;-1:-1:-1;;760:3818:3;;;;;;;:::i;:::-;;1782:71:54;760:3818:3;;966:10:57;4258:21:54;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;760:3818:3;4355:110:54;760:3818:3;4411:43:54;;760:3818:3;4411:43:54;760:3818:3;;;;;4411:43:54;4254:92;4302:33;760:3818:3;4302:33:54;966:10:57;760:3818:3;;;;4302:33:54;760:3818:3;;;;;-1:-1:-1;;760:3818:3;;;;;;;;;2889:19;;760:3818;2889:19;;760:3818;;2889:19;;;760:3818;2889:19;;:::i;:::-;760:3818;;2935:32;760:3818;2935:32;;760:3818;2935:32;;760:3818;;2935:15;:32;:15;760:3818;2935:15;760:3818;2935:32;;;;;;;760:3818;2935:32;;;760:3818;;3009:43;;;;:::i;2935:32::-;;;760:3818;2935:32;;760:3818;2935:32;;;;;;760:3818;2935:32;;;:::i;:::-;;;760:3818;;;;;;;3009:43;760:3818;;:::i;:::-;2935:32;;;;;;;;-1:-1:-1;2935:32:3;;;760:3818;;;;;;;;;;;;;;-1:-1:-1;;760:3818:3;;;;;;5115:6:56;760:3818:3;5106:4:56;5098:23;5094:145;;760:3818:3;;;811:66:68;760:3818:3;;;5094:145:56;5199:29;760:3818:3;5199:29:56;760:3818:3;;5199:29:56;760:3818:3;;;;:::i;:::-;;4692:6:56;760:3818:3;4683:4:56;;4675:23;:120;;;;;760:3818:3;4658:251:56;;;3058:30:102;760:3818:3;;3295:62:102;760:3818:3;;;;3058:30:102;;;;760:3818:3;3058:30:102;;760:3818:3;;3058:30:102;;760:3818:3;1893:10:102;760:3818:3;;;;3058:30:102;;;;;;;760:3818:3;3058:30:102;;;760:3818:3;1869:35:102;;1865:140;;760:3818:3;;;;;;;6156:52:56;;760:3818:3;6156:52:56;760:3818:3;6156:52:56;;;;760:3818:3;;6156:52:56;;;760:3818:3;-1:-1:-1;6152:437:56;;6518:60;;760:3818:3;6518:60:56;760:3818:3;;;;6518:60:56;6152:437;6250:40;811:66:68;6250:40:56;;;6246:120;;1748:29:68;;;:34;1744:119;;760:3818:3;;811:66:68;760:3818:3;;;811:66:68;760:3818:3;2407:36:68;760:3818:3;2407:36:68;;760:3818:3;;2458:15:68;:11;;760:3818:3;4049:25:75;;760:3818:3;4091:55:75;4049:25;;;;;;;;;:::i;:::-;4091:55;;:::i;2454:148:68:-;6163:9;;;6159:70;;760:3818:3;6159:70:68;6199:19;760:3818:3;6199:19:68;760:3818:3;;6199:19:68;1744:119;1805:47;760:3818:3;1805:47:68;760:3818:3;;;;1805:47:68;6246:120:56;6317:34;760:3818:3;6317:34:56;760:3818:3;;;;6317:34:56;6156:52;;;;760:3818:3;6156:52:56;;760:3818:3;6156:52:56;;;;;;760:3818:3;6156:52:56;;;:::i;:::-;;;760:3818:3;;;;;6156:52:56;;;;;;;-1:-1:-1;6156:52:56;;1865:140:102;1927:67;760:3818:3;;1927:67:102;;;760:3818:3;;1927:67:102;;520:1:100;;760:3818:3;520:1:100;;760:3818:3;520:1:100;3058:30:102;760:3818:3;;520:1:100;;;;;;1927:67:102;3058:30;;;760:3818:3;3058:30:102;;760:3818:3;3058:30:102;;;;;;760:3818:3;3058:30:102;;;:::i;:::-;;;760:3818:3;;;;;;;;;;;;;;;;;;;;;;;3058:30:102;;;;;;-1:-1:-1;3058:30:102;;4675:120:56;760:3818:3;;;811:66:68;760:3818:3;;4753:42:56;;4675:120;;;760:3818:3;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;760:3818:3;;;;;-1:-1:-1;760:3818:3;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;760:3818:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;760:3818:3;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;760:3818:3;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;760:3818:3;;;;:::o;:::-;;;:::o;3292:896::-;;760:3818;;;3469:54;760:3818;3469:54;;760:3818;3469:54;;;760:3818;-1:-1:-1;3469:24:3;:54;:24;760:3818;3469:24;760:3818;3469:54;;;;;;;-1:-1:-1;3469:54:3;;;3292:896;760:3818;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;-1:-1:-1;760:3818:3;;;;;;;;;;3668:13;-1:-1:-1;3683:24:3;;;;;;4169:12;;;;3292:896;:::o;3709:20::-;760:3818;3769:11;;;;:::i;:::-;760:3818;;;-1:-1:-1;760:3818:3;;;;3818:48;;;;;;760:3818;3469:54;3818:48;;760:3818;3818:48;760:3818;;;;;;;:::i;:::-;3818:48;760:3818;3818:48;;;;;;:::i;:::-;3918:34;;;;;;;;:::i;:::-;3970:8;;3966:22;;760:3818;;4043:29;;760:3818;4043:29;;760:3818;;;;;;;;;4043:29;;760:3818;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;3469:54;760:3818;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;760:3818:3;;884:1:98;760:3818:3;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4097:51;;760:3818;4086:62;;;;:::i;:::-;;;;;;:::i;:::-;;3668:13;760:3818;3668:13;;3966:22;3980:8;884:1:98;3980:8:3;;;;760:3818;;;;;;;;:::i;:::-;-1:-1:-1;760:3818:3;;;;;;;:::i;:::-;-1:-1:-1;760:3818:3;;-1:-1:-1;760:3818:3;;;;-1:-1:-1;760:3818:3;;;;;;;;;;;;;;;;;;;;;;3469:54;;;;;;-1:-1:-1;3469:54:3;;;;;;:::i;:::-;;;760:3818;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;3469:54;;;;;;;760:3818;;;;;;;:::i;:::-;;;;;;;;;4964:220:54;760:3818:3;;5147:30:54;4964:220;760:3818:3;;;1782:71:54;760:3818:3;;;1782:71:54;760:3818:3;;;;;;5147:30:54;4964:220::o;7084:141:55:-;760:3818:3;8837:64:55;760:3818:3;;;;7150:18:55;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:55;;-1:-1:-1;7191:17:55;4421:582:75;;4593:8;;-1:-1:-1;760:3818:3;;5674:21:75;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;760:3818:3;;4841:22:75;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;760:3818:3;4917:24:75;;4862:1;4917:24;760:3818:3;4917:24:75;760:3818:3;;4862:1:75;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"240":[{"start":1257,"length":32},{"start":4113,"length":32}],"244":[{"start":201,"length":32},{"start":1773,"length":32}],"43541":[{"start":1951,"length":32},{"start":2103,"length":32}]}},"methodIdentifiers":{"ASSET_OWNERSHIP()":"f520d4eb","RIGHTS_POLICY_AUTHORIZER()":"968e48cf","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","getAssetSpecificPolicies(uint256)":"76e5cef1","getAvailablePoliciesTerms(address,bytes)":"9f30b60f","getHolderWidePolicies(address)":"d45944ca","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","proxiableUUID()":"52d1902d","setAuthority(address)":"7a9e5e4b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightsPolicyAuthorizer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"assetOwnership\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ASSET_OWNERSHIP\",\"outputs\":[{\"internalType\":\"contract IAssetOwnership\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_AUTHORIZER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyAuthorizer\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assetId\",\"type\":\"uint256\"}],\"name\":\"getAssetSpecificPolicies\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"terms\",\"type\":\"tuple\"}],\"internalType\":\"struct PoliciesAgg.PolicyTerms[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"criteria\",\"type\":\"bytes\"}],\"name\":\"getAvailablePoliciesTerms\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"terms\",\"type\":\"tuple\"}],\"internalType\":\"struct PoliciesAgg.PolicyTerms[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getHolderWidePolicies\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"terms\",\"type\":\"tuple\"}],\"internalType\":\"struct PoliciesAgg.PolicyTerms[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getAssetSpecificPolicies(uint256)\":{\"params\":{\"assetId\":\"The unique identifier of the asset whose policies are being queried.\"}},\"getAvailablePoliciesTerms(address,bytes)\":{\"params\":{\"criteria\":\"Encoded data for policy evaluation.\",\"holder\":\"Address of the rights holder.\"}},\"getHolderWidePolicies(address)\":{\"params\":{\"holder\":\"The address of the rights holder whose policies are being queried.\"}},\"initialize(address)\":{\"details\":\"Sets up the contract for usage.\",\"params\":{\"accessManager\":\"Address of the Access Manager contract used for permission handling.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"ASSET_OWNERSHIP\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"RIGHTS_POLICY_AUTHORIZER\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getAssetSpecificPolicies(uint256)\":{\"notice\":\"Retrieves all policies that govern operations on a specific asset.\"},\"getAvailablePoliciesTerms(address,bytes)\":{\"notice\":\"Retrieves all available policies for a holder matching specific criteria.\"},\"getHolderWidePolicies(address)\":{\"notice\":\"Retrieves all policies that apply to the entirety of a holder's content.\"},\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/aggregation/PoliciesAgg.sol\":\"PoliciesAgg\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/aggregation/PoliciesAgg.sol\":{\"keccak256\":\"0xfdd745d8471c568185c27d032f98428d33564214b8105b62d6420012ceb420dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22eae57023f6b71576d7d1838814b34fbf55bcfcb67f25b86d278a6d176a81ad\",\"dweb:/ipfs/QmTBv6iGzAqfMzyV7jFCkN5935pRxwdoJUnetESBkwLT4n\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol\":{\"keccak256\":\"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025\",\"dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405\",\"dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol\":{\"keccak256\":\"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130\",\"dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4\"]},\"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol\":{\"keccak256\":\"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2\",\"dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf\",\"dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe\"]},\"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"rightsPolicyAuthorizer","type":"address"},{"internalType":"address","name":"assetOwnership","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ASSET_OWNERSHIP","outputs":[{"internalType":"contract IAssetOwnership","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_POLICY_AUTHORIZER","outputs":[{"internalType":"contract IRightsPolicyAuthorizer","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"assetId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getAssetSpecificPolicies","outputs":[{"internalType":"struct PoliciesAgg.PolicyTerms[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"struct T.Terms","name":"terms","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"enum T.RateBasis","name":"rateBasis","type":"uint8"},{"internalType":"string","name":"uri","type":"string"}]}]}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bytes","name":"criteria","type":"bytes"}],"stateMutability":"view","type":"function","name":"getAvailablePoliciesTerms","outputs":[{"internalType":"struct PoliciesAgg.PolicyTerms[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"struct T.Terms","name":"terms","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"enum T.RateBasis","name":"rateBasis","type":"uint8"},{"internalType":"string","name":"uri","type":"string"}]}]}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"getHolderWidePolicies","outputs":[{"internalType":"struct PoliciesAgg.PolicyTerms[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"struct T.Terms","name":"terms","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"enum T.RateBasis","name":"rateBasis","type":"uint8"},{"internalType":"string","name":"uri","type":"string"}]}]}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getAssetSpecificPolicies(uint256)":{"params":{"assetId":"The unique identifier of the asset whose policies are being queried."}},"getAvailablePoliciesTerms(address,bytes)":{"params":{"criteria":"Encoded data for policy evaluation.","holder":"Address of the rights holder."}},"getHolderWidePolicies(address)":{"params":{"holder":"The address of the rights holder whose policies are being queried."}},"initialize(address)":{"details":"Sets up the contract for usage.","params":{"accessManager":"Address of the Access Manager contract used for permission handling."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"getAssetSpecificPolicies(uint256)":{"notice":"Retrieves all policies that govern operations on a specific asset."},"getAvailablePoliciesTerms(address,bytes)":{"notice":"Retrieves all available policies for a holder matching specific criteria."},"getHolderWidePolicies(address)":{"notice":"Retrieves all policies that apply to the entirety of a holder's content."},"initialize(address)":{"notice":"Initializes the proxy state."}},"version":1}},"settings":{"remappings":["@account-abstraction/=node_modules/@account-abstraction/","@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=node_modules/@synaps3/types/contracts/","@uniswap/=node_modules/@uniswap/","base64-sol/=node_modules/base64-sol/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/aggregation/PoliciesAgg.sol":"PoliciesAgg"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/aggregation/PoliciesAgg.sol":{"keccak256":"0xfdd745d8471c568185c27d032f98428d33564214b8105b62d6420012ceb420dd","urls":["bzz-raw://22eae57023f6b71576d7d1838814b34fbf55bcfcb67f25b86d278a6d176a81ad","dweb:/ipfs/QmTBv6iGzAqfMzyV7jFCkN5935pRxwdoJUnetESBkwLT4n"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol":{"keccak256":"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18","urls":["bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025","dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol":{"keccak256":"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02","urls":["bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405","dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol":{"keccak256":"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419","urls":["bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130","dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol":{"keccak256":"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411","urls":["bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2","dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Types.sol":{"keccak256":"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1","urls":["bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf","dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df","urls":["bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2","dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"contracts/aggregation/PoliciesAgg.sol","id":472,"exportedSymbols":{"AccessControlledUpgradeable":[51361],"IAssetOwnership":[50146],"IPolicy":[50308],"IRightsPolicyAuthorizer":[50391],"Initializable":[43521],"LoopOps":[50745],"PoliciesAgg":[471],"T":[51233],"UUPSUpgradeable":[43703]},"nodeType":"SourceUnit","src":"32:4547:3","nodes":[{"id":204,"nodeType":"PragmaDirective","src":"32:23:3","nodes":[],"literals":["solidity","0.8",".26"]},{"id":206,"nodeType":"ImportDirective","src":"57:98:3","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":472,"sourceUnit":43522,"symbolAliases":[{"foreign":{"id":205,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43521,"src":"66:13:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":208,"nodeType":"ImportDirective","src":"156:102:3","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":472,"sourceUnit":43704,"symbolAliases":[{"foreign":{"id":207,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43703,"src":"165:15:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":210,"nodeType":"ImportDirective","src":"260:86:3","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol","file":"@synaps3/core/interfaces/assets/IAssetOwnership.sol","nameLocation":"-1:-1:-1","scope":472,"sourceUnit":50147,"symbolAliases":[{"foreign":{"id":209,"name":"IAssetOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50146,"src":"269:15:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":212,"nodeType":"ImportDirective","src":"347:115:3","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":472,"sourceUnit":51362,"symbolAliases":[{"foreign":{"id":211,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51361,"src":"356:27:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":214,"nodeType":"ImportDirective","src":"463:102:3","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol","file":"@synaps3/core/interfaces/rights/IRightsPolicyAuthorizer.sol","nameLocation":"-1:-1:-1","scope":472,"sourceUnit":50392,"symbolAliases":[{"foreign":{"id":213,"name":"IRightsPolicyAuthorizer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50391,"src":"472:23:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":216,"nodeType":"ImportDirective","src":"567:72:3","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol","file":"@synaps3/core/interfaces/policies/IPolicy.sol","nameLocation":"-1:-1:-1","scope":472,"sourceUnit":50309,"symbolAliases":[{"foreign":{"id":215,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50308,"src":"576:7:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":218,"nodeType":"ImportDirective","src":"640:62:3","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol","file":"@synaps3/core/libraries/LoopOps.sol","nameLocation":"-1:-1:-1","scope":472,"sourceUnit":50746,"symbolAliases":[{"foreign":{"id":217,"name":"LoopOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50745,"src":"649:7:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":220,"nodeType":"ImportDirective","src":"703:55:3","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/Types.sol","file":"@synaps3/core/primitives/Types.sol","nameLocation":"-1:-1:-1","scope":472,"sourceUnit":51234,"symbolAliases":[{"foreign":{"id":219,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51233,"src":"712:1:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":471,"nodeType":"ContractDefinition","src":"760:3818:3","nodes":[{"id":229,"nodeType":"UsingForDirective","src":"850:26:3","nodes":[],"global":false,"libraryName":{"id":227,"name":"LoopOps","nameLocations":["856:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":50745,"src":"856:7:3"},"typeName":{"id":228,"name":"uint256","nodeType":"ElementaryTypeName","src":"868:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":236,"nodeType":"StructDefinition","src":"958:73:3","nodes":[],"canonicalName":"PoliciesAgg.PolicyTerms","documentation":{"id":230,"nodeType":"StructuredDocumentation","src":"882:71:3","text":"@notice structure to hold the relationship between policy and terms"},"members":[{"constant":false,"id":232,"mutability":"mutable","name":"policy","nameLocation":"995:6:3","nodeType":"VariableDeclaration","scope":236,"src":"987:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":231,"name":"address","nodeType":"ElementaryTypeName","src":"987:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":235,"mutability":"mutable","name":"terms","nameLocation":"1019:5:3","nodeType":"VariableDeclaration","scope":236,"src":"1011:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51222_storage_ptr","typeString":"struct T.Terms"},"typeName":{"id":234,"nodeType":"UserDefinedTypeName","pathNode":{"id":233,"name":"T.Terms","nameLocations":["1011:1:3","1013:5:3"],"nodeType":"IdentifierPath","referencedDeclaration":51222,"src":"1011:7:3"},"referencedDeclaration":51222,"src":"1011:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51222_storage_ptr","typeString":"struct T.Terms"}},"visibility":"internal"}],"name":"PolicyTerms","nameLocation":"965:11:3","scope":471,"visibility":"public"},{"id":240,"nodeType":"VariableDeclaration","src":"1103:65:3","nodes":[],"constant":false,"documentation":{"id":237,"nodeType":"StructuredDocumentation","src":"1037:61:3","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"968e48cf","mutability":"immutable","name":"RIGHTS_POLICY_AUTHORIZER","nameLocation":"1144:24:3","scope":471,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$50391","typeString":"contract IRightsPolicyAuthorizer"},"typeName":{"id":239,"nodeType":"UserDefinedTypeName","pathNode":{"id":238,"name":"IRightsPolicyAuthorizer","nameLocations":["1103:23:3"],"nodeType":"IdentifierPath","referencedDeclaration":50391,"src":"1103:23:3"},"referencedDeclaration":50391,"src":"1103:23:3","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$50391","typeString":"contract IRightsPolicyAuthorizer"}},"visibility":"public"},{"id":244,"nodeType":"VariableDeclaration","src":"1240:48:3","nodes":[],"constant":false,"documentation":{"id":241,"nodeType":"StructuredDocumentation","src":"1174:61:3","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"f520d4eb","mutability":"immutable","name":"ASSET_OWNERSHIP","nameLocation":"1273:15:3","scope":471,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$50146","typeString":"contract IAssetOwnership"},"typeName":{"id":243,"nodeType":"UserDefinedTypeName","pathNode":{"id":242,"name":"IAssetOwnership","nameLocations":["1240:15:3"],"nodeType":"IdentifierPath","referencedDeclaration":50146,"src":"1240:15:3"},"referencedDeclaration":50146,"src":"1240:15:3","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$50146","typeString":"contract IAssetOwnership"}},"visibility":"public"},{"id":268,"nodeType":"FunctionDefinition","src":"1348:440:3","nodes":[],"body":{"id":267,"nodeType":"Block","src":"1416:372:3","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":252,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43489,"src":"1616:20:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1616:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":254,"nodeType":"ExpressionStatement","src":"1616:22:3"},{"expression":{"id":259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":255,"name":"RIGHTS_POLICY_AUTHORIZER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"1648:24:3","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$50391","typeString":"contract IRightsPolicyAuthorizer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":257,"name":"rightsPolicyAuthorizer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":247,"src":"1699:22:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":256,"name":"IRightsPolicyAuthorizer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50391,"src":"1675:23:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRightsPolicyAuthorizer_$50391_$","typeString":"type(contract IRightsPolicyAuthorizer)"}},"id":258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1675:47:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$50391","typeString":"contract IRightsPolicyAuthorizer"}},"src":"1648:74:3","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$50391","typeString":"contract IRightsPolicyAuthorizer"}},"id":260,"nodeType":"ExpressionStatement","src":"1648:74:3"},{"expression":{"id":265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":261,"name":"ASSET_OWNERSHIP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":244,"src":"1732:15:3","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$50146","typeString":"contract IAssetOwnership"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":263,"name":"assetOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":249,"src":"1766:14:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":262,"name":"IAssetOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50146,"src":"1750:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAssetOwnership_$50146_$","typeString":"type(contract IAssetOwnership)"}},"id":264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1750:31:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$50146","typeString":"contract IAssetOwnership"}},"src":"1732:49:3","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$50146","typeString":"contract IAssetOwnership"}},"id":266,"nodeType":"ExpressionStatement","src":"1732:49:3"}]},"documentation":{"id":245,"nodeType":"StructuredDocumentation","src":"1295:48:3","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":247,"mutability":"mutable","name":"rightsPolicyAuthorizer","nameLocation":"1368:22:3","nodeType":"VariableDeclaration","scope":268,"src":"1360:30:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":246,"name":"address","nodeType":"ElementaryTypeName","src":"1360:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":249,"mutability":"mutable","name":"assetOwnership","nameLocation":"1400:14:3","nodeType":"VariableDeclaration","scope":268,"src":"1392:22:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":248,"name":"address","nodeType":"ElementaryTypeName","src":"1392:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1359:56:3"},"returnParameters":{"id":251,"nodeType":"ParameterList","parameters":[],"src":"1416:0:3"},"scope":471,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":284,"nodeType":"FunctionDefinition","src":"1982:151:3","nodes":[],"body":{"id":283,"nodeType":"Block","src":"2044:89:3","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":276,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43575,"src":"2054:22:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2054:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":278,"nodeType":"ExpressionStatement","src":"2054:24:3"},{"expression":{"arguments":[{"id":280,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":271,"src":"2112:13:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":279,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51296,"src":"2088:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2088:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":282,"nodeType":"ExpressionStatement","src":"2088:38:3"}]},"documentation":{"id":269,"nodeType":"StructuredDocumentation","src":"1794:183:3","text":"@notice Initializes the proxy state.\n @dev Sets up the contract for usage.\n @param accessManager Address of the Access Manager contract used for permission handling."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":274,"kind":"modifierInvocation","modifierName":{"id":273,"name":"initializer","nameLocations":["2032:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":43375,"src":"2032:11:3"},"nodeType":"ModifierInvocation","src":"2032:11:3"}],"name":"initialize","nameLocation":"1991:10:3","parameters":{"id":272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":271,"mutability":"mutable","name":"accessManager","nameLocation":"2010:13:3","nodeType":"VariableDeclaration","scope":284,"src":"2002:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":270,"name":"address","nodeType":"ElementaryTypeName","src":"2002:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2001:23:3"},"returnParameters":{"id":275,"nodeType":"ParameterList","parameters":[],"src":"2044:0:3"},"scope":471,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":314,"nodeType":"FunctionDefinition","src":"2317:261:3","nodes":[],"body":{"id":313,"nodeType":"Block","src":"2409:169:3","nodes":[],"statements":[{"assignments":[295],"declarations":[{"constant":false,"id":295,"mutability":"mutable","name":"criteria","nameLocation":"2432:8:3","nodeType":"VariableDeclaration","scope":313,"src":"2419:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":294,"name":"bytes","nodeType":"ElementaryTypeName","src":"2419:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":300,"initialValue":{"arguments":[{"id":298,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":287,"src":"2454:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":296,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2443:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2447:6:3","memberName":"encode","nodeType":"MemberAccess","src":"2443:10:3","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2443:18:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2419:42:3"},{"assignments":[305],"declarations":[{"constant":false,"id":305,"mutability":"mutable","name":"policies","nameLocation":"2492:8:3","nodeType":"VariableDeclaration","scope":313,"src":"2471:29:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":303,"nodeType":"UserDefinedTypeName","pathNode":{"id":302,"name":"PolicyTerms","nameLocations":["2471:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"2471:11:3"},"referencedDeclaration":236,"src":"2471:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":304,"nodeType":"ArrayTypeName","src":"2471:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"id":310,"initialValue":{"arguments":[{"id":307,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":287,"src":"2529:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":308,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":295,"src":"2537:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":306,"name":"getAvailablePoliciesTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":460,"src":"2503:25:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr_$","typeString":"function (address,bytes memory) view returns (struct PoliciesAgg.PolicyTerms memory[] memory)"}},"id":309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2503:43:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2471:75:3"},{"expression":{"id":311,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":305,"src":"2563:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"functionReturnParameters":293,"id":312,"nodeType":"Return","src":"2556:15:3"}]},"documentation":{"id":285,"nodeType":"StructuredDocumentation","src":"2139:173:3","text":"@notice Retrieves all policies that apply to the entirety of a holder's content.\n @param holder The address of the rights holder whose policies are being queried."},"functionSelector":"d45944ca","implemented":true,"kind":"function","modifiers":[],"name":"getHolderWidePolicies","nameLocation":"2326:21:3","parameters":{"id":288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":287,"mutability":"mutable","name":"holder","nameLocation":"2356:6:3","nodeType":"VariableDeclaration","scope":314,"src":"2348:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":286,"name":"address","nodeType":"ElementaryTypeName","src":"2348:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2347:16:3"},"returnParameters":{"id":293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":314,"src":"2387:20:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":290,"nodeType":"UserDefinedTypeName","pathNode":{"id":289,"name":"PolicyTerms","nameLocations":["2387:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"2387:11:3"},"referencedDeclaration":236,"src":"2387:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":291,"nodeType":"ArrayTypeName","src":"2387:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"src":"2386:22:3"},"scope":471,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":351,"nodeType":"FunctionDefinition","src":"2759:325:3","nodes":[],"body":{"id":350,"nodeType":"Block","src":"2855:229:3","nodes":[],"statements":[{"assignments":[325],"declarations":[{"constant":false,"id":325,"mutability":"mutable","name":"criteria","nameLocation":"2878:8:3","nodeType":"VariableDeclaration","scope":350,"src":"2865:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":324,"name":"bytes","nodeType":"ElementaryTypeName","src":"2865:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":330,"initialValue":{"arguments":[{"id":328,"name":"assetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":317,"src":"2900:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":326,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2889:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2893:6:3","memberName":"encode","nodeType":"MemberAccess","src":"2889:10:3","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2889:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2865:43:3"},{"assignments":[332],"declarations":[{"constant":false,"id":332,"mutability":"mutable","name":"holder","nameLocation":"2926:6:3","nodeType":"VariableDeclaration","scope":350,"src":"2918:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":331,"name":"address","nodeType":"ElementaryTypeName","src":"2918:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":337,"initialValue":{"arguments":[{"id":335,"name":"assetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":317,"src":"2959:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":333,"name":"ASSET_OWNERSHIP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":244,"src":"2935:15:3","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$50146","typeString":"contract IAssetOwnership"}},"id":334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2951:7:3","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":45357,"src":"2935:23:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2935:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2918:49:3"},{"assignments":[342],"declarations":[{"constant":false,"id":342,"mutability":"mutable","name":"policies","nameLocation":"2998:8:3","nodeType":"VariableDeclaration","scope":350,"src":"2977:29:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":340,"nodeType":"UserDefinedTypeName","pathNode":{"id":339,"name":"PolicyTerms","nameLocations":["2977:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"2977:11:3"},"referencedDeclaration":236,"src":"2977:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":341,"nodeType":"ArrayTypeName","src":"2977:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"id":347,"initialValue":{"arguments":[{"id":344,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":332,"src":"3035:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":345,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":325,"src":"3043:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":343,"name":"getAvailablePoliciesTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":460,"src":"3009:25:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr_$","typeString":"function (address,bytes memory) view returns (struct PoliciesAgg.PolicyTerms memory[] memory)"}},"id":346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3009:43:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2977:75:3"},{"expression":{"id":348,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":342,"src":"3069:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"functionReturnParameters":323,"id":349,"nodeType":"Return","src":"3062:15:3"}]},"documentation":{"id":315,"nodeType":"StructuredDocumentation","src":"2584:170:3","text":"@notice Retrieves all policies that govern operations on a specific asset.\n @param assetId The unique identifier of the asset whose policies are being queried."},"functionSelector":"76e5cef1","implemented":true,"kind":"function","modifiers":[],"name":"getAssetSpecificPolicies","nameLocation":"2768:24:3","parameters":{"id":318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":317,"mutability":"mutable","name":"assetId","nameLocation":"2801:7:3","nodeType":"VariableDeclaration","scope":351,"src":"2793:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":316,"name":"uint256","nodeType":"ElementaryTypeName","src":"2793:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2792:17:3"},"returnParameters":{"id":323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":322,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":351,"src":"2833:20:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":320,"nodeType":"UserDefinedTypeName","pathNode":{"id":319,"name":"PolicyTerms","nameLocations":["2833:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"2833:11:3"},"referencedDeclaration":236,"src":"2833:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":321,"nodeType":"ArrayTypeName","src":"2833:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"src":"2832:22:3"},"scope":471,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":460,"nodeType":"FunctionDefinition","src":"3292:896:3","nodes":[],"body":{"id":459,"nodeType":"Block","src":"3431:757:3","nodes":[],"statements":[{"assignments":[367],"declarations":[{"constant":false,"id":367,"mutability":"mutable","name":"policies","nameLocation":"3458:8:3","nodeType":"VariableDeclaration","scope":459,"src":"3441:25:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":365,"name":"address","nodeType":"ElementaryTypeName","src":"3441:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":366,"nodeType":"ArrayTypeName","src":"3441:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":372,"initialValue":{"arguments":[{"id":370,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":354,"src":"3516:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":368,"name":"RIGHTS_POLICY_AUTHORIZER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"3469:24:3","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$50391","typeString":"contract IRightsPolicyAuthorizer"}},"id":369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3494:21:3","memberName":"getAuthorizedPolicies","nodeType":"MemberAccess","referencedDeclaration":50366,"src":"3469:46:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (address) view external returns (address[] memory)"}},"id":371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3469:54:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3441:82:3"},{"assignments":[377],"declarations":[{"constant":false,"id":377,"mutability":"mutable","name":"terms","nameLocation":"3554:5:3","nodeType":"VariableDeclaration","scope":459,"src":"3533:26:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":375,"nodeType":"UserDefinedTypeName","pathNode":{"id":374,"name":"PolicyTerms","nameLocations":["3533:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"3533:11:3"},"referencedDeclaration":236,"src":"3533:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":376,"nodeType":"ArrayTypeName","src":"3533:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"id":385,"initialValue":{"arguments":[{"expression":{"id":382,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":367,"src":"3580:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3589:6:3","memberName":"length","nodeType":"MemberAccess","src":"3580:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3562:17:3","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct PoliciesAgg.PolicyTerms memory[] memory)"},"typeName":{"baseType":{"id":379,"nodeType":"UserDefinedTypeName","pathNode":{"id":378,"name":"PolicyTerms","nameLocations":["3566:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"3566:11:3"},"referencedDeclaration":236,"src":"3566:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":380,"nodeType":"ArrayTypeName","src":"3566:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}}},"id":384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3562:34:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3533:63:3"},{"assignments":[387],"declarations":[{"constant":false,"id":387,"mutability":"mutable","name":"availablePoliciesLen","nameLocation":"3614:20:3","nodeType":"VariableDeclaration","scope":459,"src":"3606:28:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":386,"name":"uint256","nodeType":"ElementaryTypeName","src":"3606:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":390,"initialValue":{"expression":{"id":388,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":367,"src":"3637:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3646:6:3","memberName":"length","nodeType":"MemberAccess","src":"3637:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3606:46:3"},{"body":{"id":455,"nodeType":"Block","src":"3731:428:3","statements":[{"assignments":[405],"declarations":[{"constant":false,"id":405,"mutability":"mutable","name":"policyAddress","nameLocation":"3753:13:3","nodeType":"VariableDeclaration","scope":455,"src":"3745:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":404,"name":"address","nodeType":"ElementaryTypeName","src":"3745:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":409,"initialValue":{"baseExpression":{"id":406,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":367,"src":"3769:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":408,"indexExpression":{"id":407,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":392,"src":"3778:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3769:11:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3745:35:3"},{"assignments":[411],"declarations":[{"constant":false,"id":411,"mutability":"mutable","name":"callData","nameLocation":"3807:8:3","nodeType":"VariableDeclaration","scope":455,"src":"3794:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":410,"name":"bytes","nodeType":"ElementaryTypeName","src":"3794:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":419,"initialValue":{"arguments":[{"expression":{"id":414,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50308,"src":"3833:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$50308_$","typeString":"type(contract IPolicy)"}},"id":415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3841:12:3","memberName":"resolveTerms","nodeType":"MemberAccess","referencedDeclaration":50291,"src":"3833:20:3","typeDescriptions":{"typeIdentifier":"t_function_declaration_view$_t_bytes_memory_ptr_$returns$_t_struct$_Terms_$51222_memory_ptr_$","typeString":"function IPolicy.resolveTerms(bytes memory) view returns (struct T.Terms memory)"}},{"components":[{"id":416,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":356,"src":"3856:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":417,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3855:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_view$_t_bytes_memory_ptr_$returns$_t_struct$_Terms_$51222_memory_ptr_$","typeString":"function IPolicy.resolveTerms(bytes memory) view returns (struct T.Terms memory)"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":412,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3818:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3822:10:3","memberName":"encodeCall","nodeType":"MemberAccess","src":"3818:14:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3818:48:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3794:72:3"},{"assignments":[421,423],"declarations":[{"constant":false,"id":421,"mutability":"mutable","name":"success","nameLocation":"3886:7:3","nodeType":"VariableDeclaration","scope":455,"src":"3881:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":420,"name":"bool","nodeType":"ElementaryTypeName","src":"3881:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":423,"mutability":"mutable","name":"result","nameLocation":"3908:6:3","nodeType":"VariableDeclaration","scope":455,"src":"3895:19:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":422,"name":"bytes","nodeType":"ElementaryTypeName","src":"3895:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":428,"initialValue":{"arguments":[{"id":426,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":411,"src":"3943:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":424,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":405,"src":"3918:13:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3932:10:3","memberName":"staticcall","nodeType":"MemberAccess","src":"3918:24:3","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3918:34:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3880:72:3"},{"condition":{"id":430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3970:8:3","subExpression":{"id":429,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":421,"src":"3971:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":432,"nodeType":"IfStatement","src":"3966:22:3","trueBody":{"id":431,"nodeType":"Continue","src":"3980:8:3"}},{"assignments":[437],"declarations":[{"constant":false,"id":437,"mutability":"mutable","name":"term","nameLocation":"4036:4:3","nodeType":"VariableDeclaration","scope":455,"src":"4021:19:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51222_memory_ptr","typeString":"struct T.Terms"},"typeName":{"id":436,"nodeType":"UserDefinedTypeName","pathNode":{"id":435,"name":"T.Terms","nameLocations":["4021:1:3","4023:5:3"],"nodeType":"IdentifierPath","referencedDeclaration":51222,"src":"4021:7:3"},"referencedDeclaration":51222,"src":"4021:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51222_storage_ptr","typeString":"struct T.Terms"}},"visibility":"internal"}],"id":445,"initialValue":{"arguments":[{"id":440,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":423,"src":"4054:6:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":441,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51233,"src":"4063:1:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_T_$51233_$","typeString":"type(library T)"}},"id":442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4065:5:3","memberName":"Terms","nodeType":"MemberAccess","referencedDeclaration":51222,"src":"4063:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Terms_$51222_storage_ptr_$","typeString":"type(struct T.Terms storage pointer)"}}],"id":443,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4062:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Terms_$51222_storage_ptr_$","typeString":"type(struct T.Terms storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_Terms_$51222_storage_ptr_$","typeString":"type(struct T.Terms storage pointer)"}],"expression":{"id":438,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4043:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4047:6:3","memberName":"decode","nodeType":"MemberAccess","src":"4043:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4043:29:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51222_memory_ptr","typeString":"struct T.Terms memory"}},"nodeType":"VariableDeclarationStatement","src":"4021:51:3"},{"expression":{"id":453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":446,"name":"terms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":377,"src":"4086:5:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"id":448,"indexExpression":{"id":447,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":392,"src":"4092:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4086:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":450,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":405,"src":"4119:13:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":451,"name":"term","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":437,"src":"4141:4:3","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51222_memory_ptr","typeString":"struct T.Terms memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Terms_$51222_memory_ptr","typeString":"struct T.Terms memory"}],"id":449,"name":"PolicyTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":236,"src":"4097:11:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PolicyTerms_$236_storage_ptr_$","typeString":"type(struct PoliciesAgg.PolicyTerms storage pointer)"}},"id":452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4111:6:3","4134:5:3"],"names":["policy","terms"],"nodeType":"FunctionCall","src":"4097:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory"}},"src":"4086:62:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory"}},"id":454,"nodeType":"ExpressionStatement","src":"4086:62:3"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":395,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":392,"src":"3683:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":396,"name":"availablePoliciesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":387,"src":"3687:20:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3683:24:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":456,"initializationExpression":{"assignments":[392],"declarations":[{"constant":false,"id":392,"mutability":"mutable","name":"i","nameLocation":"3676:1:3","nodeType":"VariableDeclaration","scope":456,"src":"3668:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":391,"name":"uint256","nodeType":"ElementaryTypeName","src":"3668:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":394,"initialValue":{"hexValue":"30","id":393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3680:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3668:13:3"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":398,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":392,"src":"3709:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":399,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":392,"src":"3713:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3715:12:3","memberName":"uncheckedInc","nodeType":"MemberAccess","referencedDeclaration":50744,"src":"3713:14:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3713:16:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3709:20:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":403,"nodeType":"ExpressionStatement","src":"3709:20:3"},"nodeType":"ForStatement","src":"3663:496:3"},{"expression":{"id":457,"name":"terms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":377,"src":"4176:5:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"functionReturnParameters":362,"id":458,"nodeType":"Return","src":"4169:12:3"}]},"documentation":{"id":352,"nodeType":"StructuredDocumentation","src":"3090:197:3","text":"@notice Retrieves all available policies for a holder matching specific criteria.\n @param holder Address of the rights holder.\n @param criteria Encoded data for policy evaluation."},"functionSelector":"9f30b60f","implemented":true,"kind":"function","modifiers":[],"name":"getAvailablePoliciesTerms","nameLocation":"3301:25:3","parameters":{"id":357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":354,"mutability":"mutable","name":"holder","nameLocation":"3344:6:3","nodeType":"VariableDeclaration","scope":460,"src":"3336:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":353,"name":"address","nodeType":"ElementaryTypeName","src":"3336:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":356,"mutability":"mutable","name":"criteria","nameLocation":"3373:8:3","nodeType":"VariableDeclaration","scope":460,"src":"3360:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":355,"name":"bytes","nodeType":"ElementaryTypeName","src":"3360:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3326:61:3"},"returnParameters":{"id":362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":361,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":460,"src":"3409:20:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":359,"nodeType":"UserDefinedTypeName","pathNode":{"id":358,"name":"PolicyTerms","nameLocations":["3409:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"3409:11:3"},"referencedDeclaration":236,"src":"3409:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":360,"nodeType":"ArrayTypeName","src":"3409:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"src":"3408:22:3"},"scope":471,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":470,"nodeType":"FunctionDefinition","src":"4492:84:3","nodes":[],"body":{"id":469,"nodeType":"Block","src":"4574:2:3","nodes":[],"statements":[]},"baseFunctions":[43657],"documentation":{"id":461,"nodeType":"StructuredDocumentation","src":"4194:293:3","text":"@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-"},"implemented":true,"kind":"function","modifiers":[{"id":467,"kind":"modifierInvocation","modifierName":{"id":466,"name":"onlyAdmin","nameLocations":["4564:9:3"],"nodeType":"IdentifierPath","referencedDeclaration":51279,"src":"4564:9:3"},"nodeType":"ModifierInvocation","src":"4564:9:3"}],"name":"_authorizeUpgrade","nameLocation":"4501:17:3","overrides":{"id":465,"nodeType":"OverrideSpecifier","overrides":[],"src":"4555:8:3"},"parameters":{"id":464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":463,"mutability":"mutable","name":"newImplementation","nameLocation":"4527:17:3","nodeType":"VariableDeclaration","scope":470,"src":"4519:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":462,"name":"address","nodeType":"ElementaryTypeName","src":"4519:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4518:27:3"},"returnParameters":{"id":468,"nodeType":"ParameterList","parameters":[],"src":"4574:0:3"},"scope":471,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":221,"name":"Initializable","nameLocations":["784:13:3"],"nodeType":"IdentifierPath","referencedDeclaration":43521,"src":"784:13:3"},"id":222,"nodeType":"InheritanceSpecifier","src":"784:13:3"},{"baseName":{"id":223,"name":"UUPSUpgradeable","nameLocations":["799:15:3"],"nodeType":"IdentifierPath","referencedDeclaration":43703,"src":"799:15:3"},"id":224,"nodeType":"InheritanceSpecifier","src":"799:15:3"},{"baseName":{"id":225,"name":"AccessControlledUpgradeable","nameLocations":["816:27:3"],"nodeType":"IdentifierPath","referencedDeclaration":51361,"src":"816:27:3"},"id":226,"nodeType":"InheritanceSpecifier","src":"816:27:3"}],"canonicalName":"PoliciesAgg","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[471,51361,43267,43871,43749,43703,44440,43521],"name":"PoliciesAgg","nameLocation":"769:11:3","scope":472,"usedErrors":[43284,43287,43548,43553,43842,43848,43852,44498,44511,45462,45724,51261],"usedEvents":[43292,43838,44413]}],"license":"MIT"},"id":3} \ No newline at end of file diff --git a/src/config/abi/RightsAccessAgreement.json b/src/config/abi/RightsAccessAgreement.json deleted file mode 100644 index f981abece..000000000 --- a/src/config/abi/RightsAccessAgreement.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"treasury","type":"address","internalType":"address"},{"name":"tollgate","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"TOLLGATE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITollgate"}],"stateMutability":"view"},{"type":"function","name":"TREASURY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITreasury"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"createAgreement","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"broker","type":"address","internalType":"address"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"disburse","inputs":[{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getAgreement","inputs":[{"name":"proof","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct T.Agreement","components":[{"name":"active","type":"bool","internalType":"bool"},{"name":"broker","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"},{"name":"initiator","type":"address","internalType":"address"},{"name":"createdAt","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"fees","type":"uint256","internalType":"uint256"},{"name":"available","type":"uint256","internalType":"uint256"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"getLedgerBalance","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTreasuryAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"previewAgreement","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"broker","type":"address","internalType":"address"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple","internalType":"struct T.Agreement","components":[{"name":"active","type":"bool","internalType":"bool"},{"name":"broker","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"},{"name":"initiator","type":"address","internalType":"address"},{"name":"createdAt","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"fees","type":"uint256","internalType":"uint256"},{"name":"available","type":"uint256","internalType":"uint256"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"quitAgreement","inputs":[{"name":"proof","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct T.Agreement","components":[{"name":"active","type":"bool","internalType":"bool"},{"name":"broker","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"},{"name":"initiator","type":"address","internalType":"address"},{"name":"createdAt","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"fees","type":"uint256","internalType":"uint256"},{"name":"available","type":"uint256","internalType":"uint256"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"settleAgreement","inputs":[{"name":"proof","type":"uint256","internalType":"uint256"},{"name":"counterparty","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct T.Agreement","components":[{"name":"active","type":"bool","internalType":"bool"},{"name":"broker","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"},{"name":"initiator","type":"address","internalType":"address"},{"name":"createdAt","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"fees","type":"uint256","internalType":"uint256"},{"name":"available","type":"uint256","internalType":"uint256"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AgreementCancelled","inputs":[{"name":"initiator","type":"address","indexed":true,"internalType":"address"},{"name":"proof","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"AgreementCreated","inputs":[{"name":"initiator","type":"address","indexed":true,"internalType":"address"},{"name":"proof","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"AgreementSettled","inputs":[{"name":"broker","type":"address","indexed":true,"internalType":"address"},{"name":"counterparty","type":"address","indexed":true,"internalType":"address"},{"name":"proof","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FeesDisbursed","inputs":[{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailDuringDeposit","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"FailDuringTransfer","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidAgreementOp","inputs":[{"name":"message","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidAgreementProof","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidTreasuryAddress","inputs":[{"name":"invalidAddress","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidUnauthorizedDisbursement","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60e03461016d57601f612d0e38819003918201601f19168301916001600160401b0383118484101761017157808492604094855283398101031261016d57610052602061004b83610185565b9201610185565b306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c1661015e576002600160401b03196001600160401b038216016100f5575b506001600160a01b0390811660c0521660a052604051612b74908161019a82396080518181816109b00152610aaf015260a0518181816105650152818161134101526122e8015260c051818181610ecc0152611ba90152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61009c565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361016d5756fe60806040526004361015610011575f80fd5b5f3560e01c80631c8ce890146115e05780632182b2311461138557806329f780e3146113655780632d2c5565146113155780633f5d1b6f14610ef05780634b74c03514610ea05780634f1ef28614610a535780634f9f6fe614610a2857806352d1902d146109895780637a9e5e4b146108b25780638fb360371461081f578063ad3cb1cc146107c0578063bf7e214f1461076e578063c4d66de8146103e1578063d949b8441461034e578063e0024604146102fc5763e5f5677a146100d4575f80fd5b346102f85760406003193601126102f8576004356100f0611699565b906100f9611ae0565b5061010381611e93565b8051159081156102d5575b506102765761011c81611e93565b9073ffffffffffffffffffffffffffffffffffffffff60208301511633036101f25773ffffffffffffffffffffffffffffffffffffffff6101ee936101b460c085015160e08601516101ae8560408901511680936101a7895f525f60205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416815590565b503061225b565b836122ce565b60405192835216907f4ee820438d9a88f87a3ce7b61be7ebc31585a98ffd36ac2cbfd9b3452c2bbbe660203392a3604051918291826116ff565b0390f35b60846040517f7884ed9b00000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4f6e6c792062726f6b65722063616e20736574746c652074686520616772656560448201527f6d656e742e0000000000000000000000000000000000000000000000000000006064820152fd5b6040517f7884ed9b00000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c696420696e6163746976652061677265656d656e742e00000000006044820152606490fd5b73ffffffffffffffffffffffffffffffffffffffff91506060015116155f61010e565b5f80fd5b346102f8575f6003193601126102f857602073ffffffffffffffffffffffffffffffffffffffff7fad118695963461d59b4e186bb251fe176897e2c57f3362e8dade6f9a4f8e74005416604051908152f35b346102f85760406003193601126102f857610367611676565b73ffffffffffffffffffffffffffffffffffffffff6103cb610387611699565b9273ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b91165f52602052602060405f2054604051908152f35b346102f85760206003193601126102f8576103fa611676565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff821680159081610766575b600114908161075c575b159081610753575b5061072b57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556106d6575b506104bd6129c7565b6104c56129c7565b6104cd6129c7565b6104d56129c7565b6104de816127b2565b6104e66129c7565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005573ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661058d6129c7565b6105956129c7565b61059d6129c7565b80156106ab577fffffffffffffffffffffffff00000000000000000000000000000000000000007fad118695963461d59b4e186bb251fe176897e2c57f3362e8dade6f9a4f8e74005416177fad118695963461d59b4e186bb251fe176897e2c57f3362e8dade6f9a4f8e7400556106126129c7565b61061857005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fd35749f4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836104b4565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050158461044b565b303b159150610443565b849150610439565b346102f8575f6003193601126102f857602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346102f8575f6003193601126102f8576101ee6040516107e160408261192d565b600581527f352e302e3000000000000000000000000000000000000000000000000000000060208201526040519182916020835260208301906116bc565b346102f8575f6003193601126102f8577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156108aa5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f610880565b346102f85760206003193601126102f8576108cb611676565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416330361095d57803b1561091b57610919906127b2565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346102f8575f6003193601126102f85773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610a005760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b346102f85760206003193601126102f8576101ee610a47600435611e93565b604051918291826116ff565b60406003193601126102f857610a67611676565b60243567ffffffffffffffff81116102f857366023820112156102f857610a989036906024816004013591016119a8565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610e5e575b50610a00576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610e53575f91610e06575b5015610d825773ffffffffffffffffffffffffffffffffffffffff8216916040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481875afa5f9181610d4e575b50610be657837f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc859203610d235750813b15610cf857807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115610cc7575f8083602061091995519101845af4610cc161290e565b91612aa5565b505034610cd057005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610d7a575b81610d6a6020938361192d565b810103126102f857519085610bb5565b3d9150610d5d565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610e4b575b81610e216040938361192d565b810103126102f85780519081151582036102f8576020015163ffffffff8116036102f85783610b60565b3d9150610e14565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141583610ada565b346102f8575f6003193601126102f857602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102f857610f19610f14610f0436611833565b96909594809295949394336125da565b611b2a565b6040516020810190610f5b81610f2f85856116ff565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261192d565b519020805f525f60205260405f208251151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815560208301517fffffffffffffffffffffff0000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0083549260081b16911617815573ffffffffffffffffffffffffffffffffffffffff60408401511673ffffffffffffffffffffffffffffffffffffffff6001830191167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905573ffffffffffffffffffffffffffffffffffffffff60608401511673ffffffffffffffffffffffffffffffffffffffff6002830191167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556080830151600382015560a0830151600482015560c0830151600582015560e08301516006820155600781016101008401519081519167ffffffffffffffff83116112a3576801000000000000000083116112a35760209082548484558085106112fa575b5001905f5260205f205f5b8381106112d057610120870151805190876008880167ffffffffffffffff84116112a35760209361113b8254611e42565b601f811161126a575b508493601f82116001146111ce5793819293945f926111c3575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b6040518181527fb649569e5c9bb3f3eb7cc2fd396f5abc452ec3f6f6e2d62638b48d3e7fa599ca833392a2604051908152f35b01519050858061115e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0821694835f52805f20915f5b87811061125357508360019596971061121c575b505050811b019055611190565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c1916905585808061120f565b9192886001819286850151815501940192016111fb565b61129390835f52865f20601f840160051c810191888510611299575b601f0160051c019061279c565b85611144565b9091508190611286565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600190602073ffffffffffffffffffffffffffffffffffffffff855116940193818401550161110a565b61130f90845f5285845f20918201910161279c565b876110ff565b346102f8575f6003193601126102f857602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102f8576101ee610a4761137936611833565b95949094939193611b2a565b346102f85760206003193601126102f8576004356113a1611ae0565b506113ab81611e93565b8051159081156115bd575b50610276577f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6115955760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d61140e81611e93565b6060810173ffffffffffffffffffffffffffffffffffffffff8151163303611511577ffab2b7f82959aa58a83804666a6c0eb98ef4ec938a314db9f0c72bfbb37f05ae60206101ee946114db73ffffffffffffffffffffffffffffffffffffffff60e08701519551169460c0870151906114d573ffffffffffffffffffffffffffffffffffffffff60408a01511680936101a7875f525f60205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416815590565b866122ce565b604051908152a25f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d604051918291826116ff565b60846040517f7884ed9b00000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4f6e6c7920696e69746961746f722063616e20636c6f7365207468652061677260448201527f65656d656e742e000000000000000000000000000000000000000000000000006064820152fd5b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b73ffffffffffffffffffffffffffffffffffffffff9150606001511615826113b6565b346102f85760206003193601126102f8576115f9611676565b73ffffffffffffffffffffffffffffffffffffffff7fad118695963461d59b4e186bb251fe176897e2c57f3362e8dade6f9a4f8e74005416330361164a576116426020916119de565b604051908152f35b7f7344c314000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff821682036102f857565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036102f857565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b9190916020815261016081019083511515602082015273ffffffffffffffffffffffffffffffffffffffff602085015116604082015273ffffffffffffffffffffffffffffffffffffffff604085015116606082015273ffffffffffffffffffffffffffffffffffffffff6060850151166080820152608084015160a082015260a084015160c082015260c084015160e082015260e0840151610100820152610100840151916101406101208301528251809152602061018083019301905f5b8181106118075750505061012061180493940151906101407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0828503019101526116bc565b90565b825173ffffffffffffffffffffffffffffffffffffffff168552602094850194909201916001016117bf565b60a06003198201126102f8576004359160243573ffffffffffffffffffffffffffffffffffffffff811681036102f8579160443573ffffffffffffffffffffffffffffffffffffffff811681036102f857916064359167ffffffffffffffff83116102f857806023840112156102f85782600401359267ffffffffffffffff84116102f8578160248560051b830101116102f857602401929160843567ffffffffffffffff81116102f857826023820112156102f85780600401359267ffffffffffffffff84116102f857602484830101116102f8576024019190565b610140810190811067ffffffffffffffff8211176112a357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176112a357604052565b67ffffffffffffffff81116112a357601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926119b48261196e565b916119c2604051938461192d565b8294818452818301116102f8578281602093845f960137010152565b73ffffffffffffffffffffffffffffffffffffffff7fad118695963461d59b4e186bb251fe176897e2c57f3362e8dade6f9a4f8e74005416611a5d3073ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff83165f5260205260405f2054918215611ad957604081611ab47faacdfb17e73979730dd4f099403209fa37d2a4486c1bcddfad753c3fc6c430df938686612067565b73ffffffffffffffffffffffffffffffffffffffff825191868352166020820152a290565b5050505f90565b60405190611aed82611910565b6060610120835f81525f60208201525f60408201525f838201525f60808201525f60a08201525f60c08201525f60e0820152826101008201520152565b9695929694939194611b3a611ae0565b508215611dbe5773ffffffffffffffffffffffffffffffffffffffff604051927f5622361d00000000000000000000000000000000000000000000000000000000845260026004850152169182602482015260208160448173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e53575f91611d8c575b506127108111611d0857808202908282041482151715611cdb5761271090049081810392818411611cdb5773ffffffffffffffffffffffffffffffffffffffff60405198611c268a611910565b60018a52166020890152604088015233606088015242608088015260a087015260c086015260e085015267ffffffffffffffff81116112a3578060051b9560405191611c75602089018461192d565b825260208201968101903682116102f857965b818810611cae57505083949550610100611ca594015236916119a8565b61012082015290565b873573ffffffffffffffffffffffffffffffffffffffff811681036102f857815260209788019701611c88565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4250532063616e6e6f742062652067726561746572207468616e2031305f303060448201527f30000000000000000000000000000000000000000000000000000000000000006064820152fd5b90506020813d602011611db6575b81611da76020938361192d565b810103126102f857515f611bd9565b3d9150611d9a565b60846040517f7884ed9b00000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f41677265656d656e74206d75737420696e636c756465206174206c656173742060448201527f6f6e6520706172747900000000000000000000000000000000000000000000006064820152fd5b90600182811c92168015611e89575b6020831014611e5c57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611e51565b611e9b611ae0565b505f525f60205260405f2060405190611eb382611910565b73ffffffffffffffffffffffffffffffffffffffff815460ff81161515845260081c16602083015273ffffffffffffffffffffffffffffffffffffffff600182015416604083015273ffffffffffffffffffffffffffffffffffffffff600282015416606083015260038101546080830152600481015460a0830152600581015460c0830152600681015460e0830152600781016040519081602082549182815201915f5260205f20905f5b81811061203b5750505090611f798160089493038261192d565b6101008401520160405190815f825492611f9284611e42565b8084529360018116908115611ffb5750600114611fb7575b50611ca59250038261192d565b90505f9291925260205f20905f915b818310611fdf575050906020611ca5928201015f611faa565b6020919350806001915483858801015201910190918392611fc6565b60209350611ca59592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f611faa565b825473ffffffffffffffffffffffffffffffffffffffff16845260209093019260019283019201611f5f565b9181156121f05781612079823061285d565b106121925773ffffffffffffffffffffffffffffffffffffffff168015612104576040517fa9059cbb00000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff93909316602484015260448084019290925290825261210291906120fd60648361192d565b612a1e565b565b505f8080939273ffffffffffffffffffffffffffffffffffffffff8294165af161212c61290e565b501561213457565b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5472616e73666572206661696c656400000000000000000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e73756666696369656e742062616c616e63652e00000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f496e76616c6964207a65726f20616d6f756e7420746f207472616e736665722e6044820152fd5b91908201809211611cdb57565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f526020526122ca60405f2091825461224e565b9055565b909173ffffffffffffffffffffffffffffffffffffffff807f000000000000000000000000000000000000000000000000000000000000000016911690811580156125d2575b61254f576040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82166024820152602081604481865afa8015610e535785905f90612519575b612382925061224e565b60205f60405192612410846123e4858201937f095ea7b300000000000000000000000000000000000000000000000000000000855288602484016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810186528561192d565b83519082875af15f513d826124fd575b5050156124a0575b50803b156102f8575f928360649273ffffffffffffffffffffffffffffffffffffffff9460405197889687957ff45346dc000000000000000000000000000000000000000000000000000000008752166004860152602485015260448401525af18015610e53576124965750565b5f6121029161192d565b6124f7906124f16040517f095ea7b30000000000000000000000000000000000000000000000000000000060208201528460248201525f6044820152604481526124eb60648261192d565b85612a1e565b83612a1e565b5f612428565b9091506125115750823b15155b5f80612420565b60011461250a565b50506020813d602011612547575b816125346020938361192d565b810103126102f857846123829151612378565b3d9150612527565b60846040517f23c75658000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f496e76616c6964207370656e646572206f7220616c6c6f77616e63652061747460448201527f656d7074000000000000000000000000000000000000000000000000000000006064820152fd5b508315612314565b919091821561273e5773ffffffffffffffffffffffffffffffffffffffff82169182156126d35761260b908261293d565b8311612675576118049173ffffffffffffffffffffffffffffffffffffffff604051927f23b872dd000000000000000000000000000000000000000000000000000000006020850152166024830152306044830152836064830152606482526120fd60848361192d565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652e000000000000006044820152fd5b5050503481116126e05790565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f416d6f756e7420657863656564732062616c616e63652e0000000000000000006044820152fd5b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f20616d6f756e742e0000000000000000000000006044820152fd5b8181106127a7575050565b5f815560010161279c565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b9073ffffffffffffffffffffffffffffffffffffffff169081156129085773ffffffffffffffffffffffffffffffffffffffff602460209260405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa908115610e53575f916128d9575090565b90506020813d602011612900575b816128f46020938361192d565b810103126102f8575190565b3d91506128e7565b90503190565b3d15612938573d9061291f8261196e565b9161292d604051938461192d565b82523d5f602084013e565b606090565b9073ffffffffffffffffffffffffffffffffffffffff1680156129c1576040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff929092166004830152306024830152602090829060449082905afa908115610e53575f916128d9575090565b50503490565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156129f657565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b905f602091828151910182855af115610e53575f513d612a9c575073ffffffffffffffffffffffffffffffffffffffff81163b155b612a5a5750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60011415612a53565b90612ae25750805115612aba57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580612b35575b612af3575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b15612aeb56fea2646970667358221220db73c7a83853f7125065c30036ad2daf3c1f4621555efd0f62f9f4dd027e63ea64736f6c634300081a0033","sourceMap":"1170:12074:55:-:0;;;;;;;;;;;;;-1:-1:-1;;1170:12074:55;;;;-1:-1:-1;;;;;1170:12074:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;1171:4:102;1163:13;;8837:64:101;1170:12074:55;;;;;;7896:76:101;;-1:-1:-1;;;;;;;;;;;1170:12074:55;;7985:34:101;7981:146;;-1:-1:-1;;;;;;;1170:12074:55;;;4374:30;;1170:12074;;4414:30;1170:12074;;;;;;;;1163:13:102;1170:12074:55;;;;;;;;;;4414:30;1170:12074;;;;;;;;;;;;;;;4374:30;1170:12074;;;;;;;;;;;7981:146:101;-1:-1:-1;;;;;;1170:12074:55;-1:-1:-1;;;;;1170:12074:55;;;8837:64:101;1170:12074:55;;;;;;8087:29:101;;1170:12074:55;;8087:29:101;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:101;;-1:-1:-1;7938:23:101;1170:12074:55;-1:-1:-1;1170:12074:55;;;;;;-1:-1:-1;1170:12074:55;;;;;-1:-1:-1;1170:12074:55;;;;-1:-1:-1;;;;;1170:12074:55;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80631c8ce890146115e05780632182b2311461138557806329f780e3146113655780632d2c5565146113155780633f5d1b6f14610ef05780634b74c03514610ea05780634f1ef28614610a535780634f9f6fe614610a2857806352d1902d146109895780637a9e5e4b146108b25780638fb360371461081f578063ad3cb1cc146107c0578063bf7e214f1461076e578063c4d66de8146103e1578063d949b8441461034e578063e0024604146102fc5763e5f5677a146100d4575f80fd5b346102f85760406003193601126102f8576004356100f0611699565b906100f9611ae0565b5061010381611e93565b8051159081156102d5575b506102765761011c81611e93565b9073ffffffffffffffffffffffffffffffffffffffff60208301511633036101f25773ffffffffffffffffffffffffffffffffffffffff6101ee936101b460c085015160e08601516101ae8560408901511680936101a7895f525f60205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416815590565b503061225b565b836122ce565b60405192835216907f4ee820438d9a88f87a3ce7b61be7ebc31585a98ffd36ac2cbfd9b3452c2bbbe660203392a3604051918291826116ff565b0390f35b60846040517f7884ed9b00000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4f6e6c792062726f6b65722063616e20736574746c652074686520616772656560448201527f6d656e742e0000000000000000000000000000000000000000000000000000006064820152fd5b6040517f7884ed9b00000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c696420696e6163746976652061677265656d656e742e00000000006044820152606490fd5b73ffffffffffffffffffffffffffffffffffffffff91506060015116155f61010e565b5f80fd5b346102f8575f6003193601126102f857602073ffffffffffffffffffffffffffffffffffffffff7fad118695963461d59b4e186bb251fe176897e2c57f3362e8dade6f9a4f8e74005416604051908152f35b346102f85760406003193601126102f857610367611676565b73ffffffffffffffffffffffffffffffffffffffff6103cb610387611699565b9273ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b91165f52602052602060405f2054604051908152f35b346102f85760206003193601126102f8576103fa611676565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff821680159081610766575b600114908161075c575b159081610753575b5061072b57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556106d6575b506104bd6129c7565b6104c56129c7565b6104cd6129c7565b6104d56129c7565b6104de816127b2565b6104e66129c7565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005573ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661058d6129c7565b6105956129c7565b61059d6129c7565b80156106ab577fffffffffffffffffffffffff00000000000000000000000000000000000000007fad118695963461d59b4e186bb251fe176897e2c57f3362e8dade6f9a4f8e74005416177fad118695963461d59b4e186bb251fe176897e2c57f3362e8dade6f9a4f8e7400556106126129c7565b61061857005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fd35749f4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836104b4565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050158461044b565b303b159150610443565b849150610439565b346102f8575f6003193601126102f857602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346102f8575f6003193601126102f8576101ee6040516107e160408261192d565b600581527f352e302e3000000000000000000000000000000000000000000000000000000060208201526040519182916020835260208301906116bc565b346102f8575f6003193601126102f8577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156108aa5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f610880565b346102f85760206003193601126102f8576108cb611676565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416330361095d57803b1561091b57610919906127b2565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346102f8575f6003193601126102f85773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610a005760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b346102f85760206003193601126102f8576101ee610a47600435611e93565b604051918291826116ff565b60406003193601126102f857610a67611676565b60243567ffffffffffffffff81116102f857366023820112156102f857610a989036906024816004013591016119a8565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610e5e575b50610a00576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610e53575f91610e06575b5015610d825773ffffffffffffffffffffffffffffffffffffffff8216916040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481875afa5f9181610d4e575b50610be657837f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc859203610d235750813b15610cf857807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115610cc7575f8083602061091995519101845af4610cc161290e565b91612aa5565b505034610cd057005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610d7a575b81610d6a6020938361192d565b810103126102f857519085610bb5565b3d9150610d5d565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610e4b575b81610e216040938361192d565b810103126102f85780519081151582036102f8576020015163ffffffff8116036102f85783610b60565b3d9150610e14565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141583610ada565b346102f8575f6003193601126102f857602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102f857610f19610f14610f0436611833565b96909594809295949394336125da565b611b2a565b6040516020810190610f5b81610f2f85856116ff565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261192d565b519020805f525f60205260405f208251151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815560208301517fffffffffffffffffffffff0000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0083549260081b16911617815573ffffffffffffffffffffffffffffffffffffffff60408401511673ffffffffffffffffffffffffffffffffffffffff6001830191167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905573ffffffffffffffffffffffffffffffffffffffff60608401511673ffffffffffffffffffffffffffffffffffffffff6002830191167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556080830151600382015560a0830151600482015560c0830151600582015560e08301516006820155600781016101008401519081519167ffffffffffffffff83116112a3576801000000000000000083116112a35760209082548484558085106112fa575b5001905f5260205f205f5b8381106112d057610120870151805190876008880167ffffffffffffffff84116112a35760209361113b8254611e42565b601f811161126a575b508493601f82116001146111ce5793819293945f926111c3575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b6040518181527fb649569e5c9bb3f3eb7cc2fd396f5abc452ec3f6f6e2d62638b48d3e7fa599ca833392a2604051908152f35b01519050858061115e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0821694835f52805f20915f5b87811061125357508360019596971061121c575b505050811b019055611190565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c1916905585808061120f565b9192886001819286850151815501940192016111fb565b61129390835f52865f20601f840160051c810191888510611299575b601f0160051c019061279c565b85611144565b9091508190611286565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600190602073ffffffffffffffffffffffffffffffffffffffff855116940193818401550161110a565b61130f90845f5285845f20918201910161279c565b876110ff565b346102f8575f6003193601126102f857602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102f8576101ee610a4761137936611833565b95949094939193611b2a565b346102f85760206003193601126102f8576004356113a1611ae0565b506113ab81611e93565b8051159081156115bd575b50610276577f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6115955760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d61140e81611e93565b6060810173ffffffffffffffffffffffffffffffffffffffff8151163303611511577ffab2b7f82959aa58a83804666a6c0eb98ef4ec938a314db9f0c72bfbb37f05ae60206101ee946114db73ffffffffffffffffffffffffffffffffffffffff60e08701519551169460c0870151906114d573ffffffffffffffffffffffffffffffffffffffff60408a01511680936101a7875f525f60205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416815590565b866122ce565b604051908152a25f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d604051918291826116ff565b60846040517f7884ed9b00000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4f6e6c7920696e69746961746f722063616e20636c6f7365207468652061677260448201527f65656d656e742e000000000000000000000000000000000000000000000000006064820152fd5b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b73ffffffffffffffffffffffffffffffffffffffff9150606001511615826113b6565b346102f85760206003193601126102f8576115f9611676565b73ffffffffffffffffffffffffffffffffffffffff7fad118695963461d59b4e186bb251fe176897e2c57f3362e8dade6f9a4f8e74005416330361164a576116426020916119de565b604051908152f35b7f7344c314000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff821682036102f857565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036102f857565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b9190916020815261016081019083511515602082015273ffffffffffffffffffffffffffffffffffffffff602085015116604082015273ffffffffffffffffffffffffffffffffffffffff604085015116606082015273ffffffffffffffffffffffffffffffffffffffff6060850151166080820152608084015160a082015260a084015160c082015260c084015160e082015260e0840151610100820152610100840151916101406101208301528251809152602061018083019301905f5b8181106118075750505061012061180493940151906101407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0828503019101526116bc565b90565b825173ffffffffffffffffffffffffffffffffffffffff168552602094850194909201916001016117bf565b60a06003198201126102f8576004359160243573ffffffffffffffffffffffffffffffffffffffff811681036102f8579160443573ffffffffffffffffffffffffffffffffffffffff811681036102f857916064359167ffffffffffffffff83116102f857806023840112156102f85782600401359267ffffffffffffffff84116102f8578160248560051b830101116102f857602401929160843567ffffffffffffffff81116102f857826023820112156102f85780600401359267ffffffffffffffff84116102f857602484830101116102f8576024019190565b610140810190811067ffffffffffffffff8211176112a357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176112a357604052565b67ffffffffffffffff81116112a357601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926119b48261196e565b916119c2604051938461192d565b8294818452818301116102f8578281602093845f960137010152565b73ffffffffffffffffffffffffffffffffffffffff7fad118695963461d59b4e186bb251fe176897e2c57f3362e8dade6f9a4f8e74005416611a5d3073ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff83165f5260205260405f2054918215611ad957604081611ab47faacdfb17e73979730dd4f099403209fa37d2a4486c1bcddfad753c3fc6c430df938686612067565b73ffffffffffffffffffffffffffffffffffffffff825191868352166020820152a290565b5050505f90565b60405190611aed82611910565b6060610120835f81525f60208201525f60408201525f838201525f60808201525f60a08201525f60c08201525f60e0820152826101008201520152565b9695929694939194611b3a611ae0565b508215611dbe5773ffffffffffffffffffffffffffffffffffffffff604051927f5622361d00000000000000000000000000000000000000000000000000000000845260026004850152169182602482015260208160448173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e53575f91611d8c575b506127108111611d0857808202908282041482151715611cdb5761271090049081810392818411611cdb5773ffffffffffffffffffffffffffffffffffffffff60405198611c268a611910565b60018a52166020890152604088015233606088015242608088015260a087015260c086015260e085015267ffffffffffffffff81116112a3578060051b9560405191611c75602089018461192d565b825260208201968101903682116102f857965b818810611cae57505083949550610100611ca594015236916119a8565b61012082015290565b873573ffffffffffffffffffffffffffffffffffffffff811681036102f857815260209788019701611c88565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4250532063616e6e6f742062652067726561746572207468616e2031305f303060448201527f30000000000000000000000000000000000000000000000000000000000000006064820152fd5b90506020813d602011611db6575b81611da76020938361192d565b810103126102f857515f611bd9565b3d9150611d9a565b60846040517f7884ed9b00000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f41677265656d656e74206d75737420696e636c756465206174206c656173742060448201527f6f6e6520706172747900000000000000000000000000000000000000000000006064820152fd5b90600182811c92168015611e89575b6020831014611e5c57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611e51565b611e9b611ae0565b505f525f60205260405f2060405190611eb382611910565b73ffffffffffffffffffffffffffffffffffffffff815460ff81161515845260081c16602083015273ffffffffffffffffffffffffffffffffffffffff600182015416604083015273ffffffffffffffffffffffffffffffffffffffff600282015416606083015260038101546080830152600481015460a0830152600581015460c0830152600681015460e0830152600781016040519081602082549182815201915f5260205f20905f5b81811061203b5750505090611f798160089493038261192d565b6101008401520160405190815f825492611f9284611e42565b8084529360018116908115611ffb5750600114611fb7575b50611ca59250038261192d565b90505f9291925260205f20905f915b818310611fdf575050906020611ca5928201015f611faa565b6020919350806001915483858801015201910190918392611fc6565b60209350611ca59592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f611faa565b825473ffffffffffffffffffffffffffffffffffffffff16845260209093019260019283019201611f5f565b9181156121f05781612079823061285d565b106121925773ffffffffffffffffffffffffffffffffffffffff168015612104576040517fa9059cbb00000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff93909316602484015260448084019290925290825261210291906120fd60648361192d565b612a1e565b565b505f8080939273ffffffffffffffffffffffffffffffffffffffff8294165af161212c61290e565b501561213457565b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5472616e73666572206661696c656400000000000000000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e73756666696369656e742062616c616e63652e00000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f496e76616c6964207a65726f20616d6f756e7420746f207472616e736665722e6044820152fd5b91908201809211611cdb57565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f526020526122ca60405f2091825461224e565b9055565b909173ffffffffffffffffffffffffffffffffffffffff807f000000000000000000000000000000000000000000000000000000000000000016911690811580156125d2575b61254f576040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82166024820152602081604481865afa8015610e535785905f90612519575b612382925061224e565b60205f60405192612410846123e4858201937f095ea7b300000000000000000000000000000000000000000000000000000000855288602484016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810186528561192d565b83519082875af15f513d826124fd575b5050156124a0575b50803b156102f8575f928360649273ffffffffffffffffffffffffffffffffffffffff9460405197889687957ff45346dc000000000000000000000000000000000000000000000000000000008752166004860152602485015260448401525af18015610e53576124965750565b5f6121029161192d565b6124f7906124f16040517f095ea7b30000000000000000000000000000000000000000000000000000000060208201528460248201525f6044820152604481526124eb60648261192d565b85612a1e565b83612a1e565b5f612428565b9091506125115750823b15155b5f80612420565b60011461250a565b50506020813d602011612547575b816125346020938361192d565b810103126102f857846123829151612378565b3d9150612527565b60846040517f23c75658000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f496e76616c6964207370656e646572206f7220616c6c6f77616e63652061747460448201527f656d7074000000000000000000000000000000000000000000000000000000006064820152fd5b508315612314565b919091821561273e5773ffffffffffffffffffffffffffffffffffffffff82169182156126d35761260b908261293d565b8311612675576118049173ffffffffffffffffffffffffffffffffffffffff604051927f23b872dd000000000000000000000000000000000000000000000000000000006020850152166024830152306044830152836064830152606482526120fd60848361192d565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652e000000000000006044820152fd5b5050503481116126e05790565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f416d6f756e7420657863656564732062616c616e63652e0000000000000000006044820152fd5b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f20616d6f756e742e0000000000000000000000006044820152fd5b8181106127a7575050565b5f815560010161279c565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b9073ffffffffffffffffffffffffffffffffffffffff169081156129085773ffffffffffffffffffffffffffffffffffffffff602460209260405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa908115610e53575f916128d9575090565b90506020813d602011612900575b816128f46020938361192d565b810103126102f8575190565b3d91506128e7565b90503190565b3d15612938573d9061291f8261196e565b9161292d604051938461192d565b82523d5f602084013e565b606090565b9073ffffffffffffffffffffffffffffffffffffffff1680156129c1576040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff929092166004830152306024830152602090829060449082905afa908115610e53575f916128d9575090565b50503490565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156129f657565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b905f602091828151910182855af115610e53575f513d612a9c575073ffffffffffffffffffffffffffffffffffffffff81163b155b612a5a5750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60011415612a53565b90612ae25750805115612aba57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580612b35575b612af3575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b15612aeb56fea2646970667358221220db73c7a83853f7125065c30036ad2daf3c1f4621555efd0f62f9f4dd027e63ea64736f6c634300081a0033","sourceMap":"1170:12074:55:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11024:21;1170:12074;11024:21;;;1170:12074;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1170:12074:55;;;;;;;;;:::i;:::-;;;;:::i;:::-;;3778:19;;;:::i;:::-;1170:12074;;;;;;3811:54;;1170:12074;3807:141;;;7811:19;;;:::i;:::-;7844:16;1170:12074;;7844:16;;1170:12074;;7864:10;7844:30;7840:127;;1170:12074;;7992:14;8327:8;7992:14;;;1170:12074;;8048:19;;1170:12074;8258:8;8115:18;1170:12074;8115:18;;1170:12074;;8144:22;;;;11614:11;1170:12074;11614:11;1170:12074;;;11614:11;1170:12074;;;;;;;11418:281;;8144:22;;8245:4;8258:8;:::i;:::-;8327;;:::i;:::-;1170:12074;;;;;;7864:10;8352:49;1170:12074;7864:10;8352:49;;1170:12074;;;;;;;:::i;:::-;;;;7840:127;7897:59;1170:12074;;7897:59;;;1170:12074;;7897:59;;1170:12074;;;;;;;;;;;;;;;;7897:59;3807:141;1170:12074;;3888:49;;;1170:12074;;3888:49;;1170:12074;;;;;;;;;;;;;3888:49;3811:54;1170:12074;3832:19;;;;1170:12074;;3832:33;3811:54;;;1170:12074;;;;;;;;;-1:-1:-1;;1170:12074:55;;;;;;;4768:62:6;1170:12074:55;;;;;;;;;;;;;-1:-1:-1;;1170:12074:55;;;;;;;:::i;:::-;;1452:18:7;1170:12074:55;;:::i;:::-;1452:18:7;1170:12074:55;;;;4161:54:7;1170:12074:55;;;;;;;1452:18:7;:28;1170:12074:55;-1:-1:-1;1170:12074:55;;;;;-1:-1:-1;1170:12074:55;;;;;;;;;;;;;-1:-1:-1;;1170:12074:55;;;;;;;:::i;:::-;8837:64:101;1170:12074:55;;;;;;4301:16:101;1170:12074:55;;;;4726:16:101;;:34;;;;1170:12074:55;4805:1:101;4790:16;:50;;;;1170:12074:55;4855:13:101;:30;;;;1170:12074:55;4851:91:101;;;1170:12074:55;;4805:1:101;1170:12074:55;;;;;8837:64:101;1170:12074:55;4979:67:101;;1170:12074:55;6893:76:101;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:99;;;:::i;:::-;6893:76:101;;:::i;:::-;1170:12074:55;;3286:62:5;1170:12074:55;;;3286:62:5;1170:12074:55;;4676:8;1170:12074;6893:76:101;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;4237:37:6;;4233:97;;1170:12074:55;4768:62:6;1170:12074:55;;;4768:62:6;1170:12074:55;6893:76:101;;:::i;:::-;5066:101;;1170:12074:55;5066:101:101;1170:12074:55;8837:64:101;1170:12074:55;;8837:64:101;1170:12074:55;5142:14:101;1170:12074:55;;;4805:1:101;1170:12074:55;;5142:14:101;1170:12074:55;4233:97:6;4283:47;1170:12074:55;4283:47:6;1170:12074:55;;;;4283:47:6;4979:67:101;1170:12074:55;;;;8837:64:101;1170:12074:55;4979:67:101;;;4851:91;4908:23;1170:12074:55;4908:23:101;1170:12074:55;;4908:23:101;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:101;;4726:34;;;-1:-1:-1;4726:34:101;;1170:12074:55;;;;;-1:-1:-1;;1170:12074:55;;;;;;;1782:71:99;1170:12074:55;;;;;;;;;;;;;-1:-1:-1;;1170:12074:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;1170:12074:55;;;;;1782:71:99;1170:12074:55;;;;;4698:71:99;;;1170:12074:55;;4698:71:99;1170:12074:55;;;;;;;;4698:71:99;1170:12074:55;;4698:71:99;;1170:12074:55;;;;;-1:-1:-1;;1170:12074:55;;;;;;;:::i;:::-;;1782:71:99;1170:12074:55;;966:10:105;4258:21:99;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;1170:12074:55;4355:110:99;1170:12074:55;4411:43:99;;1170:12074:55;4411:43:99;1170:12074:55;;;;;4411:43:99;4254:92;4302:33;1170:12074:55;4302:33:99;966:10:105;1170:12074:55;;;;4302:33:99;1170:12074:55;;;;;-1:-1:-1;;1170:12074:55;;;;;;5115:6:102;1170:12074:55;5106:4:102;5098:23;5094:145;;1170:12074:55;;;811:66:139;1170:12074:55;;;5094:145:102;5199:29;1170:12074:55;5199:29:102;1170:12074:55;;5199:29:102;1170:12074:55;;;;;-1:-1:-1;;1170:12074:55;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;-1:-1:-1;;1170:12074:55;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4692:6:102;1170:12074:55;4683:4:102;;4675:23;:120;;;;;1170:12074:55;4658:251:102;;;3049:30:5;1170:12074:55;;3286:62:5;1170:12074:55;;;;3049:30:5;;;;1170:12074:55;3049:30:5;;1170:12074:55;;3049:30:5;;1170:12074:55;1884:10:5;1170:12074:55;;;;3049:30:5;;;;;;;1170:12074:55;3049:30:5;;;1170:12074:55;1860:35:5;;1856:140;;1170:12074:55;;;;;;;6156:52:102;;1170:12074:55;6156:52:102;1170:12074:55;6156:52:102;;;;1170:12074:55;;6156:52:102;;;1170:12074:55;-1:-1:-1;6152:437:102;;6518:60;;1170:12074:55;6518:60:102;1170:12074:55;;;;6518:60:102;6152:437;6250:40;811:66:139;6250:40:102;;;6246:120;;1748:29:139;;;:34;1744:119;;1170:12074:55;;811:66:139;1170:12074:55;;;811:66:139;1170:12074:55;2407:36:139;1170:12074:55;2407:36:139;;1170:12074:55;;2458:15:139;:11;;1170:12074:55;4049:25:160;;1170:12074:55;4091:55:160;4049:25;;;;;;;;;:::i;:::-;4091:55;;:::i;2454:148:139:-;6163:9;;;6159:70;;1170:12074:55;6159:70:139;6199:19;1170:12074:55;6199:19:139;1170:12074:55;;6199:19:139;1744:119;1805:47;1170:12074:55;1805:47:139;1170:12074:55;;;;1805:47:139;6246:120:102;6317:34;1170:12074:55;6317:34:102;1170:12074:55;;;;6317:34:102;6156:52;;;;1170:12074:55;6156:52:102;;1170:12074:55;6156:52:102;;;;;;1170:12074:55;6156:52:102;;;:::i;:::-;;;1170:12074:55;;;;;6156:52:102;;;;;;;-1:-1:-1;6156:52:102;;1856:140:5;1918:67;1170:12074:55;;1918:67:5;;;1170:12074:55;;1918:67:5;;520:1:45;1170:12074:55;;520:1:45;;1170:12074:55;520:1:45;3049:30:5;1170:12074:55;;520:1:45;;;;;;1918:67:5;3049:30;;;1170:12074:55;3049:30:5;;1170:12074:55;3049:30:5;;;;;;1170:12074:55;3049:30:5;;;:::i;:::-;;;1170:12074:55;;;;;;;;;;;;;;;;;;;;;;;3049:30:5;;;;;;-1:-1:-1;3049:30:5;;;1170:12074:55;;;;;;;;;4675:120:102;1170:12074:55;;;811:66:139;1170:12074:55;;4753:42:102;;4675:120;;;1170:12074:55;;;;;-1:-1:-1;;1170:12074:55;;;;;;;;;1944:35;1170:12074;;;;;;;;5504:63;5423:40;1170:12074;;;:::i;:::-;5423:10;;;;;;;;;;;:40;:::i;:::-;5504:63;:::i;:::-;1170:12074;;11024:21;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;1170:12074;11071:19;;1170:12074;;;;11024:21;1170:12074;;;;;;;;;;;;;;;;;;11024:21;1170:12074;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11024:21;1170:12074;;;;;;;;;;;;;;;;;11024:21;1170:12074;;;;;;;;;;;;;;;;;;;;;;;;;11024:21;1170:12074;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5891:35;5423:10;;5891:35;;1170:12074;;;;;;;;;;-1:-1:-1;1170:12074:55;;;;;11024:21;1170:12074;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;1170:12074:55;;;;;;;;;;;;;;;;;11024:21;1170:12074;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1170:12074:55;;;;;;;;;1837:35;1170:12074;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;1170:12074:55;;;;;;;;;:::i;:::-;;3778:19;;;:::i;:::-;1170:12074;;;;;;3811:54;;1170:12074;3807:141;;;757:66:108;3321:69:170;1706:93:108;;1170:12074:55;757:66:108;3550:68:170;6270:19:55;;;:::i;:::-;6303;;;1170:12074;;;;6326:10;6303:33;6299:132;;6946:36;1170:12074;;6526:19;6921:8;1170:12074;;6526:19;;1170:12074;;;;6667:14;;;;1170:12074;6734:18;6855:8;1170:12074;;6734:18;;1170:12074;;6763:22;;;;11614:11;1170:12074;11614:11;1170:12074;;;11614:11;1170:12074;;;;;;;11418:281;;6855:8;6921;;:::i;:::-;1170:12074;;;;;6946:36;1170:12074;757:66:108;3550:68:170;1170:12074:55;;;;;;;:::i;6299:132::-;6359:61;1170:12074;;6359:61;;;1170:12074;;6359:61;;1170:12074;;;;;;;;;;;;;;;;6359:61;1706:93:108;1758:30;1170:12074:55;1758:30:108;1170:12074:55;;1758:30:108;3811:54:55;1170:12074;3832:19;;;;1170:12074;;3832:33;3811:54;;;1170:12074;;;;;-1:-1:-1;;1170:12074:55;;;;;;;:::i;:::-;;4768:62:6;1170:12074:55;;1906:10:6;1882:34;1878:115;;2585:546;1170:12074:55;2585:546:6;;:::i;:::-;1170:12074:55;;;;;;1878:115:6;1939:43;1170:12074:55;1939:43:6;1906:10;1170:12074:55;;;;1939:43:6;1170:12074:55;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1170:12074:55;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1170:12074:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1170:12074:55;;;;;;:::o;2585:546:6:-;1170:12074:55;4768:62:6;1170:12074:55;;1452:18:7;2842:4:6;1170:12074:55;;;;4161:54:7;1170:12074:55;;;;;;;1452:18:7;1170:12074:55;;;-1:-1:-1;1170:12074:55;;;;-1:-1:-1;1170:12074:55;;2872:11:6;;;2868:25;;1170:12074:55;3029:8:6;;3053:48;3029:8;;;;:::i;:::-;1170:12074:55;;;;;;;;;;;;3053:48:6;2585:546;:::o;2868:25::-;2885:8;;;-1:-1:-1;2885:8:6;:::o;1170:12074:55:-;;;;;;;:::i;:::-;;;;-1:-1:-1;1170:12074:55;;-1:-1:-1;1170:12074:55;;;;-1:-1:-1;1170:12074:55;;;;-1:-1:-1;1170:12074:55;;;;-1:-1:-1;1170:12074:55;;;;-1:-1:-1;1170:12074:55;;;;-1:-1:-1;1170:12074:55;;;;-1:-1:-1;1170:12074:55;;;;;;;;;;;:::o;8845:1616::-;;;;;;;;;1170:12074;;:::i;:::-;;9074:19;;9070:120;;1170:12074;;;12222:41;1170:12074;12222:41;;12239:13;12222:41;;;1170:12074;;;;;;;;;12222:8;:41;:8;1170:12074;12222:8;1170:12074;12222:41;;;;;;;9092:1;12222:41;;;8845:1616;1182:16:46;469:6:45;1182:16:46;;469:6:45;;1170:12074:55;;;;;;;;;;;;;;469:6:45;;;1170:12074:55;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;9684:770;;1170:12074;;9684:770;;1170:12074;9969:10;9684:770;;;1170:12074;10231:15;9684:770;;;1170:12074;9684:770;;;1170:12074;9684:770;;;1170:12074;;9684:770;;1170:12074;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;9684:770;;;;;;;1170:12074;9684:770;;1170:12074;;;;:::i;:::-;9684:770;;;1170:12074;8845:1616;:::o;1170:12074::-;;;;;;;;;;;;;;;;;;;;;;9092:1;1170:12074;;12222:41;1170:12074;;9092:1;1170:12074;469:6:45;;1170:12074:55;;469:6:45;;;1170:12074:55;12222:41;469:6:45;;;;1170:12074:55;469:6:45;;1170:12074:55;469:6:45;12222:41:55;1170:12074;;469:6:45;;;;;;;12222:41:55;;;1170:12074;12222:41;;1170:12074;12222:41;;;;;;1170:12074;12222:41;;;:::i;:::-;;;1170:12074;;;;;12222:41;;;;;;-1:-1:-1;12222:41:55;;9070:120;9116:63;1170:12074;;9116:63;;;1170:12074;9116:63;;;1170:12074;;;;;;;;;;;;;;;;9116:63;1170:12074;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;7172:120;1170:12074;;:::i;:::-;;7267:11;1170:12074;7267:11;1170:12074;;;7267:11;1170:12074;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7267:11;1170:12074;;7267:11;1170:12074;;7267:11;1170:12074;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7267:11;1170:12074;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;7267:11;1170:12074;;;;;7267:11;1170:12074;;7267:11;1170:12074;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5230:383:48;;5314:11;;5310:78;;5420:4;5402:31;5420:4;;5402:31;:::i;:::-;:40;5398:96;;1170:12074:55;;5508:19:48;;5504:59;;1170:12074:55;;;1380:43:153;;;;1170:12074:55;;;;;1380:43:153;;;1170:12074:55;;;;;;;;;1380:43:153;;;;;1170:12074:55;1380:43:153;1170:12074:55;;1380:43:153;:::i;:::-;;:::i;:::-;5230:383:48:o;5504:59::-;1170:12074:55;5324:1:48;1170:12074:55;;;;;;;;901:37:48;;;;:::i;:::-;;952:8;948:58;;5529:34::o;948:58::-;969:37;1170:12074:55;;969:37:48;;;1170:12074:55;969:37:48;;;1170:12074:55;;;;;;;;;;;969:37:48;5398:96;5451:43;1170:12074:55;;5451:43:48;;;1170:12074:55;5451:43:48;;;1170:12074:55;;;;;;;;;;;5451:43:48;5310:78;5334:54;1170:12074:55;;5334:54:48;;;1170:12074:55;5334:54:48;;;1170:12074:55;;;;;;;;;;;5334:54:48;1170:12074:55;;;;;;;;;;:::o;3099:195:7:-;1170:12074:55;3099:195:7;;;;1170:12074:55;-1:-1:-1;1170:12074:55;4161:54:7;1170:12074:55;;;;-1:-1:-1;1170:12074:55;3249:28:7;1170:12074:55;-1:-1:-1;1170:12074:55;;;3249:38:7;1170:12074:55;-1:-1:-1;1170:12074:55;;;;3249:38:7;:::i;:::-;1170:12074:55;;3099:195:7:o;12938:304:55:-;;;1170:12074;13135:8;;1170:12074;2085:1:48;1170:12074:55;2068:19:48;;;:34;;;;12938:304:55;2064:104:48;;1170:12074:55;;;2633:39:153;;2657:4;2633:39;;;1170:12074:55;;;;;;;;2633:39:153;1170:12074:55;;;2633:39:153;;;;;;;;;2085:1:48;2633:39:153;;;12938:304:55;2711:20:153;;;;:::i;:::-;2633:39;2085:1:48;1170:12074:55;;4567:47:153;;;;;;;;1170:12074:55;4567:47:153;;;;;;1170:12074:55;;;;;;;;;;;;;;;;;4567:47:153;;;;;;;;;:::i;:::-;9138:199;;;;;;;2085:1:48;9138:199:153;;9353:80;;;12938:304:55;4629:45:153;;;4625:201;;12938:304:55;13190:45;;;;;;2085:1:48;1170:12074:55;;13190:45;1170:12074;;;;;13190:45;;;;;1170:12074;13190:45;;1170:12074;2633:39:153;13190:45:55;;1170:12074;4567:47:153;1170:12074:55;;;;;;;13190:45;;;;;;;;12938:304;:::o;13190:45::-;2085:1:48;13190:45:55;;;:::i;4625:201:153:-;4802:12;1170:12074:55;4717:43:153;1170:12074:55;;;2633:39:153;4717:43;;;;4567:47;4717:43;;1170:12074:55;2085:1:48;1170:12074:55;;;;;4717:43:153;;;;;;:::i;:::-;;;:::i;:::-;4802:12;;:::i;:::-;4625:201;;;9353:80;9365:67;;-1:-1:-1;9365:15:153;;9383:26;;;:30;;9365:67;9353:80;;;;9365:67;9431:1;9416:16;9365:67;;2633:39;;;;;;;;;;;;;1170:12074:55;2633:39:153;;;:::i;:::-;;;1170:12074:55;;;;;2711:20:153;1170:12074:55;;2633:39:153;;;;;-1:-1:-1;2633:39:153;;2064:104:48;2111:57;1170:12074:55;;2111:57:48;;;1170:12074:55;2111:57:48;;;1170:12074:55;;;;;;;;;;;;;;;;2111:57:48;2068:34;2091:11;;;2068:34;;3536:881;;;;3643:11;;3639:65;;1170:12074:55;;;3718:19:48;;;3714:230;;3967:22;;;;:::i;:::-;3958:31;;3954:90;;1797:53:153;1170:12074:55;;;;1797:53:153;1170:12074:55;1797:53:153;;;;1170:12074:55;1797:53:153;;;1170:12074:55;4373:4:48;1170:12074:55;;;;;;;;;;1797:53:153;;;;;;:::i;3954:90:48:-;3998:46;1170:12074:55;;3998:46:48;;;1170:12074:55;3998:46:48;;;1170:12074:55;;;;;;;;;;;3998:46:48;3714:230;3766:9;;;;3757:18;;3753:75;;3920:13;:::o;3753:75::-;3784:44;1170:12074:55;;3784:44:48;;;1170:12074:55;3784:44:48;;;1170:12074:55;;;;;;;;;;;3784:44:48;3639:65;3663:41;1170:12074:55;;3663:41:48;;;1170:12074:55;3663:41:48;;;1170:12074:55;;;;;;;;;;;3663:41:48;1170:12074:55;;;;;;;;:::o;:::-;;;;;;;;4964:220:99;1170:12074:55;;5147:30:99;4964:220;1170:12074:55;;;1782:71:99;1170:12074:55;;;1782:71:99;1170:12074:55;;;;;;5147:30:99;4964:220::o;4671:193:48:-;;1170:12074:55;;4767:19:48;;;4763:46;;1170:12074:55;4826:31:48;1170:12074:55;;;;4826:31:48;;;;;1170:12074:55;4826:31:48;;1170:12074:55;4826:31:48;;;1170:12074:55;4826:31:48;;;;;;;1170:12074:55;4826:31:48;;;4819:38;4671:193;:::o;4826:31::-;;;1170:12074:55;4826:31:48;;1170:12074:55;4826:31:48;;;;;;1170:12074:55;4826:31:48;;;:::i;:::-;;;1170:12074:55;;;;;4671:193:48;:::o;4826:31::-;;;-1:-1:-1;4826:31:48;;4763:46;4795:14;;;4788:21;:::o;1170:12074:55:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1170:12074:55;;;;:::o;:::-;;;:::o;2838:201:48:-;;1170:12074:55;;2933:19:48;;2929:41;;1170:12074:55;;;2987:45:48;;1170:12074:55;;;;;2987:45:48;;;1170:12074:55;3026:4:48;1170:12074:55;;;;2987:45:48;;1170:12074:55;;;;;;2987:45:48;;;;;;;1170:12074:55;2987:45:48;;;2980:52;2838:201;:::o;2929:41::-;2961:9;;;2954:16;:::o;7084:141:101:-;1170:12074:55;8837:64:101;1170:12074:55;;;;7150:18:101;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:101;;-1:-1:-1;7191:17:101;7738:720:153;;-1:-1:-1;7875:421:153;7738:720;7875:421;;;;;;;;;;;;-1:-1:-1;7875:421:153;;8310:15;;1170:12074:55;;;;8328:26:153;:31;8310:68;8306:146;;7738:720;:::o;8306:146::-;1170:12074:55;8401:40:153;;-1:-1:-1;8401:40:153;1170:12074:55;8401:40:153;1170:12074:55;;-1:-1:-1;8401:40:153;8310:68;8377:1;8362:16;;8310:68;;4421:582:160;;4593:8;;-1:-1:-1;1170:12074:55;;5674:21:160;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;1170:12074:55;;4841:22:160;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;1170:12074:55;4917:24:160;;4862:1;4917:24;1170:12074:55;4917:24:160;1170:12074:55;;4862:1:160;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"51668":[{"start":2480,"length":32},{"start":2735,"length":32}],"5172":[{"start":1381,"length":32},{"start":4929,"length":32},{"start":8936,"length":32}],"5176":[{"start":3788,"length":32},{"start":7081,"length":32}]}},"methodIdentifiers":{"TOLLGATE()":"4b74c035","TREASURY()":"2d2c5565","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","createAgreement(uint256,address,address,address[],bytes)":"3f5d1b6f","disburse(address)":"1c8ce890","getAgreement(uint256)":"4f9f6fe6","getLedgerBalance(address,address)":"d949b844","getTreasuryAddress()":"e0024604","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","previewAgreement(uint256,address,address,address[],bytes)":"29f780e3","proxiableUUID()":"52d1902d","quitAgreement(uint256)":"2182b231","setAuthority(address)":"7a9e5e4b","settleAgreement(uint256,address)":"e5f5677a","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tollgate\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailDuringDeposit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailDuringTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"InvalidAgreementOp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAgreementProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"invalidAddress\",\"type\":\"address\"}],\"name\":\"InvalidTreasuryAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"InvalidUnauthorizedDisbursement\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"}],\"name\":\"AgreementCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"}],\"name\":\"AgreementCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"counterparty\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"}],\"name\":\"AgreementSettled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FeesDisbursed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"TOLLGATE\",\"outputs\":[{\"internalType\":\"contract ITollgate\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREASURY\",\"outputs\":[{\"internalType\":\"contract ITreasury\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"createAgreement\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"disburse\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"}],\"name\":\"getAgreement\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct T.Agreement\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"getLedgerBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreasuryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"previewAgreement\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct T.Agreement\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"}],\"name\":\"quitAgreement\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct T.Agreement\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"counterparty\",\"type\":\"address\"}],\"name\":\"settleAgreement\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct T.Agreement\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailDuringTransfer(string)\":[{\"params\":{\"reason\":\"The reason for the transfer failure.\"}}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidAgreementOp(string)\":[{\"details\":\"Custom error thrown for invalid operations on an agreement, with a descriptive message.\",\"params\":{\"message\":\"A string explaining the invalid operation.\"}}],\"InvalidAgreementProof()\":[{\"details\":\"Custom error thrown when the provided proof for an agreement is invalid.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidTreasuryAddress(address)\":[{\"params\":{\"invalidAddress\":\"The invalid treasury address.\"}}],\"InvalidUnauthorizedDisbursement(address)\":[{\"params\":{\"caller\":\"The unauthorized address attempting the disbursement.\"}}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AgreementCancelled(address,uint256)\":{\"params\":{\"initiator\":\"The account that initiated the cancellation.\",\"proof\":\"The unique identifier (hash or proof) of the canceled agreement.\"}},\"AgreementCreated(address,uint256)\":{\"params\":{\"initiator\":\"The account that initiated or created the agreement.\",\"proof\":\"The unique identifier (hash or proof) of the created agreement.\"}},\"AgreementSettled(address,address,uint256)\":{\"params\":{\"broker\":\"The account that facilitated the agreement settlement.\",\"proof\":\"The unique identifier (hash or proof) of the settled agreement.\"}},\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"FeesDisbursed(address,uint256,address)\":{\"params\":{\"amount\":\"The amount of fees being disbursed.\",\"currency\":\"The currency used for the disbursement.\",\"target\":\"The address receiving the disbursed fees.\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"createAgreement(uint256,address,address,address[],bytes)\":{\"params\":{\"amount\":\"The total amount committed.\",\"broker\":\"The authorized account to manage the agreement.\",\"currency\":\"The currency used for the agreement.\",\"parties\":\"The parties in the agreement.\",\"payload\":\"Additional data for execution.\"}},\"disburse(address)\":{\"details\":\"This function can only be called by the treasury. It transfers the full balance of the specified currency.\",\"params\":{\"currency\":\"The address of the ERC20 token to disburse.\"}},\"getAgreement(uint256)\":{\"params\":{\"proof\":\"The unique identifier (hash) of the agreement.\"}},\"getLedgerBalance(address,address)\":{\"params\":{\"account\":\"The address of the account whose balance is being queried.\",\"currency\":\"The address of the currency to retrieve the balance for.\"}},\"getTreasuryAddress()\":{\"returns\":{\"_0\":\"The address of the treasury.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"previewAgreement(uint256,address,address,address[],bytes)\":{\"params\":{\"amount\":\"The total amount committed.\",\"broker\":\"The authorized account to manage the agreement.\",\"currency\":\"The currency used for the agreement.\",\"parties\":\"The parties in the agreement.\",\"payload\":\"Additional data for execution.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"quitAgreement(uint256)\":{\"params\":{\"proof\":\"The unique identifier of the agreement.\"}},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"settleAgreement(uint256,address)\":{\"params\":{\"counterparty\":\"The address that will receive the funds upon settlement.\",\"proof\":\"The unique identifier of the agreement.\"}},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"TOLLGATE\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"TREASURY\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"version\":1},\"userdoc\":{\"errors\":{\"FailDuringTransfer(string)\":[{\"notice\":\"Error to be thrown when a transfer fails.\"}],\"InvalidTreasuryAddress(address)\":[{\"notice\":\"Error thrown when an invalid treasury address is provided.\"}],\"InvalidUnauthorizedDisbursement(address)\":[{\"notice\":\"Error thrown when an unauthorized address attempts a disbursement.\"}]},\"events\":{\"AgreementCancelled(address,uint256)\":{\"notice\":\"Emitted when an agreement is canceled by the broker or another authorized account.\"},\"AgreementCreated(address,uint256)\":{\"notice\":\"Emitted when an agreement is created.\"},\"AgreementSettled(address,address,uint256)\":{\"notice\":\"Emitted when an agreement is settled by the designated broker or authorized account.\"},\"FeesDisbursed(address,uint256,address)\":{\"notice\":\"Emitted when fees are disbursed to the treasury.\"}},\"kind\":\"user\",\"methods\":{\"createAgreement(uint256,address,address,address[],bytes)\":{\"notice\":\"Creates and stores a new agreement.\"},\"disburse(address)\":{\"notice\":\"Disburses all collected funds of a specified currency from the contract to the treasury.\"},\"getAgreement(uint256)\":{\"notice\":\"Retrieves the details of an agreement based on the provided proof.\"},\"getLedgerBalance(address,address)\":{\"notice\":\"Retrieves the ledger balance of an account for a specific currency.\"},\"getTreasuryAddress()\":{\"notice\":\"Returns the current address of the treasury.\"},\"initialize(address)\":{\"notice\":\"Initialize the proxy state.\"},\"previewAgreement(uint256,address,address,address[],bytes)\":{\"notice\":\"Previews an agreement by calculating fees and returning the agreement terms without committing them.\"},\"quitAgreement(uint256)\":{\"notice\":\"Allows the initiator to quit the agreement and receive the committed funds.\"},\"settleAgreement(uint256,address)\":{\"notice\":\"Settles an agreement by marking it inactive and transferring funds to the counterparty.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/rightsmanager/RightsAccessAgreement.sol\":\"RightsAccessAgreement\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solady/=lib/solady/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"contracts/base/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xa69389a8507ce5ad3e62dd6ed4da92b7c21cd2f1cc69b050fe4d4a4b868632bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e4db9871c08bec940fc926cab5589a937f01d5fe24a5efc33faf6b8eddc76a6d\",\"dweb:/ipfs/QmNRrjxUaEBMTCB6Hd28hu3jXAh6ezWjBgh8vBuQ3d6PCt\"]},\"contracts/base/upgradeable/FeesCollectorUpgradeable.sol\":{\"keccak256\":\"0xfd1de4f94d082cf6bf2e4bb2afbce841a10ae16c030d0f770c7e596f465c8373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fb3a221924db3e16d534d48623e36ab3701f598ee7abbb8e34c0f277a710bbc\",\"dweb:/ipfs/QmUqMY7MyemYJAiKBdXns9UH293zG6NLNw5xZyTXruL2hz\"]},\"contracts/base/upgradeable/LedgerUpgradeable.sol\":{\"keccak256\":\"0x496218449b745692a6c4c92649092cb637ec54c7a75ee8850c1edc0180ffb2f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1272de213f220f1a487e91dd35feffc3dfc1664d2babb468312ccc75a36adbf2\",\"dweb:/ipfs/QmdSRyQ7oUveMnaCn1Ftoy5Z45AWftoRzfEHNA6ktrtsWD\"]},\"contracts/interfaces/IBalanceWithdrawable.sol\":{\"keccak256\":\"0xa34d07f92aa63e54777e7fd7cd69cc18fe19953ef95065b0c46071d68a453d8a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0eb2d5b0c8451aab1e18958c3fbb8fcc68b456f0911087546d8a61672d03b5a9\",\"dweb:/ipfs/QmP18cyPcwyoQhCATSgFodFguKUf73ETRpRf5cKWSt7C1F\"]},\"contracts/interfaces/ILedgerVerifiable.sol\":{\"keccak256\":\"0x89d88c2c231d74479d218a74c495696e7cce624ec5f0fea83840171ac9a90e95\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7b0548dc0eb2cd40fc1907b5b1576c050faef5e18a5bc6237666288c3084ffd\",\"dweb:/ipfs/Qman5EaGE4tgrQ4kq6w9n7mLNDAhgXXC1Cyj9dUP8e3KKG\"]},\"contracts/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"contracts/interfaces/economics/IFeesCollector.sol\":{\"keccak256\":\"0x226b8425659facb7fcd78b2a9af6d5327011d97bde1eebf9396da78bbbe86175\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34c52e857b76f530f0870a978e83005246afb1a6c4537507f0df97a6a7a2cf06\",\"dweb:/ipfs/QmaWhfcsR4m9P38a6QisEkSJBiaoDUU1Jwfiqu4vPZ4fXV\"]},\"contracts/interfaces/economics/ITollgate.sol\":{\"keccak256\":\"0x2796e60afda619c5e9dc3be8d644c10128d6c36fe60d1e8006e62831620612a2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://528dc38499681484bff7554b4e40c108b8984afb3e2f104372e5e0ee60e6addb\",\"dweb:/ipfs/QmVabq6s7V76YdNW7fR6DZuXDJyLgPRgLEwomZh9YhQpUj\"]},\"contracts/interfaces/economics/ITreasury.sol\":{\"keccak256\":\"0x19c47ce91c6a64ec1aa3b6c1c3c1ad39a3f8fd0967ccb2054b92b164c36bec53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f0d31f9b8d5a5e0e90fd69b624f63b441d2df07232d4630ee8277c290ed68c1\",\"dweb:/ipfs/QmNSmwi2s4Y8zu9AapoT3st6JACYxBJ4Twm51ii3e2tszo\"]},\"contracts/interfaces/rightsmanager/IRightsAccessAgreement.sol\":{\"keccak256\":\"0x07ce599930cfe854cc721d55b15a358fe169986d2e064a1247f0375895d237b7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c36c4c1e5cf441f515ef1690de569e4d063c34d538cc53e162558546c924f65\",\"dweb:/ipfs/QmVmUWGCn1zEVN9NcPibRWek6HnrSgVodtRb3KTGSJ92ns\"]},\"contracts/libraries/Constants.sol\":{\"keccak256\":\"0x67da75876d8a614c9be2d0da22664a0c1ff93cbd080ab3e893c451fbc8bb2f81\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16d5e8f5cd1c4bf9731d163bc70e67bce4f8152207aa784e17f295e0c515b685\",\"dweb:/ipfs/QmXi1YSH8cUn6UBmFz6YNsUhCUEH3SuPXDQzS4cu4ooM9a\"]},\"contracts/libraries/FeesOps.sol\":{\"keccak256\":\"0xe3b65580cadc54674b72d12836b3b285e675c7dfd52fb399d1310ee9c2beb474\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bed84275f8774f1573740575f938e52870450b0b285feba86efe6327e1fba0b\",\"dweb:/ipfs/QmRpD6xnEBteUv2jgzHbuU6t4ZigxDbpisnUKhrwYv6HNZ\"]},\"contracts/libraries/TreasuryOps.sol\":{\"keccak256\":\"0xc49abdcd0e6746c50243d43bb61cded08156b6897c20edf3872e32552782ffd6\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://4488b9708e69ec9da725d3b66e38a56754769ae217e50cc05ed9b9feef035e21\",\"dweb:/ipfs/QmdQJSgT7fx4B7fWzsuqaG6toUhKtRAqJAnfd2Jd9Nw1p9\"]},\"contracts/libraries/Types.sol\":{\"keccak256\":\"0x15d6829e0b988ba6c933d1adff8926b91c5e5f8f0fdabd00d87b8c8c541a3eb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c4c1edb78e52731d57d6e0d583d398287e01960f966231839ddc1ff12c48003\",\"dweb:/ipfs/QmYw5hKqdD5FX4cA4Cce6JrT164zNMGipUekUihMc3vP1S\"]},\"contracts/rightsmanager/RightsAccessAgreement.sol\":{\"keccak256\":\"0xf48871916512fba10476f5c47ea5d4da2084ee48d84eaa27ed523c76310e4e62\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5301149b0114013335ebf910d47a0432f53932d081134490bbcda89e91aff135\",\"dweb:/ipfs/QmXL5VZN4mdWc6nBwb6SPjLG1qk3BGn7YN78FEURvQBf7a\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x04b70c397e00597da0f023706f7c44ac8c7b4276a1ddff05d3ca5449775bc6f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4b8599331bffb75c9d40ad57cf5025c29d384099ece48758fea2f0f5b969eab\",\"dweb:/ipfs/QmXXMq1kgvMdUn3DiTS4zEZNy9EDXfevM2wvYHWwfSW6Yu\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"treasury","type":"address"},{"internalType":"address","name":"tollgate","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"FailDuringDeposit"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"FailDuringTransfer"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"string","name":"message","type":"string"}],"type":"error","name":"InvalidAgreementOp"},{"inputs":[],"type":"error","name":"InvalidAgreementProof"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"address","name":"invalidAddress","type":"address"}],"type":"error","name":"InvalidTreasuryAddress"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"InvalidUnauthorizedDisbursement"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"initiator","type":"address","indexed":true},{"internalType":"uint256","name":"proof","type":"uint256","indexed":false}],"type":"event","name":"AgreementCancelled","anonymous":false},{"inputs":[{"internalType":"address","name":"initiator","type":"address","indexed":true},{"internalType":"uint256","name":"proof","type":"uint256","indexed":false}],"type":"event","name":"AgreementCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"broker","type":"address","indexed":true},{"internalType":"address","name":"counterparty","type":"address","indexed":true},{"internalType":"uint256","name":"proof","type":"uint256","indexed":false}],"type":"event","name":"AgreementSettled","anonymous":false},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"target","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":false}],"type":"event","name":"FeesDisbursed","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"TOLLGATE","outputs":[{"internalType":"contract ITollgate","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TREASURY","outputs":[{"internalType":"contract ITreasury","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"address","name":"broker","type":"address"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"createAgreement","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"disburse","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"proof","type":"uint256"}],"stateMutability":"view","type":"function","name":"getAgreement","outputs":[{"internalType":"struct T.Agreement","name":"","type":"tuple","components":[{"internalType":"bool","name":"active","type":"bool"},{"internalType":"address","name":"broker","type":"address"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"address","name":"initiator","type":"address"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"fees","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"view","type":"function","name":"getLedgerBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTreasuryAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"address","name":"broker","type":"address"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"view","type":"function","name":"previewAgreement","outputs":[{"internalType":"struct T.Agreement","name":"","type":"tuple","components":[{"internalType":"bool","name":"active","type":"bool"},{"internalType":"address","name":"broker","type":"address"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"address","name":"initiator","type":"address"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"fees","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"proof","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"quitAgreement","outputs":[{"internalType":"struct T.Agreement","name":"","type":"tuple","components":[{"internalType":"bool","name":"active","type":"bool"},{"internalType":"address","name":"broker","type":"address"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"address","name":"initiator","type":"address"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"fees","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"uint256","name":"proof","type":"uint256"},{"internalType":"address","name":"counterparty","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"settleAgreement","outputs":[{"internalType":"struct T.Agreement","name":"","type":"tuple","components":[{"internalType":"bool","name":"active","type":"bool"},{"internalType":"address","name":"broker","type":"address"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"address","name":"initiator","type":"address"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"fees","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"createAgreement(uint256,address,address,address[],bytes)":{"params":{"amount":"The total amount committed.","broker":"The authorized account to manage the agreement.","currency":"The currency used for the agreement.","parties":"The parties in the agreement.","payload":"Additional data for execution."}},"disburse(address)":{"details":"This function can only be called by the treasury. It transfers the full balance of the specified currency.","params":{"currency":"The address of the ERC20 token to disburse."}},"getAgreement(uint256)":{"params":{"proof":"The unique identifier (hash) of the agreement."}},"getLedgerBalance(address,address)":{"params":{"account":"The address of the account whose balance is being queried.","currency":"The address of the currency to retrieve the balance for."}},"getTreasuryAddress()":{"returns":{"_0":"The address of the treasury."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"previewAgreement(uint256,address,address,address[],bytes)":{"params":{"amount":"The total amount committed.","broker":"The authorized account to manage the agreement.","currency":"The currency used for the agreement.","parties":"The parties in the agreement.","payload":"Additional data for execution."}},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"quitAgreement(uint256)":{"params":{"proof":"The unique identifier of the agreement."}},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"settleAgreement(uint256,address)":{"params":{"counterparty":"The address that will receive the funds upon settlement.","proof":"The unique identifier of the agreement."}},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"createAgreement(uint256,address,address,address[],bytes)":{"notice":"Creates and stores a new agreement."},"disburse(address)":{"notice":"Disburses all collected funds of a specified currency from the contract to the treasury."},"getAgreement(uint256)":{"notice":"Retrieves the details of an agreement based on the provided proof."},"getLedgerBalance(address,address)":{"notice":"Retrieves the ledger balance of an account for a specific currency."},"getTreasuryAddress()":{"notice":"Returns the current address of the treasury."},"initialize(address)":{"notice":"Initialize the proxy state."},"previewAgreement(uint256,address,address,address[],bytes)":{"notice":"Previews an agreement by calculating fees and returning the agreement terms without committing them."},"quitAgreement(uint256)":{"notice":"Allows the initiator to quit the agreement and receive the committed funds."},"settleAgreement(uint256,address)":{"notice":"Settles an agreement by marking it inactive and transferring funds to the counterparty."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solady/=lib/solady/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/rightsmanager/RightsAccessAgreement.sol":"RightsAccessAgreement"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/base/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xa69389a8507ce5ad3e62dd6ed4da92b7c21cd2f1cc69b050fe4d4a4b868632bd","urls":["bzz-raw://e4db9871c08bec940fc926cab5589a937f01d5fe24a5efc33faf6b8eddc76a6d","dweb:/ipfs/QmNRrjxUaEBMTCB6Hd28hu3jXAh6ezWjBgh8vBuQ3d6PCt"],"license":"MIT"},"contracts/base/upgradeable/FeesCollectorUpgradeable.sol":{"keccak256":"0xfd1de4f94d082cf6bf2e4bb2afbce841a10ae16c030d0f770c7e596f465c8373","urls":["bzz-raw://7fb3a221924db3e16d534d48623e36ab3701f598ee7abbb8e34c0f277a710bbc","dweb:/ipfs/QmUqMY7MyemYJAiKBdXns9UH293zG6NLNw5xZyTXruL2hz"],"license":"MIT"},"contracts/base/upgradeable/LedgerUpgradeable.sol":{"keccak256":"0x496218449b745692a6c4c92649092cb637ec54c7a75ee8850c1edc0180ffb2f0","urls":["bzz-raw://1272de213f220f1a487e91dd35feffc3dfc1664d2babb468312ccc75a36adbf2","dweb:/ipfs/QmdSRyQ7oUveMnaCn1Ftoy5Z45AWftoRzfEHNA6ktrtsWD"],"license":"MIT"},"contracts/interfaces/IBalanceWithdrawable.sol":{"keccak256":"0xa34d07f92aa63e54777e7fd7cd69cc18fe19953ef95065b0c46071d68a453d8a","urls":["bzz-raw://0eb2d5b0c8451aab1e18958c3fbb8fcc68b456f0911087546d8a61672d03b5a9","dweb:/ipfs/QmP18cyPcwyoQhCATSgFodFguKUf73ETRpRf5cKWSt7C1F"],"license":"MIT"},"contracts/interfaces/ILedgerVerifiable.sol":{"keccak256":"0x89d88c2c231d74479d218a74c495696e7cce624ec5f0fea83840171ac9a90e95","urls":["bzz-raw://b7b0548dc0eb2cd40fc1907b5b1576c050faef5e18a5bc6237666288c3084ffd","dweb:/ipfs/Qman5EaGE4tgrQ4kq6w9n7mLNDAhgXXC1Cyj9dUP8e3KKG"],"license":"MIT"},"contracts/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"contracts/interfaces/economics/IFeesCollector.sol":{"keccak256":"0x226b8425659facb7fcd78b2a9af6d5327011d97bde1eebf9396da78bbbe86175","urls":["bzz-raw://34c52e857b76f530f0870a978e83005246afb1a6c4537507f0df97a6a7a2cf06","dweb:/ipfs/QmaWhfcsR4m9P38a6QisEkSJBiaoDUU1Jwfiqu4vPZ4fXV"],"license":"MIT"},"contracts/interfaces/economics/ITollgate.sol":{"keccak256":"0x2796e60afda619c5e9dc3be8d644c10128d6c36fe60d1e8006e62831620612a2","urls":["bzz-raw://528dc38499681484bff7554b4e40c108b8984afb3e2f104372e5e0ee60e6addb","dweb:/ipfs/QmVabq6s7V76YdNW7fR6DZuXDJyLgPRgLEwomZh9YhQpUj"],"license":"MIT"},"contracts/interfaces/economics/ITreasury.sol":{"keccak256":"0x19c47ce91c6a64ec1aa3b6c1c3c1ad39a3f8fd0967ccb2054b92b164c36bec53","urls":["bzz-raw://6f0d31f9b8d5a5e0e90fd69b624f63b441d2df07232d4630ee8277c290ed68c1","dweb:/ipfs/QmNSmwi2s4Y8zu9AapoT3st6JACYxBJ4Twm51ii3e2tszo"],"license":"MIT"},"contracts/interfaces/rightsmanager/IRightsAccessAgreement.sol":{"keccak256":"0x07ce599930cfe854cc721d55b15a358fe169986d2e064a1247f0375895d237b7","urls":["bzz-raw://2c36c4c1e5cf441f515ef1690de569e4d063c34d538cc53e162558546c924f65","dweb:/ipfs/QmVmUWGCn1zEVN9NcPibRWek6HnrSgVodtRb3KTGSJ92ns"],"license":"MIT"},"contracts/libraries/Constants.sol":{"keccak256":"0x67da75876d8a614c9be2d0da22664a0c1ff93cbd080ab3e893c451fbc8bb2f81","urls":["bzz-raw://16d5e8f5cd1c4bf9731d163bc70e67bce4f8152207aa784e17f295e0c515b685","dweb:/ipfs/QmXi1YSH8cUn6UBmFz6YNsUhCUEH3SuPXDQzS4cu4ooM9a"],"license":"MIT"},"contracts/libraries/FeesOps.sol":{"keccak256":"0xe3b65580cadc54674b72d12836b3b285e675c7dfd52fb399d1310ee9c2beb474","urls":["bzz-raw://1bed84275f8774f1573740575f938e52870450b0b285feba86efe6327e1fba0b","dweb:/ipfs/QmRpD6xnEBteUv2jgzHbuU6t4ZigxDbpisnUKhrwYv6HNZ"],"license":"MIT"},"contracts/libraries/TreasuryOps.sol":{"keccak256":"0xc49abdcd0e6746c50243d43bb61cded08156b6897c20edf3872e32552782ffd6","urls":["bzz-raw://4488b9708e69ec9da725d3b66e38a56754769ae217e50cc05ed9b9feef035e21","dweb:/ipfs/QmdQJSgT7fx4B7fWzsuqaG6toUhKtRAqJAnfd2Jd9Nw1p9"],"license":"GPL-3.0-or-later"},"contracts/libraries/Types.sol":{"keccak256":"0x15d6829e0b988ba6c933d1adff8926b91c5e5f8f0fdabd00d87b8c8c541a3eb8","urls":["bzz-raw://3c4c1edb78e52731d57d6e0d583d398287e01960f966231839ddc1ff12c48003","dweb:/ipfs/QmYw5hKqdD5FX4cA4Cce6JrT164zNMGipUekUihMc3vP1S"],"license":"MIT"},"contracts/rightsmanager/RightsAccessAgreement.sol":{"keccak256":"0xf48871916512fba10476f5c47ea5d4da2084ee48d84eaa27ed523c76310e4e62","urls":["bzz-raw://5301149b0114013335ebf910d47a0432f53932d081134490bbcda89e91aff135","dweb:/ipfs/QmXL5VZN4mdWc6nBwb6SPjLG1qk3BGn7YN78FEURvQBf7a"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x04b70c397e00597da0f023706f7c44ac8c7b4276a1ddff05d3ca5449775bc6f5","urls":["bzz-raw://d4b8599331bffb75c9d40ad57cf5025c29d384099ece48758fea2f0f5b969eab","dweb:/ipfs/QmXXMq1kgvMdUn3DiTS4zEZNy9EDXfevM2wvYHWwfSW6Yu"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol":{"keccak256":"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1","urls":["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889","dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":5181,"contract":"contracts/rightsmanager/RightsAccessAgreement.sol:RightsAccessAgreement","label":"_agreements","offset":0,"slot":"0","type":"t_mapping(t_uint256,t_struct(Agreement)3673_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"encoding":"dynamic_array","label":"address[]","numberOfBytes":"32","base":"t_address"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_uint256,t_struct(Agreement)3673_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct T.Agreement)","numberOfBytes":"32","value":"t_struct(Agreement)3673_storage"},"t_struct(Agreement)3673_storage":{"encoding":"inplace","label":"struct T.Agreement","numberOfBytes":"288","members":[{"astId":3653,"contract":"contracts/rightsmanager/RightsAccessAgreement.sol:RightsAccessAgreement","label":"active","offset":0,"slot":"0","type":"t_bool"},{"astId":3655,"contract":"contracts/rightsmanager/RightsAccessAgreement.sol:RightsAccessAgreement","label":"broker","offset":1,"slot":"0","type":"t_address"},{"astId":3657,"contract":"contracts/rightsmanager/RightsAccessAgreement.sol:RightsAccessAgreement","label":"currency","offset":0,"slot":"1","type":"t_address"},{"astId":3659,"contract":"contracts/rightsmanager/RightsAccessAgreement.sol:RightsAccessAgreement","label":"initiator","offset":0,"slot":"2","type":"t_address"},{"astId":3661,"contract":"contracts/rightsmanager/RightsAccessAgreement.sol:RightsAccessAgreement","label":"createdAt","offset":0,"slot":"3","type":"t_uint256"},{"astId":3663,"contract":"contracts/rightsmanager/RightsAccessAgreement.sol:RightsAccessAgreement","label":"amount","offset":0,"slot":"4","type":"t_uint256"},{"astId":3665,"contract":"contracts/rightsmanager/RightsAccessAgreement.sol:RightsAccessAgreement","label":"fees","offset":0,"slot":"5","type":"t_uint256"},{"astId":3667,"contract":"contracts/rightsmanager/RightsAccessAgreement.sol:RightsAccessAgreement","label":"available","offset":0,"slot":"6","type":"t_uint256"},{"astId":3670,"contract":"contracts/rightsmanager/RightsAccessAgreement.sol:RightsAccessAgreement","label":"parties","offset":0,"slot":"7","type":"t_array(t_address)dyn_storage"},{"astId":3672,"contract":"contracts/rightsmanager/RightsAccessAgreement.sol:RightsAccessAgreement","label":"payload","offset":0,"slot":"8","type":"t_bytes_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"contracts/rightsmanager/RightsAccessAgreement.sol","id":5722,"exportedSymbols":{"AccessControlledUpgradeable":[981],"FeesCollectorUpgradeable":[1168],"FeesOps":[3338],"IRightsAccessAgreement":[2905],"ITollgate":[2653],"ITreasury":[2698],"Initializable":[51648],"ReentrancyGuardTransientUpgradeable":[53739],"RightsAccessAgreement":[5721],"T":[3707],"TreasuryOps":[3636],"UUPSUpgradeable":[51830]},"nodeType":"SourceUnit","src":"124:13121:55","nodes":[{"id":5128,"nodeType":"PragmaDirective","src":"124:23:55","nodes":[],"literals":["solidity","0.8",".26"]},{"id":5130,"nodeType":"ImportDirective","src":"149:98:55","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":5722,"sourceUnit":51649,"symbolAliases":[{"foreign":{"id":5129,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51648,"src":"158:13:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5132,"nodeType":"ImportDirective","src":"248:102:55","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5722,"sourceUnit":51831,"symbolAliases":[{"foreign":{"id":5131,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51830,"src":"257:15:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5134,"nodeType":"ImportDirective","src":"351:105:55","nodes":[],"absolutePath":"contracts/base/upgradeable/AccessControlledUpgradeable.sol","file":"contracts/base/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5722,"sourceUnit":982,"symbolAliases":[{"foreign":{"id":5133,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":981,"src":"360:27:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5136,"nodeType":"ImportDirective","src":"502:136:55","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5722,"sourceUnit":53740,"symbolAliases":[{"foreign":{"id":5135,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53739,"src":"511:35:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5138,"nodeType":"ImportDirective","src":"639:99:55","nodes":[],"absolutePath":"contracts/base/upgradeable/FeesCollectorUpgradeable.sol","file":"contracts/base/upgradeable/FeesCollectorUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5722,"sourceUnit":1169,"symbolAliases":[{"foreign":{"id":5137,"name":"FeesCollectorUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1168,"src":"648:24:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5140,"nodeType":"ImportDirective","src":"740:103:55","nodes":[],"absolutePath":"contracts/interfaces/rightsmanager/IRightsAccessAgreement.sol","file":"contracts/interfaces/rightsmanager/IRightsAccessAgreement.sol","nameLocation":"-1:-1:-1","scope":5722,"sourceUnit":2906,"symbolAliases":[{"foreign":{"id":5139,"name":"IRightsAccessAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2905,"src":"749:22:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5142,"nodeType":"ImportDirective","src":"844:73:55","nodes":[],"absolutePath":"contracts/interfaces/economics/ITollgate.sol","file":"contracts/interfaces/economics/ITollgate.sol","nameLocation":"-1:-1:-1","scope":5722,"sourceUnit":2654,"symbolAliases":[{"foreign":{"id":5141,"name":"ITollgate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2653,"src":"853:9:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5144,"nodeType":"ImportDirective","src":"918:73:55","nodes":[],"absolutePath":"contracts/interfaces/economics/ITreasury.sol","file":"contracts/interfaces/economics/ITreasury.sol","nameLocation":"-1:-1:-1","scope":5722,"sourceUnit":2699,"symbolAliases":[{"foreign":{"id":5143,"name":"ITreasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2698,"src":"927:9:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5146,"nodeType":"ImportDirective","src":"992:66:55","nodes":[],"absolutePath":"contracts/libraries/TreasuryOps.sol","file":"contracts/libraries/TreasuryOps.sol","nameLocation":"-1:-1:-1","scope":5722,"sourceUnit":3637,"symbolAliases":[{"foreign":{"id":5145,"name":"TreasuryOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3636,"src":"1001:11:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5148,"nodeType":"ImportDirective","src":"1059:58:55","nodes":[],"absolutePath":"contracts/libraries/FeesOps.sol","file":"contracts/libraries/FeesOps.sol","nameLocation":"-1:-1:-1","scope":5722,"sourceUnit":3339,"symbolAliases":[{"foreign":{"id":5147,"name":"FeesOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3338,"src":"1068:7:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5150,"nodeType":"ImportDirective","src":"1118:50:55","nodes":[],"absolutePath":"contracts/libraries/Types.sol","file":"contracts/libraries/Types.sol","nameLocation":"-1:-1:-1","scope":5722,"sourceUnit":3708,"symbolAliases":[{"foreign":{"id":5149,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3707,"src":"1127:1:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5721,"nodeType":"ContractDefinition","src":"1170:12074:55","nodes":[{"id":5165,"nodeType":"UsingForDirective","src":"1381:26:55","nodes":[],"global":false,"libraryName":{"id":5163,"name":"FeesOps","nameLocations":["1387:7:55"],"nodeType":"IdentifierPath","referencedDeclaration":3338,"src":"1387:7:55"},"typeName":{"id":5164,"name":"uint256","nodeType":"ElementaryTypeName","src":"1399:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":5168,"nodeType":"UsingForDirective","src":"1412:30:55","nodes":[],"global":false,"libraryName":{"id":5166,"name":"TreasuryOps","nameLocations":["1418:11:55"],"nodeType":"IdentifierPath","referencedDeclaration":3636,"src":"1418:11:55"},"typeName":{"id":5167,"name":"address","nodeType":"ElementaryTypeName","src":"1434:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":5172,"nodeType":"VariableDeclaration","src":"1837:35:55","nodes":[],"constant":false,"documentation":{"id":5169,"nodeType":"StructuredDocumentation","src":"1771:61:55","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"2d2c5565","mutability":"immutable","name":"TREASURY","nameLocation":"1864:8:55","scope":5721,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ITreasury_$2698","typeString":"contract ITreasury"},"typeName":{"id":5171,"nodeType":"UserDefinedTypeName","pathNode":{"id":5170,"name":"ITreasury","nameLocations":["1837:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":2698,"src":"1837:9:55"},"referencedDeclaration":2698,"src":"1837:9:55","typeDescriptions":{"typeIdentifier":"t_contract$_ITreasury_$2698","typeString":"contract ITreasury"}},"visibility":"public"},{"id":5176,"nodeType":"VariableDeclaration","src":"1944:35:55","nodes":[],"constant":false,"documentation":{"id":5173,"nodeType":"StructuredDocumentation","src":"1878:61:55","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"4b74c035","mutability":"immutable","name":"TOLLGATE","nameLocation":"1971:8:55","scope":5721,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ITollgate_$2653","typeString":"contract ITollgate"},"typeName":{"id":5175,"nodeType":"UserDefinedTypeName","pathNode":{"id":5174,"name":"ITollgate","nameLocations":["1944:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":2653,"src":"1944:9:55"},"referencedDeclaration":2653,"src":"1944:9:55","typeDescriptions":{"typeIdentifier":"t_contract$_ITollgate_$2653","typeString":"contract ITollgate"}},"visibility":"public"},{"id":5181,"nodeType":"VariableDeclaration","src":"2227:51:55","nodes":[],"constant":false,"mutability":"mutable","name":"_agreements","nameLocation":"2267:11:55","scope":5721,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Agreement_$3673_storage_$","typeString":"mapping(uint256 => struct T.Agreement)"},"typeName":{"id":5180,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5177,"name":"uint256","nodeType":"ElementaryTypeName","src":"2235:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2227:31:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Agreement_$3673_storage_$","typeString":"mapping(uint256 => struct T.Agreement)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5179,"nodeType":"UserDefinedTypeName","pathNode":{"id":5178,"name":"T.Agreement","nameLocations":["2246:1:55","2248:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"2246:11:55"},"referencedDeclaration":3673,"src":"2246:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}}},"visibility":"private"},{"id":5188,"nodeType":"EventDefinition","src":"2502:65:55","nodes":[],"anonymous":false,"documentation":{"id":5182,"nodeType":"StructuredDocumentation","src":"2285:212:55","text":"@notice Emitted when an agreement is created.\n @param initiator The account that initiated or created the agreement.\n @param proof The unique identifier (hash or proof) of the created agreement."},"eventSelector":"b649569e5c9bb3f3eb7cc2fd396f5abc452ec3f6f6e2d62638b48d3e7fa599ca","name":"AgreementCreated","nameLocation":"2508:16:55","parameters":{"id":5187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5184,"indexed":true,"mutability":"mutable","name":"initiator","nameLocation":"2541:9:55","nodeType":"VariableDeclaration","scope":5188,"src":"2525:25:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5183,"name":"address","nodeType":"ElementaryTypeName","src":"2525:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5186,"indexed":false,"mutability":"mutable","name":"proof","nameLocation":"2560:5:55","nodeType":"VariableDeclaration","scope":5188,"src":"2552:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5185,"name":"uint256","nodeType":"ElementaryTypeName","src":"2552:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2524:42:55"}},{"id":5197,"nodeType":"EventDefinition","src":"2836:92:55","nodes":[],"anonymous":false,"documentation":{"id":5189,"nodeType":"StructuredDocumentation","src":"2573:258:55","text":"@notice Emitted when an agreement is settled by the designated broker or authorized account.\n @param broker The account that facilitated the agreement settlement.\n @param proof The unique identifier (hash or proof) of the settled agreement."},"eventSelector":"4ee820438d9a88f87a3ce7b61be7ebc31585a98ffd36ac2cbfd9b3452c2bbbe6","name":"AgreementSettled","nameLocation":"2842:16:55","parameters":{"id":5196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5191,"indexed":true,"mutability":"mutable","name":"broker","nameLocation":"2875:6:55","nodeType":"VariableDeclaration","scope":5197,"src":"2859:22:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5190,"name":"address","nodeType":"ElementaryTypeName","src":"2859:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5193,"indexed":true,"mutability":"mutable","name":"counterparty","nameLocation":"2899:12:55","nodeType":"VariableDeclaration","scope":5197,"src":"2883:28:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5192,"name":"address","nodeType":"ElementaryTypeName","src":"2883:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5195,"indexed":false,"mutability":"mutable","name":"proof","nameLocation":"2921:5:55","nodeType":"VariableDeclaration","scope":5197,"src":"2913:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5194,"name":"uint256","nodeType":"ElementaryTypeName","src":"2913:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2858:69:55"}},{"id":5204,"nodeType":"EventDefinition","src":"3189:67:55","nodes":[],"anonymous":false,"documentation":{"id":5198,"nodeType":"StructuredDocumentation","src":"2934:250:55","text":"@notice Emitted when an agreement is canceled by the broker or another authorized account.\n @param initiator The account that initiated the cancellation.\n @param proof The unique identifier (hash or proof) of the canceled agreement."},"eventSelector":"fab2b7f82959aa58a83804666a6c0eb98ef4ec938a314db9f0c72bfbb37f05ae","name":"AgreementCancelled","nameLocation":"3195:18:55","parameters":{"id":5203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5200,"indexed":true,"mutability":"mutable","name":"initiator","nameLocation":"3230:9:55","nodeType":"VariableDeclaration","scope":5204,"src":"3214:25:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5199,"name":"address","nodeType":"ElementaryTypeName","src":"3214:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5202,"indexed":false,"mutability":"mutable","name":"proof","nameLocation":"3249:5:55","nodeType":"VariableDeclaration","scope":5204,"src":"3241:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5201,"name":"uint256","nodeType":"ElementaryTypeName","src":"3241:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3213:42:55"}},{"id":5207,"nodeType":"ErrorDefinition","src":"3348:30:55","nodes":[],"documentation":{"id":5205,"nodeType":"StructuredDocumentation","src":"3262:81:55","text":"@dev Custom error thrown when the provided proof for an agreement is invalid."},"errorSelector":"a5fa8550","name":"InvalidAgreementProof","nameLocation":"3354:21:55","parameters":{"id":5206,"nodeType":"ParameterList","parameters":[],"src":"3375:2:55"}},{"id":5212,"nodeType":"ErrorDefinition","src":"3551:41:55","nodes":[],"documentation":{"id":5208,"nodeType":"StructuredDocumentation","src":"3384:162:55","text":"@dev Custom error thrown for invalid operations on an agreement, with a descriptive message.\n @param message A string explaining the invalid operation."},"errorSelector":"7884ed9b","name":"InvalidAgreementOp","nameLocation":"3557:18:55","parameters":{"id":5211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5210,"mutability":"mutable","name":"message","nameLocation":"3583:7:55","nodeType":"VariableDeclaration","scope":5212,"src":"3576:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5209,"name":"string","nodeType":"ElementaryTypeName","src":"3576:6:55","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3575:16:55"}},{"id":5245,"nodeType":"ModifierDefinition","src":"3694:271:55","nodes":[],"body":{"id":5244,"nodeType":"Block","src":"3737:228:55","nodes":[],"statements":[{"assignments":[5221],"declarations":[{"constant":false,"id":5221,"mutability":"mutable","name":"agreement","nameLocation":"3766:9:55","nodeType":"VariableDeclaration","scope":5244,"src":"3747:28:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement"},"typeName":{"id":5220,"nodeType":"UserDefinedTypeName","pathNode":{"id":5219,"name":"T.Agreement","nameLocations":["3747:1:55","3749:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"3747:11:55"},"referencedDeclaration":3673,"src":"3747:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"id":5225,"initialValue":{"arguments":[{"id":5223,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5215,"src":"3791:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5222,"name":"getAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5449,"src":"3778:12:55","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_Agreement_$3673_memory_ptr_$","typeString":"function (uint256) view returns (struct T.Agreement memory)"}},"id":5224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3778:19:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"nodeType":"VariableDeclarationStatement","src":"3747:50:55"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3811:17:55","subExpression":{"expression":{"id":5226,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5221,"src":"3812:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"id":5227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3822:6:55","memberName":"active","nodeType":"MemberAccess","referencedDeclaration":3653,"src":"3812:16:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5229,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5221,"src":"3832:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"id":5230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3842:9:55","memberName":"initiator","nodeType":"MemberAccess","referencedDeclaration":3659,"src":"3832:19:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":5233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3863:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5232,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3855:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5231,"name":"address","nodeType":"ElementaryTypeName","src":"3855:7:55","typeDescriptions":{}}},"id":5234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3855:10:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3832:33:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3811:54:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5242,"nodeType":"IfStatement","src":"3807:141:55","trueBody":{"id":5241,"nodeType":"Block","src":"3867:81:55","statements":[{"errorCall":{"arguments":[{"hexValue":"496e76616c696420696e6163746976652061677265656d656e742e","id":5238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3907:29:55","typeDescriptions":{"typeIdentifier":"t_stringliteral_c62b98ea997536b712277174ea3c883d00112048cf77ca98f117eb4a27c3bbaf","typeString":"literal_string \"Invalid inactive agreement.\""},"value":"Invalid inactive agreement."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c62b98ea997536b712277174ea3c883d00112048cf77ca98f117eb4a27c3bbaf","typeString":"literal_string \"Invalid inactive agreement.\""}],"id":5237,"name":"InvalidAgreementOp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5212,"src":"3888:18:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":5239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3888:49:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5240,"nodeType":"RevertStatement","src":"3881:56:55"}]}},{"id":5243,"nodeType":"PlaceholderStatement","src":"3957:1:55"}]},"documentation":{"id":5213,"nodeType":"StructuredDocumentation","src":"3598:91:55","text":"@notice Ensures the agreement associated with the provided `proof` is valid and active."},"name":"onlyValidAgreement","nameLocation":"3703:18:55","parameters":{"id":5216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5215,"mutability":"mutable","name":"proof","nameLocation":"3730:5:55","nodeType":"VariableDeclaration","scope":5245,"src":"3722:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5214,"name":"uint256","nodeType":"ElementaryTypeName","src":"3722:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3721:15:55"},"virtual":false,"visibility":"internal"},{"id":5269,"nodeType":"FunctionDefinition","src":"4024:427:55","nodes":[],"body":{"id":5268,"nodeType":"Block","src":"4072:379:55","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5253,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51616,"src":"4272:20:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4272:22:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5255,"nodeType":"ExpressionStatement","src":"4272:22:55"},{"expression":{"id":5260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5256,"name":"TOLLGATE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5176,"src":"4374:8:55","typeDescriptions":{"typeIdentifier":"t_contract$_ITollgate_$2653","typeString":"contract ITollgate"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5258,"name":"tollgate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5250,"src":"4395:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5257,"name":"ITollgate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2653,"src":"4385:9:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITollgate_$2653_$","typeString":"type(contract ITollgate)"}},"id":5259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4385:19:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ITollgate_$2653","typeString":"contract ITollgate"}},"src":"4374:30:55","typeDescriptions":{"typeIdentifier":"t_contract$_ITollgate_$2653","typeString":"contract ITollgate"}},"id":5261,"nodeType":"ExpressionStatement","src":"4374:30:55"},{"expression":{"id":5266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5262,"name":"TREASURY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5172,"src":"4414:8:55","typeDescriptions":{"typeIdentifier":"t_contract$_ITreasury_$2698","typeString":"contract ITreasury"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5264,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5248,"src":"4435:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5263,"name":"ITreasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2698,"src":"4425:9:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITreasury_$2698_$","typeString":"type(contract ITreasury)"}},"id":5265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4425:19:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ITreasury_$2698","typeString":"contract ITreasury"}},"src":"4414:30:55","typeDescriptions":{"typeIdentifier":"t_contract$_ITreasury_$2698","typeString":"contract ITreasury"}},"id":5267,"nodeType":"ExpressionStatement","src":"4414:30:55"}]},"documentation":{"id":5246,"nodeType":"StructuredDocumentation","src":"3971:48:55","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":5251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5248,"mutability":"mutable","name":"treasury","nameLocation":"4044:8:55","nodeType":"VariableDeclaration","scope":5269,"src":"4036:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5247,"name":"address","nodeType":"ElementaryTypeName","src":"4036:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5250,"mutability":"mutable","name":"tollgate","nameLocation":"4062:8:55","nodeType":"VariableDeclaration","scope":5269,"src":"4054:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5249,"name":"address","nodeType":"ElementaryTypeName","src":"4054:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4035:36:55"},"returnParameters":{"id":5252,"nodeType":"ParameterList","parameters":[],"src":"4072:0:55"},"scope":5721,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":5295,"nodeType":"FunctionDefinition","src":"4493:243:55","nodes":[],"body":{"id":5294,"nodeType":"Block","src":"4555:181:55","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5277,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51702,"src":"4565:22:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4565:24:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5279,"nodeType":"ExpressionStatement","src":"4565:24:55"},{"expression":{"arguments":[{"id":5281,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5272,"src":"4623:13:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5280,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":916,"src":"4599:23:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4599:38:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5283,"nodeType":"ExpressionStatement","src":"4599:38:55"},{"expression":{"arguments":[{"arguments":[{"id":5287,"name":"TREASURY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5172,"src":"4676:8:55","typeDescriptions":{"typeIdentifier":"t_contract$_ITreasury_$2698","typeString":"contract ITreasury"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ITreasury_$2698","typeString":"contract ITreasury"}],"id":5286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4668:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5285,"name":"address","nodeType":"ElementaryTypeName","src":"4668:7:55","typeDescriptions":{}}},"id":5288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4668:17:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5284,"name":"__FeesCollector_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1115,"src":"4647:20:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4647:39:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5290,"nodeType":"ExpressionStatement","src":"4647:39:55"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5291,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53688,"src":"4696:31:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4696:33:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5293,"nodeType":"ExpressionStatement","src":"4696:33:55"}]},"documentation":{"id":5270,"nodeType":"StructuredDocumentation","src":"4457:31:55","text":"Initialize the proxy state."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":5275,"kind":"modifierInvocation","modifierName":{"id":5274,"name":"initializer","nameLocations":["4543:11:55"],"nodeType":"IdentifierPath","referencedDeclaration":51502,"src":"4543:11:55"},"nodeType":"ModifierInvocation","src":"4543:11:55"}],"name":"initialize","nameLocation":"4502:10:55","parameters":{"id":5273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5272,"mutability":"mutable","name":"accessManager","nameLocation":"4521:13:55","nodeType":"VariableDeclaration","scope":5295,"src":"4513:21:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5271,"name":"address","nodeType":"ElementaryTypeName","src":"4513:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4512:23:55"},"returnParameters":{"id":5276,"nodeType":"ParameterList","parameters":[],"src":"4555:0:55"},"scope":5721,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":5354,"nodeType":"FunctionDefinition","src":"5082:873:55","nodes":[],"body":{"id":5353,"nodeType":"Block","src":"5282:673:55","nodes":[],"statements":[{"assignments":[5313],"declarations":[{"constant":false,"id":5313,"mutability":"mutable","name":"confirmed","nameLocation":"5411:9:55","nodeType":"VariableDeclaration","scope":5353,"src":"5403:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5312,"name":"uint256","nodeType":"ElementaryTypeName","src":"5403:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5320,"initialValue":{"arguments":[{"id":5317,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5298,"src":"5446:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5318,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5300,"src":"5454:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":5314,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5423:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5427:6:55","memberName":"sender","nodeType":"MemberAccess","src":"5423:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5434:11:55","memberName":"safeDeposit","nodeType":"MemberAccess","referencedDeclaration":3556,"src":"5423:22:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,uint256,address) returns (uint256)"}},"id":5319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5423:40:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5403:60:55"},{"assignments":[5325],"declarations":[{"constant":false,"id":5325,"mutability":"mutable","name":"agreement","nameLocation":"5492:9:55","nodeType":"VariableDeclaration","scope":5353,"src":"5473:28:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement"},"typeName":{"id":5324,"nodeType":"UserDefinedTypeName","pathNode":{"id":5323,"name":"T.Agreement","nameLocations":["5473:1:55","5475:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"5473:11:55"},"referencedDeclaration":3673,"src":"5473:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"id":5333,"initialValue":{"arguments":[{"id":5327,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5313,"src":"5521:9:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5328,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5300,"src":"5532:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5329,"name":"broker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5302,"src":"5542:6:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5330,"name":"parties","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5305,"src":"5550:7:55","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":5331,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5307,"src":"5559:7:55","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":5326,"name":"previewAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5585,"src":"5504:16:55","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$_t_address_$_t_array$_t_address_$dyn_calldata_ptr_$_t_bytes_calldata_ptr_$returns$_t_struct$_Agreement_$3673_memory_ptr_$","typeString":"function (uint256,address,address,address[] calldata,bytes calldata) view returns (struct T.Agreement memory)"}},"id":5332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5504:63:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"nodeType":"VariableDeclarationStatement","src":"5473:94:55"},{"assignments":[5335],"declarations":[{"constant":false,"id":5335,"mutability":"mutable","name":"proof","nameLocation":"5802:5:55","nodeType":"VariableDeclaration","scope":5353,"src":"5794:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5334,"name":"uint256","nodeType":"ElementaryTypeName","src":"5794:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5339,"initialValue":{"arguments":[{"id":5337,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5325,"src":"5823:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}],"id":5336,"name":"_createProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5623,"src":"5810:12:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Agreement_$3673_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct T.Agreement memory) pure returns (uint256)"}},"id":5338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5810:23:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5794:39:55"},{"expression":{"arguments":[{"id":5341,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5335,"src":"5859:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5342,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5325,"src":"5866:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}],"id":5340,"name":"_storeAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5639,"src":"5843:15:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_struct$_Agreement_$3673_memory_ptr_$returns$__$","typeString":"function (uint256,struct T.Agreement memory)"}},"id":5343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5843:33:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5344,"nodeType":"ExpressionStatement","src":"5843:33:55"},{"eventCall":{"arguments":[{"expression":{"id":5346,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5908:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5912:6:55","memberName":"sender","nodeType":"MemberAccess","src":"5908:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5348,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5335,"src":"5920:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5345,"name":"AgreementCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5188,"src":"5891:16:55","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":5349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5891:35:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5350,"nodeType":"EmitStatement","src":"5886:40:55"},{"expression":{"id":5351,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5335,"src":"5943:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5311,"id":5352,"nodeType":"Return","src":"5936:12:55"}]},"baseFunctions":[2868],"documentation":{"id":5296,"nodeType":"StructuredDocumentation","src":"4742:335:55","text":"@notice Creates and stores a new agreement.\n @param amount The total amount committed.\n @param currency The currency used for the agreement.\n @param broker The authorized account to manage the agreement.\n @param parties The parties in the agreement.\n @param payload Additional data for execution."},"functionSelector":"3f5d1b6f","implemented":true,"kind":"function","modifiers":[],"name":"createAgreement","nameLocation":"5091:15:55","parameters":{"id":5308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5298,"mutability":"mutable","name":"amount","nameLocation":"5124:6:55","nodeType":"VariableDeclaration","scope":5354,"src":"5116:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5297,"name":"uint256","nodeType":"ElementaryTypeName","src":"5116:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5300,"mutability":"mutable","name":"currency","nameLocation":"5148:8:55","nodeType":"VariableDeclaration","scope":5354,"src":"5140:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5299,"name":"address","nodeType":"ElementaryTypeName","src":"5140:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5302,"mutability":"mutable","name":"broker","nameLocation":"5174:6:55","nodeType":"VariableDeclaration","scope":5354,"src":"5166:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5301,"name":"address","nodeType":"ElementaryTypeName","src":"5166:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5305,"mutability":"mutable","name":"parties","nameLocation":"5209:7:55","nodeType":"VariableDeclaration","scope":5354,"src":"5190:26:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":5303,"name":"address","nodeType":"ElementaryTypeName","src":"5190:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5304,"nodeType":"ArrayTypeName","src":"5190:9:55","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":5307,"mutability":"mutable","name":"payload","nameLocation":"5241:7:55","nodeType":"VariableDeclaration","scope":5354,"src":"5226:22:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5306,"name":"bytes","nodeType":"ElementaryTypeName","src":"5226:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5106:148:55"},"returnParameters":{"id":5311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5310,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5354,"src":"5273:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5309,"name":"uint256","nodeType":"ElementaryTypeName","src":"5273:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5272:9:55"},"scope":5721,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":5435,"nodeType":"FunctionDefinition","src":"6114:901:55","nodes":[],"body":{"id":5434,"nodeType":"Block","src":"6229:786:55","nodes":[],"statements":[{"assignments":[5372],"declarations":[{"constant":false,"id":5372,"mutability":"mutable","name":"agreement","nameLocation":"6258:9:55","nodeType":"VariableDeclaration","scope":5434,"src":"6239:28:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement"},"typeName":{"id":5371,"nodeType":"UserDefinedTypeName","pathNode":{"id":5370,"name":"T.Agreement","nameLocations":["6239:1:55","6241:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"6239:11:55"},"referencedDeclaration":3673,"src":"6239:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"id":5376,"initialValue":{"arguments":[{"id":5374,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5357,"src":"6283:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5373,"name":"getAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5449,"src":"6270:12:55","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_Agreement_$3673_memory_ptr_$","typeString":"function (uint256) view returns (struct T.Agreement memory)"}},"id":5375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6270:19:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"nodeType":"VariableDeclarationStatement","src":"6239:50:55"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5377,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5372,"src":"6303:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"id":5378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6313:9:55","memberName":"initiator","nodeType":"MemberAccess","referencedDeclaration":3659,"src":"6303:19:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":5379,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6326:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6330:6:55","memberName":"sender","nodeType":"MemberAccess","src":"6326:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6303:33:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5387,"nodeType":"IfStatement","src":"6299:132:55","trueBody":{"id":5386,"nodeType":"Block","src":"6338:93:55","statements":[{"errorCall":{"arguments":[{"hexValue":"4f6e6c7920696e69746961746f722063616e20636c6f7365207468652061677265656d656e742e","id":5383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6378:41:55","typeDescriptions":{"typeIdentifier":"t_stringliteral_68736425e255bc550a198c5bfe11944856edaeb40ebc7ab0c22161e01fdbc2c0","typeString":"literal_string \"Only initiator can close the agreement.\""},"value":"Only initiator can close the agreement."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_68736425e255bc550a198c5bfe11944856edaeb40ebc7ab0c22161e01fdbc2c0","typeString":"literal_string \"Only initiator can close the agreement.\""}],"id":5382,"name":"InvalidAgreementOp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5212,"src":"6359:18:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":5384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6359:61:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5385,"nodeType":"RevertStatement","src":"6352:68:55"}]}},{"assignments":[5389],"declarations":[{"constant":false,"id":5389,"mutability":"mutable","name":"available","nameLocation":"6514:9:55","nodeType":"VariableDeclaration","scope":5434,"src":"6506:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5388,"name":"uint256","nodeType":"ElementaryTypeName","src":"6506:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5392,"initialValue":{"expression":{"id":5390,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5372,"src":"6526:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"id":5391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6536:9:55","memberName":"available","nodeType":"MemberAccess","referencedDeclaration":3667,"src":"6526:19:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6506:39:55"},{"assignments":[5394],"declarations":[{"constant":false,"id":5394,"mutability":"mutable","name":"initiator","nameLocation":"6585:9:55","nodeType":"VariableDeclaration","scope":5434,"src":"6577:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5393,"name":"address","nodeType":"ElementaryTypeName","src":"6577:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5397,"initialValue":{"expression":{"id":5395,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5372,"src":"6597:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"id":5396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6607:9:55","memberName":"initiator","nodeType":"MemberAccess","referencedDeclaration":3659,"src":"6597:19:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6577:39:55"},{"assignments":[5399],"declarations":[{"constant":false,"id":5399,"mutability":"mutable","name":"fees","nameLocation":"6660:4:55","nodeType":"VariableDeclaration","scope":5434,"src":"6652:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5398,"name":"uint256","nodeType":"ElementaryTypeName","src":"6652:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5402,"initialValue":{"expression":{"id":5400,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5372,"src":"6667:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"id":5401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6677:4:55","memberName":"fees","nodeType":"MemberAccess","referencedDeclaration":3665,"src":"6667:14:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6652:29:55"},{"assignments":[5404],"declarations":[{"constant":false,"id":5404,"mutability":"mutable","name":"currency","nameLocation":"6723:8:55","nodeType":"VariableDeclaration","scope":5434,"src":"6715:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5403,"name":"address","nodeType":"ElementaryTypeName","src":"6715:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5407,"initialValue":{"expression":{"id":5405,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5372,"src":"6734:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"id":5406,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6744:8:55","memberName":"currency","nodeType":"MemberAccess","referencedDeclaration":3657,"src":"6734:18:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6715:37:55"},{"expression":{"arguments":[{"id":5409,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5357,"src":"6779:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5408,"name":"_closeAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5666,"src":"6763:15:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_struct$_Agreement_$3673_storage_ptr_$","typeString":"function (uint256) returns (struct T.Agreement storage pointer)"}},"id":5410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6763:22:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement storage pointer"}},"id":5411,"nodeType":"ExpressionStatement","src":"6763:22:55"},{"expression":{"arguments":[{"arguments":[{"id":5415,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6842:4:55","typeDescriptions":{"typeIdentifier":"t_contract$_RightsAccessAgreement_$5721","typeString":"contract RightsAccessAgreement"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RightsAccessAgreement_$5721","typeString":"contract RightsAccessAgreement"}],"id":5414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6834:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5413,"name":"address","nodeType":"ElementaryTypeName","src":"6834:7:55","typeDescriptions":{}}},"id":5416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6834:13:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5417,"name":"fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5399,"src":"6849:4:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5418,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5404,"src":"6855:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5412,"name":"_sumLedgerEntry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1283,"src":"6818:15:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":5419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:46:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5420,"nodeType":"ExpressionStatement","src":"6818:46:55"},{"expression":{"arguments":[{"id":5422,"name":"initiator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5394,"src":"6899:9:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5423,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5389,"src":"6910:9:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5424,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5404,"src":"6921:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5421,"name":"_registerFundsInTreasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5720,"src":"6874:24:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":5425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6874:56:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5426,"nodeType":"ExpressionStatement","src":"6874:56:55"},{"eventCall":{"arguments":[{"id":5428,"name":"initiator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5394,"src":"6965:9:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5429,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5357,"src":"6976:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5427,"name":"AgreementCancelled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5204,"src":"6946:18:55","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":5430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6946:36:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5431,"nodeType":"EmitStatement","src":"6941:41:55"},{"expression":{"id":5432,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5372,"src":"6999:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"functionReturnParameters":5367,"id":5433,"nodeType":"Return","src":"6992:16:55"}]},"baseFunctions":[2904],"documentation":{"id":5355,"nodeType":"StructuredDocumentation","src":"5961:148:55","text":"@notice Allows the initiator to quit the agreement and receive the committed funds.\n @param proof The unique identifier of the agreement."},"functionSelector":"2182b231","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":5360,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5357,"src":"6180:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5361,"kind":"modifierInvocation","modifierName":{"id":5359,"name":"onlyValidAgreement","nameLocations":["6161:18:55"],"nodeType":"IdentifierPath","referencedDeclaration":5245,"src":"6161:18:55"},"nodeType":"ModifierInvocation","src":"6161:25:55"},{"id":5363,"kind":"modifierInvocation","modifierName":{"id":5362,"name":"nonReentrant","nameLocations":["6187:12:55"],"nodeType":"IdentifierPath","referencedDeclaration":53682,"src":"6187:12:55"},"nodeType":"ModifierInvocation","src":"6187:12:55"}],"name":"quitAgreement","nameLocation":"6123:13:55","parameters":{"id":5358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5357,"mutability":"mutable","name":"proof","nameLocation":"6145:5:55","nodeType":"VariableDeclaration","scope":5435,"src":"6137:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5356,"name":"uint256","nodeType":"ElementaryTypeName","src":"6137:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6136:15:55"},"returnParameters":{"id":5367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5435,"src":"6209:18:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement"},"typeName":{"id":5365,"nodeType":"UserDefinedTypeName","pathNode":{"id":5364,"name":"T.Agreement","nameLocations":["6209:1:55","6211:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"6209:11:55"},"referencedDeclaration":3673,"src":"6209:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"src":"6208:20:55"},"scope":5721,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":5449,"nodeType":"FunctionDefinition","src":"7172:120:55","nodes":[],"body":{"id":5448,"nodeType":"Block","src":"7250:42:55","nodes":[],"statements":[{"expression":{"baseExpression":{"id":5444,"name":"_agreements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5181,"src":"7267:11:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Agreement_$3673_storage_$","typeString":"mapping(uint256 => struct T.Agreement storage ref)"}},"id":5446,"indexExpression":{"id":5445,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5438,"src":"7279:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7267:18:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage","typeString":"struct T.Agreement storage ref"}},"functionReturnParameters":5443,"id":5447,"nodeType":"Return","src":"7260:25:55"}]},"baseFunctions":[2895],"documentation":{"id":5436,"nodeType":"StructuredDocumentation","src":"7021:146:55","text":"@notice Retrieves the details of an agreement based on the provided proof.\n @param proof The unique identifier (hash) of the agreement."},"functionSelector":"4f9f6fe6","implemented":true,"kind":"function","modifiers":[],"name":"getAgreement","nameLocation":"7181:12:55","parameters":{"id":5439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5438,"mutability":"mutable","name":"proof","nameLocation":"7202:5:55","nodeType":"VariableDeclaration","scope":5449,"src":"7194:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5437,"name":"uint256","nodeType":"ElementaryTypeName","src":"7194:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7193:15:55"},"returnParameters":{"id":5443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5442,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5449,"src":"7230:18:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement"},"typeName":{"id":5441,"nodeType":"UserDefinedTypeName","pathNode":{"id":5440,"name":"T.Agreement","nameLocations":["7230:1:55","7232:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"7230:11:55"},"referencedDeclaration":3673,"src":"7230:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"src":"7229:20:55"},"scope":5721,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":5527,"nodeType":"FunctionDefinition","src":"7548:886:55","nodes":[],"body":{"id":5526,"nodeType":"Block","src":"7694:740:55","nodes":[],"statements":[{"assignments":[5467],"declarations":[{"constant":false,"id":5467,"mutability":"mutable","name":"agreement","nameLocation":"7799:9:55","nodeType":"VariableDeclaration","scope":5526,"src":"7780:28:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement"},"typeName":{"id":5466,"nodeType":"UserDefinedTypeName","pathNode":{"id":5465,"name":"T.Agreement","nameLocations":["7780:1:55","7782:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"7780:11:55"},"referencedDeclaration":3673,"src":"7780:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"id":5471,"initialValue":{"arguments":[{"id":5469,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5452,"src":"7824:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5468,"name":"getAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5449,"src":"7811:12:55","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_Agreement_$3673_memory_ptr_$","typeString":"function (uint256) view returns (struct T.Agreement memory)"}},"id":5470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7811:19:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"nodeType":"VariableDeclarationStatement","src":"7780:50:55"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5472,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5467,"src":"7844:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"id":5473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7854:6:55","memberName":"broker","nodeType":"MemberAccess","referencedDeclaration":3655,"src":"7844:16:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":5474,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7864:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7868:6:55","memberName":"sender","nodeType":"MemberAccess","src":"7864:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7844:30:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5482,"nodeType":"IfStatement","src":"7840:127:55","trueBody":{"id":5481,"nodeType":"Block","src":"7876:91:55","statements":[{"errorCall":{"arguments":[{"hexValue":"4f6e6c792062726f6b65722063616e20736574746c65207468652061677265656d656e742e","id":5478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7916:39:55","typeDescriptions":{"typeIdentifier":"t_stringliteral_b7d75a7838a30d0530c0323127b2e900c0d98334ab73a3523919640f0daad574","typeString":"literal_string \"Only broker can settle the agreement.\""},"value":"Only broker can settle the agreement."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b7d75a7838a30d0530c0323127b2e900c0d98334ab73a3523919640f0daad574","typeString":"literal_string \"Only broker can settle the agreement.\""}],"id":5477,"name":"InvalidAgreementOp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5212,"src":"7897:18:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":5479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7897:59:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5480,"nodeType":"RevertStatement","src":"7890:66:55"}]}},{"assignments":[5484],"declarations":[{"constant":false,"id":5484,"mutability":"mutable","name":"fees","nameLocation":"7985:4:55","nodeType":"VariableDeclaration","scope":5526,"src":"7977:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5483,"name":"uint256","nodeType":"ElementaryTypeName","src":"7977:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5487,"initialValue":{"expression":{"id":5485,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5467,"src":"7992:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"id":5486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8002:4:55","memberName":"fees","nodeType":"MemberAccess","referencedDeclaration":3665,"src":"7992:14:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7977:29:55"},{"assignments":[5489],"declarations":[{"constant":false,"id":5489,"mutability":"mutable","name":"available","nameLocation":"8036:9:55","nodeType":"VariableDeclaration","scope":5526,"src":"8028:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5488,"name":"uint256","nodeType":"ElementaryTypeName","src":"8028:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5492,"initialValue":{"expression":{"id":5490,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5467,"src":"8048:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"id":5491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8058:9:55","memberName":"available","nodeType":"MemberAccess","referencedDeclaration":3667,"src":"8048:19:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8028:39:55"},{"assignments":[5494],"declarations":[{"constant":false,"id":5494,"mutability":"mutable","name":"currency","nameLocation":"8104:8:55","nodeType":"VariableDeclaration","scope":5526,"src":"8096:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5493,"name":"address","nodeType":"ElementaryTypeName","src":"8096:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5497,"initialValue":{"expression":{"id":5495,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5467,"src":"8115:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"id":5496,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8125:8:55","memberName":"currency","nodeType":"MemberAccess","referencedDeclaration":3657,"src":"8115:18:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8096:37:55"},{"expression":{"arguments":[{"id":5499,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5452,"src":"8160:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5498,"name":"_closeAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5666,"src":"8144:15:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_struct$_Agreement_$3673_storage_ptr_$","typeString":"function (uint256) returns (struct T.Agreement storage pointer)"}},"id":5500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8144:22:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement storage pointer"}},"id":5501,"nodeType":"ExpressionStatement","src":"8144:22:55"},{"expression":{"arguments":[{"arguments":[{"id":5505,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8245:4:55","typeDescriptions":{"typeIdentifier":"t_contract$_RightsAccessAgreement_$5721","typeString":"contract RightsAccessAgreement"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RightsAccessAgreement_$5721","typeString":"contract RightsAccessAgreement"}],"id":5504,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8237:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5503,"name":"address","nodeType":"ElementaryTypeName","src":"8237:7:55","typeDescriptions":{}}},"id":5506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8237:13:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5507,"name":"fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5484,"src":"8252:4:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5508,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5494,"src":"8258:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5502,"name":"_sumLedgerEntry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1283,"src":"8221:15:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":5509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8221:46:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5510,"nodeType":"ExpressionStatement","src":"8221:46:55"},{"expression":{"arguments":[{"id":5512,"name":"counterparty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5454,"src":"8302:12:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5513,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5489,"src":"8316:9:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5514,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5494,"src":"8327:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5511,"name":"_registerFundsInTreasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5720,"src":"8277:24:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":5515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8277:59:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5516,"nodeType":"ExpressionStatement","src":"8277:59:55"},{"eventCall":{"arguments":[{"expression":{"id":5518,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8369:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8373:6:55","memberName":"sender","nodeType":"MemberAccess","src":"8369:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5520,"name":"counterparty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5454,"src":"8381:12:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5521,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5452,"src":"8395:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5517,"name":"AgreementSettled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5197,"src":"8352:16:55","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8352:49:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5523,"nodeType":"EmitStatement","src":"8347:54:55"},{"expression":{"id":5524,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5467,"src":"8418:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"functionReturnParameters":5462,"id":5525,"nodeType":"Return","src":"8411:16:55"}]},"baseFunctions":[2851],"documentation":{"id":5450,"nodeType":"StructuredDocumentation","src":"7298:245:55","text":"@notice Settles an agreement by marking it inactive and transferring funds to the counterparty.\n @param proof The unique identifier of the agreement.\n @param counterparty The address that will receive the funds upon settlement."},"functionSelector":"e5f5677a","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":5457,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5452,"src":"7658:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5458,"kind":"modifierInvocation","modifierName":{"id":5456,"name":"onlyValidAgreement","nameLocations":["7639:18:55"],"nodeType":"IdentifierPath","referencedDeclaration":5245,"src":"7639:18:55"},"nodeType":"ModifierInvocation","src":"7639:25:55"}],"name":"settleAgreement","nameLocation":"7557:15:55","parameters":{"id":5455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5452,"mutability":"mutable","name":"proof","nameLocation":"7590:5:55","nodeType":"VariableDeclaration","scope":5527,"src":"7582:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5451,"name":"uint256","nodeType":"ElementaryTypeName","src":"7582:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5454,"mutability":"mutable","name":"counterparty","nameLocation":"7613:12:55","nodeType":"VariableDeclaration","scope":5527,"src":"7605:20:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5453,"name":"address","nodeType":"ElementaryTypeName","src":"7605:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7572:59:55"},"returnParameters":{"id":5462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5461,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5527,"src":"7674:18:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement"},"typeName":{"id":5460,"nodeType":"UserDefinedTypeName","pathNode":{"id":5459,"name":"T.Agreement","nameLocations":["7674:1:55","7676:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"7674:11:55"},"referencedDeclaration":3673,"src":"7674:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"src":"7673:20:55"},"scope":5721,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":5585,"nodeType":"FunctionDefinition","src":"8845:1616:55","nodes":[],"body":{"id":5584,"nodeType":"Block","src":"9060:1401:55","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5545,"name":"parties","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5537,"src":"9074:7:55","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":5546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9082:6:55","memberName":"length","nodeType":"MemberAccess","src":"9074:14:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9092:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9074:19:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5554,"nodeType":"IfStatement","src":"9070:120:55","trueBody":{"id":5553,"nodeType":"Block","src":"9095:95:55","statements":[{"errorCall":{"arguments":[{"hexValue":"41677265656d656e74206d75737420696e636c756465206174206c65617374206f6e65207061727479","id":5550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9135:43:55","typeDescriptions":{"typeIdentifier":"t_stringliteral_6c91b877d83206befe4fb24225f7463711bd07c1aad8f41e0e11bafe95831ce3","typeString":"literal_string \"Agreement must include at least one party\""},"value":"Agreement must include at least one party"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6c91b877d83206befe4fb24225f7463711bd07c1aad8f41e0e11bafe95831ce3","typeString":"literal_string \"Agreement must include at least one party\""}],"id":5549,"name":"InvalidAgreementOp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5212,"src":"9116:18:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":5551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9116:63:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5552,"nodeType":"RevertStatement","src":"9109:70:55"}]}},{"assignments":[5556],"declarations":[{"constant":false,"id":5556,"mutability":"mutable","name":"deductions","nameLocation":"9329:10:55","nodeType":"VariableDeclaration","scope":5584,"src":"9321:18:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5555,"name":"uint256","nodeType":"ElementaryTypeName","src":"9321:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5561,"initialValue":{"arguments":[{"id":5558,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5530,"src":"9352:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5559,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5532,"src":"9360:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5557,"name":"_calcFees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5692,"src":"9342:9:55","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address) view returns (uint256)"}},"id":5560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9342:27:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9321:48:55"},{"assignments":[5563],"declarations":[{"constant":false,"id":5563,"mutability":"mutable","name":"available","nameLocation":"9387:9:55","nodeType":"VariableDeclaration","scope":5584,"src":"9379:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5562,"name":"uint256","nodeType":"ElementaryTypeName","src":"9379:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5567,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5564,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5530,"src":"9399:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5565,"name":"deductions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5556,"src":"9408:10:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9399:19:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9379:39:55"},{"expression":{"arguments":[{"hexValue":"74727565","id":5570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9722:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":5571,"name":"broker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5534,"src":"9812:6:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5572,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5532,"src":"9896:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5573,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9969:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9973:6:55","memberName":"sender","nodeType":"MemberAccess","src":"9969:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5575,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5530,"src":"10025:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5576,"name":"deductions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5556,"src":"10081:10:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5577,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"10158:9:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":5578,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10231:5:55","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":5579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10237:9:55","memberName":"timestamp","nodeType":"MemberAccess","src":"10231:15:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5580,"name":"parties","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5537,"src":"10304:7:55","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":5581,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5539,"src":"10375:7:55","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":5568,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3707,"src":"9684:1:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_T_$3707_$","typeString":"type(library T)"}},"id":5569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9686:9:55","memberName":"Agreement","nodeType":"MemberAccess","referencedDeclaration":3673,"src":"9684:11:55","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Agreement_$3673_storage_ptr_$","typeString":"type(struct T.Agreement storage pointer)"}},"id":5582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["9714:6:55","9804:6:55","9886:8:55","9958:9:55","10017:6:55","10075:4:55","10147:9:55","10220:9:55","10295:7:55","10366:7:55"],"names":["active","broker","currency","initiator","amount","fees","available","createdAt","parties","payload"],"nodeType":"FunctionCall","src":"9684:770:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"functionReturnParameters":5544,"id":5583,"nodeType":"Return","src":"9665:789:55"}]},"baseFunctions":[2886],"documentation":{"id":5528,"nodeType":"StructuredDocumentation","src":"8440:400:55","text":"@notice Previews an agreement by calculating fees and returning the agreement terms without committing them.\n @param amount The total amount committed.\n @param currency The currency used for the agreement.\n @param broker The authorized account to manage the agreement.\n @param parties The parties in the agreement.\n @param payload Additional data for execution."},"functionSelector":"29f780e3","implemented":true,"kind":"function","modifiers":[],"name":"previewAgreement","nameLocation":"8854:16:55","parameters":{"id":5540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5530,"mutability":"mutable","name":"amount","nameLocation":"8888:6:55","nodeType":"VariableDeclaration","scope":5585,"src":"8880:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5529,"name":"uint256","nodeType":"ElementaryTypeName","src":"8880:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5532,"mutability":"mutable","name":"currency","nameLocation":"8912:8:55","nodeType":"VariableDeclaration","scope":5585,"src":"8904:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5531,"name":"address","nodeType":"ElementaryTypeName","src":"8904:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5534,"mutability":"mutable","name":"broker","nameLocation":"8938:6:55","nodeType":"VariableDeclaration","scope":5585,"src":"8930:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5533,"name":"address","nodeType":"ElementaryTypeName","src":"8930:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5537,"mutability":"mutable","name":"parties","nameLocation":"8973:7:55","nodeType":"VariableDeclaration","scope":5585,"src":"8954:26:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":5535,"name":"address","nodeType":"ElementaryTypeName","src":"8954:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5536,"nodeType":"ArrayTypeName","src":"8954:9:55","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":5539,"mutability":"mutable","name":"payload","nameLocation":"9005:7:55","nodeType":"VariableDeclaration","scope":5585,"src":"8990:22:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5538,"name":"bytes","nodeType":"ElementaryTypeName","src":"8990:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8870:148:55"},"returnParameters":{"id":5544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5543,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5585,"src":"9040:18:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement"},"typeName":{"id":5542,"nodeType":"UserDefinedTypeName","pathNode":{"id":5541,"name":"T.Agreement","nameLocations":["9040:1:55","9042:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"9040:11:55"},"referencedDeclaration":3673,"src":"9040:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"src":"9039:20:55"},"scope":5721,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":5595,"nodeType":"FunctionDefinition","src":"10659:84:55","nodes":[],"body":{"id":5594,"nodeType":"Block","src":"10741:2:55","nodes":[],"statements":[]},"baseFunctions":[51784],"documentation":{"id":5586,"nodeType":"StructuredDocumentation","src":"10467:187:55","text":"@dev Authorizes the upgrade of the contract.\n @notice Only the owner can authorize the upgrade.\n @param newImplementation The address of the new implementation contract."},"implemented":true,"kind":"function","modifiers":[{"id":5592,"kind":"modifierInvocation","modifierName":{"id":5591,"name":"onlyAdmin","nameLocations":["10731:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":899,"src":"10731:9:55"},"nodeType":"ModifierInvocation","src":"10731:9:55"}],"name":"_authorizeUpgrade","nameLocation":"10668:17:55","overrides":{"id":5590,"nodeType":"OverrideSpecifier","overrides":[],"src":"10722:8:55"},"parameters":{"id":5589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5588,"mutability":"mutable","name":"newImplementation","nameLocation":"10694:17:55","nodeType":"VariableDeclaration","scope":5595,"src":"10686:25:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5587,"name":"address","nodeType":"ElementaryTypeName","src":"10686:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10685:27:55"},"returnParameters":{"id":5593,"nodeType":"ParameterList","parameters":[],"src":"10741:0:55"},"scope":5721,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5623,"nodeType":"FunctionDefinition","src":"10829:299:55","nodes":[],"body":{"id":5622,"nodeType":"Block","src":"10912:216:55","nodes":[],"statements":[{"assignments":[5605],"declarations":[{"constant":false,"id":5605,"mutability":"mutable","name":"rawProof","nameLocation":"11013:8:55","nodeType":"VariableDeclaration","scope":5622,"src":"11000:21:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5604,"name":"bytes","nodeType":"ElementaryTypeName","src":"11000:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5610,"initialValue":{"arguments":[{"id":5608,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5599,"src":"11035:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}],"expression":{"id":5606,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11024:3:55","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11028:6:55","memberName":"encode","nodeType":"MemberAccess","src":"11024:10:55","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11024:21:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"11000:45:55"},{"assignments":[5612],"declarations":[{"constant":false,"id":5612,"mutability":"mutable","name":"proof","nameLocation":"11063:5:55","nodeType":"VariableDeclaration","scope":5622,"src":"11055:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5611,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11055:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":5616,"initialValue":{"arguments":[{"id":5614,"name":"rawProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5605,"src":"11081:8:55","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5613,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11071:9:55","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11071:19:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11055:35:55"},{"expression":{"arguments":[{"id":5619,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5612,"src":"11115:5:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11107:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5617,"name":"uint256","nodeType":"ElementaryTypeName","src":"11107:7:55","typeDescriptions":{}}},"id":5620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11107:14:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5603,"id":5621,"nodeType":"Return","src":"11100:21:55"}]},"documentation":{"id":5596,"nodeType":"StructuredDocumentation","src":"10749:75:55","text":"@dev Generates a unique proof for an agreement using keccak256 hashing."},"implemented":true,"kind":"function","modifiers":[],"name":"_createProof","nameLocation":"10838:12:55","parameters":{"id":5600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5599,"mutability":"mutable","name":"agreement","nameLocation":"10870:9:55","nodeType":"VariableDeclaration","scope":5623,"src":"10851:28:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement"},"typeName":{"id":5598,"nodeType":"UserDefinedTypeName","pathNode":{"id":5597,"name":"T.Agreement","nameLocations":["10851:1:55","10853:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"10851:11:55"},"referencedDeclaration":3673,"src":"10851:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"src":"10850:30:55"},"returnParameters":{"id":5603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5602,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5623,"src":"10903:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5601,"name":"uint256","nodeType":"ElementaryTypeName","src":"10903:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10902:9:55"},"scope":5721,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":5639,"nodeType":"FunctionDefinition","src":"11197:146:55","nodes":[],"body":{"id":5638,"nodeType":"Block","src":"11275:68:55","nodes":[],"statements":[{"expression":{"id":5636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5632,"name":"_agreements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5181,"src":"11285:11:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Agreement_$3673_storage_$","typeString":"mapping(uint256 => struct T.Agreement storage ref)"}},"id":5634,"indexExpression":{"id":5633,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5626,"src":"11297:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11285:18:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage","typeString":"struct T.Agreement storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5635,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5629,"src":"11306:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"src":"11285:30:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage","typeString":"struct T.Agreement storage ref"}},"id":5637,"nodeType":"ExpressionStatement","src":"11285:30:55"}]},"documentation":{"id":5624,"nodeType":"StructuredDocumentation","src":"11134:58:55","text":"@dev Set the agreement relation with proof in storage."},"implemented":true,"kind":"function","modifiers":[],"name":"_storeAgreement","nameLocation":"11206:15:55","parameters":{"id":5630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5626,"mutability":"mutable","name":"proof","nameLocation":"11230:5:55","nodeType":"VariableDeclaration","scope":5639,"src":"11222:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5625,"name":"uint256","nodeType":"ElementaryTypeName","src":"11222:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5629,"mutability":"mutable","name":"agreement","nameLocation":"11256:9:55","nodeType":"VariableDeclaration","scope":5639,"src":"11237:28:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement"},"typeName":{"id":5628,"nodeType":"UserDefinedTypeName","pathNode":{"id":5627,"name":"T.Agreement","nameLocations":["11237:1:55","11239:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"11237:11:55"},"referencedDeclaration":3673,"src":"11237:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"src":"11221:45:55"},"returnParameters":{"id":5631,"nodeType":"ParameterList","parameters":[],"src":"11275:0:55"},"scope":5721,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":5666,"nodeType":"FunctionDefinition","src":"11418:281:55","nodes":[],"body":{"id":5665,"nodeType":"Block","src":"11496:203:55","nodes":[],"statements":[{"assignments":[5652],"declarations":[{"constant":false,"id":5652,"mutability":"mutable","name":"agreement","nameLocation":"11602:9:55","nodeType":"VariableDeclaration","scope":5665,"src":"11582:29:55","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"},"typeName":{"id":5651,"nodeType":"UserDefinedTypeName","pathNode":{"id":5650,"name":"T.Agreement","nameLocations":["11582:1:55","11584:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"11582:11:55"},"referencedDeclaration":3673,"src":"11582:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"id":5656,"initialValue":{"baseExpression":{"id":5653,"name":"_agreements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5181,"src":"11614:11:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Agreement_$3673_storage_$","typeString":"mapping(uint256 => struct T.Agreement storage ref)"}},"id":5655,"indexExpression":{"id":5654,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5642,"src":"11626:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11614:18:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage","typeString":"struct T.Agreement storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11582:50:55"},{"expression":{"id":5661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5657,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5652,"src":"11642:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement storage pointer"}},"id":5659,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11652:6:55","memberName":"active","nodeType":"MemberAccess","referencedDeclaration":3653,"src":"11642:16:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":5660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11661:5:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"11642:24:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5662,"nodeType":"ExpressionStatement","src":"11642:24:55"},{"expression":{"id":5663,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5652,"src":"11683:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement storage pointer"}},"functionReturnParameters":5647,"id":5664,"nodeType":"Return","src":"11676:16:55"}]},"documentation":{"id":5640,"nodeType":"StructuredDocumentation","src":"11349:64:55","text":"@dev Marks an agreement as inactive, effectively closing it."},"implemented":true,"kind":"function","modifiers":[],"name":"_closeAgreement","nameLocation":"11427:15:55","parameters":{"id":5643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5642,"mutability":"mutable","name":"proof","nameLocation":"11451:5:55","nodeType":"VariableDeclaration","scope":5666,"src":"11443:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5641,"name":"uint256","nodeType":"ElementaryTypeName","src":"11443:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11442:15:55"},"returnParameters":{"id":5647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5646,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5666,"src":"11475:19:55","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"},"typeName":{"id":5645,"nodeType":"UserDefinedTypeName","pathNode":{"id":5644,"name":"T.Agreement","nameLocations":["11475:1:55","11477:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"11475:11:55"},"referencedDeclaration":3673,"src":"11475:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"src":"11474:21:55"},"scope":5721,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":5692,"nodeType":"FunctionDefinition","src":"12032:307:55","nodes":[],"body":{"id":5691,"nodeType":"Block","src":"12115:224:55","nodes":[],"statements":[{"assignments":[5677],"declarations":[{"constant":false,"id":5677,"mutability":"mutable","name":"fees","nameLocation":"12215:4:55","nodeType":"VariableDeclaration","scope":5691,"src":"12207:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5676,"name":"uint256","nodeType":"ElementaryTypeName","src":"12207:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5685,"initialValue":{"arguments":[{"expression":{"expression":{"id":5680,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3707,"src":"12239:1:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_T_$3707_$","typeString":"type(library T)"}},"id":5681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12241:7:55","memberName":"Context","nodeType":"MemberAccess","referencedDeclaration":3644,"src":"12239:9:55","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Context_$3644_$","typeString":"type(enum T.Context)"}},"id":5682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12249:3:55","memberName":"RMA","nodeType":"MemberAccess","referencedDeclaration":3643,"src":"12239:13:55","typeDescriptions":{"typeIdentifier":"t_enum$_Context_$3644","typeString":"enum T.Context"}},{"id":5683,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5671,"src":"12254:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Context_$3644","typeString":"enum T.Context"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5678,"name":"TOLLGATE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5176,"src":"12222:8:55","typeDescriptions":{"typeIdentifier":"t_contract$_ITollgate_$2653","typeString":"contract ITollgate"}},"id":5679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12231:7:55","memberName":"getFees","nodeType":"MemberAccess","referencedDeclaration":2631,"src":"12222:16:55","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_enum$_Context_$3644_$_t_address_$returns$_t_uint256_$","typeString":"function (enum T.Context,address) view external returns (uint256)"}},"id":5684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12222:41:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12207:56:55"},{"expression":{"arguments":[{"id":5688,"name":"fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5677,"src":"12292:4:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5686,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5669,"src":"12280:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12286:5:55","memberName":"perOf","nodeType":"MemberAccess","referencedDeclaration":3323,"src":"12280:11:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":5689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12280:17:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5675,"id":5690,"nodeType":"Return","src":"12273:24:55"}]},"documentation":{"id":5667,"nodeType":"StructuredDocumentation","src":"11705:322:55","text":"@notice Calculates the fee based on the provided total amount and currency.\n @dev Reverts if the currency is not supported by the fees manager.\n @param total The total amount from which the fee will be calculated.\n @param currency The address of the currency for which the fee is being calculated."},"implemented":true,"kind":"function","modifiers":[],"name":"_calcFees","nameLocation":"12041:9:55","parameters":{"id":5672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5669,"mutability":"mutable","name":"total","nameLocation":"12059:5:55","nodeType":"VariableDeclaration","scope":5692,"src":"12051:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5668,"name":"uint256","nodeType":"ElementaryTypeName","src":"12051:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5671,"mutability":"mutable","name":"currency","nameLocation":"12074:8:55","nodeType":"VariableDeclaration","scope":5692,"src":"12066:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5670,"name":"address","nodeType":"ElementaryTypeName","src":"12066:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12050:33:55"},"returnParameters":{"id":5675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5674,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5692,"src":"12106:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5673,"name":"uint256","nodeType":"ElementaryTypeName","src":"12106:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12105:9:55"},"scope":5721,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":5720,"nodeType":"FunctionDefinition","src":"12938:304:55","nodes":[],"body":{"id":5719,"nodeType":"Block","src":"13033:209:55","nodes":[],"statements":[{"expression":{"arguments":[{"id":5707,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5697,"src":"13163:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5708,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5699,"src":"13171:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":5704,"name":"TREASURY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5172,"src":"13135:8:55","typeDescriptions":{"typeIdentifier":"t_contract$_ITreasury_$2698","typeString":"contract ITreasury"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ITreasury_$2698","typeString":"contract ITreasury"}],"id":5703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13127:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5702,"name":"address","nodeType":"ElementaryTypeName","src":"13127:7:55","typeDescriptions":{}}},"id":5705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13127:17:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13145:17:55","memberName":"increaseAllowance","nodeType":"MemberAccess","referencedDeclaration":3459,"src":"13127:35:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$attached_to$_t_address_$","typeString":"function (address,uint256,address)"}},"id":5709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13127:53:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5710,"nodeType":"ExpressionStatement","src":"13127:53:55"},{"expression":{"arguments":[{"id":5714,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5695,"src":"13207:9:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5715,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5697,"src":"13218:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5716,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5699,"src":"13226:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5711,"name":"TREASURY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5172,"src":"13190:8:55","typeDescriptions":{"typeIdentifier":"t_contract$_ITreasury_$2698","typeString":"contract ITreasury"}},"id":5713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13199:7:55","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":2688,"src":"13190:16:55","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address) external"}},"id":5717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13190:45:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5718,"nodeType":"ExpressionStatement","src":"13190:45:55"}]},"documentation":{"id":5693,"nodeType":"StructuredDocumentation","src":"12345:588:55","text":"@notice Registers a specified amount of currency in the treasury on behalf of the recipient.\n @dev This function increases the allowance for the treasury to access the specified `amount` of `currency`\n and then deposits the funds into the treasury for the given `recipient`.\n @param recipient The address that will receive the registered funds in the treasury.\n @param amount The amount of currency to be registered in the treasury.\n @param currency The address of the ERC20 token used for the registration, or `address(0)` for native currency."},"implemented":true,"kind":"function","modifiers":[],"name":"_registerFundsInTreasury","nameLocation":"12947:24:55","parameters":{"id":5700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5695,"mutability":"mutable","name":"recipient","nameLocation":"12980:9:55","nodeType":"VariableDeclaration","scope":5720,"src":"12972:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5694,"name":"address","nodeType":"ElementaryTypeName","src":"12972:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5697,"mutability":"mutable","name":"amount","nameLocation":"12999:6:55","nodeType":"VariableDeclaration","scope":5720,"src":"12991:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5696,"name":"uint256","nodeType":"ElementaryTypeName","src":"12991:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5699,"mutability":"mutable","name":"currency","nameLocation":"13015:8:55","nodeType":"VariableDeclaration","scope":5720,"src":"13007:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5698,"name":"address","nodeType":"ElementaryTypeName","src":"13007:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12971:53:55"},"returnParameters":{"id":5701,"nodeType":"ParameterList","parameters":[],"src":"13033:0:55"},"scope":5721,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":5151,"name":"Initializable","nameLocations":["1208:13:55"],"nodeType":"IdentifierPath","referencedDeclaration":51648,"src":"1208:13:55"},"id":5152,"nodeType":"InheritanceSpecifier","src":"1208:13:55"},{"baseName":{"id":5153,"name":"UUPSUpgradeable","nameLocations":["1227:15:55"],"nodeType":"IdentifierPath","referencedDeclaration":51830,"src":"1227:15:55"},"id":5154,"nodeType":"InheritanceSpecifier","src":"1227:15:55"},{"baseName":{"id":5155,"name":"AccessControlledUpgradeable","nameLocations":["1248:27:55"],"nodeType":"IdentifierPath","referencedDeclaration":981,"src":"1248:27:55"},"id":5156,"nodeType":"InheritanceSpecifier","src":"1248:27:55"},{"baseName":{"id":5157,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["1281:35:55"],"nodeType":"IdentifierPath","referencedDeclaration":53739,"src":"1281:35:55"},"id":5158,"nodeType":"InheritanceSpecifier","src":"1281:35:55"},{"baseName":{"id":5159,"name":"FeesCollectorUpgradeable","nameLocations":["1322:24:55"],"nodeType":"IdentifierPath","referencedDeclaration":1168,"src":"1322:24:55"},"id":5160,"nodeType":"InheritanceSpecifier","src":"1322:24:55"},{"baseName":{"id":5161,"name":"IRightsAccessAgreement","nameLocations":["1352:22:55"],"nodeType":"IdentifierPath","referencedDeclaration":2905,"src":"1352:22:55"},"id":5162,"nodeType":"InheritanceSpecifier","src":"1352:22:55"}],"canonicalName":"RightsAccessAgreement","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[5721,2905,1168,2604,1320,2456,53739,981,49275,54772,53440,51830,60400,51648],"name":"RightsAccessAgreement","nameLocation":"1179:21:55","scope":5722,"usedErrors":[881,1014,1019,3374,3378,5207,5212,51411,51414,51675,51680,53671,54743,54749,54753,60595,60608,62185,62891,63183],"usedEvents":[2595,5188,5197,5204,51419,54739,60322]}],"license":"MIT"},"id":55} \ No newline at end of file diff --git a/src/config/abi/RightsPolicyAuthorizer.json b/src/config/abi/RightsPolicyAuthorizer.json index f39319c0d..80ab489ce 100644 --- a/src/config/abi/RightsPolicyAuthorizer.json +++ b/src/config/abi/RightsPolicyAuthorizer.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"policyAudit","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"POLICY_AUDIT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPolicyAuditorVerifiable"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"authorizePolicy","inputs":[{"name":"policy","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAuthorizedPolicies","inputs":[{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"isPolicyAuthorized","inputs":[{"name":"policy","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"revokePolicy","inputs":[{"name":"policy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RightsGranted","inputs":[{"name":"policy","type":"address","indexed":true,"internalType":"address"},{"name":"holder","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RightsRevoked","inputs":[{"name":"policy","type":"address","indexed":true,"internalType":"address"},{"name":"holder","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidNotAuditedPolicy","inputs":[{"name":"policy","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidPolicyInitialization","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60c03461014657601f61166a38819003918201601f19168301916001600160401b0383118484101761014a5780849260209460405283398101031261014657516001600160a01b0381169081900361014657306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16610137576002600160401b03196001600160401b038216016100ce575b5060a05260405161150b908161015f82396080518181816107d901526108da015260a0518181816105e1015261107b0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61009b565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80632f6cc10214610cc75780634f1ef2861461085157806352d1902d146107b2578063591b43c5146106dc5780637a9e5e4b1461060557806382e2b7c8146105b55780638fb36037146105225780639fda230a146104b4578063ad3cb1cc14610420578063bf7e214f146103ce578063c4d66de8146101305763ca89d8b21461009d575f80fd5b3461012c57604060031936011261012c576100b6610f06565b6024359073ffffffffffffffffffffffffffffffffffffffff821680920361012c575f9182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff841685526001018252909220541515908161011c575b506040519015158152f35b610126915061100d565b5f610111565b5f80fd5b3461012c57602060031936011261012c57610149610f06565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103c6575b60011490816103bc575b1590816103b3575b5061038b57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610336575b5061020c6113e5565b6102146113e5565b61021c6113e5565b6102246113e5565b61022d816110e5565b6102356113e5565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102a357005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610203565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050158461019a565b303b159150610192565b849150610188565b3461012c575f60031936011261012c57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b3461012c575f60031936011261012c57604080519061043f8183610f29565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b3461012c57602060031936011261012c576104cd610f06565b335f525f6020526104f973ffffffffffffffffffffffffffffffffffffffff60405f209216809261125f565b5033907fe26ab5559d9c979fe9df51c8a6ac8f71ef871393f720d7bd56f2e600d1bb680e5f80a3005b3461012c575f60031936011261012c577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105ad5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f610583565b3461012c575f60031936011261012c57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461012c57602060031936011261012c5761061e610f06565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036106b057803b1561066e5761066c906110e5565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b3461012c57602060031936011261012c5773ffffffffffffffffffffffffffffffffffffffff61070a610f06565b165f525f60205260405f20604051806020835491828152019081935f5260205f20905f5b81811061079c5750505081610744910382610f29565b604051918291602083019060208452518091526040830191905f5b81811061076d575050500390f35b825173ffffffffffffffffffffffffffffffffffffffff1684528594506020938401939092019160010161075f565b825484526020909301926001928301920161072e565b3461012c575f60031936011261012c5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108295760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b604060031936011261012c57610865610f06565b6024359067ffffffffffffffff821161012c573660238301121561012c5781600401359061089282610f97565b916108a06040519384610f29565b8083526020830193366024838301011161012c57815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610c85575b50610829576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610c7a575f91610c2f575b5015610bab5773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610b77575b50610a1157847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610b4c5750823b15610b2157807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610aef575f809161066c945190845af4610ae9610fd1565b9161143c565b50505034610af957005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610ba3575b81610b9360209383610f29565b8101031261012c575190866109e0565b3d9150610b86565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610c72575b81610c4a60409383610f29565b8101031261012c576020610c5d82611000565b91015163ffffffff81160361012c578461098b565b3d9150610c3d565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610905565b3461012c57604060031936011261012c57610ce0610f06565b60243567ffffffffffffffff811161012c573660238201121561012c57806004013567ffffffffffffffff811161012c57366024828401011161012c57610d268361100d565b15610ec4575f91601f610dd7608485947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe060405194828693602460208601997fd1f57894000000000000000000000000000000000000000000000000000000008b523382880152604060448801528260648801520186860137888582860101520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610f29565b519082855af1610de5610fd1565b5015610e4057335f525f602052610e1773ffffffffffffffffffffffffffffffffffffffff60405f20921680926111d2565b5033907f164745c0d5815644c1e92a17e242e89f9c0fd523fc3e94071b60f165692f3d795f80a3005b60846040517f47fc3bab00000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4572726f7220647572696e6720706f6c69637920696e697469616c697a61746960448201527f6f6e2063616c6c000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff837fe63549fa000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012c57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f6a57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff8111610f6a57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3d15610ffb573d90610fe282610f97565b91610ff06040519384610f29565b82523d5f602084013e565b606090565b5190811515820361012c57565b73ffffffffffffffffffffffffffffffffffffffff168015159081611030575090565b9050604051907f9d260809000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610c7a575f916110ae575090565b90506020813d6020116110dd575b816110c960209383610f29565b8101031261012c576110da90611000565b90565b3d91506110bc565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b80548210156111a5575f5260205f2001905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8281526001820160205260409020546112595780549068010000000000000000821015610f6a578261124461120f846001809601855584611190565b81939154907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060031b92831b921b19161790565b90558054925f520160205260405f2055600190565b50505f90565b906001820191815f528260205260405f20548015155f146113dd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81018181116113b0578254907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82019182116113b05781810361137b575b5050508054801561134e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01906113118282611190565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82549160031b1b19169055555f526020525f6040812055600190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b61139b61138b61120f9386611190565b90549060031b1c92839286611190565b90555f528360205260405f20555f80806112d9565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b505050505f90565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561141457565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611479575080511561145157805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806114cc575b61148a575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561148256fea26469706673582212209043256edec719959f93e5f861dadc5f7e422b6dcf4bd7d06acb1c54cb964cb064736f6c634300081a0033","sourceMap":"841:5884:54:-:0;;;;;;;;;;;;;-1:-1:-1;;841:5884:54;;;;-1:-1:-1;;;;;841:5884:54;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;841:5884:54;;;;;;;;1171:4:99;1163:13;;8837:64:98;841:5884:54;;;;;;7896:76:98;;-1:-1:-1;;;;;;;;;;;841:5884:54;;7985:34:98;7981:146;;-1:-1:-1;3006:52:54;;;841:5884;;;;;;;;1163:13:99;841:5884:54;;;;;;;;;;3006:52;841:5884;;;;;;;;;;;7981:146:98;-1:-1:-1;;;;;;841:5884:54;-1:-1:-1;;;;;841:5884:54;;;8837:64:98;841:5884:54;;;;;;8087:29:98;;841:5884:54;;8087:29:98;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:98;;-1:-1:-1;7938:23:98;841:5884:54;-1:-1:-1;841:5884:54;;;;;;-1:-1:-1;841:5884:54;;;;;-1:-1:-1;841:5884:54","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80632f6cc10214610cc75780634f1ef2861461085157806352d1902d146107b2578063591b43c5146106dc5780637a9e5e4b1461060557806382e2b7c8146105b55780638fb36037146105225780639fda230a146104b4578063ad3cb1cc14610420578063bf7e214f146103ce578063c4d66de8146101305763ca89d8b21461009d575f80fd5b3461012c57604060031936011261012c576100b6610f06565b6024359073ffffffffffffffffffffffffffffffffffffffff821680920361012c575f9182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff841685526001018252909220541515908161011c575b506040519015158152f35b610126915061100d565b5f610111565b5f80fd5b3461012c57602060031936011261012c57610149610f06565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103c6575b60011490816103bc575b1590816103b3575b5061038b57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610336575b5061020c6113e5565b6102146113e5565b61021c6113e5565b6102246113e5565b61022d816110e5565b6102356113e5565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102a357005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610203565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050158461019a565b303b159150610192565b849150610188565b3461012c575f60031936011261012c57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b3461012c575f60031936011261012c57604080519061043f8183610f29565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b3461012c57602060031936011261012c576104cd610f06565b335f525f6020526104f973ffffffffffffffffffffffffffffffffffffffff60405f209216809261125f565b5033907fe26ab5559d9c979fe9df51c8a6ac8f71ef871393f720d7bd56f2e600d1bb680e5f80a3005b3461012c575f60031936011261012c577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105ad5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f610583565b3461012c575f60031936011261012c57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461012c57602060031936011261012c5761061e610f06565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036106b057803b1561066e5761066c906110e5565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b3461012c57602060031936011261012c5773ffffffffffffffffffffffffffffffffffffffff61070a610f06565b165f525f60205260405f20604051806020835491828152019081935f5260205f20905f5b81811061079c5750505081610744910382610f29565b604051918291602083019060208452518091526040830191905f5b81811061076d575050500390f35b825173ffffffffffffffffffffffffffffffffffffffff1684528594506020938401939092019160010161075f565b825484526020909301926001928301920161072e565b3461012c575f60031936011261012c5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108295760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b604060031936011261012c57610865610f06565b6024359067ffffffffffffffff821161012c573660238301121561012c5781600401359061089282610f97565b916108a06040519384610f29565b8083526020830193366024838301011161012c57815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610c85575b50610829576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610c7a575f91610c2f575b5015610bab5773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610b77575b50610a1157847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610b4c5750823b15610b2157807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610aef575f809161066c945190845af4610ae9610fd1565b9161143c565b50505034610af957005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610ba3575b81610b9360209383610f29565b8101031261012c575190866109e0565b3d9150610b86565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610c72575b81610c4a60409383610f29565b8101031261012c576020610c5d82611000565b91015163ffffffff81160361012c578461098b565b3d9150610c3d565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610905565b3461012c57604060031936011261012c57610ce0610f06565b60243567ffffffffffffffff811161012c573660238201121561012c57806004013567ffffffffffffffff811161012c57366024828401011161012c57610d268361100d565b15610ec4575f91601f610dd7608485947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe060405194828693602460208601997fd1f57894000000000000000000000000000000000000000000000000000000008b523382880152604060448801528260648801520186860137888582860101520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610f29565b519082855af1610de5610fd1565b5015610e4057335f525f602052610e1773ffffffffffffffffffffffffffffffffffffffff60405f20921680926111d2565b5033907f164745c0d5815644c1e92a17e242e89f9c0fd523fc3e94071b60f165692f3d795f80a3005b60846040517f47fc3bab00000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4572726f7220647572696e6720706f6c69637920696e697469616c697a61746960448201527f6f6e2063616c6c000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff837fe63549fa000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012c57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f6a57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff8111610f6a57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3d15610ffb573d90610fe282610f97565b91610ff06040519384610f29565b82523d5f602084013e565b606090565b5190811515820361012c57565b73ffffffffffffffffffffffffffffffffffffffff168015159081611030575090565b9050604051907f9d260809000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610c7a575f916110ae575090565b90506020813d6020116110dd575b816110c960209383610f29565b8101031261012c576110da90611000565b90565b3d91506110bc565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b80548210156111a5575f5260205f2001905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8281526001820160205260409020546112595780549068010000000000000000821015610f6a578261124461120f846001809601855584611190565b81939154907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060031b92831b921b19161790565b90558054925f520160205260405f2055600190565b50505f90565b906001820191815f528260205260405f20548015155f146113dd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81018181116113b0578254907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82019182116113b05781810361137b575b5050508054801561134e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01906113118282611190565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82549160031b1b19169055555f526020525f6040812055600190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b61139b61138b61120f9386611190565b90549060031b1c92839286611190565b90555f528360205260405f20555f80806112d9565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b505050505f90565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561141457565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611479575080511561145157805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806114cc575b61148a575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561148256fea26469706673582212209043256edec719959f93e5f861dadc5f7e422b6dcf4bd7d06acb1c54cb964cb064736f6c634300081a0033","sourceMap":"841:5884:54:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;841:5884:54;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4360:14:180;;841:5884:54;;;;;;4360:26:180;;4904:70:54;;;;841:5884;;;;;;;;;;4904:70;4952:22;;;;:::i;:::-;4904:70;;;841:5884;;;;;;;;;-1:-1:-1;;841:5884:54;;;;;;;:::i;:::-;8837:64:98;841:5884:54;;;;;;4301:16:98;841:5884:54;;;;4726:16:98;;:34;;;;841:5884:54;4805:1:98;4790:16;:50;;;;841:5884:54;4855:13:98;:30;;;;841:5884:54;4851:91:98;;;841:5884:54;;4805:1:98;841:5884:54;;;;;8837:64:98;841:5884:54;4979:67:98;;841:5884:54;6893:76:98;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:96;;;:::i;:::-;6893:76:98;;:::i;:::-;841:5884:54;;3295:62:38;841:5884:54;;;3295:62:38;841:5884:54;5066:101:98;;841:5884:54;5066:101:98;841:5884:54;8837:64:98;841:5884:54;;8837:64:98;841:5884:54;5142:14:98;841:5884:54;;;4805:1:98;841:5884:54;;5142:14:98;841:5884:54;4979:67:98;841:5884:54;;;;8837:64:98;841:5884:54;4979:67:98;;;4851:91;4908:23;841:5884:54;4908:23:98;841:5884:54;;4908:23:98;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:98;;4726:34;;;-1:-1:-1;4726:34:98;;841:5884:54;;;;;-1:-1:-1;;841:5884:54;;;;;;;1782:71:96;841:5884:54;;;;;;;;;;;;;-1:-1:-1;;841:5884:54;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;841:5884:54;;;;;;;:::i;:::-;4458:10;841:5884;;;;;8703:53:180;841:5884:54;;;;;;8703:53:180;;;:::i;:::-;;4458:10:54;4499:33;;841:5884;4499:33;;841:5884;;;;;;-1:-1:-1;;841:5884:54;;;;;1782:71:96;841:5884:54;;;;;4698:71:96;;;841:5884:54;;4698:71:96;841:5884:54;;;;;;;;4698:71:96;841:5884:54;;4698:71:96;;841:5884:54;;;;;-1:-1:-1;;841:5884:54;;;;;;;;;1427:54;841:5884;;;;;;;;;-1:-1:-1;;841:5884:54;;;;;;;:::i;:::-;;1782:71:96;841:5884:54;;966:10:102;4258:21:96;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;841:5884:54;4355:110:96;841:5884:54;4411:43:96;;841:5884:54;4411:43:96;841:5884:54;;;;;4411:43:96;4254:92;4302:33;841:5884:54;4302:33:96;966:10:102;841:5884:54;;;;4302:33:96;841:5884:54;;;;;-1:-1:-1;;841:5884:54;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;841:5884:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;841:5884:54;;;;;;5115:6:99;841:5884:54;5106:4:99;5098:23;5094:145;;841:5884:54;;;811:66:136;841:5884:54;;;5094:145:99;5199:29;841:5884:54;5199:29:99;841:5884:54;;5199:29:99;841:5884:54;;-1:-1:-1;;841:5884:54;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:99;841:5884:54;4683:4:99;;4675:23;:120;;;;;841:5884:54;4658:251:99;;;3058:30:38;841:5884:54;;3295:62:38;841:5884:54;;;;3058:30:38;;;;841:5884:54;3058:30:38;;841:5884:54;;3058:30:38;;841:5884:54;1893:10:38;841:5884:54;;;;3058:30:38;;;;;;;841:5884:54;3058:30:38;;;841:5884:54;1869:35:38;;1865:140;;841:5884:54;;;;;;;6156:52:99;;841:5884:54;6156:52:99;841:5884:54;6156:52:99;;;;841:5884:54;;6156:52:99;;;841:5884:54;-1:-1:-1;6152:437:99;;6518:60;;841:5884:54;6518:60:99;841:5884:54;;;;6518:60:99;6152:437;6250:40;811:66:136;6250:40:99;;;6246:120;;1748:29:136;;;:34;1744:119;;841:5884:54;;811:66:136;841:5884:54;;;811:66:136;841:5884:54;2407:36:136;841:5884:54;2407:36:136;;841:5884:54;;2458:15:136;:11;;841:5884:54;4049:25:157;;4091:55;4049:25;;;;;;;;:::i;:::-;4091:55;;:::i;2454:148:136:-;6163:9;;;;6159:70;;841:5884:54;6159:70:136;6199:19;841:5884:54;6199:19:136;841:5884:54;;6199:19:136;1744:119;1805:47;841:5884:54;1805:47:136;841:5884:54;;;;1805:47:136;6246:120:99;6317:34;841:5884:54;6317:34:99;841:5884:54;;;;6317:34:99;6156:52;;;;841:5884:54;6156:52:99;;841:5884:54;6156:52:99;;;;;;841:5884:54;6156:52:99;;;:::i;:::-;;;841:5884:54;;;;;6156:52:99;;;;;;;-1:-1:-1;6156:52:99;;1865:140:38;1927:67;841:5884:54;;1927:67:38;;;841:5884:54;;1927:67:38;;520:1:36;841:5884:54;;520:1:36;;841:5884:54;520:1:36;3058:30:38;841:5884:54;;520:1:36;;;;;;1927:67:38;3058:30;;;841:5884:54;3058:30:38;;841:5884:54;3058:30:38;;;;;;841:5884:54;3058:30:38;;;:::i;:::-;;;841:5884:54;;;;;;;;:::i;:::-;;;;;;;;;;3058:30:38;;;;;;-1:-1:-1;3058:30:38;;;841:5884:54;;;;;;;;;4675:120:99;841:5884:54;;;811:66:136;841:5884:54;;4753:42:99;;4675:120;;;841:5884:54;;;;;-1:-1:-1;;841:5884:54;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3681:22;;;:::i;:::-;3680:23;3676:67;;841:5884;;;3889:54;841:5884;;;;;;3889:54;;;;841:5884;;3889:54;;;;;;3925:10;3889:54;;;841:5884;;;;;;;;;;;;;;;;;;;;;;;;;;;3889:54;;841:5884;3889:54;;;;;;:::i;:::-;3877:67;;;;;;;;:::i;:::-;;3958:8;3954:91;;3925:10;841:5884;;;;;8382:50:180;841:5884:54;;;;;;8382:50:180;;;:::i;:::-;;3925:10:54;4165:33;;841:5884;4165:33;;841:5884;3954:91;841:5884;;;3975:70;;;841:5884;;3975:70;;841:5884;;;;;;;;;;;;;;;;3975:70;3676:67;841:5884;3712:31;;841:5884;3712:31;841:5884;;;;;3712:31;841:5884;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;841:5884:54;;;;;-1:-1:-1;841:5884:54;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;841:5884:54;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;6575:148::-;841:5884;;6661:20;;;:54;;;;6653:63;6575:148;:::o;6661:54::-;841:5884;;;;6685:30;841:5884;6685:30;;;;;841:5884;;6685:12;:30;:12;841:5884;6685:12;841:5884;6685:30;;;;;;;6679:1;6685:30;;;6661:54;6575:148;:::o;6685:30::-;;;841:5884;6685:30;;841:5884;6685:30;;;;;;841:5884;6685:30;;;:::i;:::-;;;841:5884;;;;;;;:::i;:::-;6575:148;:::o;6685:30::-;;;-1:-1:-1;6685:30:54;;4964:220:96;841:5884:54;;5147:30:96;4964:220;841:5884:54;;;1782:71:96;841:5884:54;;;1782:71:96;841:5884:54;;;;;;5147:30:96;4964:220::o;841:5884:54:-;;;;;;;;-1:-1:-1;841:5884:54;;-1:-1:-1;841:5884:54;;;-1:-1:-1;841:5884:54;:::o;:::-;;;;;;;;;;2241:406:180;-1:-1:-1;841:5884:54;;;4360:14:180;;;841:5884:54;;;;;;2325:21:180;;841:5884:54;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;2520:14:180;841:5884:54;;;;;;;2576:11:180;:::o;2320:321::-;2618:12;;841:5884:54;2618:12:180;:::o;2815:1368::-;;3010:14;;;841:5884:54;;;;;;;;;;;3046:13:180;;;3042:1135;3046:13;;;841:5884:54;;;;;;;;;;;;;;;;;;;3521:23:180;;;3517:378;;3042:1135;841:5884:54;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;3010:14:180;4112:11;:::o;841:5884:54:-;;;;;;;;;;3517:378:180;841:5884:54;3584:22:180;3705:23;3584:22;;;:::i;:::-;841:5884:54;;;;;;3705:23:180;;;;;:::i;841:5884:54:-;;;;;;;;;;;;3517:378:180;;;;;841:5884:54;;;;;;;;;;3042:1135:180;4154:12;;;;841:5884:54;4154:12:180;:::o;7084:141:98:-;841:5884:54;8837:64:98;841:5884:54;;;;7150:18:98;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:98;;-1:-1:-1;7191:17:98;4421:582:157;;4593:8;;-1:-1:-1;841:5884:54;;5674:21:157;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;841:5884:54;;4841:22:157;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;841:5884:54;4917:24:157;;4862:1;4917:24;841:5884:54;4917:24:157;841:5884:54;;4862:1:157;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"51706":[{"start":2009,"length":32},{"start":2266,"length":32}],"6145":[{"start":1505,"length":32},{"start":4219,"length":32}]}},"methodIdentifiers":{"POLICY_AUDIT()":"82e2b7c8","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","authorizePolicy(address,bytes)":"2f6cc102","getAuthorizedPolicies(address)":"591b43c5","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","isPolicyAuthorized(address,address)":"ca89d8b2","proxiableUUID()":"52d1902d","revokePolicy(address)":"9fda230a","setAuthority(address)":"7a9e5e4b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policyAudit\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"}],\"name\":\"InvalidNotAuditedPolicy\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidPolicyInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"RightsGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"RightsRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"POLICY_AUDIT\",\"outputs\":[{\"internalType\":\"contract IPolicyAuditorVerifiable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"authorizePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getAuthorizedPolicies\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"isPolicyAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"}],\"name\":\"revokePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidNotAuditedPolicy(address)\":[{\"details\":\"Error thrown when a policy has not been audited or approved for operation.\",\"params\":{\"policy\":\"The address of the unaudited policy.\"}}],\"InvalidPolicyInitialization(string)\":[{\"details\":\"Error thrown when there is an issue with the policy setup.\",\"params\":{\"reason\":\"A string explaining the reason for the invalid policy setup.\"}}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RightsGranted(address,address)\":{\"params\":{\"holder\":\"The address of the asset rights holder.\",\"policy\":\"The policy contract address granted rights.\"}},\"RightsRevoked(address,address)\":{\"params\":{\"holder\":\"The address of the asset rights holder.\",\"policy\":\"The policy contract address whose rights are being revoked.\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"authorizePolicy(address,bytes)\":{\"params\":{\"data\":\"The data to initialize policy.\",\"policy\":\"The address of the policy contract to be initialized and authorized.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getAuthorizedPolicies(address)\":{\"details\":\"This function returns an array of policy addresses that have been granted rights by the holder.\",\"params\":{\"holder\":\"The address of the asset rights holder whose authorized policies are being queried.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"isPolicyAuthorized(address,address)\":{\"details\":\"Verify if the specified policy contract has been delegated the rights by the assetolder.\",\"params\":{\"holder\":\"the asset rights holder to check for delegation.\",\"policy\":\"The address of the policy contract to check for delegation.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"revokePolicy(address)\":{\"params\":{\"policy\":\"The address of the policy contract whose rights delegation is being revoked.\"}},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"POLICY_AUDIT\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"_authorizedPolicies\":{\"details\":\"Mapping to store the delegated rights for each policy contract (address)\"}},\"version\":1},\"userdoc\":{\"events\":{\"RightsGranted(address,address)\":{\"notice\":\"Emitted when rights are granted to a policy for content.\"},\"RightsRevoked(address,address)\":{\"notice\":\"Emitted when rights are revoked from a policy for content.\"}},\"kind\":\"user\",\"methods\":{\"authorizePolicy(address,bytes)\":{\"notice\":\"Initializes and authorizes a policy contract for content held by the holder.\"},\"getAuthorizedPolicies(address)\":{\"notice\":\"Retrieves all policies authorized by a specific content holder.\"},\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"},\"revokePolicy(address)\":{\"notice\":\"Revokes the delegation of rights to a policy contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/rights/RightsPolicyAuthorizer.sol\":\"RightsPolicyAuthorizer\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=contracts/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solady/=lib/solady/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0x5e5bb219f96c38e6a8b6d752bf4b3d5d4f2bbcc044b66dea0a572f9ce27588db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67d991b5a27b6cb0ccab0417a1e1a35d3eeeb097c6b3cdce8e10f03af9237f21\",\"dweb:/ipfs/QmetnbV7kki2yjtPE2giNjhs5kSwvT7YzcGvLenUEHeAFs\"]},\"contracts/core/interfaces/policies/IPolicyAuditorVerifiable.sol\":{\"keccak256\":\"0xa16f215a70bb82ebf310086ddd0e3356c8b889146e8c3f64342574cc5d111afa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd46a58675c87225968a17ccf79339f64585310fb3a845e3b4b127222a23d2c9\",\"dweb:/ipfs/QmQEsBEZKJX4h84uqTCAGXQqm81fAtjE1oCGiJ6fm9qLi4\"]},\"contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol\":{\"keccak256\":\"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130\",\"dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4\"]},\"contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0x67da75876d8a614c9be2d0da22664a0c1ff93cbd080ab3e893c451fbc8bb2f81\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16d5e8f5cd1c4bf9731d163bc70e67bce4f8152207aa784e17f295e0c515b685\",\"dweb:/ipfs/QmXi1YSH8cUn6UBmFz6YNsUhCUEH3SuPXDQzS4cu4ooM9a\"]},\"contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x3ae0b323ab3e895a09ae6973f5ffeb70a59255c41ba0f51511d775d45b6c2dca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://336bd19272a3b0cf9d19fb34e9dad66bc4e1df157c8eb8c31fe03ddd8a5c26ad\",\"dweb:/ipfs/QmVjwMfDs7c96zKefkFRyKoZiuok8hRM7qXLbPLpUzd1fv\"]},\"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]},\"contracts/rights/RightsPolicyAuthorizer.sol\":{\"keccak256\":\"0xd8afae76625f55b198f6e18da17c968024010bd10ccff065c0dcdc619f6e1524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8aa28b2e82856e563309f587d916f0492b5138aadc9fa295a8a7da7ad77b413\",\"dweb:/ipfs/Qmdi2jS96N894C2Re9AX48vK8io2VHCxdptabh5GpNCzQF\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f\",\"dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"policyAudit","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"address","name":"policy","type":"address"}],"type":"error","name":"InvalidNotAuditedPolicy"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidPolicyInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"policy","type":"address","indexed":true},{"internalType":"address","name":"holder","type":"address","indexed":true}],"type":"event","name":"RightsGranted","anonymous":false},{"inputs":[{"internalType":"address","name":"policy","type":"address","indexed":true},{"internalType":"address","name":"holder","type":"address","indexed":true}],"type":"event","name":"RightsRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"POLICY_AUDIT","outputs":[{"internalType":"contract IPolicyAuditorVerifiable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"authorizePolicy"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"getAuthorizedPolicies","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"isPolicyAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"policy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokePolicy"},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"authorizePolicy(address,bytes)":{"params":{"data":"The data to initialize policy.","policy":"The address of the policy contract to be initialized and authorized."}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getAuthorizedPolicies(address)":{"details":"This function returns an array of policy addresses that have been granted rights by the holder.","params":{"holder":"The address of the asset rights holder whose authorized policies are being queried."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"isPolicyAuthorized(address,address)":{"details":"Verify if the specified policy contract has been delegated the rights by the assetolder.","params":{"holder":"the asset rights holder to check for delegation.","policy":"The address of the policy contract to check for delegation."}},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"revokePolicy(address)":{"params":{"policy":"The address of the policy contract whose rights delegation is being revoked."}},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"authorizePolicy(address,bytes)":{"notice":"Initializes and authorizes a policy contract for content held by the holder."},"getAuthorizedPolicies(address)":{"notice":"Retrieves all policies authorized by a specific content holder."},"initialize(address)":{"notice":"Initializes the proxy state."},"revokePolicy(address)":{"notice":"Revokes the delegation of rights to a policy contract."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=contracts/","ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solady/=lib/solady/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/rights/RightsPolicyAuthorizer.sol":"RightsPolicyAuthorizer"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"contracts/core/interfaces/policies/IPolicy.sol":{"keccak256":"0x5e5bb219f96c38e6a8b6d752bf4b3d5d4f2bbcc044b66dea0a572f9ce27588db","urls":["bzz-raw://67d991b5a27b6cb0ccab0417a1e1a35d3eeeb097c6b3cdce8e10f03af9237f21","dweb:/ipfs/QmetnbV7kki2yjtPE2giNjhs5kSwvT7YzcGvLenUEHeAFs"],"license":"MIT"},"contracts/core/interfaces/policies/IPolicyAuditorVerifiable.sol":{"keccak256":"0xa16f215a70bb82ebf310086ddd0e3356c8b889146e8c3f64342574cc5d111afa","urls":["bzz-raw://dd46a58675c87225968a17ccf79339f64585310fb3a845e3b4b127222a23d2c9","dweb:/ipfs/QmQEsBEZKJX4h84uqTCAGXQqm81fAtjE1oCGiJ6fm9qLi4"],"license":"MIT"},"contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol":{"keccak256":"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419","urls":["bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130","dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4"],"license":"MIT"},"contracts/core/primitives/Constants.sol":{"keccak256":"0x67da75876d8a614c9be2d0da22664a0c1ff93cbd080ab3e893c451fbc8bb2f81","urls":["bzz-raw://16d5e8f5cd1c4bf9731d163bc70e67bce4f8152207aa784e17f295e0c515b685","dweb:/ipfs/QmXi1YSH8cUn6UBmFz6YNsUhCUEH3SuPXDQzS4cu4ooM9a"],"license":"MIT"},"contracts/core/primitives/Types.sol":{"keccak256":"0x3ae0b323ab3e895a09ae6973f5ffeb70a59255c41ba0f51511d775d45b6c2dca","urls":["bzz-raw://336bd19272a3b0cf9d19fb34e9dad66bc4e1df157c8eb8c31fe03ddd8a5c26ad","dweb:/ipfs/QmVjwMfDs7c96zKefkFRyKoZiuok8hRM7qXLbPLpUzd1fv"],"license":"MIT"},"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df","urls":["bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2","dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj"],"license":"MIT"},"contracts/rights/RightsPolicyAuthorizer.sol":{"keccak256":"0xd8afae76625f55b198f6e18da17c968024010bd10ccff065c0dcdc619f6e1524","urls":["bzz-raw://a8aa28b2e82856e563309f587d916f0492b5138aadc9fa295a8a7da7ad77b413","dweb:/ipfs/Qmdi2jS96N894C2Re9AX48vK8io2VHCxdptabh5GpNCzQF"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212","urls":["bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f","dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":6151,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_authorizedPolicies","offset":0,"slot":"0","type":"t_mapping(t_address,t_struct(AddressSet)71161_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_struct(AddressSet)71161_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct EnumerableSet.AddressSet)","numberOfBytes":"32","value":"t_struct(AddressSet)71161_storage"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_struct(AddressSet)71161_storage":{"encoding":"inplace","label":"struct EnumerableSet.AddressSet","numberOfBytes":"64","members":[{"astId":71160,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_inner","offset":0,"slot":"0","type":"t_struct(Set)70846_storage"}]},"t_struct(Set)70846_storage":{"encoding":"inplace","label":"struct EnumerableSet.Set","numberOfBytes":"64","members":[{"astId":70841,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_values","offset":0,"slot":"0","type":"t_array(t_bytes32)dyn_storage"},{"astId":70845,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_positions","offset":0,"slot":"1","type":"t_mapping(t_bytes32,t_uint256)"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"contracts/rights/RightsPolicyAuthorizer.sol","id":6354,"exportedSymbols":{"AccessControlledUpgradeable":[2202],"EnumerableSet":[71448],"IPolicy":[1190],"IPolicyAuditorVerifiable":[1236],"IRightsPolicyAuthorizer":[1398],"Initializable":[51686],"RightsPolicyAuthorizer":[6353],"UUPSUpgradeable":[51868]},"nodeType":"SourceUnit","src":"124:6602:54","nodes":[{"id":6115,"nodeType":"PragmaDirective","src":"124:23:54","nodes":[],"literals":["solidity","0.8",".26"]},{"id":6117,"nodeType":"ImportDirective","src":"149:98:54","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":6354,"sourceUnit":51687,"symbolAliases":[{"foreign":{"id":6116,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"158:13:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6119,"nodeType":"ImportDirective","src":"248:88:54","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":6354,"sourceUnit":71449,"symbolAliases":[{"foreign":{"id":6118,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71448,"src":"257:13:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6121,"nodeType":"ImportDirective","src":"337:102:54","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":6354,"sourceUnit":51869,"symbolAliases":[{"foreign":{"id":6120,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51868,"src":"346:15:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6123,"nodeType":"ImportDirective","src":"440:115:54","nodes":[],"absolutePath":"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":6354,"sourceUnit":2203,"symbolAliases":[{"foreign":{"id":6122,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2202,"src":"449:27:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6125,"nodeType":"ImportDirective","src":"557:72:54","nodes":[],"absolutePath":"contracts/core/interfaces/policies/IPolicy.sol","file":"@synaps3/core/interfaces/policies/IPolicy.sol","nameLocation":"-1:-1:-1","scope":6354,"sourceUnit":1191,"symbolAliases":[{"foreign":{"id":6124,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"566:7:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6127,"nodeType":"ImportDirective","src":"630:102:54","nodes":[],"absolutePath":"contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol","file":"@synaps3/core/interfaces/rights/IRightsPolicyAuthorizer.sol","nameLocation":"-1:-1:-1","scope":6354,"sourceUnit":1399,"symbolAliases":[{"foreign":{"id":6126,"name":"IRightsPolicyAuthorizer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1398,"src":"639:23:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6129,"nodeType":"ImportDirective","src":"733:106:54","nodes":[],"absolutePath":"contracts/core/interfaces/policies/IPolicyAuditorVerifiable.sol","file":"@synaps3/core/interfaces/policies/IPolicyAuditorVerifiable.sol","nameLocation":"-1:-1:-1","scope":6354,"sourceUnit":1237,"symbolAliases":[{"foreign":{"id":6128,"name":"IPolicyAuditorVerifiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1236,"src":"742:24:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6353,"nodeType":"ContractDefinition","src":"841:5884:54","nodes":[{"id":6141,"nodeType":"UsingForDirective","src":"983:49:54","nodes":[],"global":false,"libraryName":{"id":6138,"name":"EnumerableSet","nameLocations":["989:13:54"],"nodeType":"IdentifierPath","referencedDeclaration":71448,"src":"989:13:54"},"typeName":{"id":6140,"nodeType":"UserDefinedTypeName","pathNode":{"id":6139,"name":"EnumerableSet.AddressSet","nameLocations":["1007:13:54","1021:10:54"],"nodeType":"IdentifierPath","referencedDeclaration":71161,"src":"1007:24:54"},"referencedDeclaration":71161,"src":"1007:24:54","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$71161_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":6145,"nodeType":"VariableDeclaration","src":"1427:54:54","nodes":[],"constant":false,"documentation":{"id":6142,"nodeType":"StructuredDocumentation","src":"1361:61:54","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"82e2b7c8","mutability":"immutable","name":"POLICY_AUDIT","nameLocation":"1469:12:54","scope":6353,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1236","typeString":"contract IPolicyAuditorVerifiable"},"typeName":{"id":6144,"nodeType":"UserDefinedTypeName","pathNode":{"id":6143,"name":"IPolicyAuditorVerifiable","nameLocations":["1427:24:54"],"nodeType":"IdentifierPath","referencedDeclaration":1236,"src":"1427:24:54"},"referencedDeclaration":1236,"src":"1427:24:54","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1236","typeString":"contract IPolicyAuditorVerifiable"}},"visibility":"public"},{"id":6151,"nodeType":"VariableDeclaration","src":"1574:72:54","nodes":[],"constant":false,"documentation":{"id":6146,"nodeType":"StructuredDocumentation","src":"1488:81:54","text":"@dev Mapping to store the delegated rights for each policy contract (address)"},"mutability":"mutable","name":"_authorizedPolicies","nameLocation":"1627:19:54","scope":6353,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$71161_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet)"},"typeName":{"id":6150,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6147,"name":"address","nodeType":"ElementaryTypeName","src":"1582:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1574:44:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$71161_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6149,"nodeType":"UserDefinedTypeName","pathNode":{"id":6148,"name":"EnumerableSet.AddressSet","nameLocations":["1593:13:54","1607:10:54"],"nodeType":"IdentifierPath","referencedDeclaration":71161,"src":"1593:24:54"},"referencedDeclaration":71161,"src":"1593:24:54","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$71161_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"private"},{"id":6158,"nodeType":"EventDefinition","src":"1853:68:54","nodes":[],"anonymous":false,"documentation":{"id":6152,"nodeType":"StructuredDocumentation","src":"1652:196:54","text":"@notice Emitted when rights are granted to a policy for content.\n @param policy The policy contract address granted rights.\n @param holder The address of the asset rights holder."},"eventSelector":"164745c0d5815644c1e92a17e242e89f9c0fd523fc3e94071b60f165692f3d79","name":"RightsGranted","nameLocation":"1859:13:54","parameters":{"id":6157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6154,"indexed":true,"mutability":"mutable","name":"policy","nameLocation":"1889:6:54","nodeType":"VariableDeclaration","scope":6158,"src":"1873:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6153,"name":"address","nodeType":"ElementaryTypeName","src":"1873:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6156,"indexed":true,"mutability":"mutable","name":"holder","nameLocation":"1913:6:54","nodeType":"VariableDeclaration","scope":6158,"src":"1897:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6155,"name":"address","nodeType":"ElementaryTypeName","src":"1897:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1872:48:54"}},{"id":6165,"nodeType":"EventDefinition","src":"2145:68:54","nodes":[],"anonymous":false,"documentation":{"id":6159,"nodeType":"StructuredDocumentation","src":"1926:214:54","text":"@notice Emitted when rights are revoked from a policy for content.\n @param policy The policy contract address whose rights are being revoked.\n @param holder The address of the asset rights holder."},"eventSelector":"e26ab5559d9c979fe9df51c8a6ac8f71ef871393f720d7bd56f2e600d1bb680e","name":"RightsRevoked","nameLocation":"2151:13:54","parameters":{"id":6164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6161,"indexed":true,"mutability":"mutable","name":"policy","nameLocation":"2181:6:54","nodeType":"VariableDeclaration","scope":6165,"src":"2165:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6160,"name":"address","nodeType":"ElementaryTypeName","src":"2165:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6163,"indexed":true,"mutability":"mutable","name":"holder","nameLocation":"2205:6:54","nodeType":"VariableDeclaration","scope":6165,"src":"2189:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6162,"name":"address","nodeType":"ElementaryTypeName","src":"2189:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2164:48:54"}},{"id":6170,"nodeType":"ErrorDefinition","src":"2366:46:54","nodes":[],"documentation":{"id":6166,"nodeType":"StructuredDocumentation","src":"2219:142:54","text":"@dev Error thrown when a policy has not been audited or approved for operation.\n @param policy The address of the unaudited policy."},"errorSelector":"e63549fa","name":"InvalidNotAuditedPolicy","nameLocation":"2372:23:54","parameters":{"id":6169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6168,"mutability":"mutable","name":"policy","nameLocation":"2404:6:54","nodeType":"VariableDeclaration","scope":6170,"src":"2396:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6167,"name":"address","nodeType":"ElementaryTypeName","src":"2396:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2395:16:54"}},{"id":6175,"nodeType":"ErrorDefinition","src":"2572:49:54","nodes":[],"documentation":{"id":6171,"nodeType":"StructuredDocumentation","src":"2417:150:54","text":"@dev Error thrown when there is an issue with the policy setup.\n @param reason A string explaining the reason for the invalid policy setup."},"errorSelector":"47fc3bab","name":"InvalidPolicyInitialization","nameLocation":"2578:27:54","parameters":{"id":6174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6173,"mutability":"mutable","name":"reason","nameLocation":"2613:6:54","nodeType":"VariableDeclaration","scope":6175,"src":"2606:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6172,"name":"string","nodeType":"ElementaryTypeName","src":"2606:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2605:15:54"}},{"id":6191,"nodeType":"FunctionDefinition","src":"2680:385:54","nodes":[],"body":{"id":6190,"nodeType":"Block","src":"2713:352:54","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":6181,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51654,"src":"2913:20:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":6182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2913:22:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6183,"nodeType":"ExpressionStatement","src":"2913:22:54"},{"expression":{"id":6188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6184,"name":"POLICY_AUDIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6145,"src":"3006:12:54","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1236","typeString":"contract IPolicyAuditorVerifiable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6186,"name":"policyAudit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6178,"src":"3046:11:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6185,"name":"IPolicyAuditorVerifiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1236,"src":"3021:24:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyAuditorVerifiable_$1236_$","typeString":"type(contract IPolicyAuditorVerifiable)"}},"id":6187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3021:37:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1236","typeString":"contract IPolicyAuditorVerifiable"}},"src":"3006:52:54","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1236","typeString":"contract IPolicyAuditorVerifiable"}},"id":6189,"nodeType":"ExpressionStatement","src":"3006:52:54"}]},"documentation":{"id":6176,"nodeType":"StructuredDocumentation","src":"2627:48:54","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":6179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6178,"mutability":"mutable","name":"policyAudit","nameLocation":"2700:11:54","nodeType":"VariableDeclaration","scope":6191,"src":"2692:19:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6177,"name":"address","nodeType":"ElementaryTypeName","src":"2692:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2691:21:54"},"returnParameters":{"id":6180,"nodeType":"ParameterList","parameters":[],"src":"2713:0:54"},"scope":6353,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":6207,"nodeType":"FunctionDefinition","src":"3116:151:54","nodes":[],"body":{"id":6206,"nodeType":"Block","src":"3178:89:54","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":6199,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51740,"src":"3188:22:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":6200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3188:24:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6201,"nodeType":"ExpressionStatement","src":"3188:24:54"},{"expression":{"arguments":[{"id":6203,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6194,"src":"3246:13:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6202,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2137,"src":"3222:23:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":6204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3222:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6205,"nodeType":"ExpressionStatement","src":"3222:38:54"}]},"documentation":{"id":6192,"nodeType":"StructuredDocumentation","src":"3071:40:54","text":"@notice Initializes the proxy state."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":6197,"kind":"modifierInvocation","modifierName":{"id":6196,"name":"initializer","nameLocations":["3166:11:54"],"nodeType":"IdentifierPath","referencedDeclaration":51540,"src":"3166:11:54"},"nodeType":"ModifierInvocation","src":"3166:11:54"}],"name":"initialize","nameLocation":"3125:10:54","parameters":{"id":6195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6194,"mutability":"mutable","name":"accessManager","nameLocation":"3144:13:54","nodeType":"VariableDeclaration","scope":6207,"src":"3136:21:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6193,"name":"address","nodeType":"ElementaryTypeName","src":"3136:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3135:23:54"},"returnParameters":{"id":6198,"nodeType":"ParameterList","parameters":[],"src":"3178:0:54"},"scope":6353,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":6261,"nodeType":"FunctionDefinition","src":"3508:697:54","nodes":[],"body":{"id":6260,"nodeType":"Block","src":"3579:626:54","nodes":[],"statements":[{"condition":{"id":6218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3680:23:54","subExpression":{"arguments":[{"id":6216,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6210,"src":"3696:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6215,"name":"_isValidPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6352,"src":"3681:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":6217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3681:22:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6223,"nodeType":"IfStatement","src":"3676:67:54","trueBody":{"errorCall":{"arguments":[{"id":6220,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6210,"src":"3736:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6219,"name":"InvalidNotAuditedPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6170,"src":"3712:23:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":6221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3712:31:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6222,"nodeType":"RevertStatement","src":"3705:38:54"}},{"assignments":[6225,null],"declarations":[{"constant":false,"id":6225,"mutability":"mutable","name":"success","nameLocation":"3864:7:54","nodeType":"VariableDeclaration","scope":6260,"src":"3859:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6224,"name":"bool","nodeType":"ElementaryTypeName","src":"3859:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":6238,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":6230,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"3904:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$1190_$","typeString":"type(contract IPolicy)"}},"id":6231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3912:10:54","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":1123,"src":"3904:18:54","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function IPolicy.initialize(address,bytes calldata)"}},{"components":[{"expression":{"id":6232,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3925:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3929:6:54","memberName":"sender","nodeType":"MemberAccess","src":"3925:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6234,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6212,"src":"3937:4:54","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"id":6235,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3924:18:54","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_calldata_ptr_$","typeString":"tuple(address,bytes calldata)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function IPolicy.initialize(address,bytes calldata)"},{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_calldata_ptr_$","typeString":"tuple(address,bytes calldata)"}],"expression":{"id":6228,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3889:3:54","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3893:10:54","memberName":"encodeCall","nodeType":"MemberAccess","src":"3889:14:54","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3889:54:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6226,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6210,"src":"3877:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3884:4:54","memberName":"call","nodeType":"MemberAccess","src":"3877:11:54","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3877:67:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3858:86:54"},{"condition":{"id":6240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3958:8:54","subExpression":{"id":6239,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6225,"src":"3959:7:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6245,"nodeType":"IfStatement","src":"3954:91:54","trueBody":{"errorCall":{"arguments":[{"hexValue":"4572726f7220647572696e6720706f6c69637920696e697469616c697a6174696f6e2063616c6c","id":6242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4003:41:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_466ff33af544a3258ce48b30829c401c1b82fc1a667216dc12b6fb6a650ffe3f","typeString":"literal_string \"Error during policy initialization call\""},"value":"Error during policy initialization call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_466ff33af544a3258ce48b30829c401c1b82fc1a667216dc12b6fb6a650ffe3f","typeString":"literal_string \"Error during policy initialization call\""}],"id":6241,"name":"InvalidPolicyInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6175,"src":"3975:27:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":6243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3975:70:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6244,"nodeType":"RevertStatement","src":"3968:77:54"}},{"expression":{"arguments":[{"id":6251,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6210,"src":"4091:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":6246,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6151,"src":"4055:19:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$71161_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":6249,"indexExpression":{"expression":{"id":6247,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4075:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4079:6:54","memberName":"sender","nodeType":"MemberAccess","src":"4075:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4055:31:54","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$71161_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":6250,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4087:3:54","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"4055:35:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$71161_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$71161_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":6252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4055:43:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6253,"nodeType":"ExpressionStatement","src":"4055:43:54"},{"eventCall":{"arguments":[{"id":6255,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6210,"src":"4179:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6256,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4187:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4191:6:54","memberName":"sender","nodeType":"MemberAccess","src":"4187:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6254,"name":"RightsGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6158,"src":"4165:13:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":6258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4165:33:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6259,"nodeType":"EmitStatement","src":"4160:38:54"}]},"baseFunctions":[1391],"documentation":{"id":6208,"nodeType":"StructuredDocumentation","src":"3273:230:54","text":"@notice Initializes and authorizes a policy contract for content held by the holder.\n @param policy The address of the policy contract to be initialized and authorized.\n @param data The data to initialize policy."},"functionSelector":"2f6cc102","implemented":true,"kind":"function","modifiers":[],"name":"authorizePolicy","nameLocation":"3517:15:54","parameters":{"id":6213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6210,"mutability":"mutable","name":"policy","nameLocation":"3541:6:54","nodeType":"VariableDeclaration","scope":6261,"src":"3533:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6209,"name":"address","nodeType":"ElementaryTypeName","src":"3533:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6212,"mutability":"mutable","name":"data","nameLocation":"3564:4:54","nodeType":"VariableDeclaration","scope":6261,"src":"3549:19:54","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6211,"name":"bytes","nodeType":"ElementaryTypeName","src":"3549:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3532:37:54"},"returnParameters":{"id":6214,"nodeType":"ParameterList","parameters":[],"src":"3579:0:54"},"scope":6353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":6282,"nodeType":"FunctionDefinition","src":"4381:158:54","nodes":[],"body":{"id":6281,"nodeType":"Block","src":"4428:111:54","nodes":[],"statements":[{"expression":{"arguments":[{"id":6272,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6264,"src":"4477:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":6267,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6151,"src":"4438:19:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$71161_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":6270,"indexExpression":{"expression":{"id":6268,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4458:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4462:6:54","memberName":"sender","nodeType":"MemberAccess","src":"4458:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4438:31:54","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$71161_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":6271,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4470:6:54","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":71215,"src":"4438:38:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$71161_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$71161_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":6273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4438:46:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6274,"nodeType":"ExpressionStatement","src":"4438:46:54"},{"eventCall":{"arguments":[{"id":6276,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6264,"src":"4513:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6277,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4521:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4525:6:54","memberName":"sender","nodeType":"MemberAccess","src":"4521:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6275,"name":"RightsRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6165,"src":"4499:13:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":6279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4499:33:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6280,"nodeType":"EmitStatement","src":"4494:38:54"}]},"baseFunctions":[1397],"documentation":{"id":6262,"nodeType":"StructuredDocumentation","src":"4211:165:54","text":"@notice Revokes the delegation of rights to a policy contract.\n @param policy The address of the policy contract whose rights delegation is being revoked."},"functionSelector":"9fda230a","implemented":true,"kind":"function","modifiers":[],"name":"revokePolicy","nameLocation":"4390:12:54","parameters":{"id":6265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6264,"mutability":"mutable","name":"policy","nameLocation":"4411:6:54","nodeType":"VariableDeclaration","scope":6282,"src":"4403:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6263,"name":"address","nodeType":"ElementaryTypeName","src":"4403:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4402:16:54"},"returnParameters":{"id":6266,"nodeType":"ParameterList","parameters":[],"src":"4428:0:54"},"scope":6353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":6304,"nodeType":"FunctionDefinition","src":"4800:181:54","nodes":[],"body":{"id":6303,"nodeType":"Block","src":"4887:94:54","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6296,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6285,"src":"4941:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":6292,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6151,"src":"4904:19:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$71161_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":6294,"indexExpression":{"id":6293,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6287,"src":"4924:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4904:27:54","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$71161_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":6295,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4932:8:54","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":71242,"src":"4904:36:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$71161_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$71161_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":6297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4904:44:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":6299,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6285,"src":"4967:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6298,"name":"_isValidPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6352,"src":"4952:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":6300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4952:22:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4904:70:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6291,"id":6302,"nodeType":"Return","src":"4897:77:54"}]},"baseFunctions":[1383],"documentation":{"id":6283,"nodeType":"StructuredDocumentation","src":"4545:250:54","text":"@dev Verify if the specified policy contract has been delegated the rights by the assetolder.\n @param policy The address of the policy contract to check for delegation.\n @param holder the asset rights holder to check for delegation."},"functionSelector":"ca89d8b2","implemented":true,"kind":"function","modifiers":[],"name":"isPolicyAuthorized","nameLocation":"4809:18:54","parameters":{"id":6288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6285,"mutability":"mutable","name":"policy","nameLocation":"4836:6:54","nodeType":"VariableDeclaration","scope":6304,"src":"4828:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6284,"name":"address","nodeType":"ElementaryTypeName","src":"4828:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6287,"mutability":"mutable","name":"holder","nameLocation":"4852:6:54","nodeType":"VariableDeclaration","scope":6304,"src":"4844:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6286,"name":"address","nodeType":"ElementaryTypeName","src":"4844:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4827:32:54"},"returnParameters":{"id":6291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6290,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6304,"src":"4881:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6289,"name":"bool","nodeType":"ElementaryTypeName","src":"4881:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4880:6:54"},"scope":6353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":6320,"nodeType":"FunctionDefinition","src":"5282:746:54","nodes":[],"body":{"id":6319,"nodeType":"Block","src":"5368:660:54","nodes":[],"statements":[{"documentation":"consumes too much gas to fit in a block.","expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":6313,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6151,"src":"5985:19:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$71161_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":6315,"indexExpression":{"id":6314,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6307,"src":"6005:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5985:27:54","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$71161_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":6316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6013:6:54","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":71314,"src":"5985:34:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$71161_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$71161_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":6317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5985:36:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":6312,"id":6318,"nodeType":"Return","src":"5978:43:54"}]},"baseFunctions":[1373],"documentation":{"id":6305,"nodeType":"StructuredDocumentation","src":"4987:290:54","text":"@notice Retrieves all policies authorized by a specific content holder.\n @dev This function returns an array of policy addresses that have been granted rights by the holder.\n @param holder The address of the asset rights holder whose authorized policies are being queried."},"functionSelector":"591b43c5","implemented":true,"kind":"function","modifiers":[],"name":"getAuthorizedPolicies","nameLocation":"5291:21:54","parameters":{"id":6308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6307,"mutability":"mutable","name":"holder","nameLocation":"5321:6:54","nodeType":"VariableDeclaration","scope":6320,"src":"5313:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6306,"name":"address","nodeType":"ElementaryTypeName","src":"5313:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5312:16:54"},"returnParameters":{"id":6312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6311,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6320,"src":"5350:16:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6309,"name":"address","nodeType":"ElementaryTypeName","src":"5350:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6310,"nodeType":"ArrayTypeName","src":"5350:9:54","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5349:18:54"},"scope":6353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":6330,"nodeType":"FunctionDefinition","src":"6226:84:54","nodes":[],"body":{"id":6329,"nodeType":"Block","src":"6308:2:54","nodes":[],"statements":[]},"baseFunctions":[51822],"documentation":{"id":6321,"nodeType":"StructuredDocumentation","src":"6034:187:54","text":"@dev Authorizes the upgrade of the contract.\n @notice Only the owner can authorize the upgrade.\n @param newImplementation The address of the new implementation contract."},"implemented":true,"kind":"function","modifiers":[{"id":6327,"kind":"modifierInvocation","modifierName":{"id":6326,"name":"onlyAdmin","nameLocations":["6298:9:54"],"nodeType":"IdentifierPath","referencedDeclaration":2120,"src":"6298:9:54"},"nodeType":"ModifierInvocation","src":"6298:9:54"}],"name":"_authorizeUpgrade","nameLocation":"6235:17:54","overrides":{"id":6325,"nodeType":"OverrideSpecifier","overrides":[],"src":"6289:8:54"},"parameters":{"id":6324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6323,"mutability":"mutable","name":"newImplementation","nameLocation":"6261:17:54","nodeType":"VariableDeclaration","scope":6330,"src":"6253:25:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6322,"name":"address","nodeType":"ElementaryTypeName","src":"6253:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6252:27:54"},"returnParameters":{"id":6328,"nodeType":"ParameterList","parameters":[],"src":"6308:0:54"},"scope":6353,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6352,"nodeType":"FunctionDefinition","src":"6575:148:54","nodes":[],"body":{"id":6351,"nodeType":"Block","src":"6643:80:54","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6338,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6333,"src":"6661:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6679:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6671:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6339,"name":"address","nodeType":"ElementaryTypeName","src":"6671:7:54","typeDescriptions":{}}},"id":6342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6671:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6661:20:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":6346,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6333,"src":"6708:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6344,"name":"POLICY_AUDIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6145,"src":"6685:12:54","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1236","typeString":"contract IPolicyAuditorVerifiable"}},"id":6345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6698:9:54","memberName":"isAudited","nodeType":"MemberAccess","referencedDeclaration":1235,"src":"6685:22:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":6347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6685:30:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6661:54:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6349,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6660:56:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6337,"id":6350,"nodeType":"Return","src":"6653:63:54"}]},"documentation":{"id":6331,"nodeType":"StructuredDocumentation","src":"6316:254:54","text":"@notice Verifies whether a given policy is valid.\n @dev The function ensures that the policy address is not the zero address\n and that the policy has been audited.\n @param policy The address of the policy contract to verify."},"implemented":true,"kind":"function","modifiers":[],"name":"_isValidPolicy","nameLocation":"6584:14:54","parameters":{"id":6334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6333,"mutability":"mutable","name":"policy","nameLocation":"6607:6:54","nodeType":"VariableDeclaration","scope":6352,"src":"6599:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6332,"name":"address","nodeType":"ElementaryTypeName","src":"6599:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6598:16:54"},"returnParameters":{"id":6337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6336,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6352,"src":"6637:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6335,"name":"bool","nodeType":"ElementaryTypeName","src":"6637:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6636:6:54"},"scope":6353,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":6130,"name":"Initializable","nameLocations":["880:13:54"],"nodeType":"IdentifierPath","referencedDeclaration":51686,"src":"880:13:54"},"id":6131,"nodeType":"InheritanceSpecifier","src":"880:13:54"},{"baseName":{"id":6132,"name":"UUPSUpgradeable","nameLocations":["899:15:54"],"nodeType":"IdentifierPath","referencedDeclaration":51868,"src":"899:15:54"},"id":6133,"nodeType":"InheritanceSpecifier","src":"899:15:54"},{"baseName":{"id":6134,"name":"AccessControlledUpgradeable","nameLocations":["920:27:54"],"nodeType":"IdentifierPath","referencedDeclaration":2202,"src":"920:27:54"},"id":6135,"nodeType":"InheritanceSpecifier","src":"920:27:54"},{"baseName":{"id":6136,"name":"IRightsPolicyAuthorizer","nameLocations":["953:23:54"],"nodeType":"IdentifierPath","referencedDeclaration":1398,"src":"953:23:54"},"id":6137,"nodeType":"InheritanceSpecifier","src":"953:23:54"}],"canonicalName":"RightsPolicyAuthorizer","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[6353,1398,2202,49313,54810,53478,51868,60438,51686],"name":"RightsPolicyAuthorizer","nameLocation":"850:22:54","scope":6354,"usedErrors":[2102,6170,6175,51449,51452,51713,51718,54781,54787,54791,60633,60646,62929,63221],"usedEvents":[6158,6165,51457,54777,60360]}],"license":"MIT"},"id":54} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"policyAudit","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"POLICY_AUDIT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPolicyAuditorVerifiable"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"authorizePolicy","inputs":[{"name":"policy","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAuthorizedPolicies","inputs":[{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"isPolicyAuthorized","inputs":[{"name":"policy","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"revokePolicy","inputs":[{"name":"policy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RightsGranted","inputs":[{"name":"policy","type":"address","indexed":true,"internalType":"address"},{"name":"holder","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RightsRevoked","inputs":[{"name":"policy","type":"address","indexed":true,"internalType":"address"},{"name":"holder","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidNotAuditedPolicy","inputs":[{"name":"policy","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidPolicyInitialization","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60c03461014657601f61176838819003918201601f19168301916001600160401b0383118484101761014a5780849260209460405283398101031261014657516001600160a01b0381169081900361014657306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16610137576002600160401b03196001600160401b038216016100ce575b5060a052604051611609908161015f82396080518181816108ab01526109ac015260a0518181816105e101526111a60152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61009b565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80632f6cc10214610d995780634f1ef2861461092357806352d1902d14610884578063591b43c5146106dc5780637a9e5e4b1461060557806382e2b7c8146105b55780638fb36037146105225780639fda230a146104b4578063ad3cb1cc14610420578063bf7e214f146103ce578063c4d66de8146101305763ca89d8b21461009d575f80fd5b3461012c57604060031936011261012c576100b6610fd8565b6024359073ffffffffffffffffffffffffffffffffffffffff821680920361012c575f9182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff841685526001018252909220541515908161011c575b506040519015158152f35b6101269150611138565b5f610111565b5f80fd5b3461012c57602060031936011261012c57610149610fd8565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103c6575b60011490816103bc575b1590816103b3575b5061038b57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610336575b5061020c6114e3565b6102146114e3565b61021c6114e3565b6102246114e3565b61022d81611210565b6102356114e3565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102a357005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610203565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050158461019a565b303b159150610192565b849150610188565b3461012c575f60031936011261012c57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b3461012c575f60031936011261012c57604080519061043f8183610ffb565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b3461012c57602060031936011261012c576104cd610fd8565b335f525f6020526104f973ffffffffffffffffffffffffffffffffffffffff60405f209216809261135d565b5033907fe26ab5559d9c979fe9df51c8a6ac8f71ef871393f720d7bd56f2e600d1bb680e5f80a3005b3461012c575f60031936011261012c577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105ad5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f610583565b3461012c575f60031936011261012c57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461012c57602060031936011261012c5761061e610fd8565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036106b057803b1561066e5761066c90611210565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b3461012c57602060031936011261012c5773ffffffffffffffffffffffffffffffffffffffff61070a610fd8565b165f525f60205260405f20604051808260208294549384815201905f5260205f20925f5b81811061086b57505061074392500382610ffb565b805190610768610752836110d2565b926107606040519485610ffb565b8084526110d2565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06020840192013683378051905f805b8382106107fa578486604051918291602083019060208452518091526040830191905f5b8181106107cb575050500390f35b825173ffffffffffffffffffffffffffffffffffffffff168452859450602093840193909201916001016107bd565b61082373ffffffffffffffffffffffffffffffffffffffff61081c84866110ea565b5116611138565b15610862576001809173ffffffffffffffffffffffffffffffffffffffff61084b85876110ea565b5116610857828a6110ea565b5201915b0190610799565b9060019061085b565b845483526001948501948694506020909301920161072e565b3461012c575f60031936011261012c5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108fb5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b604060031936011261012c57610937610fd8565b6024359067ffffffffffffffff821161012c573660238301121561012c5781600401359061096482611069565b916109726040519384610ffb565b8083526020830193366024838301011161012c57815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610d57575b506108fb576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610d4c575f91610d01575b5015610c7d5773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610c49575b50610ae357847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610c1e5750823b15610bf357807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610bc1575f809161066c945190845af4610bbb6110a3565b9161153a565b50505034610bcb57005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610c75575b81610c6560209383610ffb565b8101031261012c57519086610ab2565b3d9150610c58565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610d44575b81610d1c60409383610ffb565b8101031261012c576020610d2f8261112b565b91015163ffffffff81160361012c5784610a5d565b3d9150610d0f565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54161415846109d7565b3461012c57604060031936011261012c57610db2610fd8565b60243567ffffffffffffffff811161012c573660238201121561012c57806004013567ffffffffffffffff811161012c57366024828401011161012c57610df883611138565b15610f96575f91601f610ea9608485947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe060405194828693602460208601997fd1f57894000000000000000000000000000000000000000000000000000000008b523382880152604060448801528260648801520186860137888582860101520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610ffb565b519082855af1610eb76110a3565b5015610f1257335f525f602052610ee973ffffffffffffffffffffffffffffffffffffffff60405f20921680926112d0565b5033907f164745c0d5815644c1e92a17e242e89f9c0fd523fc3e94071b60f165692f3d795f80a3005b60846040517f47fc3bab00000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4572726f7220647572696e6720706f6c69637920696e697469616c697a61746960448201527f6f6e2063616c6c000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff837fe63549fa000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012c57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761103c57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff811161103c57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3d156110cd573d906110b482611069565b916110c26040519384610ffb565b82523d5f602084013e565b606090565b67ffffffffffffffff811161103c5760051b60200190565b80518210156110fe5760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5190811515820361012c57565b73ffffffffffffffffffffffffffffffffffffffff16801515908161115b575090565b9050604051907f9d260809000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610d4c575f916111d9575090565b90506020813d602011611208575b816111f460209383610ffb565b8101031261012c576112059061112b565b90565b3d91506111e7565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b80548210156110fe575f5260205f2001905f90565b5f828152600182016020526040902054611357578054906801000000000000000082101561103c578261134261130d8460018096018555846112bb565b81939154907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060031b92831b921b19161790565b90558054925f520160205260405f2055600190565b50505f90565b906001820191815f528260205260405f20548015155f146114db577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81018181116114ae578254907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82019182116114ae57818103611479575b5050508054801561144c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019061140f82826112bb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82549160031b1b19169055555f526020525f6040812055600190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b61149961148961130d93866112bb565b90549060031b1c928392866112bb565b90555f528360205260405f20555f80806113d7565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b505050505f90565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561151257565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611577575080511561154f57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806115ca575b611588575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561158056fea2646970667358221220057c58598f54b9385a4deaa7a40de35f032417baccf5eecb12fbc4fd5ed76c1864736f6c634300081a0033","sourceMap":"904:6459:59:-:0;;;;;;;;;;;;;-1:-1:-1;;904:6459:59;;;;-1:-1:-1;;;;;904:6459:59;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;904:6459:59;;;;;;;;1171:4:93;1163:13;;8837:64:92;904:6459:59;;;;;;7896:76:92;;-1:-1:-1;;;;;;;;;;;904:6459:59;;7985:34:92;7981:146;;-1:-1:-1;3100:52:59;;;904:6459;;;;;;;;1163:13:93;904:6459:59;;;;;;;;;;3100:52;904:6459;;;;;;;;;;;7981:146:92;-1:-1:-1;;;;;;904:6459:59;-1:-1:-1;;;;;904:6459:59;;;8837:64:92;904:6459:59;;;;;;8087:29:92;;904:6459:59;;8087:29:92;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:92;;-1:-1:-1;7938:23:92;904:6459:59;-1:-1:-1;904:6459:59;;;;;;-1:-1:-1;904:6459:59;;;;;-1:-1:-1;904:6459:59","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80632f6cc10214610d995780634f1ef2861461092357806352d1902d14610884578063591b43c5146106dc5780637a9e5e4b1461060557806382e2b7c8146105b55780638fb36037146105225780639fda230a146104b4578063ad3cb1cc14610420578063bf7e214f146103ce578063c4d66de8146101305763ca89d8b21461009d575f80fd5b3461012c57604060031936011261012c576100b6610fd8565b6024359073ffffffffffffffffffffffffffffffffffffffff821680920361012c575f9182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff841685526001018252909220541515908161011c575b506040519015158152f35b6101269150611138565b5f610111565b5f80fd5b3461012c57602060031936011261012c57610149610fd8565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103c6575b60011490816103bc575b1590816103b3575b5061038b57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610336575b5061020c6114e3565b6102146114e3565b61021c6114e3565b6102246114e3565b61022d81611210565b6102356114e3565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102a357005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610203565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050158461019a565b303b159150610192565b849150610188565b3461012c575f60031936011261012c57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b3461012c575f60031936011261012c57604080519061043f8183610ffb565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b3461012c57602060031936011261012c576104cd610fd8565b335f525f6020526104f973ffffffffffffffffffffffffffffffffffffffff60405f209216809261135d565b5033907fe26ab5559d9c979fe9df51c8a6ac8f71ef871393f720d7bd56f2e600d1bb680e5f80a3005b3461012c575f60031936011261012c577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105ad5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f610583565b3461012c575f60031936011261012c57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461012c57602060031936011261012c5761061e610fd8565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036106b057803b1561066e5761066c90611210565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b3461012c57602060031936011261012c5773ffffffffffffffffffffffffffffffffffffffff61070a610fd8565b165f525f60205260405f20604051808260208294549384815201905f5260205f20925f5b81811061086b57505061074392500382610ffb565b805190610768610752836110d2565b926107606040519485610ffb565b8084526110d2565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06020840192013683378051905f805b8382106107fa578486604051918291602083019060208452518091526040830191905f5b8181106107cb575050500390f35b825173ffffffffffffffffffffffffffffffffffffffff168452859450602093840193909201916001016107bd565b61082373ffffffffffffffffffffffffffffffffffffffff61081c84866110ea565b5116611138565b15610862576001809173ffffffffffffffffffffffffffffffffffffffff61084b85876110ea565b5116610857828a6110ea565b5201915b0190610799565b9060019061085b565b845483526001948501948694506020909301920161072e565b3461012c575f60031936011261012c5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108fb5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b604060031936011261012c57610937610fd8565b6024359067ffffffffffffffff821161012c573660238301121561012c5781600401359061096482611069565b916109726040519384610ffb565b8083526020830193366024838301011161012c57815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610d57575b506108fb576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610d4c575f91610d01575b5015610c7d5773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610c49575b50610ae357847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610c1e5750823b15610bf357807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610bc1575f809161066c945190845af4610bbb6110a3565b9161153a565b50505034610bcb57005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610c75575b81610c6560209383610ffb565b8101031261012c57519086610ab2565b3d9150610c58565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610d44575b81610d1c60409383610ffb565b8101031261012c576020610d2f8261112b565b91015163ffffffff81160361012c5784610a5d565b3d9150610d0f565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54161415846109d7565b3461012c57604060031936011261012c57610db2610fd8565b60243567ffffffffffffffff811161012c573660238201121561012c57806004013567ffffffffffffffff811161012c57366024828401011161012c57610df883611138565b15610f96575f91601f610ea9608485947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe060405194828693602460208601997fd1f57894000000000000000000000000000000000000000000000000000000008b523382880152604060448801528260648801520186860137888582860101520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610ffb565b519082855af1610eb76110a3565b5015610f1257335f525f602052610ee973ffffffffffffffffffffffffffffffffffffffff60405f20921680926112d0565b5033907f164745c0d5815644c1e92a17e242e89f9c0fd523fc3e94071b60f165692f3d795f80a3005b60846040517f47fc3bab00000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4572726f7220647572696e6720706f6c69637920696e697469616c697a61746960448201527f6f6e2063616c6c000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff837fe63549fa000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012c57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761103c57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff811161103c57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3d156110cd573d906110b482611069565b916110c26040519384610ffb565b82523d5f602084013e565b606090565b67ffffffffffffffff811161103c5760051b60200190565b80518210156110fe5760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5190811515820361012c57565b73ffffffffffffffffffffffffffffffffffffffff16801515908161115b575090565b9050604051907f9d260809000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610d4c575f916111d9575090565b90506020813d602011611208575b816111f460209383610ffb565b8101031261012c576112059061112b565b90565b3d91506111e7565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b80548210156110fe575f5260205f2001905f90565b5f828152600182016020526040902054611357578054906801000000000000000082101561103c578261134261130d8460018096018555846112bb565b81939154907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060031b92831b921b19161790565b90558054925f520160205260405f2055600190565b50505f90565b906001820191815f528260205260405f20548015155f146114db577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81018181116114ae578254907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82019182116114ae57818103611479575b5050508054801561144c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019061140f82826112bb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82549160031b1b19169055555f526020525f6040812055600190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b61149961148961130d93866112bb565b90549060031b1c928392866112bb565b90555f528360205260405f20555f80806113d7565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b505050505f90565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561151257565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611577575080511561154f57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806115ca575b611588575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561158056fea2646970667358221220057c58598f54b9385a4deaa7a40de35f032417baccf5eecb12fbc4fd5ed76c1864736f6c634300081a0033","sourceMap":"904:6459:59:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;904:6459:59;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4360:14:173;;904:6459:59;;;;;;4360:26:173;;5002:70:59;;;;904:6459;;;;;;;;;;5002:70;5050:22;;;;:::i;:::-;5002:70;;;904:6459;;;;;;;;;-1:-1:-1;;904:6459:59;;;;;;;:::i;:::-;8837:64:92;904:6459:59;;;;;;4301:16:92;904:6459:59;;;;4726:16:92;;:34;;;;904:6459:59;4805:1:92;4790:16;:50;;;;904:6459:59;4855:13:92;:30;;;;904:6459:59;4851:91:92;;;904:6459:59;;4805:1:92;904:6459:59;;;;;8837:64:92;904:6459:59;4979:67:92;;904:6459:59;6893:76:92;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:90;;;:::i;:::-;6893:76:92;;:::i;:::-;904:6459:59;;3295:62:44;904:6459:59;;;3295:62:44;904:6459:59;5066:101:92;;904:6459:59;5066:101:92;904:6459:59;8837:64:92;904:6459:59;;8837:64:92;904:6459:59;5142:14:92;904:6459:59;;;4805:1:92;904:6459:59;;5142:14:92;904:6459:59;4979:67:92;904:6459:59;;;;8837:64:92;904:6459:59;4979:67:92;;;4851:91;4908:23;904:6459:59;4908:23:92;904:6459:59;;4908:23:92;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:92;;4726:34;;;-1:-1:-1;4726:34:92;;904:6459:59;;;;;-1:-1:-1;;904:6459:59;;;;;;;1782:71:90;904:6459:59;;;;;;;;;;;;;-1:-1:-1;;904:6459:59;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;904:6459:59;;;;;;;:::i;:::-;4552:10;904:6459;;;;;8703:53:173;904:6459:59;;;;;;8703:53:173;;;:::i;:::-;;4552:10:59;4593:33;;904:6459;4593:33;;904:6459;;;;;;-1:-1:-1;;904:6459:59;;;;;1782:71:90;904:6459:59;;;;;4698:71:90;;;904:6459:59;;4698:71:90;904:6459:59;;;;;;;;4698:71:90;904:6459:59;;4698:71:90;;904:6459:59;;;;;-1:-1:-1;;904:6459:59;;;;;;;;;1521:54;904:6459;;;;;;;;;-1:-1:-1;;904:6459:59;;;;;;;:::i;:::-;;1782:71:90;904:6459:59;;966:10:96;4258:21:90;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;904:6459:59;4355:110:90;904:6459:59;4411:43:90;;904:6459:59;4411:43:90;904:6459:59;;;;;4411:43:90;4254:92;4302:33;904:6459:59;4302:33:90;966:10:96;904:6459:59;;;;4302:33:90;904:6459:59;;;;;-1:-1:-1;;904:6459:59;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;6278:13;904:6459;;6341:15;;;;;;904:6459;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;904:6459:59;;;;;;;;;;;;;6358:20;6399:27;904:6459;6414:11;;;;:::i;:::-;904:6459;;6399:27;:::i;:::-;6398:28;6394:42;;904:6459;6464:11;;904:6459;6464:11;;;;:::i;:::-;904:6459;;6450:25;;;;:::i;:::-;904:6459;;6358:20;6326:13;904:6459;6326:13;;;6394:42;6428:8;904:6459;6428:8;;;904:6459;;;;;;;;;;;;-1:-1:-1;904:6459:59;;;;;;;;;;;;;-1:-1:-1;;904:6459:59;;;;;;5115:6:93;904:6459:59;5106:4:93;5098:23;5094:145;;904:6459:59;;;811:66:130;904:6459:59;;;5094:145:93;5199:29;904:6459:59;5199:29:93;904:6459:59;;5199:29:93;904:6459:59;;-1:-1:-1;;904:6459:59;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:93;904:6459:59;4683:4:93;;4675:23;:120;;;;;904:6459:59;4658:251:93;;;3058:30:44;904:6459:59;;3295:62:44;904:6459:59;;;;3058:30:44;;;;904:6459:59;3058:30:44;;904:6459:59;;3058:30:44;;904:6459:59;1893:10:44;904:6459:59;;;;3058:30:44;;;;;;;904:6459:59;3058:30:44;;;904:6459:59;1869:35:44;;1865:140;;904:6459:59;;;;;;;6156:52:93;;904:6459:59;6156:52:93;904:6459:59;6156:52:93;;;;904:6459:59;;6156:52:93;;;904:6459:59;-1:-1:-1;6152:437:93;;6518:60;;904:6459:59;6518:60:93;904:6459:59;;;;6518:60:93;6152:437;6250:40;811:66:130;6250:40:93;;;6246:120;;1748:29:130;;;:34;1744:119;;904:6459:59;;811:66:130;904:6459:59;;;811:66:130;904:6459:59;2407:36:130;904:6459:59;2407:36:130;;904:6459:59;;2458:15:130;:11;;904:6459:59;4049:25:151;;4091:55;4049:25;;;;;;;;:::i;:::-;4091:55;;:::i;2454:148:130:-;6163:9;;;;6159:70;;904:6459:59;6159:70:130;6199:19;904:6459:59;6199:19:130;904:6459:59;;6199:19:130;1744:119;1805:47;904:6459:59;1805:47:130;904:6459:59;;;;1805:47:130;6246:120:93;6317:34;904:6459:59;6317:34:93;904:6459:59;;;;6317:34:93;6156:52;;;;904:6459:59;6156:52:93;;904:6459:59;6156:52:93;;;;;;904:6459:59;6156:52:93;;;:::i;:::-;;;904:6459:59;;;;;6156:52:93;;;;;;;-1:-1:-1;6156:52:93;;1865:140:44;1927:67;904:6459:59;;1927:67:44;;;904:6459:59;;1927:67:44;;520:1:42;904:6459:59;;520:1:42;;904:6459:59;520:1:42;3058:30:44;904:6459:59;;520:1:42;;;;;;1927:67:44;3058:30;;;904:6459:59;3058:30:44;;904:6459:59;3058:30:44;;;;;;904:6459:59;3058:30:44;;;:::i;:::-;;;904:6459:59;;;;;;;;:::i;:::-;;;;;;;;;;3058:30:44;;;;;;-1:-1:-1;3058:30:44;;;904:6459:59;;;;;;;;;4675:120:93;904:6459:59;;;811:66:130;904:6459:59;;4753:42:93;;4675:120;;;904:6459:59;;;;;-1:-1:-1;;904:6459:59;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3775:22;;;:::i;:::-;3774:23;3770:67;;904:6459;;;3983:54;904:6459;;;;;;3983:54;;;;904:6459;;3983:54;;;;;;4019:10;3983:54;;;904:6459;;;;;;;;;;;;;;;;;;;;;;;;;;;3983:54;;904:6459;3983:54;;;;;;:::i;:::-;3971:67;;;;;;;;:::i;:::-;;4052:8;4048:91;;4019:10;904:6459;;;;;8382:50:173;904:6459:59;;;;;;8382:50:173;;;:::i;:::-;;4019:10:59;4259:33;;904:6459;4259:33;;904:6459;4048:91;904:6459;;;4069:70;;;904:6459;;4069:70;;904:6459;;;;;;;;;;;;;;;;4069:70;3770:67;904:6459;3806:31;;904:6459;3806:31;904:6459;;;;;3806:31;904:6459;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;904:6459:59;;;;;-1:-1:-1;904:6459:59;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;904:6459:59;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;7213:148::-;904:6459;;7299:20;;;:54;;;;7291:63;7213:148;:::o;7299:54::-;904:6459;;;;7323:30;904:6459;7323:30;;;;;904:6459;;7323:12;:30;:12;904:6459;7323:12;904:6459;7323:30;;;;;;;7317:1;7323:30;;;7299:54;7213:148;:::o;7323:30::-;;;904:6459;7323:30;;904:6459;7323:30;;;;;;904:6459;7323:30;;;:::i;:::-;;;904:6459;;;;;;;:::i;:::-;7213:148;:::o;7323:30::-;;;-1:-1:-1;7323:30:59;;4964:220:90;904:6459:59;;5147:30:90;4964:220;904:6459:59;;;1782:71:90;904:6459:59;;;1782:71:90;904:6459:59;;;;;;5147:30:90;4964:220::o;904:6459:59:-;;;;;;;;-1:-1:-1;904:6459:59;;-1:-1:-1;904:6459:59;;;-1:-1:-1;904:6459:59;:::o;2241:406:173:-;-1:-1:-1;904:6459:59;;;4360:14:173;;;904:6459:59;;;;;;2325:21:173;;904:6459:59;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;2520:14:173;904:6459:59;;;;;;;2576:11:173;:::o;2320:321::-;2618:12;;904:6459:59;2618:12:173;:::o;2815:1368::-;;3010:14;;;904:6459:59;;;;;;;;;;;3046:13:173;;;3042:1135;3046:13;;;904:6459:59;;;;;;;;;;;;;;;;;;;3521:23:173;;;3517:378;;3042:1135;904:6459:59;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;3010:14:173;4112:11;:::o;904:6459:59:-;;;;;;;;;;3517:378:173;904:6459:59;3584:22:173;3705:23;3584:22;;;:::i;:::-;904:6459:59;;;;;;3705:23:173;;;;;:::i;904:6459:59:-;;;;;;;;;;;;3517:378:173;;;;;904:6459:59;;;;;;;;;;3042:1135:173;4154:12;;;;904:6459:59;4154:12:173;:::o;7084:141:92:-;904:6459:59;8837:64:92;904:6459:59;;;;7150:18:92;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:92;;-1:-1:-1;7191:17:92;4421:582:151;;4593:8;;-1:-1:-1;904:6459:59;;5674:21:151;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;904:6459:59;;4841:22:151;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;904:6459:59;4917:24:151;;4862:1;4917:24;904:6459:59;4917:24:151;904:6459:59;;4862:1:151;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"50482":[{"start":2219,"length":32},{"start":2476,"length":32}],"5931":[{"start":1505,"length":32},{"start":4518,"length":32}]}},"methodIdentifiers":{"POLICY_AUDIT()":"82e2b7c8","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","authorizePolicy(address,bytes)":"2f6cc102","getAuthorizedPolicies(address)":"591b43c5","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","isPolicyAuthorized(address,address)":"ca89d8b2","proxiableUUID()":"52d1902d","revokePolicy(address)":"9fda230a","setAuthority(address)":"7a9e5e4b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policyAudit\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"}],\"name\":\"InvalidNotAuditedPolicy\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidPolicyInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"RightsGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"RightsRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"POLICY_AUDIT\",\"outputs\":[{\"internalType\":\"contract IPolicyAuditorVerifiable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"authorizePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getAuthorizedPolicies\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"isPolicyAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"}],\"name\":\"revokePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidNotAuditedPolicy(address)\":[{\"details\":\"Error thrown when a policy has not been audited or approved for operation.\",\"params\":{\"policy\":\"The address of the unaudited policy.\"}}],\"InvalidPolicyInitialization(string)\":[{\"details\":\"Error thrown when there is an issue with the policy setup.\",\"params\":{\"reason\":\"A string explaining the reason for the invalid policy setup.\"}}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RightsGranted(address,address)\":{\"params\":{\"holder\":\"The address of the asset rights holder.\",\"policy\":\"The policy contract address granted rights.\"}},\"RightsRevoked(address,address)\":{\"params\":{\"holder\":\"The address of the asset rights holder.\",\"policy\":\"The policy contract address whose rights are being revoked.\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"authorizePolicy(address,bytes)\":{\"params\":{\"data\":\"The data to initialize policy.\",\"policy\":\"The address of the policy contract to be initialized and authorized.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getAuthorizedPolicies(address)\":{\"details\":\"This function returns an array of policy addresses that have been granted rights by the holder.\",\"params\":{\"holder\":\"The address of the asset rights holder whose authorized policies are being queried.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"isPolicyAuthorized(address,address)\":{\"details\":\"Verify if the specified policy contract has been delegated the rights by the asset holder.\",\"params\":{\"holder\":\"the asset rights holder to check for delegation.\",\"policy\":\"The address of the policy contract to check for delegation.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"revokePolicy(address)\":{\"params\":{\"policy\":\"The address of the policy contract whose rights delegation is being revoked.\"}},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"POLICY_AUDIT\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"_authorizedPolicies\":{\"details\":\"Mapping to store the delegated rights for each policy contract (address)\"}},\"version\":1},\"userdoc\":{\"events\":{\"RightsGranted(address,address)\":{\"notice\":\"Emitted when rights are granted to a policy for content.\"},\"RightsRevoked(address,address)\":{\"notice\":\"Emitted when rights are revoked from a policy for content.\"}},\"kind\":\"user\",\"methods\":{\"authorizePolicy(address,bytes)\":{\"notice\":\"Initializes and authorizes a policy contract for content held by the holder.\"},\"getAuthorizedPolicies(address)\":{\"notice\":\"Retrieves all policies authorized by a specific content holder.\"},\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"},\"revokePolicy(address)\":{\"notice\":\"Revokes the delegation of rights to a policy contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/rights/RightsPolicyAuthorizer.sol\":\"RightsPolicyAuthorizer\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=contracts/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solady/=lib/solady/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0xde948687c6e43423f1406a2e7f7f17b5f373e445b4612872b2a087949a71dbb4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5da4404cdf33625a3bbf8ab58d9acf0bfd80b78c53658f3bfb365a9c568e836\",\"dweb:/ipfs/QmaKqfhCLzBHoyg3GhUCQcEZo89arwe3YEgoysCWJUPWqv\"]},\"contracts/core/interfaces/policies/IPolicyAuditorVerifiable.sol\":{\"keccak256\":\"0xa16f215a70bb82ebf310086ddd0e3356c8b889146e8c3f64342574cc5d111afa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd46a58675c87225968a17ccf79339f64585310fb3a845e3b4b127222a23d2c9\",\"dweb:/ipfs/QmQEsBEZKJX4h84uqTCAGXQqm81fAtjE1oCGiJ6fm9qLi4\"]},\"contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol\":{\"keccak256\":\"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130\",\"dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4\"]},\"contracts/core/libraries/LoopOps.sol\":{\"keccak256\":\"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2\",\"dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL\"]},\"contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf\",\"dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe\"]},\"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]},\"contracts/rights/RightsPolicyAuthorizer.sol\":{\"keccak256\":\"0x7085af875aabb7e28420dceb6e73101b66642712e03b4319cc9de389b3ccf27f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c0d12e58e6e284ee12c61eab7e9f245d263b9fd9593575d938b54dc36c4e02d\",\"dweb:/ipfs/QmZyJgKPpDfns4TziFziFnmmUVDRy5gkUXE4kNDayuCbeb\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f\",\"dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"policyAudit","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"address","name":"policy","type":"address"}],"type":"error","name":"InvalidNotAuditedPolicy"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidPolicyInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"policy","type":"address","indexed":true},{"internalType":"address","name":"holder","type":"address","indexed":true}],"type":"event","name":"RightsGranted","anonymous":false},{"inputs":[{"internalType":"address","name":"policy","type":"address","indexed":true},{"internalType":"address","name":"holder","type":"address","indexed":true}],"type":"event","name":"RightsRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"POLICY_AUDIT","outputs":[{"internalType":"contract IPolicyAuditorVerifiable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"authorizePolicy"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"getAuthorizedPolicies","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"isPolicyAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"policy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokePolicy"},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"authorizePolicy(address,bytes)":{"params":{"data":"The data to initialize policy.","policy":"The address of the policy contract to be initialized and authorized."}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getAuthorizedPolicies(address)":{"details":"This function returns an array of policy addresses that have been granted rights by the holder.","params":{"holder":"The address of the asset rights holder whose authorized policies are being queried."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"isPolicyAuthorized(address,address)":{"details":"Verify if the specified policy contract has been delegated the rights by the asset holder.","params":{"holder":"the asset rights holder to check for delegation.","policy":"The address of the policy contract to check for delegation."}},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"revokePolicy(address)":{"params":{"policy":"The address of the policy contract whose rights delegation is being revoked."}},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"authorizePolicy(address,bytes)":{"notice":"Initializes and authorizes a policy contract for content held by the holder."},"getAuthorizedPolicies(address)":{"notice":"Retrieves all policies authorized by a specific content holder."},"initialize(address)":{"notice":"Initializes the proxy state."},"revokePolicy(address)":{"notice":"Revokes the delegation of rights to a policy contract."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=contracts/","ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solady/=lib/solady/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/rights/RightsPolicyAuthorizer.sol":"RightsPolicyAuthorizer"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"contracts/core/interfaces/policies/IPolicy.sol":{"keccak256":"0xde948687c6e43423f1406a2e7f7f17b5f373e445b4612872b2a087949a71dbb4","urls":["bzz-raw://e5da4404cdf33625a3bbf8ab58d9acf0bfd80b78c53658f3bfb365a9c568e836","dweb:/ipfs/QmaKqfhCLzBHoyg3GhUCQcEZo89arwe3YEgoysCWJUPWqv"],"license":"MIT"},"contracts/core/interfaces/policies/IPolicyAuditorVerifiable.sol":{"keccak256":"0xa16f215a70bb82ebf310086ddd0e3356c8b889146e8c3f64342574cc5d111afa","urls":["bzz-raw://dd46a58675c87225968a17ccf79339f64585310fb3a845e3b4b127222a23d2c9","dweb:/ipfs/QmQEsBEZKJX4h84uqTCAGXQqm81fAtjE1oCGiJ6fm9qLi4"],"license":"MIT"},"contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol":{"keccak256":"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419","urls":["bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130","dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4"],"license":"MIT"},"contracts/core/libraries/LoopOps.sol":{"keccak256":"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411","urls":["bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2","dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL"],"license":"MIT"},"contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"contracts/core/primitives/Types.sol":{"keccak256":"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1","urls":["bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf","dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe"],"license":"MIT"},"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df","urls":["bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2","dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj"],"license":"MIT"},"contracts/rights/RightsPolicyAuthorizer.sol":{"keccak256":"0x7085af875aabb7e28420dceb6e73101b66642712e03b4319cc9de389b3ccf27f","urls":["bzz-raw://0c0d12e58e6e284ee12c61eab7e9f245d263b9fd9593575d938b54dc36c4e02d","dweb:/ipfs/QmZyJgKPpDfns4TziFziFnmmUVDRy5gkUXE4kNDayuCbeb"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212","urls":["bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f","dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":5937,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_authorizedPolicies","offset":0,"slot":"0","type":"t_mapping(t_address,t_struct(AddressSet)69868_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_struct(AddressSet)69868_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct EnumerableSet.AddressSet)","numberOfBytes":"32","value":"t_struct(AddressSet)69868_storage"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_struct(AddressSet)69868_storage":{"encoding":"inplace","label":"struct EnumerableSet.AddressSet","numberOfBytes":"64","members":[{"astId":69867,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_inner","offset":0,"slot":"0","type":"t_struct(Set)69553_storage"}]},"t_struct(Set)69553_storage":{"encoding":"inplace","label":"struct EnumerableSet.Set","numberOfBytes":"64","members":[{"astId":69548,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_values","offset":0,"slot":"0","type":"t_array(t_bytes32)dyn_storage"},{"astId":69552,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_positions","offset":0,"slot":"1","type":"t_mapping(t_bytes32,t_uint256)"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"contracts/rights/RightsPolicyAuthorizer.sol","id":6203,"exportedSymbols":{"AccessControlledUpgradeable":[2660],"EnumerableSet":[70155],"IPolicy":[1353],"IPolicyAuditorVerifiable":[1399],"IRightsPolicyAuthorizer":[1482],"Initializable":[50462],"LoopOps":[2051],"RightsPolicyAuthorizer":[6202],"UUPSUpgradeable":[50644]},"nodeType":"SourceUnit","src":"124:7240:59","nodes":[{"id":5896,"nodeType":"PragmaDirective","src":"124:23:59","nodes":[],"literals":["solidity","0.8",".26"]},{"id":5898,"nodeType":"ImportDirective","src":"149:98:59","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":6203,"sourceUnit":50463,"symbolAliases":[{"foreign":{"id":5897,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50462,"src":"158:13:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5900,"nodeType":"ImportDirective","src":"248:88:59","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":6203,"sourceUnit":70156,"symbolAliases":[{"foreign":{"id":5899,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70155,"src":"257:13:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5902,"nodeType":"ImportDirective","src":"337:102:59","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":6203,"sourceUnit":50645,"symbolAliases":[{"foreign":{"id":5901,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50644,"src":"346:15:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5904,"nodeType":"ImportDirective","src":"440:115:59","nodes":[],"absolutePath":"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":6203,"sourceUnit":2661,"symbolAliases":[{"foreign":{"id":5903,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2660,"src":"449:27:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5906,"nodeType":"ImportDirective","src":"557:72:59","nodes":[],"absolutePath":"contracts/core/interfaces/policies/IPolicy.sol","file":"@synaps3/core/interfaces/policies/IPolicy.sol","nameLocation":"-1:-1:-1","scope":6203,"sourceUnit":1354,"symbolAliases":[{"foreign":{"id":5905,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1353,"src":"566:7:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5908,"nodeType":"ImportDirective","src":"630:102:59","nodes":[],"absolutePath":"contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol","file":"@synaps3/core/interfaces/rights/IRightsPolicyAuthorizer.sol","nameLocation":"-1:-1:-1","scope":6203,"sourceUnit":1483,"symbolAliases":[{"foreign":{"id":5907,"name":"IRightsPolicyAuthorizer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1482,"src":"639:23:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5910,"nodeType":"ImportDirective","src":"733:106:59","nodes":[],"absolutePath":"contracts/core/interfaces/policies/IPolicyAuditorVerifiable.sol","file":"@synaps3/core/interfaces/policies/IPolicyAuditorVerifiable.sol","nameLocation":"-1:-1:-1","scope":6203,"sourceUnit":1400,"symbolAliases":[{"foreign":{"id":5909,"name":"IPolicyAuditorVerifiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1399,"src":"742:24:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5912,"nodeType":"ImportDirective","src":"840:62:59","nodes":[],"absolutePath":"contracts/core/libraries/LoopOps.sol","file":"@synaps3/core/libraries/LoopOps.sol","nameLocation":"-1:-1:-1","scope":6203,"sourceUnit":2052,"symbolAliases":[{"foreign":{"id":5911,"name":"LoopOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2051,"src":"849:7:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6202,"nodeType":"ContractDefinition","src":"904:6459:59","nodes":[{"id":5923,"nodeType":"UsingForDirective","src":"1046:26:59","nodes":[],"global":false,"libraryName":{"id":5921,"name":"LoopOps","nameLocations":["1052:7:59"],"nodeType":"IdentifierPath","referencedDeclaration":2051,"src":"1052:7:59"},"typeName":{"id":5922,"name":"uint256","nodeType":"ElementaryTypeName","src":"1064:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":5927,"nodeType":"UsingForDirective","src":"1077:49:59","nodes":[],"global":false,"libraryName":{"id":5924,"name":"EnumerableSet","nameLocations":["1083:13:59"],"nodeType":"IdentifierPath","referencedDeclaration":70155,"src":"1083:13:59"},"typeName":{"id":5926,"nodeType":"UserDefinedTypeName","pathNode":{"id":5925,"name":"EnumerableSet.AddressSet","nameLocations":["1101:13:59","1115:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":69868,"src":"1101:24:59"},"referencedDeclaration":69868,"src":"1101:24:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$69868_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":5931,"nodeType":"VariableDeclaration","src":"1521:54:59","nodes":[],"constant":false,"documentation":{"id":5928,"nodeType":"StructuredDocumentation","src":"1455:61:59","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"82e2b7c8","mutability":"immutable","name":"POLICY_AUDIT","nameLocation":"1563:12:59","scope":6202,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1399","typeString":"contract IPolicyAuditorVerifiable"},"typeName":{"id":5930,"nodeType":"UserDefinedTypeName","pathNode":{"id":5929,"name":"IPolicyAuditorVerifiable","nameLocations":["1521:24:59"],"nodeType":"IdentifierPath","referencedDeclaration":1399,"src":"1521:24:59"},"referencedDeclaration":1399,"src":"1521:24:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1399","typeString":"contract IPolicyAuditorVerifiable"}},"visibility":"public"},{"id":5937,"nodeType":"VariableDeclaration","src":"1668:72:59","nodes":[],"constant":false,"documentation":{"id":5932,"nodeType":"StructuredDocumentation","src":"1582:81:59","text":"@dev Mapping to store the delegated rights for each policy contract (address)"},"mutability":"mutable","name":"_authorizedPolicies","nameLocation":"1721:19:59","scope":6202,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$69868_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet)"},"typeName":{"id":5936,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5933,"name":"address","nodeType":"ElementaryTypeName","src":"1676:7:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1668:44:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$69868_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5935,"nodeType":"UserDefinedTypeName","pathNode":{"id":5934,"name":"EnumerableSet.AddressSet","nameLocations":["1687:13:59","1701:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":69868,"src":"1687:24:59"},"referencedDeclaration":69868,"src":"1687:24:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$69868_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"private"},{"id":5944,"nodeType":"EventDefinition","src":"1947:68:59","nodes":[],"anonymous":false,"documentation":{"id":5938,"nodeType":"StructuredDocumentation","src":"1746:196:59","text":"@notice Emitted when rights are granted to a policy for content.\n @param policy The policy contract address granted rights.\n @param holder The address of the asset rights holder."},"eventSelector":"164745c0d5815644c1e92a17e242e89f9c0fd523fc3e94071b60f165692f3d79","name":"RightsGranted","nameLocation":"1953:13:59","parameters":{"id":5943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5940,"indexed":true,"mutability":"mutable","name":"policy","nameLocation":"1983:6:59","nodeType":"VariableDeclaration","scope":5944,"src":"1967:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5939,"name":"address","nodeType":"ElementaryTypeName","src":"1967:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5942,"indexed":true,"mutability":"mutable","name":"holder","nameLocation":"2007:6:59","nodeType":"VariableDeclaration","scope":5944,"src":"1991:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5941,"name":"address","nodeType":"ElementaryTypeName","src":"1991:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1966:48:59"}},{"id":5951,"nodeType":"EventDefinition","src":"2239:68:59","nodes":[],"anonymous":false,"documentation":{"id":5945,"nodeType":"StructuredDocumentation","src":"2020:214:59","text":"@notice Emitted when rights are revoked from a policy for content.\n @param policy The policy contract address whose rights are being revoked.\n @param holder The address of the asset rights holder."},"eventSelector":"e26ab5559d9c979fe9df51c8a6ac8f71ef871393f720d7bd56f2e600d1bb680e","name":"RightsRevoked","nameLocation":"2245:13:59","parameters":{"id":5950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5947,"indexed":true,"mutability":"mutable","name":"policy","nameLocation":"2275:6:59","nodeType":"VariableDeclaration","scope":5951,"src":"2259:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5946,"name":"address","nodeType":"ElementaryTypeName","src":"2259:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5949,"indexed":true,"mutability":"mutable","name":"holder","nameLocation":"2299:6:59","nodeType":"VariableDeclaration","scope":5951,"src":"2283:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5948,"name":"address","nodeType":"ElementaryTypeName","src":"2283:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2258:48:59"}},{"id":5956,"nodeType":"ErrorDefinition","src":"2460:46:59","nodes":[],"documentation":{"id":5952,"nodeType":"StructuredDocumentation","src":"2313:142:59","text":"@dev Error thrown when a policy has not been audited or approved for operation.\n @param policy The address of the unaudited policy."},"errorSelector":"e63549fa","name":"InvalidNotAuditedPolicy","nameLocation":"2466:23:59","parameters":{"id":5955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5954,"mutability":"mutable","name":"policy","nameLocation":"2498:6:59","nodeType":"VariableDeclaration","scope":5956,"src":"2490:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5953,"name":"address","nodeType":"ElementaryTypeName","src":"2490:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2489:16:59"}},{"id":5961,"nodeType":"ErrorDefinition","src":"2666:49:59","nodes":[],"documentation":{"id":5957,"nodeType":"StructuredDocumentation","src":"2511:150:59","text":"@dev Error thrown when there is an issue with the policy setup.\n @param reason A string explaining the reason for the invalid policy setup."},"errorSelector":"47fc3bab","name":"InvalidPolicyInitialization","nameLocation":"2672:27:59","parameters":{"id":5960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5959,"mutability":"mutable","name":"reason","nameLocation":"2707:6:59","nodeType":"VariableDeclaration","scope":5961,"src":"2700:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5958,"name":"string","nodeType":"ElementaryTypeName","src":"2700:6:59","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2699:15:59"}},{"id":5977,"nodeType":"FunctionDefinition","src":"2774:385:59","nodes":[],"body":{"id":5976,"nodeType":"Block","src":"2807:352:59","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5967,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50430,"src":"3007:20:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3007:22:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5969,"nodeType":"ExpressionStatement","src":"3007:22:59"},{"expression":{"id":5974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5970,"name":"POLICY_AUDIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5931,"src":"3100:12:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1399","typeString":"contract IPolicyAuditorVerifiable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5972,"name":"policyAudit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5964,"src":"3140:11:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5971,"name":"IPolicyAuditorVerifiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1399,"src":"3115:24:59","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyAuditorVerifiable_$1399_$","typeString":"type(contract IPolicyAuditorVerifiable)"}},"id":5973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3115:37:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1399","typeString":"contract IPolicyAuditorVerifiable"}},"src":"3100:52:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1399","typeString":"contract IPolicyAuditorVerifiable"}},"id":5975,"nodeType":"ExpressionStatement","src":"3100:52:59"}]},"documentation":{"id":5962,"nodeType":"StructuredDocumentation","src":"2721:48:59","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":5965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5964,"mutability":"mutable","name":"policyAudit","nameLocation":"2794:11:59","nodeType":"VariableDeclaration","scope":5977,"src":"2786:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5963,"name":"address","nodeType":"ElementaryTypeName","src":"2786:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2785:21:59"},"returnParameters":{"id":5966,"nodeType":"ParameterList","parameters":[],"src":"2807:0:59"},"scope":6202,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":5993,"nodeType":"FunctionDefinition","src":"3210:151:59","nodes":[],"body":{"id":5992,"nodeType":"Block","src":"3272:89:59","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5985,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50516,"src":"3282:22:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3282:24:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5987,"nodeType":"ExpressionStatement","src":"3282:24:59"},{"expression":{"arguments":[{"id":5989,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5980,"src":"3340:13:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5988,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2595,"src":"3316:23:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3316:38:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5991,"nodeType":"ExpressionStatement","src":"3316:38:59"}]},"documentation":{"id":5978,"nodeType":"StructuredDocumentation","src":"3165:40:59","text":"@notice Initializes the proxy state."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":5983,"kind":"modifierInvocation","modifierName":{"id":5982,"name":"initializer","nameLocations":["3260:11:59"],"nodeType":"IdentifierPath","referencedDeclaration":50316,"src":"3260:11:59"},"nodeType":"ModifierInvocation","src":"3260:11:59"}],"name":"initialize","nameLocation":"3219:10:59","parameters":{"id":5981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5980,"mutability":"mutable","name":"accessManager","nameLocation":"3238:13:59","nodeType":"VariableDeclaration","scope":5993,"src":"3230:21:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5979,"name":"address","nodeType":"ElementaryTypeName","src":"3230:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3229:23:59"},"returnParameters":{"id":5984,"nodeType":"ParameterList","parameters":[],"src":"3272:0:59"},"scope":6202,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":6047,"nodeType":"FunctionDefinition","src":"3602:697:59","nodes":[],"body":{"id":6046,"nodeType":"Block","src":"3673:626:59","nodes":[],"statements":[{"condition":{"id":6004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3774:23:59","subExpression":{"arguments":[{"id":6002,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5996,"src":"3790:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6001,"name":"_isValidPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6201,"src":"3775:14:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":6003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3775:22:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6009,"nodeType":"IfStatement","src":"3770:67:59","trueBody":{"errorCall":{"arguments":[{"id":6006,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5996,"src":"3830:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6005,"name":"InvalidNotAuditedPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5956,"src":"3806:23:59","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":6007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3806:31:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6008,"nodeType":"RevertStatement","src":"3799:38:59"}},{"assignments":[6011,null],"declarations":[{"constant":false,"id":6011,"mutability":"mutable","name":"success","nameLocation":"3958:7:59","nodeType":"VariableDeclaration","scope":6046,"src":"3953:12:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6010,"name":"bool","nodeType":"ElementaryTypeName","src":"3953:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":6024,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":6016,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1353,"src":"3998:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$1353_$","typeString":"type(contract IPolicy)"}},"id":6017,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4006:10:59","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":1305,"src":"3998:18:59","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function IPolicy.initialize(address,bytes calldata)"}},{"components":[{"expression":{"id":6018,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4019:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4023:6:59","memberName":"sender","nodeType":"MemberAccess","src":"4019:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6020,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5998,"src":"4031:4:59","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"id":6021,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4018:18:59","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_calldata_ptr_$","typeString":"tuple(address,bytes calldata)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function IPolicy.initialize(address,bytes calldata)"},{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_calldata_ptr_$","typeString":"tuple(address,bytes calldata)"}],"expression":{"id":6014,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3983:3:59","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6015,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3987:10:59","memberName":"encodeCall","nodeType":"MemberAccess","src":"3983:14:59","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3983:54:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6012,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5996,"src":"3971:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3978:4:59","memberName":"call","nodeType":"MemberAccess","src":"3971:11:59","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3971:67:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3952:86:59"},{"condition":{"id":6026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4052:8:59","subExpression":{"id":6025,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6011,"src":"4053:7:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6031,"nodeType":"IfStatement","src":"4048:91:59","trueBody":{"errorCall":{"arguments":[{"hexValue":"4572726f7220647572696e6720706f6c69637920696e697469616c697a6174696f6e2063616c6c","id":6028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4097:41:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_466ff33af544a3258ce48b30829c401c1b82fc1a667216dc12b6fb6a650ffe3f","typeString":"literal_string \"Error during policy initialization call\""},"value":"Error during policy initialization call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_466ff33af544a3258ce48b30829c401c1b82fc1a667216dc12b6fb6a650ffe3f","typeString":"literal_string \"Error during policy initialization call\""}],"id":6027,"name":"InvalidPolicyInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"4069:27:59","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":6029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4069:70:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6030,"nodeType":"RevertStatement","src":"4062:77:59"}},{"expression":{"arguments":[{"id":6037,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5996,"src":"4185:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":6032,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5937,"src":"4149:19:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$69868_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":6035,"indexExpression":{"expression":{"id":6033,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4169:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4173:6:59","memberName":"sender","nodeType":"MemberAccess","src":"4169:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4149:31:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$69868_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":6036,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4181:3:59","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":69895,"src":"4149:35:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$69868_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$69868_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":6038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4149:43:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6039,"nodeType":"ExpressionStatement","src":"4149:43:59"},{"eventCall":{"arguments":[{"id":6041,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5996,"src":"4273:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6042,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4281:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4285:6:59","memberName":"sender","nodeType":"MemberAccess","src":"4281:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6040,"name":"RightsGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5944,"src":"4259:13:59","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":6044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4259:33:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6045,"nodeType":"EmitStatement","src":"4254:38:59"}]},"baseFunctions":[1475],"documentation":{"id":5994,"nodeType":"StructuredDocumentation","src":"3367:230:59","text":"@notice Initializes and authorizes a policy contract for content held by the holder.\n @param policy The address of the policy contract to be initialized and authorized.\n @param data The data to initialize policy."},"functionSelector":"2f6cc102","implemented":true,"kind":"function","modifiers":[],"name":"authorizePolicy","nameLocation":"3611:15:59","parameters":{"id":5999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5996,"mutability":"mutable","name":"policy","nameLocation":"3635:6:59","nodeType":"VariableDeclaration","scope":6047,"src":"3627:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5995,"name":"address","nodeType":"ElementaryTypeName","src":"3627:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5998,"mutability":"mutable","name":"data","nameLocation":"3658:4:59","nodeType":"VariableDeclaration","scope":6047,"src":"3643:19:59","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5997,"name":"bytes","nodeType":"ElementaryTypeName","src":"3643:5:59","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3626:37:59"},"returnParameters":{"id":6000,"nodeType":"ParameterList","parameters":[],"src":"3673:0:59"},"scope":6202,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":6068,"nodeType":"FunctionDefinition","src":"4475:158:59","nodes":[],"body":{"id":6067,"nodeType":"Block","src":"4522:111:59","nodes":[],"statements":[{"expression":{"arguments":[{"id":6058,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6050,"src":"4571:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":6053,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5937,"src":"4532:19:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$69868_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":6056,"indexExpression":{"expression":{"id":6054,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4552:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4556:6:59","memberName":"sender","nodeType":"MemberAccess","src":"4552:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4532:31:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$69868_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":6057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4564:6:59","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":69922,"src":"4532:38:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$69868_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$69868_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":6059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4532:46:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6060,"nodeType":"ExpressionStatement","src":"4532:46:59"},{"eventCall":{"arguments":[{"id":6062,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6050,"src":"4607:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6063,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4615:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4619:6:59","memberName":"sender","nodeType":"MemberAccess","src":"4615:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6061,"name":"RightsRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5951,"src":"4593:13:59","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":6065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4593:33:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6066,"nodeType":"EmitStatement","src":"4588:38:59"}]},"baseFunctions":[1481],"documentation":{"id":6048,"nodeType":"StructuredDocumentation","src":"4305:165:59","text":"@notice Revokes the delegation of rights to a policy contract.\n @param policy The address of the policy contract whose rights delegation is being revoked."},"functionSelector":"9fda230a","implemented":true,"kind":"function","modifiers":[],"name":"revokePolicy","nameLocation":"4484:12:59","parameters":{"id":6051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6050,"mutability":"mutable","name":"policy","nameLocation":"4505:6:59","nodeType":"VariableDeclaration","scope":6068,"src":"4497:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6049,"name":"address","nodeType":"ElementaryTypeName","src":"4497:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4496:16:59"},"returnParameters":{"id":6052,"nodeType":"ParameterList","parameters":[],"src":"4522:0:59"},"scope":6202,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":6090,"nodeType":"FunctionDefinition","src":"4896:183:59","nodes":[],"body":{"id":6089,"nodeType":"Block","src":"4985:94:59","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6082,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6071,"src":"5039:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":6078,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5937,"src":"5002:19:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$69868_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":6080,"indexExpression":{"id":6079,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6073,"src":"5022:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5002:27:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$69868_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":6081,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5030:8:59","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":69949,"src":"5002:36:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$69868_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$69868_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":6083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5002:44:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":6085,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6071,"src":"5065:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6084,"name":"_isValidPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6201,"src":"5050:14:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":6086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5050:22:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5002:70:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6077,"id":6088,"nodeType":"Return","src":"4995:77:59"}]},"baseFunctions":[1467],"documentation":{"id":6069,"nodeType":"StructuredDocumentation","src":"4639:252:59","text":"@dev Verify if the specified policy contract has been delegated the rights by the asset holder.\n @param policy The address of the policy contract to check for delegation.\n @param holder the asset rights holder to check for delegation."},"functionSelector":"ca89d8b2","implemented":true,"kind":"function","modifiers":[],"name":"isPolicyAuthorized","nameLocation":"4905:18:59","parameters":{"id":6074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6071,"mutability":"mutable","name":"policy","nameLocation":"4932:6:59","nodeType":"VariableDeclaration","scope":6090,"src":"4924:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6070,"name":"address","nodeType":"ElementaryTypeName","src":"4924:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6073,"mutability":"mutable","name":"holder","nameLocation":"4948:6:59","nodeType":"VariableDeclaration","scope":6090,"src":"4940:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6072,"name":"address","nodeType":"ElementaryTypeName","src":"4940:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4923:32:59"},"returnParameters":{"id":6077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6076,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6090,"src":"4979:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6075,"name":"bool","nodeType":"ElementaryTypeName","src":"4979:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4978:6:59"},"scope":6202,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6169,"nodeType":"FunctionDefinition","src":"5380:1286:59","nodes":[],"body":{"id":6168,"nodeType":"Block","src":"5468:1198:59","nodes":[],"statements":[{"assignments":[6103],"declarations":[{"constant":false,"id":6103,"mutability":"mutable","name":"policies","nameLocation":"6106:8:59","nodeType":"VariableDeclaration","scope":6168,"src":"6089:25:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6101,"name":"address","nodeType":"ElementaryTypeName","src":"6089:7:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6102,"nodeType":"ArrayTypeName","src":"6089:9:59","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":6109,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":6104,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5937,"src":"6117:19:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$69868_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":6106,"indexExpression":{"id":6105,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6093,"src":"6137:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6117:27:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$69868_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":6107,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6145:6:59","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":70021,"src":"6117:34:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$69868_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$69868_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":6108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6117:36:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6089:64:59"},{"assignments":[6114],"declarations":[{"constant":false,"id":6114,"mutability":"mutable","name":"filtered","nameLocation":"6180:8:59","nodeType":"VariableDeclaration","scope":6168,"src":"6163:25:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6112,"name":"address","nodeType":"ElementaryTypeName","src":"6163:7:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6113,"nodeType":"ArrayTypeName","src":"6163:9:59","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":6121,"initialValue":{"arguments":[{"expression":{"id":6118,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6103,"src":"6205:8:59","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6214:6:59","memberName":"length","nodeType":"MemberAccess","src":"6205:15:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6191:13:59","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":6115,"name":"address","nodeType":"ElementaryTypeName","src":"6195:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6116,"nodeType":"ArrayTypeName","src":"6195:9:59","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":6120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6191:30:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6163:58:59"},{"assignments":[6123],"declarations":[{"constant":false,"id":6123,"mutability":"mutable","name":"policiesLen","nameLocation":"6239:11:59","nodeType":"VariableDeclaration","scope":6168,"src":"6231:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6122,"name":"uint256","nodeType":"ElementaryTypeName","src":"6231:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6126,"initialValue":{"expression":{"id":6124,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6103,"src":"6253:8:59","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6262:6:59","memberName":"length","nodeType":"MemberAccess","src":"6253:15:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6231:37:59"},{"assignments":[6128],"declarations":[{"constant":false,"id":6128,"mutability":"mutable","name":"j","nameLocation":"6286:1:59","nodeType":"VariableDeclaration","scope":6168,"src":"6278:9:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6127,"name":"uint256","nodeType":"ElementaryTypeName","src":"6278:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6130,"initialValue":{"hexValue":"30","id":6129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6290:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6278:13:59"},{"body":{"id":6164,"nodeType":"Block","src":"6380:254:59","statements":[{"condition":{"id":6149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6398:28:59","subExpression":{"arguments":[{"baseExpression":{"id":6145,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6103,"src":"6414:8:59","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6147,"indexExpression":{"id":6146,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6132,"src":"6423:1:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6414:11:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6144,"name":"_isValidPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6201,"src":"6399:14:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":6148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6399:27:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6151,"nodeType":"IfStatement","src":"6394:42:59","trueBody":{"id":6150,"nodeType":"Continue","src":"6428:8:59"}},{"expression":{"id":6158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6152,"name":"filtered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6114,"src":"6450:8:59","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6154,"indexExpression":{"id":6153,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6128,"src":"6459:1:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6450:11:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":6155,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6103,"src":"6464:8:59","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6157,"indexExpression":{"id":6156,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6132,"src":"6473:1:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6464:11:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6450:25:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6159,"nodeType":"ExpressionStatement","src":"6450:25:59"},{"id":6163,"nodeType":"UncheckedBlock","src":"6578:46:59","statements":[{"expression":{"id":6161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6606:3:59","subExpression":{"id":6160,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6128,"src":"6608:1:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6162,"nodeType":"ExpressionStatement","src":"6606:3:59"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6135,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6132,"src":"6341:1:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6136,"name":"policiesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6123,"src":"6345:11:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6341:15:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6165,"initializationExpression":{"assignments":[6132],"declarations":[{"constant":false,"id":6132,"mutability":"mutable","name":"i","nameLocation":"6334:1:59","nodeType":"VariableDeclaration","scope":6165,"src":"6326:9:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6131,"name":"uint256","nodeType":"ElementaryTypeName","src":"6326:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6134,"initialValue":{"hexValue":"30","id":6133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6338:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6326:13:59"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":6142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6138,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6132,"src":"6358:1:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":6139,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6132,"src":"6362:1:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6364:12:59","memberName":"uncheckedInc","nodeType":"MemberAccess","referencedDeclaration":2050,"src":"6362:14:59","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":6141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6362:16:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6358:20:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6143,"nodeType":"ExpressionStatement","src":"6358:20:59"},"nodeType":"ForStatement","src":"6321:313:59"},{"expression":{"id":6166,"name":"filtered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6114,"src":"6651:8:59","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":6098,"id":6167,"nodeType":"Return","src":"6644:15:59"}]},"baseFunctions":[1457],"documentation":{"id":6091,"nodeType":"StructuredDocumentation","src":"5085:290:59","text":"@notice Retrieves all policies authorized by a specific content holder.\n @dev This function returns an array of policy addresses that have been granted rights by the holder.\n @param holder The address of the asset rights holder whose authorized policies are being queried."},"functionSelector":"591b43c5","implemented":true,"kind":"function","modifiers":[],"name":"getAuthorizedPolicies","nameLocation":"5389:21:59","parameters":{"id":6094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6093,"mutability":"mutable","name":"holder","nameLocation":"5419:6:59","nodeType":"VariableDeclaration","scope":6169,"src":"5411:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6092,"name":"address","nodeType":"ElementaryTypeName","src":"5411:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5410:16:59"},"returnParameters":{"id":6098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6097,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6169,"src":"5450:16:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6095,"name":"address","nodeType":"ElementaryTypeName","src":"5450:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6096,"nodeType":"ArrayTypeName","src":"5450:9:59","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5449:18:59"},"scope":6202,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6179,"nodeType":"FunctionDefinition","src":"6864:84:59","nodes":[],"body":{"id":6178,"nodeType":"Block","src":"6946:2:59","nodes":[],"statements":[]},"baseFunctions":[50598],"documentation":{"id":6170,"nodeType":"StructuredDocumentation","src":"6672:187:59","text":"@dev Authorizes the upgrade of the contract.\n @notice Only the owner can authorize the upgrade.\n @param newImplementation The address of the new implementation contract."},"implemented":true,"kind":"function","modifiers":[{"id":6176,"kind":"modifierInvocation","modifierName":{"id":6175,"name":"onlyAdmin","nameLocations":["6936:9:59"],"nodeType":"IdentifierPath","referencedDeclaration":2578,"src":"6936:9:59"},"nodeType":"ModifierInvocation","src":"6936:9:59"}],"name":"_authorizeUpgrade","nameLocation":"6873:17:59","overrides":{"id":6174,"nodeType":"OverrideSpecifier","overrides":[],"src":"6927:8:59"},"parameters":{"id":6173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6172,"mutability":"mutable","name":"newImplementation","nameLocation":"6899:17:59","nodeType":"VariableDeclaration","scope":6179,"src":"6891:25:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6171,"name":"address","nodeType":"ElementaryTypeName","src":"6891:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6890:27:59"},"returnParameters":{"id":6177,"nodeType":"ParameterList","parameters":[],"src":"6946:0:59"},"scope":6202,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6201,"nodeType":"FunctionDefinition","src":"7213:148:59","nodes":[],"body":{"id":6200,"nodeType":"Block","src":"7281:80:59","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6187,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6182,"src":"7299:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7317:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6189,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7309:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6188,"name":"address","nodeType":"ElementaryTypeName","src":"7309:7:59","typeDescriptions":{}}},"id":6191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7309:10:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7299:20:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":6195,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6182,"src":"7346:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6193,"name":"POLICY_AUDIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5931,"src":"7323:12:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1399","typeString":"contract IPolicyAuditorVerifiable"}},"id":6194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7336:9:59","memberName":"isAudited","nodeType":"MemberAccess","referencedDeclaration":1398,"src":"7323:22:59","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":6196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7323:30:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7299:54:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6198,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7298:56:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6186,"id":6199,"nodeType":"Return","src":"7291:63:59"}]},"documentation":{"id":6180,"nodeType":"StructuredDocumentation","src":"6954:254:59","text":"@notice Verifies whether a given policy is valid.\n @dev The function ensures that the policy address is not the zero address\n and that the policy has been audited.\n @param policy The address of the policy contract to verify."},"implemented":true,"kind":"function","modifiers":[],"name":"_isValidPolicy","nameLocation":"7222:14:59","parameters":{"id":6183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6182,"mutability":"mutable","name":"policy","nameLocation":"7245:6:59","nodeType":"VariableDeclaration","scope":6201,"src":"7237:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6181,"name":"address","nodeType":"ElementaryTypeName","src":"7237:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7236:16:59"},"returnParameters":{"id":6186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6185,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6201,"src":"7275:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6184,"name":"bool","nodeType":"ElementaryTypeName","src":"7275:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7274:6:59"},"scope":6202,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":5913,"name":"Initializable","nameLocations":["943:13:59"],"nodeType":"IdentifierPath","referencedDeclaration":50462,"src":"943:13:59"},"id":5914,"nodeType":"InheritanceSpecifier","src":"943:13:59"},{"baseName":{"id":5915,"name":"UUPSUpgradeable","nameLocations":["962:15:59"],"nodeType":"IdentifierPath","referencedDeclaration":50644,"src":"962:15:59"},"id":5916,"nodeType":"InheritanceSpecifier","src":"962:15:59"},{"baseName":{"id":5917,"name":"AccessControlledUpgradeable","nameLocations":["983:27:59"],"nodeType":"IdentifierPath","referencedDeclaration":2660,"src":"983:27:59"},"id":5918,"nodeType":"InheritanceSpecifier","src":"983:27:59"},{"baseName":{"id":5919,"name":"IRightsPolicyAuthorizer","nameLocations":["1016:23:59"],"nodeType":"IdentifierPath","referencedDeclaration":1482,"src":"1016:23:59"},"id":5920,"nodeType":"InheritanceSpecifier","src":"1016:23:59"}],"canonicalName":"RightsPolicyAuthorizer","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[6202,1482,2660,48089,53586,52254,50644,59214,50462],"name":"RightsPolicyAuthorizer","nameLocation":"913:22:59","scope":6203,"usedErrors":[2560,5956,5961,50225,50228,50489,50494,53557,53563,53567,59409,59422,61705,61997],"usedEvents":[5944,5951,50233,53553,59136]}],"license":"MIT"},"id":59} \ No newline at end of file diff --git a/src/config/abi/SubscriptionPolicy.json b/src/config/abi/SubscriptionPolicy.json index c829c70dc..d5289a595 100644 --- a/src/config/abi/SubscriptionPolicy.json +++ b/src/config/abi/SubscriptionPolicy.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"rightPolicyManagerAddress","type":"address","internalType":"address"},{"name":"ownershipAddress","type":"address","internalType":"address"},{"name":"providerAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ASSET_OWNERSHIP","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAssetOwnership"}],"stateMutability":"view"},{"type":"function","name":"ATTESTATION_PROVIDER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAttestationProvider"}],"stateMutability":"view"},{"type":"function","name":"RIGHTS_POLICY_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsPolicyManager"}],"stateMutability":"view"},{"type":"function","name":"attestations","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"description","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"enforce","inputs":[{"name":"holder","type":"address","internalType":"address"},{"name":"agreement","type":"tuple","internalType":"struct T.Agreement","components":[{"name":"active","type":"bool","internalType":"bool"},{"name":"broker","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"},{"name":"initiator","type":"address","internalType":"address"},{"name":"createdAt","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"fees","type":"uint256","internalType":"uint256"},{"name":"available","type":"uint256","internalType":"uint256"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getAttestation","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAttestationProvider","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getHolder","inputs":[{"name":"assetId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"holder","type":"address","internalType":"address"},{"name":"init","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAccessAllowed","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isAccessAllowed","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"assetId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isCompliant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"resolveTerms","inputs":[{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct T.Terms","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"rateBasis","type":"uint8","internalType":"enum T.RateBasis"},{"name":"uri","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"resolveTerms","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct T.Terms","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"rateBasis","type":"uint8","internalType":"enum T.RateBasis"},{"name":"uri","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"AccessGranted","inputs":[{"name":"holder","type":"address","indexed":true,"internalType":"address"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"attestationId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"InvalidAssetHolder","inputs":[]},{"type":"error","name":"InvalidAttestation","inputs":[]},{"type":"error","name":"InvalidEnforcement","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidInitialization","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidNotSupportedOperation","inputs":[]},{"type":"error","name":"InvalidPolicyInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedCall","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x60e0346100c857601f61175d38819003918201601f19168301916001600160401b038311848410176100cc578084926060946040528339810103126100c857610047816100e0565b61005f6040610058602085016100e0565b93016100e0565b60015f556001600160a01b0390811660805290811660a0521660c05260405161166890816100f58239608051818181610a3b01528181610d43015261149f015260a0518181816101620152818161031001526105cb015260c05181818161010e01526115590152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100c85756fe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461113157508063028dd4251461018657806306fdde03146110d257806319ad44fc14610d17578063392e53cd146110b05780633c6a5ee314610f5f5780637284e41614610da057806396ba154d14610230578063ac3e8fb014610d67578063b1b87ffb14610d17578063c43e04c014610574578063d1f5789414610277578063dccc792f14610235578063dd4fcc3f14610230578063e8a96b46146101f4578063e8d55ccf14610186578063f1bdc452146101365763f520d4eb146100e2575f80fd5b34610132575f60031936011261013257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b34610132575f60031936011261013257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101325760406003193601126101325761019f6111cf565b73ffffffffffffffffffffffffffffffffffffffff6101bc6111f2565b91165f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060405f2054604051908152f35b34610132576020600319360112610132576020610212600435611510565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b611279565b346101325760206003193601126101325761024e611318565b507f0ea7889c000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610132576040600319360112610132576102906111cf565b60243567ffffffffffffffff8111610132573660238201121561013257806004013567ffffffffffffffff8111610132578101366024820111610132576040517f8ae2ba5900000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156105695773ffffffffffffffffffffffffffffffffffffffff915f9161053a575b501633036104b657600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556040908290031261013257604460248201359101359173ffffffffffffffffffffffffffffffffffffffff83168093036101325781156104585773ffffffffffffffffffffffffffffffffffffffff9182600192604051926103e68461129f565b835260208301958652165f52600360205260405f2090518155019151167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416176001555f80f35b60646040517f8e53d58600000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c696420737562736372697074696f6e2070726963652e00000000006044820152fd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f6e6c792072696768747320706f6c69637920617574686f72697a657220616c60448201527f6c6f7765642e00000000000000000000000000000000000000000000000000006064820152fd5b61055c915060203d602011610562575b61055481836112d7565b8101906113da565b85610355565b503d61054a565b6040513d5f823e3d90fd5b346101325760406003193601126101325761058d6111cf565b6024359067ffffffffffffffff821161013257816004019061014060031984360301126101325773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610c935760ff6001541615610c6b5773ffffffffffffffffffffffffffffffffffffffff1691825f52600360205260405f2073ffffffffffffffffffffffffffffffffffffffff6001604051926106438461129f565b80548452015416602082015260a48201359261010483019161069b610689610681610679610671878761133c565b905089611390565b845190611390565b9251836113c7565b610693858561133c565b9190506113c7565b8510610be75762015180810290808204620151801490151715610bba57420191824211610bba5760405191610140830183811067ffffffffffffffff821117610b75576040523580151581036101325782526106f960248501611215565b906020830191825261070d60448601611215565b906040840191825261072160648701611215565b966060850197885260808501906084880135825260a0860190815260c086019160c4890135835260e087019360e48a013585523567ffffffffffffffff8111610132578901983660238b0112156101325760048a01359967ffffffffffffffff8b11610b75578a60051b60206004816040519e8f906107a2838701836112d7565b81520192840101019136831161013257602401905b828210610ba2575050506101008801998a526101248101359067ffffffffffffffff82116101325701993660238c0112156101325760048b01359567ffffffffffffffff8711610b755760405196610837601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016602001896112d7565b8088523660248e83010111610132578060248f9e9f9b9a999897969594939f01602089013786016020015f90526101208801958652805173ffffffffffffffffffffffffffffffffffffffff169c8b516040519e8f9b60208d015260408c01523060608c015260808b0160a0905260c08b016108b2916115a8565b978a89037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160a08c015261014089019951151589525173ffffffffffffffffffffffffffffffffffffffff1660208901525173ffffffffffffffffffffffffffffffffffffffff1660408801525173ffffffffffffffffffffffffffffffffffffffff1660608701525160808601525160a08501525160c08401525160e0830152855192610100830161014090528351809152610160830193602001905f5b818110610b46575050509261099c602095936109c893610a0a965190610120818403910152611236565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018852876112d7565b610a2184519160405197889485947f8ca86cad0000000000000000000000000000000000000000000000000000000086526060600487015260648601906115a8565b916024850152600319848303016044850152611236565b03815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1928315610569575f93610b12575b5051908151915f5b838110610a8557602085604051908152f35b8073ffffffffffffffffffffffffffffffffffffffff610aa7600193856115f1565b51165f52600260205260405f20845f526020528560405f205573ffffffffffffffffffffffffffffffffffffffff610adf82856115f1565b5116847f65d0cc1e52d49938ca4ad9f423c79c1b84d914b9a683fbc5d3f93ac3cc5635f560206040518a8152a301610a73565b9092506020813d602011610b3e575b81610b2e602093836112d7565b8101031261013257519183610a6b565b3d9150610b21565b825173ffffffffffffffffffffffffffffffffffffffff1686528a965060209586019590920191600101610972565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60208091610baf84611215565b8152019101906107b7565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f496e73756666696369656e742066756e647320666f722073756273637269707460448201527f696f6e00000000000000000000000000000000000000000000000000000000006064820152fd5b7f83403c5c000000000000000000000000000000000000000000000000000000005f5260045ffd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792072696768747320706f6c696379206d616e6167657220616c6c6f7760448201527f65642e00000000000000000000000000000000000000000000000000000000006064820152fd5b34610132575f60031936011261013257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610132576040600319360112610132576020610d96610d856111cf565b610d90602435611510565b90611406565b6040519015158152f35b34610132575f60031936011261013257610f5b610160610dc360405191826112d7565b61012781527f5468697320706f6c69637920666f6c6c6f77732061207375627363726970746960208201527f6f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c60408201527f6f77696e6720757365727320746f20616363657373206120636f6e74656e742060608201527f686f6c646572277320636174616c6f6720627920706179696e6720612064616960808201527f6c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b60a08201527f65792066656174757265733a0a312920466c657869626c65207375627363726960c08201527f7074696f6e20706572696f64732073657420627920746865206173736574206860e08201527f6f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c206101008201527f636f6e74656e7420647572696e672074686520737562736372697074696f6e206101208201527f706572696f642e00000000000000000000000000000000000000000000000000610140820152604051918291602083526020830190611236565b0390f35b346101325760206003193601126101325773ffffffffffffffffffffffffffffffffffffffff610f8d6111cf565b610f95611318565b50165f52600360205260405f206020604051610fb08161129f565b73ffffffffffffffffffffffffffffffffffffffff6001845494858452015416918291015260405191610fe2836112bb565b825260208201908152604082016002815273ffffffffffffffffffffffffffffffffffffffff604051926110176040856112d7565b600784527f697066733a2f2f00000000000000000000000000000000000000000000000000602085015260608501938452604051946020865251602086015251166040840152516004811015611083578291610f5b9160608401525160808084015260a0830190611236565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b34610132575f60031936011261013257602060ff600154166040519015158152f35b34610132575f60031936011261013257610f5b6040516110f36040826112d7565b601281527f537562736372697074696f6e506f6c69637900000000000000000000000000006020820152604051918291602083526020830190611236565b3461013257602060031936011261013257600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361013257817f7447cd0900000000000000000000000000000000000000000000000000000000602093149081156111a5575b5015158152f35b7f01ffc9a7000000000000000000000000000000000000000000000000000000009150148361119e565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361013257565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361013257565b359073ffffffffffffffffffffffffffffffffffffffff8216820361013257565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b34610132576040600319360112610132576020610d966112976111cf565b610d906111f2565b6040810190811067ffffffffffffffff821117610b7557604052565b6080810190811067ffffffffffffffff821117610b7557604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610b7557604052565b60405190611325826112bb565b606080835f81525f60208201525f60408201520152565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610132570180359067ffffffffffffffff821161013257602001918160051b3603831361013257565b811561139a570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b81810292918115918404141715610bba57565b90816020910312610132575173ffffffffffffffffffffffffffffffffffffffff811681036101325790565b73ffffffffffffffffffffffffffffffffffffffff1690815f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205260405f205490811561150a57604051917febfa62b90000000000000000000000000000000000000000000000000000000083526004830152602482015260208160448173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610569575f916114d2575090565b90506020813d602011611502575b816114ed602093836112d7565b81010312610132575180151581036101325790565b3d91506114e0565b50505f90565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610569575f9161158c575090565b6115a5915060203d6020116105625761055481836112d7565b90565b90602080835192838152019201905f5b8181106115c55750505090565b825173ffffffffffffffffffffffffffffffffffffffff168452602093840193909201916001016115b8565b80518210156116055760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea26469706673582212208f1c6a887ed50750b5a562b3d64e9a43ecfced0370832a710c49c53efac2bd6164736f6c634300081a0033","sourceMap":"270:4054:36:-:0;;;;;;;;;;;;;-1:-1:-1;;270:4054:36;;;;-1:-1:-1;;;;;270:4054:36;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;1857:1:83;-1:-1:-1;1857:1:83;-1:-1:-1;;;;;270:4054:36;;;4717:60:34;;270:4054:36;;;;4787:65:34;270:4054:36;4862:49:34;;270:4054:36;;;;;;;;4717:60:34;270:4054:36;;;;;;;;;;;;;;;4787:65:34;270:4054:36;;;;;;;;;;;;;;;4862:49:34;270:4054:36;;;;;;;;;;;;-1:-1:-1;270:4054:36;;;;;;-1:-1:-1;270:4054:36;;;;;-1:-1:-1;270:4054:36;;;;-1:-1:-1;;;;;270:4054:36;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461113157508063028dd4251461018657806306fdde03146110d257806319ad44fc14610d17578063392e53cd146110b05780633c6a5ee314610f5f5780637284e41614610da057806396ba154d14610230578063ac3e8fb014610d67578063b1b87ffb14610d17578063c43e04c014610574578063d1f5789414610277578063dccc792f14610235578063dd4fcc3f14610230578063e8a96b46146101f4578063e8d55ccf14610186578063f1bdc452146101365763f520d4eb146100e2575f80fd5b34610132575f60031936011261013257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b34610132575f60031936011261013257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101325760406003193601126101325761019f6111cf565b73ffffffffffffffffffffffffffffffffffffffff6101bc6111f2565b91165f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060405f2054604051908152f35b34610132576020600319360112610132576020610212600435611510565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b611279565b346101325760206003193601126101325761024e611318565b507f0ea7889c000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610132576040600319360112610132576102906111cf565b60243567ffffffffffffffff8111610132573660238201121561013257806004013567ffffffffffffffff8111610132578101366024820111610132576040517f8ae2ba5900000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156105695773ffffffffffffffffffffffffffffffffffffffff915f9161053a575b501633036104b657600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556040908290031261013257604460248201359101359173ffffffffffffffffffffffffffffffffffffffff83168093036101325781156104585773ffffffffffffffffffffffffffffffffffffffff9182600192604051926103e68461129f565b835260208301958652165f52600360205260405f2090518155019151167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416176001555f80f35b60646040517f8e53d58600000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c696420737562736372697074696f6e2070726963652e00000000006044820152fd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f6e6c792072696768747320706f6c69637920617574686f72697a657220616c60448201527f6c6f7765642e00000000000000000000000000000000000000000000000000006064820152fd5b61055c915060203d602011610562575b61055481836112d7565b8101906113da565b85610355565b503d61054a565b6040513d5f823e3d90fd5b346101325760406003193601126101325761058d6111cf565b6024359067ffffffffffffffff821161013257816004019061014060031984360301126101325773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610c935760ff6001541615610c6b5773ffffffffffffffffffffffffffffffffffffffff1691825f52600360205260405f2073ffffffffffffffffffffffffffffffffffffffff6001604051926106438461129f565b80548452015416602082015260a48201359261010483019161069b610689610681610679610671878761133c565b905089611390565b845190611390565b9251836113c7565b610693858561133c565b9190506113c7565b8510610be75762015180810290808204620151801490151715610bba57420191824211610bba5760405191610140830183811067ffffffffffffffff821117610b75576040523580151581036101325782526106f960248501611215565b906020830191825261070d60448601611215565b906040840191825261072160648701611215565b966060850197885260808501906084880135825260a0860190815260c086019160c4890135835260e087019360e48a013585523567ffffffffffffffff8111610132578901983660238b0112156101325760048a01359967ffffffffffffffff8b11610b75578a60051b60206004816040519e8f906107a2838701836112d7565b81520192840101019136831161013257602401905b828210610ba2575050506101008801998a526101248101359067ffffffffffffffff82116101325701993660238c0112156101325760048b01359567ffffffffffffffff8711610b755760405196610837601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016602001896112d7565b8088523660248e83010111610132578060248f9e9f9b9a999897969594939f01602089013786016020015f90526101208801958652805173ffffffffffffffffffffffffffffffffffffffff169c8b516040519e8f9b60208d015260408c01523060608c015260808b0160a0905260c08b016108b2916115a8565b978a89037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160a08c015261014089019951151589525173ffffffffffffffffffffffffffffffffffffffff1660208901525173ffffffffffffffffffffffffffffffffffffffff1660408801525173ffffffffffffffffffffffffffffffffffffffff1660608701525160808601525160a08501525160c08401525160e0830152855192610100830161014090528351809152610160830193602001905f5b818110610b46575050509261099c602095936109c893610a0a965190610120818403910152611236565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018852876112d7565b610a2184519160405197889485947f8ca86cad0000000000000000000000000000000000000000000000000000000086526060600487015260648601906115a8565b916024850152600319848303016044850152611236565b03815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1928315610569575f93610b12575b5051908151915f5b838110610a8557602085604051908152f35b8073ffffffffffffffffffffffffffffffffffffffff610aa7600193856115f1565b51165f52600260205260405f20845f526020528560405f205573ffffffffffffffffffffffffffffffffffffffff610adf82856115f1565b5116847f65d0cc1e52d49938ca4ad9f423c79c1b84d914b9a683fbc5d3f93ac3cc5635f560206040518a8152a301610a73565b9092506020813d602011610b3e575b81610b2e602093836112d7565b8101031261013257519183610a6b565b3d9150610b21565b825173ffffffffffffffffffffffffffffffffffffffff1686528a965060209586019590920191600101610972565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60208091610baf84611215565b8152019101906107b7565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f496e73756666696369656e742066756e647320666f722073756273637269707460448201527f696f6e00000000000000000000000000000000000000000000000000000000006064820152fd5b7f83403c5c000000000000000000000000000000000000000000000000000000005f5260045ffd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792072696768747320706f6c696379206d616e6167657220616c6c6f7760448201527f65642e00000000000000000000000000000000000000000000000000000000006064820152fd5b34610132575f60031936011261013257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610132576040600319360112610132576020610d96610d856111cf565b610d90602435611510565b90611406565b6040519015158152f35b34610132575f60031936011261013257610f5b610160610dc360405191826112d7565b61012781527f5468697320706f6c69637920666f6c6c6f77732061207375627363726970746960208201527f6f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c60408201527f6f77696e6720757365727320746f20616363657373206120636f6e74656e742060608201527f686f6c646572277320636174616c6f6720627920706179696e6720612064616960808201527f6c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b60a08201527f65792066656174757265733a0a312920466c657869626c65207375627363726960c08201527f7074696f6e20706572696f64732073657420627920746865206173736574206860e08201527f6f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c206101008201527f636f6e74656e7420647572696e672074686520737562736372697074696f6e206101208201527f706572696f642e00000000000000000000000000000000000000000000000000610140820152604051918291602083526020830190611236565b0390f35b346101325760206003193601126101325773ffffffffffffffffffffffffffffffffffffffff610f8d6111cf565b610f95611318565b50165f52600360205260405f206020604051610fb08161129f565b73ffffffffffffffffffffffffffffffffffffffff6001845494858452015416918291015260405191610fe2836112bb565b825260208201908152604082016002815273ffffffffffffffffffffffffffffffffffffffff604051926110176040856112d7565b600784527f697066733a2f2f00000000000000000000000000000000000000000000000000602085015260608501938452604051946020865251602086015251166040840152516004811015611083578291610f5b9160608401525160808084015260a0830190611236565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b34610132575f60031936011261013257602060ff600154166040519015158152f35b34610132575f60031936011261013257610f5b6040516110f36040826112d7565b601281527f537562736372697074696f6e506f6c69637900000000000000000000000000006020820152604051918291602083526020830190611236565b3461013257602060031936011261013257600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361013257817f7447cd0900000000000000000000000000000000000000000000000000000000602093149081156111a5575b5015158152f35b7f01ffc9a7000000000000000000000000000000000000000000000000000000009150148361119e565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361013257565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361013257565b359073ffffffffffffffffffffffffffffffffffffffff8216820361013257565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b34610132576040600319360112610132576020610d966112976111cf565b610d906111f2565b6040810190811067ffffffffffffffff821117610b7557604052565b6080810190811067ffffffffffffffff821117610b7557604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610b7557604052565b60405190611325826112bb565b606080835f81525f60208201525f60408201520152565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610132570180359067ffffffffffffffff821161013257602001918160051b3603831361013257565b811561139a570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b81810292918115918404141715610bba57565b90816020910312610132575173ffffffffffffffffffffffffffffffffffffffff811681036101325790565b73ffffffffffffffffffffffffffffffffffffffff1690815f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205260405f205490811561150a57604051917febfa62b90000000000000000000000000000000000000000000000000000000083526004830152602482015260208160448173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610569575f916114d2575090565b90506020813d602011611502575b816114ed602093836112d7565b81010312610132575180151581036101325790565b3d91506114e0565b50505f90565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610569575f9161158c575090565b6115a5915060203d6020116105625761055481836112d7565b90565b90602080835192838152019201905f5b8181106115c55750505090565b825173ffffffffffffffffffffffffffffffffffffffff168452602093840193909201916001016115b8565b80518210156116055760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea26469706673582212208f1c6a887ed50750b5a562b3d64e9a43ecfced0370832a710c49c53efac2bd6164736f6c634300081a0033","sourceMap":"270:4054:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;270:4054:36;;;;;;;;;1117:48:34;270:4054:36;;;;;;;;;;;;;-1:-1:-1;;270:4054:36;;;;;;;;;1052:59:34;270:4054:36;;;;;;;;;-1:-1:-1;;270:4054:36;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;5472:12:34;270:4054:36;;;;;;5472:31:34;270:4054:36;-1:-1:-1;270:4054:36;;;;;-1:-1:-1;270:4054:36;;;;;;;;;;;;;-1:-1:-1;;270:4054:36;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;270:4054:36;;;;;;;:::i;:::-;;6274:30:34;270:4054:36;6274:30:34;270:4054:36;;6274:30:34;270:4054:36;;;;;-1:-1:-1;;270:4054:36;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3464:43:34;;270:4054:36;3464:21:34;270:4054:36;3464:21:34;270:4054:36;3464:21:34;270:4054:36;3464:43:34;;;;;;270:4054:36;3464:43:34;270:4054:36;3464:43:34;;;270:4054:36;;;3442:10:34;:66;3438:169;;3995:20;270:4054:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1731:10;;1727:75;;270:4054;;;3995:20:34;270:4054:36;;;;;;;:::i;:::-;;;;1913:24;;270:4054;;;;;;1893:9;270:4054;;;;;;;;;;;;;;;;;;;;3995:20:34;270:4054:36;;;;;3995:20:34;270:4054:36;;;;1727:75;1750:52;270:4054;;1750:52;;;270:4054;;1750:52;;270:4054;;;;;;;;;;;1750:52;3438:169:34;3531:65;270:4054:36;;3531:65:34;;;270:4054:36;;3531:65:34;;270:4054:36;;;;;;;;;;;;;;;;3531:65:34;3464:43;;;;270:4054:36;3464:43:34;270:4054:36;3464:43:34;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;270:4054:36;;;;;;;;;;;;;;-1:-1:-1;;270:4054:36;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;270:4054:36;;;;;;;;3175:21:34;270:4054:36;3153:10:34;:44;3149:144;;270:4054:36;4519:12:34;270:4054:36;;4518:13:34;4514:80;;270:4054:36;;;;;;2355:9;270:4054;;;;;;4519:12:34;270:4054:36;;;;;;:::i;:::-;;;;;;;;;;;;2485:16;;;270:4054;2504:17;;;;;2788:67;2789:38;2617:35;2485:43;2504:17;;;;:::i;:::-;2485:43;;;;:::i;:::-;270:4054;;2617:35;;:::i;:::-;270:4054;;2789:38;;:::i;:::-;2831:17;;;;:::i;:::-;2788:67;;;;:::i;:::-;2869:24;;2865:94;;3102:6;270:4054;;;;;;3102:6;270:4054;;;;;;;3060:15;270:4054;3060:15;;;270:4054;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2485:16;270:4054;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;2504:17;270:4054;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9179:17:34;;;270:4054:36;;9124:84:34;;;270:4054:36;9124:84:34;;270:4054:36;;;;;9172:4:34;270:4054:36;;;;;;;2485:16;270:4054;;;;;;;;:::i;:::-;;;;;;;2485:16;270:4054;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2485:16;270:4054;;;;;;;;;;;;;;;;2504:17;270:4054;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9124:84:34;270:4054:36;;;;;;;;;;;;;:::i;:::-;9124:84:34;270:4054:36;9124:84:34;;;;;;:::i;:::-;270:4054:36;9270:17:34;;270:4054:36;;;9242:62:34;;;;;270:4054:36;9242:62:34;;270:4054:36;;9242:62:34;;270:4054:36;;;;;;:::i;:::-;;;;;;-1:-1:-1;;270:4054:36;;;;;;;;;:::i;:::-;9242:62:34;:20;270:4054:36;;9242:20:34;270:4054:36;9242:62:34;;;;;;;270:4054:36;9242:62:34;;;270:4054:36;9361:17:34;;270:4054:36;;;9779:13:34;270:4054:36;9794:14:34;;;;;;270:4054:36;;;;;;;;9810:20:34;9859:10;270:4054:36;9859:10:34;4519:12;9859:10;;;:::i;:::-;270:4054:36;;;;9846:12:34;270:4054:36;;;;;;;;;;;;;;;;9935:10:34;;;;:::i;:::-;270:4054:36;;;9913:48:34;270:4054:36;;;;;;9913:48:34;270:4054:36;9779:13:34;;9242:62;;;;270:4054:36;9242:62:34;;270:4054:36;9242:62:34;;;;;;270:4054:36;9242:62:34;;;:::i;:::-;;;270:4054:36;;;;;9242:62:34;;;;;;;-1:-1:-1;9242:62:34;;270:4054:36;;;;;;;;;-1:-1:-1;270:4054:36;;;;;;;;;4519:12:34;270:4054:36;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2865:94;2902:57;270:4054;;2902:57;;;270:4054;;2902:57;;270:4054;;;;;;;;;;;;;;;;2902:57;4514:80:34;4554:29;270:4054:36;4554:29:34;270:4054:36;;4554:29:34;3149:144;3220:62;270:4054:36;;3220:62:34;;;270:4054:36;;3220:62:34;;270:4054:36;;;;;;;;;;;;;;;;3220:62:34;270:4054:36;;;;;-1:-1:-1;;270:4054:36;;;;;;;;;7685:20:34;270:4054:36;;;;;;;;;-1:-1:-1;;270:4054:36;;;;;;3639:28;270:4054;;:::i;:::-;3604:18;270:4054;;3604:18;:::i;:::-;3639:28;;:::i;:::-;270:4054;;;;;;;;;;;;;-1:-1:-1;;270:4054:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;270:4054:36;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;4177:9;270:4054;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4247:68;;270:4054;;;;4247:68;;4286:17;270:4054;;;;;;;;;;:::i;:::-;;;;;;;;;4247:68;;;270:4054;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4247:68;270:4054;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;270:4054:36;;;;;;;5056:12:34;270:4054:36;;;;;;;;;;;;;;;-1:-1:-1;;270:4054:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;270:4054:36;;;;;;;;;;;;;;;;7364:40:34;7379:25;270:4054:36;7364:40:34;;:80;;;;;270:4054:36;;;;;;;7364:80:34;877:25:88;862:40;;;7364:80:34;;;270:4054:36;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;270:4054:36;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;270:4054:36;;;;;;3941:28;270:4054;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;270:4054:36;;-1:-1:-1;270:4054:36;;;;-1:-1:-1;270:4054:36;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;7975:363:34:-;270:4054:36;;;;;;8090:12:34;270:4054:36;;;;;;8090:29:34;270:4054:36;-1:-1:-1;270:4054:36;;;;-1:-1:-1;270:4054:36;;8204:18:34;;;8200:36;;270:4054:36;;8280:51:34;270:4054:36;8280:51:34;;;;;270:4054:36;;;;;;8280:20:34;:51;:20;270:4054:36;8280:20:34;270:4054:36;8280:51:34;;;;;;;270:4054:36;8280:51:34;;;8273:58;7975:363;:::o;8280:51::-;;;270:4054:36;8280:51:34;;270:4054:36;8280:51:34;;;;;;270:4054:36;8280:51:34;;;:::i;:::-;;;270:4054:36;;;;;;;;;;;;7975:363:34;:::o;8280:51::-;;;-1:-1:-1;8280:51:34;;8200:36;8224:12;;270:4054:36;8224:12:34;:::o;8483:155::-;270:4054:36;;8566:32:34;270:4054:36;8566:32:34;;;;;270:4054:36;;8566:15:34;:32;:15;270:4054:36;8566:15:34;270:4054:36;8566:32:34;;;;;;;-1:-1:-1;8566:32:34;;;8559:39;8483:155;:::o;8566:32::-;;;;270:4054:36;8566:32:34;270:4054:36;8566:32:34;;;;;;;:::i;:::-;8483:155;:::o;270:4054:36:-;;;;;;;;;;;;;;-1:-1:-1;270:4054:36;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;","linkReferences":{},"immutableReferences":{"2623":[{"start":2619,"length":32},{"start":3395,"length":32},{"start":5279,"length":32}],"2626":[{"start":354,"length":32},{"start":784,"length":32},{"start":1483,"length":32}],"2629":[{"start":270,"length":32},{"start":5465,"length":32}]}},"methodIdentifiers":{"ASSET_OWNERSHIP()":"f520d4eb","ATTESTATION_PROVIDER()":"19ad44fc","RIGHTS_POLICY_MANAGER()":"f1bdc452","attestations(address,address)":"028dd425","description()":"7284e416","enforce(address,(bool,address,address,address,uint256,uint256,uint256,uint256,address[],bytes))":"c43e04c0","getAttestation(address,address)":"e8d55ccf","getAttestationProvider()":"b1b87ffb","getHolder(uint256)":"e8a96b46","initialize(address,bytes)":"d1f57894","isAccessAllowed(address,address)":"96ba154d","isAccessAllowed(address,uint256)":"ac3e8fb0","isCompliant(address,address)":"dd4fcc3f","isInitialized()":"392e53cd","name()":"06fdde03","resolveTerms(address)":"3c6a5ee3","resolveTerms(uint256)":"dccc792f","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightPolicyManagerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ownershipAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"providerAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidAssetHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAttestation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidEnforcement\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNotSupportedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPolicyInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"attestationId\",\"type\":\"uint256\"}],\"name\":\"AccessGranted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ASSET_OWNERSHIP\",\"outputs\":[{\"internalType\":\"contract IAssetOwnership\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ATTESTATION_PROVIDER\",\"outputs\":[{\"internalType\":\"contract IAttestationProvider\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_MANAGER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"attestations\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"description\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct T.Agreement\",\"name\":\"agreement\",\"type\":\"tuple\"}],\"name\":\"enforce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getAttestation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAttestationProvider\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assetId\",\"type\":\"uint256\"}],\"name\":\"getHolder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"init\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"isAccessAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"assetId\",\"type\":\"uint256\"}],\"name\":\"isAccessAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"isCompliant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"resolveTerms\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"resolveTerms\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidAssetHolder()\":[{\"details\":\"Thrown when an attempt is made to access content without proper authorization. This error is used to prevent unauthorized access to content protected by policies or rights.\"}],\"InvalidAttestation()\":[{\"details\":\"Thrown when there is an issue with the attestation, such as when an attestation is missing or invalid.\"}],\"InvalidEnforcement(string)\":[{\"details\":\"This error is thrown when the policy enforcement process fails.\",\"params\":{\"reason\":\"A descriptive message providing details about the enforcement failure.\"}}],\"InvalidInitialization(string)\":[{\"details\":\"This error is thrown when there is an issue with the initial setup or configuration.\"}],\"InvalidPolicyInitialization()\":[{\"details\":\"Thrown when attempting to initialize a policy for unregistered or invalid content.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"AccessGranted(address,address,uint256)\":{\"params\":{\"account\":\"The address of the user whose access or compliance is being enforced.\",\"attestationId\":\"The unique identifier of the attestation that confirms compliance or access.\",\"holder\":\"The address of the rights holder managing the asset or access.\"}}},\"kind\":\"dev\",\"methods\":{\"enforce(address,(bool,address,address,address,uint256,uint256,uint256,uint256,address[],bytes))\":{\"details\":\"Rights Policies Manager contract should be the only one allowed to call this method.\",\"params\":{\"agreement\":\"An object containing the terms agreed upon between the asset holder and the user.\",\"holder\":\"The rights holder whose authorization is required for accessing the asset.\"}},\"getAttestation(address,address)\":{\"params\":{\"holder\":\"The address of the rights holder with whom the agreement was made.\",\"recipient\":\"The address of the account for which the attestation is being retrieved.\"}},\"getAttestationProvider()\":{\"returns\":{\"_0\":\"The address of the provider associated with the policy.\"}},\"getHolder(uint256)\":{\"params\":{\"assetId\":\"the asset ID to retrieve the holder.\"}},\"initialize(address,bytes)\":{\"details\":\"Only the Rights Policies Authorizer contract has permission to call this function.\",\"params\":{\"holder\":\"The address of the holder for whom the policy is being initialized.\",\"init\":\"Initialization data required to configure the policy.\"}},\"isCompliant(address,address)\":{\"details\":\"The function checks if the provided account complies with the attestation.\",\"params\":{\"account\":\"The address of the user whose access is being verified.\"}},\"resolveTerms(uint256)\":{\"details\":\"This function allows for querying policy terms based on the unique content identifier.\",\"returns\":{\"_0\":\"A struct containing the terms applicable to the specified content ID.\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The bytes4 identifier of the interface to check for support.\"},\"returns\":{\"_0\":\"A boolean indicating whether the interface ID is supported (true) or not (false).\"}}},\"title\":\"SubscriptionPolicy\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidUnauthorizedCall(string)\":[{\"notice\":\"Thrown when a function is called by an address other than the authorized Rights Manager. This restricts access to functions that are intended to be executed only by the Rights Manager.\"}]},\"events\":{\"AccessGranted(address,address,uint256)\":{\"notice\":\"Emitted when an enforcement process is successfully completed for a given account and holder.\"}},\"kind\":\"user\",\"methods\":{\"description()\":{\"notice\":\"Returns the business/strategy model implemented by the policy.\"},\"enforce(address,(bool,address,address,address,uint256,uint256,uint256,uint256,address[],bytes))\":{\"notice\":\"Executes the agreement between the asset holder and the account based on the policy's rules.\"},\"getAttestation(address,address)\":{\"notice\":\"Retrieves the attestation associated with a specific account and rights holder.\"},\"getAttestationProvider()\":{\"notice\":\"Retrieves the address of the attestation provider.\"},\"getHolder(uint256)\":{\"notice\":\"Returns the asset holder registered in the ownership contract.\"},\"initialize(address,bytes)\":{\"notice\":\"Initializes the policy with specific data for a given holder.\"},\"isAccessAllowed(address,address)\":{\"notice\":\"Verifies if a specific account has general access holder's rights .\"},\"isAccessAllowed(address,uint256)\":{\"notice\":\"Verifies if a specific account has access to a particular asset based on `assetId`.\"},\"isCompliant(address,address)\":{\"notice\":\"Verifies whether the on-chain access terms are satisfied for an account.\"},\"isInitialized()\":{\"notice\":\"Checks if the contract has been initialized.\"},\"name()\":{\"notice\":\"Returns the name of the policy.\"},\"resolveTerms(address)\":{\"notice\":\"Retrieves the terms associated with a specific rights holder.\"},\"resolveTerms(uint256)\":{\"notice\":\"Retrieves the terms associated with a specific content ID.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if a given interface ID is supported by this contract.\"}},\"notice\":\"Implements a subscription-based content access policy.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/policies/access/SubscriptionPolicy.sol\":\"SubscriptionPolicy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solady/=lib/solady/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"contracts/interfaces/IAttestationProvider.sol\":{\"keccak256\":\"0x2908d5a54050880ecfd2dcce8b20eb0b225cde0086747e797bca0da47cf28e86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65f357d4083985d98fae8b192beebad9e832171ac89ded7b6cb5bd8941c248ad\",\"dweb:/ipfs/QmWLQftaZEFJ8oD3rtayvgkLi2Knz8R7LNvbYv7y7rJZVR\"]},\"contracts/interfaces/assets/IAssetOwnership.sol\":{\"keccak256\":\"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025\",\"dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB\"]},\"contracts/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0x239a09ae8e3353f7191c2d8f0104c7a6c02f51934ca8745274530ba8dcf79fa8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://173d1922c5f4acc3f4fc302070ab3f301bc7f1226f2d6bef746d4aed004a628f\",\"dweb:/ipfs/QmULcr1d8RLJJQha8EM3CtqtVuvzykLKWwHMmedd5RKTEz\"]},\"contracts/interfaces/rightsmanager/IRightsPolicyManager.sol\":{\"keccak256\":\"0x3e832796a0aacce871818e5f16841b7ad8815bb673bf2de9feaf225181c647a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08f765559679b934f64d776412f2d634e1a685cd8508c080ada737f181d7dd67\",\"dweb:/ipfs/QmTHKZmUhwGWPbBBYZ48dKMjtcdevQvvTh9vFJk32nFAsU\"]},\"contracts/libraries/LoopOps.sol\":{\"keccak256\":\"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2\",\"dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL\"]},\"contracts/libraries/Types.sol\":{\"keccak256\":\"0x15d6829e0b988ba6c933d1adff8926b91c5e5f8f0fdabd00d87b8c8c541a3eb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c4c1edb78e52731d57d6e0d583d398287e01960f966231839ddc1ff12c48003\",\"dweb:/ipfs/QmYw5hKqdD5FX4cA4Cce6JrT164zNMGipUekUihMc3vP1S\"]},\"contracts/policies/BasePolicy.sol\":{\"keccak256\":\"0xf82b5d0c3127d4e1e9cbe5ca5128a11eb31d1f66305cbc46216272f025e6569a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f68b8fa055d7b9b6a3095e06c0f5b13802a20fd44267914580f15783d3117f6\",\"dweb:/ipfs/QmaGDjYo4Dm4yDzA9oNfQemBeLEG8YYJfKEZNZEac5XhUC\"]},\"contracts/policies/access/SubscriptionPolicy.sol\":{\"keccak256\":\"0x11cca1395f21a64efc0ed0cce8bd63af6b51ea960046d1032274bf40be451223\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b12418494edb191733d02b30e7686dd5718367492aca9cda2c8bee812a2b1b9e\",\"dweb:/ipfs/QmVoWfADKjQG92w6Ebo2gewX5yNjdVJpA9GBm34sMWA1ji\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"rightPolicyManagerAddress","type":"address"},{"internalType":"address","name":"ownershipAddress","type":"address"},{"internalType":"address","name":"providerAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"InvalidAssetHolder"},{"inputs":[],"type":"error","name":"InvalidAttestation"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidEnforcement"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidNotSupportedOperation"},{"inputs":[],"type":"error","name":"InvalidPolicyInitialization"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidUnauthorizedCall"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"holder","type":"address","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"attestationId","type":"uint256","indexed":false}],"type":"event","name":"AccessGranted","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ASSET_OWNERSHIP","outputs":[{"internalType":"contract IAssetOwnership","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ATTESTATION_PROVIDER","outputs":[{"internalType":"contract IAttestationProvider","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_POLICY_MANAGER","outputs":[{"internalType":"contract IRightsPolicyManager","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"attestations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"description","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"struct T.Agreement","name":"agreement","type":"tuple","components":[{"internalType":"bool","name":"active","type":"bool"},{"internalType":"address","name":"broker","type":"address"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"address","name":"initiator","type":"address"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"fees","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"enforce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"getAttestation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAttestationProvider","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"assetId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getHolder","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bytes","name":"init","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"isAccessAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"assetId","type":"uint256"}],"stateMutability":"view","type":"function","name":"isAccessAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"isCompliant","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"resolveTerms","outputs":[{"internalType":"struct T.Terms","name":"","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"enum T.RateBasis","name":"rateBasis","type":"uint8"},{"internalType":"string","name":"uri","type":"string"}]}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"resolveTerms","outputs":[{"internalType":"struct T.Terms","name":"","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"enum T.RateBasis","name":"rateBasis","type":"uint8"},{"internalType":"string","name":"uri","type":"string"}]}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"enforce(address,(bool,address,address,address,uint256,uint256,uint256,uint256,address[],bytes))":{"details":"Rights Policies Manager contract should be the only one allowed to call this method.","params":{"agreement":"An object containing the terms agreed upon between the asset holder and the user.","holder":"The rights holder whose authorization is required for accessing the asset."}},"getAttestation(address,address)":{"params":{"holder":"The address of the rights holder with whom the agreement was made.","recipient":"The address of the account for which the attestation is being retrieved."}},"getAttestationProvider()":{"returns":{"_0":"The address of the provider associated with the policy."}},"getHolder(uint256)":{"params":{"assetId":"the asset ID to retrieve the holder."}},"initialize(address,bytes)":{"details":"Only the Rights Policies Authorizer contract has permission to call this function.","params":{"holder":"The address of the holder for whom the policy is being initialized.","init":"Initialization data required to configure the policy."}},"isCompliant(address,address)":{"details":"The function checks if the provided account complies with the attestation.","params":{"account":"The address of the user whose access is being verified."}},"resolveTerms(uint256)":{"details":"This function allows for querying policy terms based on the unique content identifier.","returns":{"_0":"A struct containing the terms applicable to the specified content ID."}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The bytes4 identifier of the interface to check for support."},"returns":{"_0":"A boolean indicating whether the interface ID is supported (true) or not (false)."}}},"version":1},"userdoc":{"kind":"user","methods":{"description()":{"notice":"Returns the business/strategy model implemented by the policy."},"enforce(address,(bool,address,address,address,uint256,uint256,uint256,uint256,address[],bytes))":{"notice":"Executes the agreement between the asset holder and the account based on the policy's rules."},"getAttestation(address,address)":{"notice":"Retrieves the attestation associated with a specific account and rights holder."},"getAttestationProvider()":{"notice":"Retrieves the address of the attestation provider."},"getHolder(uint256)":{"notice":"Returns the asset holder registered in the ownership contract."},"initialize(address,bytes)":{"notice":"Initializes the policy with specific data for a given holder."},"isAccessAllowed(address,address)":{"notice":"Verifies if a specific account has general access holder's rights ."},"isAccessAllowed(address,uint256)":{"notice":"Verifies if a specific account has access to a particular asset based on `assetId`."},"isCompliant(address,address)":{"notice":"Verifies whether the on-chain access terms are satisfied for an account."},"isInitialized()":{"notice":"Checks if the contract has been initialized."},"name()":{"notice":"Returns the name of the policy."},"resolveTerms(address)":{"notice":"Retrieves the terms associated with a specific rights holder."},"resolveTerms(uint256)":{"notice":"Retrieves the terms associated with a specific content ID."},"supportsInterface(bytes4)":{"notice":"Checks if a given interface ID is supported by this contract."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solady/=lib/solady/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/policies/access/SubscriptionPolicy.sol":"SubscriptionPolicy"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/interfaces/IAttestationProvider.sol":{"keccak256":"0x2908d5a54050880ecfd2dcce8b20eb0b225cde0086747e797bca0da47cf28e86","urls":["bzz-raw://65f357d4083985d98fae8b192beebad9e832171ac89ded7b6cb5bd8941c248ad","dweb:/ipfs/QmWLQftaZEFJ8oD3rtayvgkLi2Knz8R7LNvbYv7y7rJZVR"],"license":"MIT"},"contracts/interfaces/assets/IAssetOwnership.sol":{"keccak256":"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18","urls":["bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025","dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB"],"license":"MIT"},"contracts/interfaces/policies/IPolicy.sol":{"keccak256":"0x239a09ae8e3353f7191c2d8f0104c7a6c02f51934ca8745274530ba8dcf79fa8","urls":["bzz-raw://173d1922c5f4acc3f4fc302070ab3f301bc7f1226f2d6bef746d4aed004a628f","dweb:/ipfs/QmULcr1d8RLJJQha8EM3CtqtVuvzykLKWwHMmedd5RKTEz"],"license":"MIT"},"contracts/interfaces/rightsmanager/IRightsPolicyManager.sol":{"keccak256":"0x3e832796a0aacce871818e5f16841b7ad8815bb673bf2de9feaf225181c647a8","urls":["bzz-raw://08f765559679b934f64d776412f2d634e1a685cd8508c080ada737f181d7dd67","dweb:/ipfs/QmTHKZmUhwGWPbBBYZ48dKMjtcdevQvvTh9vFJk32nFAsU"],"license":"MIT"},"contracts/libraries/LoopOps.sol":{"keccak256":"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411","urls":["bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2","dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL"],"license":"MIT"},"contracts/libraries/Types.sol":{"keccak256":"0x15d6829e0b988ba6c933d1adff8926b91c5e5f8f0fdabd00d87b8c8c541a3eb8","urls":["bzz-raw://3c4c1edb78e52731d57d6e0d583d398287e01960f966231839ddc1ff12c48003","dweb:/ipfs/QmYw5hKqdD5FX4cA4Cce6JrT164zNMGipUekUihMc3vP1S"],"license":"MIT"},"contracts/policies/BasePolicy.sol":{"keccak256":"0xf82b5d0c3127d4e1e9cbe5ca5128a11eb31d1f66305cbc46216272f025e6569a","urls":["bzz-raw://4f68b8fa055d7b9b6a3095e06c0f5b13802a20fd44267914580f15783d3117f6","dweb:/ipfs/QmaGDjYo4Dm4yDzA9oNfQemBeLEG8YYJfKEZNZEac5XhUC"],"license":"MIT"},"contracts/policies/access/SubscriptionPolicy.sol":{"keccak256":"0x11cca1395f21a64efc0ed0cce8bd63af6b51ea960046d1032274bf40be451223","urls":["bzz-raw://b12418494edb191733d02b30e7686dd5718367492aca9cda2c8bee812a2b1b9e","dweb:/ipfs/QmVoWfADKjQG92w6Ebo2gewX5yNjdVJpA9GBm34sMWA1ji"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":43338,"contract":"contracts/policies/access/SubscriptionPolicy.sol:SubscriptionPolicy","label":"_status","offset":0,"slot":"0","type":"t_uint256"},{"astId":2631,"contract":"contracts/policies/access/SubscriptionPolicy.sol:SubscriptionPolicy","label":"_initialized","offset":0,"slot":"1","type":"t_bool"},{"astId":2638,"contract":"contracts/policies/access/SubscriptionPolicy.sol:SubscriptionPolicy","label":"attestations","offset":0,"slot":"2","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":3254,"contract":"contracts/policies/access/SubscriptionPolicy.sol:SubscriptionPolicy","label":"_packages","offset":0,"slot":"3","type":"t_mapping(t_address,t_struct(Package)3249_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_struct(Package)3249_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct SubscriptionPolicy.Package)","numberOfBytes":"32","value":"t_struct(Package)3249_storage"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_struct(Package)3249_storage":{"encoding":"inplace","label":"struct SubscriptionPolicy.Package","numberOfBytes":"64","members":[{"astId":3246,"contract":"contracts/policies/access/SubscriptionPolicy.sol:SubscriptionPolicy","label":"pricePerDay","offset":0,"slot":"0","type":"t_uint256"},{"astId":3248,"contract":"contracts/policies/access/SubscriptionPolicy.sol:SubscriptionPolicy","label":"currency","offset":0,"slot":"1","type":"t_address"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"contracts/policies/access/SubscriptionPolicy.sol","id":3477,"exportedSymbols":{"BasePolicy":[3023],"SubscriptionPolicy":[3476],"T":[2592]},"nodeType":"SourceUnit","src":"32:4293:36","nodes":[{"id":3236,"nodeType":"PragmaDirective","src":"32:23:36","nodes":[],"literals":["solidity","0.8",".26"]},{"id":3238,"nodeType":"ImportDirective","src":"57:63:36","nodes":[],"absolutePath":"contracts/policies/BasePolicy.sol","file":"contracts/policies/BasePolicy.sol","nameLocation":"-1:-1:-1","scope":3477,"sourceUnit":3024,"symbolAliases":[{"foreign":{"id":3237,"name":"BasePolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3023,"src":"66:10:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3240,"nodeType":"ImportDirective","src":"121:50:36","nodes":[],"absolutePath":"contracts/libraries/Types.sol","file":"contracts/libraries/Types.sol","nameLocation":"-1:-1:-1","scope":3477,"sourceUnit":2593,"symbolAliases":[{"foreign":{"id":3239,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2592,"src":"130:1:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3476,"nodeType":"ContractDefinition","src":"270:4054:36","nodes":[{"id":3249,"nodeType":"StructDefinition","src":"375:115:36","nodes":[],"canonicalName":"SubscriptionPolicy.Package","documentation":{"id":3244,"nodeType":"StructuredDocumentation","src":"318:52:36","text":"@dev Structure to define a subscription package."},"members":[{"constant":false,"id":3246,"mutability":"mutable","name":"pricePerDay","nameLocation":"408:11:36","nodeType":"VariableDeclaration","scope":3249,"src":"400:19:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3245,"name":"uint256","nodeType":"ElementaryTypeName","src":"400:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3248,"mutability":"mutable","name":"currency","nameLocation":"475:8:36","nodeType":"VariableDeclaration","scope":3249,"src":"467:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3247,"name":"address","nodeType":"ElementaryTypeName","src":"467:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"Package","nameLocation":"382:7:36","scope":3476,"visibility":"public"},{"id":3254,"nodeType":"VariableDeclaration","src":"580:45:36","nodes":[],"constant":false,"mutability":"mutable","name":"_packages","nameLocation":"616:9:36","scope":3476,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$3249_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package)"},"typeName":{"id":3253,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":3250,"name":"address","nodeType":"ElementaryTypeName","src":"588:7:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"580:27:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$3249_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":3252,"nodeType":"UserDefinedTypeName","pathNode":{"id":3251,"name":"Package","nameLocations":["599:7:36"],"nodeType":"IdentifierPath","referencedDeclaration":3249,"src":"599:7:36"},"referencedDeclaration":3249,"src":"599:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_storage_ptr","typeString":"struct SubscriptionPolicy.Package"}}},"visibility":"private"},{"id":3269,"nodeType":"FunctionDefinition","src":"632:203:36","nodes":[],"body":{"id":3268,"nodeType":"Block","src":"833:2:36","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":3263,"name":"rightPolicyManagerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3256,"src":"771:25:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3264,"name":"ownershipAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3258,"src":"798:16:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3265,"name":"providerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3260,"src":"816:15:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3266,"kind":"baseConstructorSpecifier","modifierName":{"id":3262,"name":"BasePolicy","nameLocations":["760:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":3023,"src":"760:10:36"},"nodeType":"ModifierInvocation","src":"760:72:36"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":3261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3256,"mutability":"mutable","name":"rightPolicyManagerAddress","nameLocation":"661:25:36","nodeType":"VariableDeclaration","scope":3269,"src":"653:33:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3255,"name":"address","nodeType":"ElementaryTypeName","src":"653:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3258,"mutability":"mutable","name":"ownershipAddress","nameLocation":"704:16:36","nodeType":"VariableDeclaration","scope":3269,"src":"696:24:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3257,"name":"address","nodeType":"ElementaryTypeName","src":"696:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3260,"mutability":"mutable","name":"providerAddress","nameLocation":"738:15:36","nodeType":"VariableDeclaration","scope":3269,"src":"730:23:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3259,"name":"address","nodeType":"ElementaryTypeName","src":"730:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"643:116:36"},"returnParameters":{"id":3267,"nodeType":"ParameterList","parameters":[],"src":"833:0:36"},"scope":3476,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":3278,"nodeType":"FunctionDefinition","src":"889:98:36","nodes":[],"body":{"id":3277,"nodeType":"Block","src":"943:44:36","nodes":[],"statements":[{"expression":{"hexValue":"537562736372697074696f6e506f6c696379","id":3275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"960:20:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf969a651e510b963d800a99660818c73f95de791671120782050ada205e0116","typeString":"literal_string \"SubscriptionPolicy\""},"value":"SubscriptionPolicy"},"functionReturnParameters":3274,"id":3276,"nodeType":"Return","src":"953:27:36"}]},"baseFunctions":[1831],"documentation":{"id":3270,"nodeType":"StructuredDocumentation","src":"841:43:36","text":"@notice Returns the name of the policy."},"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"898:4:36","parameters":{"id":3271,"nodeType":"ParameterList","parameters":[],"src":"902:2:36"},"returnParameters":{"id":3274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3273,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3278,"src":"928:13:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3272,"name":"string","nodeType":"ElementaryTypeName","src":"928:6:36","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"927:15:36"},"scope":3476,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":3287,"nodeType":"FunctionDefinition","src":"1072:458:36","nodes":[],"body":{"id":3286,"nodeType":"Block","src":"1133:397:36","nodes":[],"statements":[{"expression":{"hexValue":"5468697320706f6c69637920666f6c6c6f7773206120737562736372697074696f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c6f77696e6720757365727320746f20616363657373206120636f6e74656e7420686f6c646572277320636174616c6f6720627920706179696e672061206461696c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b65792066656174757265733a0a312920466c657869626c6520737562736372697074696f6e20706572696f6473207365742062792074686520617373657420686f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c20636f6e74656e7420647572696e672074686520737562736372697074696f6e20706572696f642e","id":3284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1162:361:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_194b266123184e70dc22bea7312509d4d684e05e0185bd5a1d15a300a36c3030","typeString":"literal_string hex\"5468697320706f6c69637920666f6c6c6f7773206120737562736372697074696f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c6f77696e6720757365727320746f20616363657373206120636f6e74656e7420686f6c646572277320636174616c6f6720627920706179696e672061206461696c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b65792066656174757265733a0a312920466c657869626c6520737562736372697074696f6e20706572696f6473207365742062792074686520617373657420686f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c20636f6e74656e7420647572696e672074686520737562736372697074696f6e20706572696f642e\""},"value":"This policy follows a subscription model with daily pricing, allowing users to access a content holder's catalog by paying a daily fee for a chosen duration.\n\nKey features:\n1) Flexible subscription periods set by the asset holder.\n2) Instant access to all content during the subscription period."},"functionReturnParameters":3283,"id":3285,"nodeType":"Return","src":"1143:380:36"}]},"baseFunctions":[1837],"documentation":{"id":3279,"nodeType":"StructuredDocumentation","src":"993:74:36","text":"@notice Returns the business/strategy model implemented by the policy."},"functionSelector":"7284e416","implemented":true,"kind":"function","modifiers":[],"name":"description","nameLocation":"1081:11:36","parameters":{"id":3280,"nodeType":"ParameterList","parameters":[],"src":"1092:2:36"},"returnParameters":{"id":3283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3287,"src":"1118:13:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3281,"name":"string","nodeType":"ElementaryTypeName","src":"1118:6:36","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1117:15:36"},"scope":3476,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":3330,"nodeType":"FunctionDefinition","src":"1536:408:36","nodes":[],"body":{"id":3329,"nodeType":"Block","src":"1635:309:36","nodes":[],"statements":[{"assignments":[3299,3301],"declarations":[{"constant":false,"id":3299,"mutability":"mutable","name":"price","nameLocation":"1654:5:36","nodeType":"VariableDeclaration","scope":3329,"src":"1646:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3298,"name":"uint256","nodeType":"ElementaryTypeName","src":"1646:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3301,"mutability":"mutable","name":"currency","nameLocation":"1669:8:36","nodeType":"VariableDeclaration","scope":3329,"src":"1661:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3300,"name":"address","nodeType":"ElementaryTypeName","src":"1661:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3311,"initialValue":{"arguments":[{"id":3304,"name":"init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3291,"src":"1692:4:36","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":3306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1699:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3305,"name":"uint256","nodeType":"ElementaryTypeName","src":"1699:7:36","typeDescriptions":{}}},{"id":3308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1708:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3307,"name":"address","nodeType":"ElementaryTypeName","src":"1708:7:36","typeDescriptions":{}}}],"id":3309,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1698:18:36","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_address_$_$","typeString":"tuple(type(uint256),type(address))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_address_$_$","typeString":"tuple(type(uint256),type(address))"}],"expression":{"id":3302,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1681:3:36","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1685:6:36","memberName":"decode","nodeType":"MemberAccess","src":"1681:10:36","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":3310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1681:36:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_address_payable_$","typeString":"tuple(uint256,address payable)"}},"nodeType":"VariableDeclarationStatement","src":"1645:72:36"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3312,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3299,"src":"1731:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1740:1:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1731:10:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3319,"nodeType":"IfStatement","src":"1727:75:36","trueBody":{"errorCall":{"arguments":[{"hexValue":"496e76616c696420737562736372697074696f6e2070726963652e","id":3316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1772:29:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_c34de7f84731edc9f4306314e0fbfea34befcd31b45a6958b105a0d671747e17","typeString":"literal_string \"Invalid subscription price.\""},"value":"Invalid subscription price."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c34de7f84731edc9f4306314e0fbfea34befcd31b45a6958b105a0d671747e17","typeString":"literal_string \"Invalid subscription price.\""}],"id":3315,"name":"InvalidInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2673,"src":"1750:21:36","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":3317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1750:52:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3318,"nodeType":"RevertStatement","src":"1743:59:36"}},{"expression":{"id":3327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3320,"name":"_packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3254,"src":"1893:9:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$3249_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package storage ref)"}},"id":3322,"indexExpression":{"id":3321,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3289,"src":"1903:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1893:17:36","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3324,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3299,"src":"1921:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3325,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3301,"src":"1928:8:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3323,"name":"Package","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3249,"src":"1913:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Package_$3249_storage_ptr_$","typeString":"type(struct SubscriptionPolicy.Package storage pointer)"}},"id":3326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1913:24:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"src":"1893:44:36","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"id":3328,"nodeType":"ExpressionStatement","src":"1893:44:36"}]},"baseFunctions":[1845],"functionSelector":"d1f57894","implemented":true,"kind":"function","modifiers":[{"id":3294,"kind":"modifierInvocation","modifierName":{"id":3293,"name":"onlyPolicyAuthorizer","nameLocations":["1602:20:36"],"nodeType":"IdentifierPath","referencedDeclaration":2711,"src":"1602:20:36"},"nodeType":"ModifierInvocation","src":"1602:20:36"},{"id":3296,"kind":"modifierInvocation","modifierName":{"id":3295,"name":"initializer","nameLocations":["1623:11:36"],"nodeType":"IdentifierPath","referencedDeclaration":2724,"src":"1623:11:36"},"nodeType":"ModifierInvocation","src":"1623:11:36"}],"name":"initialize","nameLocation":"1545:10:36","parameters":{"id":3292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3289,"mutability":"mutable","name":"holder","nameLocation":"1564:6:36","nodeType":"VariableDeclaration","scope":3330,"src":"1556:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3288,"name":"address","nodeType":"ElementaryTypeName","src":"1556:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3291,"mutability":"mutable","name":"init","nameLocation":"1587:4:36","nodeType":"VariableDeclaration","scope":3330,"src":"1572:19:36","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3290,"name":"bytes","nodeType":"ElementaryTypeName","src":"1572:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1555:37:36"},"returnParameters":{"id":3297,"nodeType":"ParameterList","parameters":[],"src":"1635:0:36"},"scope":3476,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":3405,"nodeType":"FunctionDefinition","src":"2180:1129:36","nodes":[],"body":{"id":3404,"nodeType":"Block","src":"2324:985:36","nodes":[],"statements":[{"assignments":[3346],"declarations":[{"constant":false,"id":3346,"mutability":"mutable","name":"pkg","nameLocation":"2349:3:36","nodeType":"VariableDeclaration","scope":3404,"src":"2334:18:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_memory_ptr","typeString":"struct SubscriptionPolicy.Package"},"typeName":{"id":3345,"nodeType":"UserDefinedTypeName","pathNode":{"id":3344,"name":"Package","nameLocations":["2334:7:36"],"nodeType":"IdentifierPath","referencedDeclaration":3249,"src":"2334:7:36"},"referencedDeclaration":3249,"src":"2334:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_storage_ptr","typeString":"struct SubscriptionPolicy.Package"}},"visibility":"internal"}],"id":3350,"initialValue":{"baseExpression":{"id":3347,"name":"_packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3254,"src":"2355:9:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$3249_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package storage ref)"}},"id":3349,"indexExpression":{"id":3348,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3332,"src":"2365:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2355:17:36","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2334:38:36"},{"assignments":[3352],"declarations":[{"constant":false,"id":3352,"mutability":"mutable","name":"paymentPerAccount","nameLocation":"2465:17:36","nodeType":"VariableDeclaration","scope":3404,"src":"2457:25:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3351,"name":"uint256","nodeType":"ElementaryTypeName","src":"2457:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3359,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3353,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"2485:9:36","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$2558_calldata_ptr","typeString":"struct T.Agreement calldata"}},"id":3354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2495:6:36","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":2548,"src":"2485:16:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":3355,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"2504:9:36","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$2558_calldata_ptr","typeString":"struct T.Agreement calldata"}},"id":3356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2514:7:36","memberName":"parties","nodeType":"MemberAccess","referencedDeclaration":2555,"src":"2504:17:36","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":3357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2522:6:36","memberName":"length","nodeType":"MemberAccess","src":"2504:24:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2485:43:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2457:71:36"},{"assignments":[3361],"declarations":[{"constant":false,"id":3361,"mutability":"mutable","name":"subscriptionDuration","nameLocation":"2594:20:36","nodeType":"VariableDeclaration","scope":3404,"src":"2586:28:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3360,"name":"uint256","nodeType":"ElementaryTypeName","src":"2586:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3366,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3362,"name":"paymentPerAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3352,"src":"2617:17:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"id":3363,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"2637:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":3364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2641:11:36","memberName":"pricePerDay","nodeType":"MemberAccess","referencedDeclaration":3246,"src":"2637:15:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2617:35:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2586:66:36"},{"assignments":[3368],"declarations":[{"constant":false,"id":3368,"mutability":"mutable","name":"total","nameLocation":"2780:5:36","nodeType":"VariableDeclaration","scope":3404,"src":"2772:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3367,"name":"uint256","nodeType":"ElementaryTypeName","src":"2772:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3378,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3369,"name":"subscriptionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"2789:20:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":3370,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"2812:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":3371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2816:11:36","memberName":"pricePerDay","nodeType":"MemberAccess","referencedDeclaration":3246,"src":"2812:15:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2789:38:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3373,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2788:40:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"expression":{"id":3374,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"2831:9:36","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$2558_calldata_ptr","typeString":"struct T.Agreement calldata"}},"id":3375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2841:7:36","memberName":"parties","nodeType":"MemberAccess","referencedDeclaration":2555,"src":"2831:17:36","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":3376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2849:6:36","memberName":"length","nodeType":"MemberAccess","src":"2831:24:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2788:67:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2772:83:36"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3379,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"2869:9:36","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$2558_calldata_ptr","typeString":"struct T.Agreement calldata"}},"id":3380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2879:6:36","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":2548,"src":"2869:16:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3381,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3368,"src":"2888:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2869:24:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3387,"nodeType":"IfStatement","src":"2865:94:36","trueBody":{"errorCall":{"arguments":[{"hexValue":"496e73756666696369656e742066756e647320666f7220737562736372697074696f6e","id":3384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2921:37:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_672f704359c96e0312355040ab5c89b621a6d70e08076807a34681fa7dc8d2e7","typeString":"literal_string \"Insufficient funds for subscription\""},"value":"Insufficient funds for subscription"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_672f704359c96e0312355040ab5c89b621a6d70e08076807a34681fa7dc8d2e7","typeString":"literal_string \"Insufficient funds for subscription\""}],"id":3383,"name":"InvalidEnforcement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2665,"src":"2902:18:36","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":3385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2902:57:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3386,"nodeType":"RevertStatement","src":"2895:64:36"}},{"assignments":[3389],"declarations":[{"constant":false,"id":3389,"mutability":"mutable","name":"subExpire","nameLocation":"3048:9:36","nodeType":"VariableDeclaration","scope":3404,"src":"3040:17:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3388,"name":"uint256","nodeType":"ElementaryTypeName","src":"3040:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3397,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3390,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3060:5:36","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3066:9:36","memberName":"timestamp","nodeType":"MemberAccess","src":"3060:15:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3392,"name":"subscriptionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"3079:20:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31","id":3393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3102:6:36","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"1"},"src":"3079:29:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3395,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3078:31:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3060:49:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3040:69:36"},{"expression":{"arguments":[{"id":3399,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3332,"src":"3273:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3400,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"3281:9:36","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$2558_calldata_ptr","typeString":"struct T.Agreement calldata"}},{"id":3401,"name":"subExpire","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3389,"src":"3292:9:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Agreement_$2558_calldata_ptr","typeString":"struct T.Agreement calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3398,"name":"_commit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2972,"src":"3265:7:36","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_Agreement_$2558_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,struct T.Agreement memory,uint256) returns (uint256)"}},"id":3402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3265:37:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3343,"id":3403,"nodeType":"Return","src":"3258:44:36"}]},"baseFunctions":[1856],"functionSelector":"c43e04c0","implemented":true,"kind":"function","modifiers":[{"id":3338,"kind":"modifierInvocation","modifierName":{"id":3337,"name":"onlyPolicyManager","nameLocations":["2276:17:36"],"nodeType":"IdentifierPath","referencedDeclaration":2691,"src":"2276:17:36"},"nodeType":"ModifierInvocation","src":"2276:17:36"},{"id":3340,"kind":"modifierInvocation","modifierName":{"id":3339,"name":"initialized","nameLocations":["2294:11:36"],"nodeType":"IdentifierPath","referencedDeclaration":2736,"src":"2294:11:36"},"nodeType":"ModifierInvocation","src":"2294:11:36"}],"name":"enforce","nameLocation":"2189:7:36","parameters":{"id":3336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3332,"mutability":"mutable","name":"holder","nameLocation":"2214:6:36","nodeType":"VariableDeclaration","scope":3405,"src":"2206:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3331,"name":"address","nodeType":"ElementaryTypeName","src":"2206:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3335,"mutability":"mutable","name":"agreement","nameLocation":"2251:9:36","nodeType":"VariableDeclaration","scope":3405,"src":"2230:30:36","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$2558_calldata_ptr","typeString":"struct T.Agreement"},"typeName":{"id":3334,"nodeType":"UserDefinedTypeName","pathNode":{"id":3333,"name":"T.Agreement","nameLocations":["2230:1:36","2232:9:36"],"nodeType":"IdentifierPath","referencedDeclaration":2558,"src":"2230:11:36"},"referencedDeclaration":2558,"src":"2230:11:36","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$2558_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"src":"2196:70:36"},"returnParameters":{"id":3343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3342,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3405,"src":"2315:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3341,"name":"uint256","nodeType":"ElementaryTypeName","src":"2315:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2314:9:36"},"scope":3476,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":3428,"nodeType":"FunctionDefinition","src":"3416:258:36","nodes":[],"body":{"id":3427,"nodeType":"Block","src":"3513:161:36","nodes":[],"statements":[{"assignments":[3417],"declarations":[{"constant":false,"id":3417,"mutability":"mutable","name":"holder","nameLocation":"3595:6:36","nodeType":"VariableDeclaration","scope":3427,"src":"3587:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3416,"name":"address","nodeType":"ElementaryTypeName","src":"3587:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3421,"initialValue":{"arguments":[{"id":3419,"name":"assetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3410,"src":"3614:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3418,"name":"getHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2923,"src":"3604:9:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":3420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3604:18:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3587:35:36"},{"expression":{"arguments":[{"id":3423,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3408,"src":"3651:7:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3424,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3417,"src":"3660:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3422,"name":"isCompliant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2909,"src":"3639:11:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":3425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3639:28:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3415,"id":3426,"nodeType":"Return","src":"3632:35:36"}]},"baseFunctions":[2830],"documentation":{"id":3406,"nodeType":"StructuredDocumentation","src":"3316:95:36","text":"@notice Verifies if a specific account has access to a particular asset based on `assetId`."},"functionSelector":"ac3e8fb0","implemented":true,"kind":"function","modifiers":[],"name":"isAccessAllowed","nameLocation":"3425:15:36","overrides":{"id":3412,"nodeType":"OverrideSpecifier","overrides":[],"src":"3489:8:36"},"parameters":{"id":3411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3408,"mutability":"mutable","name":"account","nameLocation":"3449:7:36","nodeType":"VariableDeclaration","scope":3428,"src":"3441:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3407,"name":"address","nodeType":"ElementaryTypeName","src":"3441:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3410,"mutability":"mutable","name":"assetId","nameLocation":"3466:7:36","nodeType":"VariableDeclaration","scope":3428,"src":"3458:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3409,"name":"uint256","nodeType":"ElementaryTypeName","src":"3458:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3440:34:36"},"returnParameters":{"id":3415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3414,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3428,"src":"3507:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3413,"name":"bool","nodeType":"ElementaryTypeName","src":"3507:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3506:6:36"},"scope":3476,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":3445,"nodeType":"FunctionDefinition","src":"3764:212:36","nodes":[],"body":{"id":3444,"nodeType":"Block","src":"3860:116:36","nodes":[],"statements":[{"expression":{"arguments":[{"id":3440,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3431,"src":"3953:7:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3441,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3433,"src":"3962:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3439,"name":"isCompliant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2909,"src":"3941:11:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":3442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3941:28:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3438,"id":3443,"nodeType":"Return","src":"3934:35:36"}]},"baseFunctions":[2844],"documentation":{"id":3429,"nodeType":"StructuredDocumentation","src":"3680:79:36","text":"@notice Verifies if a specific account has general access holder's rights ."},"functionSelector":"96ba154d","implemented":true,"kind":"function","modifiers":[],"name":"isAccessAllowed","nameLocation":"3773:15:36","overrides":{"id":3435,"nodeType":"OverrideSpecifier","overrides":[],"src":"3836:8:36"},"parameters":{"id":3434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3431,"mutability":"mutable","name":"account","nameLocation":"3797:7:36","nodeType":"VariableDeclaration","scope":3445,"src":"3789:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3430,"name":"address","nodeType":"ElementaryTypeName","src":"3789:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3433,"mutability":"mutable","name":"holder","nameLocation":"3814:6:36","nodeType":"VariableDeclaration","scope":3445,"src":"3806:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3432,"name":"address","nodeType":"ElementaryTypeName","src":"3806:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3788:33:36"},"returnParameters":{"id":3438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3445,"src":"3854:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3436,"name":"bool","nodeType":"ElementaryTypeName","src":"3854:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3853:6:36"},"scope":3476,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":3475,"nodeType":"FunctionDefinition","src":"4060:262:36","nodes":[],"body":{"id":3474,"nodeType":"Block","src":"4146:176:36","nodes":[],"statements":[{"assignments":[3457],"declarations":[{"constant":false,"id":3457,"mutability":"mutable","name":"pkg","nameLocation":"4171:3:36","nodeType":"VariableDeclaration","scope":3474,"src":"4156:18:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_memory_ptr","typeString":"struct SubscriptionPolicy.Package"},"typeName":{"id":3456,"nodeType":"UserDefinedTypeName","pathNode":{"id":3455,"name":"Package","nameLocations":["4156:7:36"],"nodeType":"IdentifierPath","referencedDeclaration":3249,"src":"4156:7:36"},"referencedDeclaration":3249,"src":"4156:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_storage_ptr","typeString":"struct SubscriptionPolicy.Package"}},"visibility":"internal"}],"id":3461,"initialValue":{"baseExpression":{"id":3458,"name":"_packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3254,"src":"4177:9:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$3249_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package storage ref)"}},"id":3460,"indexExpression":{"id":3459,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3448,"src":"4187:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4177:17:36","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4156:38:36"},{"expression":{"arguments":[{"expression":{"id":3464,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3457,"src":"4255:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":3465,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4259:11:36","memberName":"pricePerDay","nodeType":"MemberAccess","referencedDeclaration":3246,"src":"4255:15:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3466,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3457,"src":"4272:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":3467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4276:8:36","memberName":"currency","nodeType":"MemberAccess","referencedDeclaration":3248,"src":"4272:12:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":3468,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2592,"src":"4286:1:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_T_$2592_$","typeString":"type(library T)"}},"id":3469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4288:9:36","memberName":"RateBasis","nodeType":"MemberAccess","referencedDeclaration":2570,"src":"4286:11:36","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RateBasis_$2570_$","typeString":"type(enum T.RateBasis)"}},"id":3470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4298:5:36","memberName":"DAILY","nodeType":"MemberAccess","referencedDeclaration":2568,"src":"4286:17:36","typeDescriptions":{"typeIdentifier":"t_enum$_RateBasis_$2570","typeString":"enum T.RateBasis"}},{"hexValue":"697066733a2f2f","id":3471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4305:9:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe","typeString":"literal_string \"ipfs://\""},"value":"ipfs://"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_RateBasis_$2570","typeString":"enum T.RateBasis"},{"typeIdentifier":"t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe","typeString":"literal_string \"ipfs://\""}],"expression":{"id":3462,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2592,"src":"4247:1:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_T_$2592_$","typeString":"type(library T)"}},"id":3463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4249:5:36","memberName":"Terms","nodeType":"MemberAccess","referencedDeclaration":2581,"src":"4247:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Terms_$2581_storage_ptr_$","typeString":"type(struct T.Terms storage pointer)"}},"id":3472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4247:68:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$2581_memory_ptr","typeString":"struct T.Terms memory"}},"functionReturnParameters":3454,"id":3473,"nodeType":"Return","src":"4240:75:36"}]},"baseFunctions":[2803],"documentation":{"id":3446,"nodeType":"StructuredDocumentation","src":"3982:73:36","text":"@notice Retrieves the terms associated with a specific rights holder."},"functionSelector":"3c6a5ee3","implemented":true,"kind":"function","modifiers":[],"name":"resolveTerms","nameLocation":"4069:12:36","overrides":{"id":3450,"nodeType":"OverrideSpecifier","overrides":[],"src":"4112:8:36"},"parameters":{"id":3449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3448,"mutability":"mutable","name":"holder","nameLocation":"4090:6:36","nodeType":"VariableDeclaration","scope":3475,"src":"4082:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3447,"name":"address","nodeType":"ElementaryTypeName","src":"4082:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4081:16:36"},"returnParameters":{"id":3454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3453,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3475,"src":"4130:14:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$2581_memory_ptr","typeString":"struct T.Terms"},"typeName":{"id":3452,"nodeType":"UserDefinedTypeName","pathNode":{"id":3451,"name":"T.Terms","nameLocations":["4130:1:36","4132:5:36"],"nodeType":"IdentifierPath","referencedDeclaration":2581,"src":"4130:7:36"},"referencedDeclaration":2581,"src":"4130:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$2581_storage_ptr","typeString":"struct T.Terms"}},"visibility":"internal"}],"src":"4129:16:36"},"scope":3476,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":3242,"name":"BasePolicy","nameLocations":["301:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":3023,"src":"301:10:36"},"id":3243,"nodeType":"InheritanceSpecifier","src":"301:10:36"}],"canonicalName":"SubscriptionPolicy","contractDependencies":[],"contractKind":"contract","documentation":{"id":3241,"nodeType":"StructuredDocumentation","src":"173:97:36","text":"@title SubscriptionPolicy\n @notice Implements a subscription-based content access policy."},"fullyImplemented":true,"linearizedBaseContracts":[3476,3023,44137,44344,1901,43396],"name":"SubscriptionPolicy","nameLocation":"279:18:36","scope":3477,"usedErrors":[2650,2652,2657,2660,2665,2668,2673,43341],"usedEvents":[2647]}],"license":"MIT"},"id":36} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"rightPolicyManagerAddress","type":"address","internalType":"address"},{"name":"ownershipAddress","type":"address","internalType":"address"},{"name":"providerAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ASSET_OWNERSHIP","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAssetOwnership"}],"stateMutability":"view"},{"type":"function","name":"ATTESTATION_PROVIDER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAttestationProvider"}],"stateMutability":"view"},{"type":"function","name":"RIGHTS_POLICY_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsPolicyManager"}],"stateMutability":"view"},{"type":"function","name":"description","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"enforce","inputs":[{"name":"holder","type":"address","internalType":"address"},{"name":"agreement","type":"tuple","internalType":"struct T.Agreement","components":[{"name":"broker","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"},{"name":"initiator","type":"address","internalType":"address"},{"name":"total","type":"uint256","internalType":"uint256"},{"name":"fees","type":"uint256","internalType":"uint256"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"getAttestation","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAttestationProvider","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getHolder","inputs":[{"name":"assetId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"holder","type":"address","internalType":"address"},{"name":"init","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAccessAllowed","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"criteria","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isCompliant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"resolveTerms","inputs":[{"name":"criteria","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple","internalType":"struct T.Terms","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"rateBasis","type":"uint8","internalType":"enum T.RateBasis"},{"name":"uri","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"AttestedAgreement","inputs":[{"name":"holder","type":"address","indexed":true,"internalType":"address"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"attestationId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"InvalidAssetHolder","inputs":[]},{"type":"error","name":"InvalidAttestation","inputs":[]},{"type":"error","name":"InvalidEnforcement","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidInitialization","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidNotSupportedOperation","inputs":[]},{"type":"error","name":"InvalidPolicyInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedCall","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x60e0346100c757601f61192f38819003918201601f19168301916001600160401b038311848410176100cb578084926060946040528339810103126100c757610047816100df565b61005f6040610058602085016100df565b93016100df565b60015f556001600160a01b0390811660805290811660a0521660c05260405161183b90816100f4823960805181818161053c01528181610dc401526115cb015260a05181818161014101528181610296015261093e015260c05181818160ed01526116850152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100c75756fe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461123f5750806306fdde03146111e057806319ad44fc14610510578063392e53cd146111be578063464c0aeb146108eb5780637284e41614610730578063a393711114610560578063b1b87ffb14610510578063cfdce1a7146104f7578063d1f5789414610245578063dd4fcc3f1461020f578063e8a96b46146101d3578063e8d55ccf14610165578063f1bdc452146101155763f520d4eb146100c1575f80fd5b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101115760406003193601126101115761017e611320565b73ffffffffffffffffffffffffffffffffffffffff61019b611343565b91165f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060405f2054604051908152f35b346101115760206003193601126101115760206101f160043561163c565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b3461011157604060031936011261011157602061023b61022d611320565b610235611343565b90611532565b6040519015158152f35b3461011157610253366113b5565b6040517f8ae2ba5900000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156104ec5773ffffffffffffffffffffffffffffffffffffffff915f916104bd575b5016330361043957816040917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060015416600155810103126101115773ffffffffffffffffffffffffffffffffffffffff61033a602083359301611366565b169181156103db5773ffffffffffffffffffffffffffffffffffffffff91826001926040519261036984611406565b835260208301958652165f52600360205260405f2090518155019151167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416176001555f80f35b60646040517f8e53d58600000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c696420737562736372697074696f6e2070726963652e00000000006044820152fd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f6e6c792072696768747320706f6c69637920617574686f72697a657220616c60448201527f6c6f7765642e00000000000000000000000000000000000000000000000000006064820152fd5b6104df915060203d6020116104e5575b6104d7818361143e565b810190611506565b856102db565b503d6104cd565b6040513d5f823e3d90fd5b3461011157602061023b61050a366113b5565b916114aa565b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101115760206003193601126101115760043567ffffffffffffffff811161011157610591903690600401611387565b6060806040516105a081611422565b5f81525f60208201525f604082015201526105bb8183611751565b15610708578160209181010312610111576105ea73ffffffffffffffffffffffffffffffffffffffff91611366565b165f52600360205260405f20602060405161060481611406565b73ffffffffffffffffffffffffffffffffffffffff600184549485845201541691829101526040519161063683611422565b825260208201908152604082016002815273ffffffffffffffffffffffffffffffffffffffff6040519261066b60408561143e565b600784527f697066733a2f2f000000000000000000000000000000000000000000000000006020850152606085019384526040519460208652516020860152511660408401525160048110156106db5782916106d79160608401525160808084015260a08301906112dd565b0390f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f0ea7889c000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610111575f600319360112610111576106d7610160610753604051918261143e565b61012781527f5468697320706f6c69637920666f6c6c6f77732061207375627363726970746960208201527f6f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c60408201527f6f77696e6720757365727320746f20616363657373206120636f6e74656e742060608201527f686f6c646572277320636174616c6f6720627920706179696e6720612064616960808201527f6c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b60a08201527f65792066656174757265733a0a312920466c657869626c65207375627363726960c08201527f7074696f6e20706572696f64732073657420627920746865206173736574206860e08201527f6f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c206101008201527f636f6e74656e7420647572696e672074686520737562736372697074696f6e206101208201527f706572696f642e000000000000000000000000000000000000000000000000006101408201526040519182916020835260208301906112dd565b3461011157604060031936011261011157610904611320565b6024359067ffffffffffffffff8211610111578136039060e06003198301126101115773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016330361113a5760ff60015416156111125773ffffffffffffffffffffffffffffffffffffffff1690815f52600360205260405f2090604051916109a083611406565b73ffffffffffffffffffffffffffffffffffffffff600182549283865201541660208401521561108e576064840135917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd60a48601359201821215610111578185019160048301359367ffffffffffffffff85116101115760248401918560051b9384360384136101115751610a5287610a4d610a4684610a4184896116d1565b6116d1565b938461147f565b61147f565b831061100a5762015180810290808204620151801490151715610fdd57420197884211610fdd576040519360e0850185811067ffffffffffffffff821117610f9857604052610aa382600401611366565b8552610ab160248301611366565b9660208601978852610ac560448401611366565b96604087019788526060870195865267ffffffffffffffff608088019560848601358752116101115736602383011215610111576004602091610b078c611492565b9b610b156040519d8e61143e565b8c52828c01930101019136831161011157905b828210610fc55750505060a0840196875260c48101359067ffffffffffffffff82116101115701913660238401121561011157600483013567ffffffffffffffff8111610f985760405193610ba5601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0166020018661143e565b8185523660248284010111610111576024829101602086013783016020015f905260c0840192835260405195869460208601602090525173ffffffffffffffffffffffffffffffffffffffff1660408601525173ffffffffffffffffffffffffffffffffffffffff166060850152845173ffffffffffffffffffffffffffffffffffffffff1660808501525160a08401525160c0830152845160e0830160e090526101208301610c5491611708565b9051908281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001610100840152610c8b916112dd565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352610cbb908361143e565b5173ffffffffffffffffffffffffffffffffffffffff1682519160405192839286602085015260408401523060608401526080830160a0905260c08301610d0191611708565b8281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160a0840152610d34916112dd565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018252610d64908261143e565b8151906040519485927f8ca86cad000000000000000000000000000000000000000000000000000000008452600484016060905260648401610da591611708565b906024840152828103600319016044840152610dc0916112dd565b03837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1691815a5f948591f19283156104ec575f93610f05575b5051908151915f5b838110610e6357846040518091602082016020835281518091526020604084019201905f5b818110610e4a575050500390f35b8251845285945060209384019390920191600101610e3c565b80610e70600192876117c4565b5173ffffffffffffffffffffffffffffffffffffffff610e9083866117c4565b51165f52600260205260405f20855f5260205260405f205573ffffffffffffffffffffffffffffffffffffffff610ec782856117c4565b5116847f73d17651f9707de6298c73100b356249df3c275337d70f593670c60c5d7da3536020610ef7858b6117c4565b51604051908152a301610e17565b9092503d805f833e610f17818361143e565b8101906020818303126101115780519067ffffffffffffffff821161011157019080601f83011215610111578151610f4e81611492565b92610f5c604051948561143e565b81845260208085019260051b82010192831161011157602001905b828210610f88575050509183610e0f565b8151815260209182019101610f77565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60208091610fd284611366565b815201910190610b28565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f496e73756666696369656e742066756e647320666f722073756273637269707460448201527f696f6e00000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f496e76616c6964206e6f7420696e697469616c697a656420686f6c646572206360448201527f6f6e646974696f6e7300000000000000000000000000000000000000000000006064820152fd5b7f83403c5c000000000000000000000000000000000000000000000000000000005f5260045ffd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792072696768747320706f6c696379206d616e6167657220616c6c6f7760448201527f65642e00000000000000000000000000000000000000000000000000000000006064820152fd5b34610111575f60031936011261011157602060ff600154166040519015158152f35b34610111575f600319360112610111576106d760405161120160408261143e565b601281527f537562736372697074696f6e506f6c696379000000000000000000000000000060208201526040519182916020835260208301906112dd565b3461011157602060031936011261011157600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361011157817fd6e2fbe800000000000000000000000000000000000000000000000000000000602093149081156112b3575b5015158152f35b7f01ffc9a700000000000000000000000000000000000000000000000000000000915014836112ac565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b9181601f840112156101115782359167ffffffffffffffff8311610111576020838186019501011161011157565b9060406003198301126101115760043573ffffffffffffffffffffffffffffffffffffffff8116810361011157916024359067ffffffffffffffff82116101115761140291600401611387565b9091565b6040810190811067ffffffffffffffff821117610f9857604052565b6080810190811067ffffffffffffffff821117610f9857604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f9857604052565b81810292918115918404141715610fdd57565b67ffffffffffffffff8111610f985760051b60200190565b9091826020916114ba8183611751565b6114d65781010312610111576102356114d3923561163c565b90565b810103126101115773ffffffffffffffffffffffffffffffffffffffff6114ff6114d393611366565b1690611532565b90816020910312610111575173ffffffffffffffffffffffffffffffffffffffff811681036101115790565b73ffffffffffffffffffffffffffffffffffffffff1690815f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205260405f205490811561163657604051917febfa62b90000000000000000000000000000000000000000000000000000000083526004830152602482015260208160448173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ec575f916115fe575090565b90506020813d60201161162e575b816116196020938361143e565b81010312610111575180151581036101115790565b3d915061160c565b50505f90565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ec575f916116b8575090565b6114d3915060203d6020116104e5576104d7818361143e565b81156116db570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b90602080835192838152019201905f5b8181106117255750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101611718565b602082036107085781602011610111577fffffffffffffffffffffffffffffffffffffffff000000000000000000000000600c82013516151591600c11610111578161179b575090565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000915035161590565b80518210156117d85760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220be604af8fb0b84f1fc09211529cb8338c36bfb5d68c195302c8b7b98a5cf7b2964736f6c634300081a0033","sourceMap":"281:6159:7:-:0;;;;;;;;;;;;;-1:-1:-1;;281:6159:7;;;;-1:-1:-1;;;;;281:6159:7;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;1857:1:78;-1:-1:-1;1857:1:78;-1:-1:-1;;;;;281:6159:7;;;4819:60:99;;281:6159:7;;;;4889:65:99;281:6159:7;4964:49:99;;281:6159:7;;;;;;;;4819:60:99;281:6159:7;;;;;;;;;;;;;;;4889:65:99;281:6159:7;;;;;;;;;;;;;;;4964:49:99;281:6159:7;;;;;;;;;;;;-1:-1:-1;281:6159:7;;;;;;-1:-1:-1;281:6159:7;;;;;-1:-1:-1;281:6159:7;;;;-1:-1:-1;;;;;281:6159:7;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461123f5750806306fdde03146111e057806319ad44fc14610510578063392e53cd146111be578063464c0aeb146108eb5780637284e41614610730578063a393711114610560578063b1b87ffb14610510578063cfdce1a7146104f7578063d1f5789414610245578063dd4fcc3f1461020f578063e8a96b46146101d3578063e8d55ccf14610165578063f1bdc452146101155763f520d4eb146100c1575f80fd5b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101115760406003193601126101115761017e611320565b73ffffffffffffffffffffffffffffffffffffffff61019b611343565b91165f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060405f2054604051908152f35b346101115760206003193601126101115760206101f160043561163c565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b3461011157604060031936011261011157602061023b61022d611320565b610235611343565b90611532565b6040519015158152f35b3461011157610253366113b5565b6040517f8ae2ba5900000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156104ec5773ffffffffffffffffffffffffffffffffffffffff915f916104bd575b5016330361043957816040917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060015416600155810103126101115773ffffffffffffffffffffffffffffffffffffffff61033a602083359301611366565b169181156103db5773ffffffffffffffffffffffffffffffffffffffff91826001926040519261036984611406565b835260208301958652165f52600360205260405f2090518155019151167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416176001555f80f35b60646040517f8e53d58600000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c696420737562736372697074696f6e2070726963652e00000000006044820152fd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f6e6c792072696768747320706f6c69637920617574686f72697a657220616c60448201527f6c6f7765642e00000000000000000000000000000000000000000000000000006064820152fd5b6104df915060203d6020116104e5575b6104d7818361143e565b810190611506565b856102db565b503d6104cd565b6040513d5f823e3d90fd5b3461011157602061023b61050a366113b5565b916114aa565b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101115760206003193601126101115760043567ffffffffffffffff811161011157610591903690600401611387565b6060806040516105a081611422565b5f81525f60208201525f604082015201526105bb8183611751565b15610708578160209181010312610111576105ea73ffffffffffffffffffffffffffffffffffffffff91611366565b165f52600360205260405f20602060405161060481611406565b73ffffffffffffffffffffffffffffffffffffffff600184549485845201541691829101526040519161063683611422565b825260208201908152604082016002815273ffffffffffffffffffffffffffffffffffffffff6040519261066b60408561143e565b600784527f697066733a2f2f000000000000000000000000000000000000000000000000006020850152606085019384526040519460208652516020860152511660408401525160048110156106db5782916106d79160608401525160808084015260a08301906112dd565b0390f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f0ea7889c000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610111575f600319360112610111576106d7610160610753604051918261143e565b61012781527f5468697320706f6c69637920666f6c6c6f77732061207375627363726970746960208201527f6f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c60408201527f6f77696e6720757365727320746f20616363657373206120636f6e74656e742060608201527f686f6c646572277320636174616c6f6720627920706179696e6720612064616960808201527f6c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b60a08201527f65792066656174757265733a0a312920466c657869626c65207375627363726960c08201527f7074696f6e20706572696f64732073657420627920746865206173736574206860e08201527f6f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c206101008201527f636f6e74656e7420647572696e672074686520737562736372697074696f6e206101208201527f706572696f642e000000000000000000000000000000000000000000000000006101408201526040519182916020835260208301906112dd565b3461011157604060031936011261011157610904611320565b6024359067ffffffffffffffff8211610111578136039060e06003198301126101115773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016330361113a5760ff60015416156111125773ffffffffffffffffffffffffffffffffffffffff1690815f52600360205260405f2090604051916109a083611406565b73ffffffffffffffffffffffffffffffffffffffff600182549283865201541660208401521561108e576064840135917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd60a48601359201821215610111578185019160048301359367ffffffffffffffff85116101115760248401918560051b9384360384136101115751610a5287610a4d610a4684610a4184896116d1565b6116d1565b938461147f565b61147f565b831061100a5762015180810290808204620151801490151715610fdd57420197884211610fdd576040519360e0850185811067ffffffffffffffff821117610f9857604052610aa382600401611366565b8552610ab160248301611366565b9660208601978852610ac560448401611366565b96604087019788526060870195865267ffffffffffffffff608088019560848601358752116101115736602383011215610111576004602091610b078c611492565b9b610b156040519d8e61143e565b8c52828c01930101019136831161011157905b828210610fc55750505060a0840196875260c48101359067ffffffffffffffff82116101115701913660238401121561011157600483013567ffffffffffffffff8111610f985760405193610ba5601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0166020018661143e565b8185523660248284010111610111576024829101602086013783016020015f905260c0840192835260405195869460208601602090525173ffffffffffffffffffffffffffffffffffffffff1660408601525173ffffffffffffffffffffffffffffffffffffffff166060850152845173ffffffffffffffffffffffffffffffffffffffff1660808501525160a08401525160c0830152845160e0830160e090526101208301610c5491611708565b9051908281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001610100840152610c8b916112dd565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352610cbb908361143e565b5173ffffffffffffffffffffffffffffffffffffffff1682519160405192839286602085015260408401523060608401526080830160a0905260c08301610d0191611708565b8281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160a0840152610d34916112dd565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018252610d64908261143e565b8151906040519485927f8ca86cad000000000000000000000000000000000000000000000000000000008452600484016060905260648401610da591611708565b906024840152828103600319016044840152610dc0916112dd565b03837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1691815a5f948591f19283156104ec575f93610f05575b5051908151915f5b838110610e6357846040518091602082016020835281518091526020604084019201905f5b818110610e4a575050500390f35b8251845285945060209384019390920191600101610e3c565b80610e70600192876117c4565b5173ffffffffffffffffffffffffffffffffffffffff610e9083866117c4565b51165f52600260205260405f20855f5260205260405f205573ffffffffffffffffffffffffffffffffffffffff610ec782856117c4565b5116847f73d17651f9707de6298c73100b356249df3c275337d70f593670c60c5d7da3536020610ef7858b6117c4565b51604051908152a301610e17565b9092503d805f833e610f17818361143e565b8101906020818303126101115780519067ffffffffffffffff821161011157019080601f83011215610111578151610f4e81611492565b92610f5c604051948561143e565b81845260208085019260051b82010192831161011157602001905b828210610f88575050509183610e0f565b8151815260209182019101610f77565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60208091610fd284611366565b815201910190610b28565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f496e73756666696369656e742066756e647320666f722073756273637269707460448201527f696f6e00000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f496e76616c6964206e6f7420696e697469616c697a656420686f6c646572206360448201527f6f6e646974696f6e7300000000000000000000000000000000000000000000006064820152fd5b7f83403c5c000000000000000000000000000000000000000000000000000000005f5260045ffd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792072696768747320706f6c696379206d616e6167657220616c6c6f7760448201527f65642e00000000000000000000000000000000000000000000000000000000006064820152fd5b34610111575f60031936011261011157602060ff600154166040519015158152f35b34610111575f600319360112610111576106d760405161120160408261143e565b601281527f537562736372697074696f6e506f6c696379000000000000000000000000000060208201526040519182916020835260208301906112dd565b3461011157602060031936011261011157600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361011157817fd6e2fbe800000000000000000000000000000000000000000000000000000000602093149081156112b3575b5015158152f35b7f01ffc9a700000000000000000000000000000000000000000000000000000000915014836112ac565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b9181601f840112156101115782359167ffffffffffffffff8311610111576020838186019501011161011157565b9060406003198301126101115760043573ffffffffffffffffffffffffffffffffffffffff8116810361011157916024359067ffffffffffffffff82116101115761140291600401611387565b9091565b6040810190811067ffffffffffffffff821117610f9857604052565b6080810190811067ffffffffffffffff821117610f9857604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f9857604052565b81810292918115918404141715610fdd57565b67ffffffffffffffff8111610f985760051b60200190565b9091826020916114ba8183611751565b6114d65781010312610111576102356114d3923561163c565b90565b810103126101115773ffffffffffffffffffffffffffffffffffffffff6114ff6114d393611366565b1690611532565b90816020910312610111575173ffffffffffffffffffffffffffffffffffffffff811681036101115790565b73ffffffffffffffffffffffffffffffffffffffff1690815f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205260405f205490811561163657604051917febfa62b90000000000000000000000000000000000000000000000000000000083526004830152602482015260208160448173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ec575f916115fe575090565b90506020813d60201161162e575b816116196020938361143e565b81010312610111575180151581036101115790565b3d915061160c565b50505f90565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ec575f916116b8575090565b6114d3915060203d6020116104e5576104d7818361143e565b81156116db570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b90602080835192838152019201905f5b8181106117255750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101611718565b602082036107085781602011610111577fffffffffffffffffffffffffffffffffffffffff000000000000000000000000600c82013516151591600c11610111578161179b575090565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000915035161590565b80518210156117d85760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220be604af8fb0b84f1fc09211529cb8338c36bfb5d68c195302c8b7b98a5cf7b2964736f6c634300081a0033","sourceMap":"281:6159:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;1140:48:99;281:6159:7;;;;;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;1075:59:99;281:6159:7;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;5575:13:99;281:6159:7;;;;;;5575:32:99;281:6159:7;-1:-1:-1;281:6159:7;;;;;-1:-1:-1;281:6159:7;;;;;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;3566:43:99;;;:21;281:6159:7;3566:21:99;281:6159:7;3566:21:99;281:6159:7;3566:43:99;;;;;;281:6159:7;3566:43:99;281:6159:7;3566:43:99;;;281:6159:7;;;3544:10:99;:66;3540:169;;281:6159:7;;;;4097:20:99;281:6159:7;;4097:20:99;281:6159:7;2040:36;;281:6159;;;;;;3566:43:99;281:6159:7;;;;;:::i;:::-;;2090:10;;;2086:75;;281:6159;;;4097:20:99;281:6159:7;;;;;;;:::i;:::-;;;3566:43:99;2241:24:7;;281:6159;;;;;;2221:9;3566:43:99;281:6159:7;;;;;;;;;;;;;;;;;;;4097:20:99;281:6159:7;;;;;4097:20:99;281:6159:7;;;;2086:75;2109:52;281:6159;;2109:52;;;3566:43:99;281:6159:7;2109:52;;281:6159;;;;;;;;;;;2109:52;3540:169:99;3633:65;281:6159:7;;3633:65:99;;;3566:43;281:6159:7;3633:65:99;;281:6159:7;;;;;;;;;;;;;;;;3633:65:99;3566:43;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;281:6159:7;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;6313:20:99;281:6159:7;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4346:26;;;;:::i;:::-;4345:27;4341:95;;4463:31;281:6159;4463:31;;;281:6159;;;;;;;;:::i;:::-;;;;4525:9;281:6159;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4595:68;;281:6159;;;;4595:68;;4634:17;281:6159;;;;;;;;;;:::i;:::-;;;;;;;;;;4595:68;;281:6159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;4341:95;4395:30;281:6159;4395:30;281:6159;;4395:30;281:6159;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;281:6159:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;3277:21:99;281:6159:7;3255:10:99;:44;3251:144;;281:6159:7;4621:12:99;281:6159:7;;4620:13:99;4616:80;;281:6159:7;;;;;;2611:9;281:6159;;;;;;;;;;;;:::i;:::-;;4621:12:99;281:6159:7;;;;;;;;;;;;;2642:20;2638:213;;2882:15;;;281:6159;2928:17;281:6159;2928:17;;;281:6159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5158:49;4938:19;5159:34;5046:31;4938:19;;;;;:::i;:::-;5046:31;:::i;:::-;5159:34;;;:::i;:::-;5158:49;:::i;:::-;5221:14;;5217:84;;3292:6;281:6159;;;;;;3292:6;281:6159;;;;;;;3262:15;281:6159;3262:15;;;281:6159;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;2928:17;281:6159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7804:21:99;;;281:6159:7;7804:21:99;;281:6159:7;;;;;;;;;;;;;;;;;;;;;;;;;;2928:17;281:6159;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;7804:21:99;281:6159:7;7804:21:99;;;;;;;;:::i;:::-;281:6159:7;;;7910:17:99;;281:6159:7;;;7855:91:99;;;;281:6159:7;7855:91:99;;281:6159:7;;;;;7903:4:99;281:6159:7;;;;;;;2928:17;281:6159;;;;;;;;:::i;:::-;;;;;;2928:17;281:6159;;;;;;:::i;:::-;7855:91:99;281:6159:7;7855:91:99;;;;;;;;:::i;:::-;8018:17;;281:6159:7;;;7990:62:99;;;281:6159:7;7990:62:99;;281:6159:7;7990:62:99;;281:6159:7;;;2882:15;281:6159;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;;;:::i;:::-;7990:62:99;:20;;281:6159:7;;7990:62:99;;;281:6159:7;7990:62:99;;;;;;;;;281:6159:7;7990:62:99;;;281:6159:7;8110:17:99;;281:6159:7;;;8571:13:99;281:6159:7;8586:14:99;;;;;;281:6159:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;281:6159:7;;;;;;;;;4621:12:99;281:6159:7;;;8602:20:99;8674:17;;4621:12;8674:17;;;:::i;:::-;281:6159:7;;8652:10:99;;;;:::i;:::-;281:6159:7;;;;8638:13:99;281:6159:7;;;;;;;;;;;;;;;8736:10:99;;;;:::i;:::-;281:6159:7;;8748:17:99;8710:56;281:6159:7;8748:17:99;;;;:::i;:::-;281:6159:7;;;;;;8710:56:99;281:6159:7;8571:13:99;;7990:62;;;;;;281:6159:7;7990:62:99;;;;;;:::i;:::-;;;281:6159:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;7990:62:99;;;;;;;281:6159:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5217:84;5244:57;281:6159;;5244:57;;;281:6159;;5244:57;;281:6159;;;;;;;;;;;;2882:15;281:6159;;;5244:57;2638:213;2777:63;281:6159;;2777:63;;;281:6159;;2777:63;;281:6159;;;;;;;;;;;;;;;;2777:63;4616:80:99;4656:29;281:6159:7;4656:29:99;281:6159:7;;4656:29:99;3251:144;3322:62;281:6159:7;;3322:62:99;;;281:6159:7;;3322:62:99;;281:6159:7;;;;;;;;;;;;;;;;3322:62:99;281:6159:7;;;;;-1:-1:-1;;281:6159:7;;;;;;;5156:12:99;281:6159:7;;;;;;;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;;;;;;;;5992:40:99;6007:25;281:6159:7;5992:40:99;;:80;;;;;281:6159:7;;;;;;;5992:80:99;877:25:81;862:40;;;5992:80:99;;;281:6159:7;;;;;;;;;;;;;;;;;;;;-1:-1:-1;281:6159:7;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;281:6159:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;3449:527::-;;;;281:6159;3449:527;3623:26;;;;:::i;:::-;3619:186;;3881:31;;281:6159;;;;3950:18;3929:40;281:6159;;3950:18;:::i;3929:40::-;3449:527;:::o;3619:186::-;3714:31;;281:6159;;;;;;3766:28;281:6159;;:::i;:::-;;3766:28;;:::i;281:6159::-;;;;;;;;;;;;;;;;;;:::o;6603:364:99:-;281:6159:7;;;;;;6718:13:99;281:6159:7;;;;;;6718:30:99;281:6159:7;-1:-1:-1;281:6159:7;;;;-1:-1:-1;281:6159:7;;6833:18:99;;;6829:36;;281:6159:7;;6909:51:99;281:6159:7;6909:51:99;;;;;281:6159:7;;;;;;6909:20:99;:51;:20;281:6159:7;6909:20:99;281:6159:7;6909:51:99;;;;;;;281:6159:7;6909:51:99;;;6902:58;6603:364;:::o;6909:51::-;;;281:6159:7;6909:51:99;;281:6159:7;6909:51:99;;;;;;281:6159:7;6909:51:99;;;:::i;:::-;;;281:6159:7;;;;;;;;;;;;6603:364:99;:::o;6909:51::-;;;-1:-1:-1;6909:51:99;;6829:36;6853:12;;281:6159:7;6853:12:99;:::o;7112:155::-;281:6159:7;;7195:32:99;281:6159:7;7195:32:99;;;;;281:6159:7;;7195:15:99;:32;:15;281:6159:7;7195:15:99;281:6159:7;7195:32:99;;;;;;;-1:-1:-1;7195:32:99;;;7188:39;7112:155;:::o;7195:32::-;;;;281:6159:7;7195:32:99;281:6159:7;7195:32:99;;;;;;;:::i;281:6159:7:-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;281:6159:7;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;5351:1087;6212:2;6193:21;;6189:64;;281:6159;6212:2;281:6159;;;;6299:2;281:6159;;;;6282:38;;281:6159;6299:2;281:6159;;;6404:27;;;6397:34;5351:1087;:::o;6404:27::-;281:6159;;;;;6350:37;5351:1087;:::o;281:6159::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;","linkReferences":{},"immutableReferences":{"50776":[{"start":1340,"length":32},{"start":3524,"length":32},{"start":5579,"length":32}],"50779":[{"start":321,"length":32},{"start":662,"length":32},{"start":2366,"length":32}],"50782":[{"start":237,"length":32},{"start":5765,"length":32}]}},"methodIdentifiers":{"ASSET_OWNERSHIP()":"f520d4eb","ATTESTATION_PROVIDER()":"19ad44fc","RIGHTS_POLICY_MANAGER()":"f1bdc452","description()":"7284e416","enforce(address,(address,address,address,uint256,uint256,address[],bytes))":"464c0aeb","getAttestation(address,address)":"e8d55ccf","getAttestationProvider()":"b1b87ffb","getHolder(uint256)":"e8a96b46","initialize(address,bytes)":"d1f57894","isAccessAllowed(address,bytes)":"cfdce1a7","isCompliant(address,address)":"dd4fcc3f","isInitialized()":"392e53cd","name()":"06fdde03","resolveTerms(bytes)":"a3937111","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightPolicyManagerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ownershipAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"providerAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidAssetHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAttestation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidEnforcement\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNotSupportedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPolicyInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"attestationId\",\"type\":\"uint256\"}],\"name\":\"AttestedAgreement\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ASSET_OWNERSHIP\",\"outputs\":[{\"internalType\":\"contract IAssetOwnership\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ATTESTATION_PROVIDER\",\"outputs\":[{\"internalType\":\"contract IAttestationProvider\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_MANAGER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"description\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"total\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct T.Agreement\",\"name\":\"agreement\",\"type\":\"tuple\"}],\"name\":\"enforce\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getAttestation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAttestationProvider\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assetId\",\"type\":\"uint256\"}],\"name\":\"getHolder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"init\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"criteria\",\"type\":\"bytes\"}],\"name\":\"isAccessAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"isCompliant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"criteria\",\"type\":\"bytes\"}],\"name\":\"resolveTerms\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidAssetHolder()\":[{\"details\":\"Thrown when an attempt is made to access content without proper authorization. This error is used to prevent unauthorized access to content protected by policies or rights.\"}],\"InvalidAttestation()\":[{\"details\":\"Thrown when there is an issue with the attestation, such as when an attestation is missing or invalid.\"}],\"InvalidEnforcement(string)\":[{\"details\":\"This error is thrown when the policy enforcement process fails.\",\"params\":{\"reason\":\"A descriptive message providing details about the enforcement failure.\"}}],\"InvalidInitialization(string)\":[{\"details\":\"This error is thrown when there is an issue with the initial setup or configuration.\"}],\"InvalidPolicyInitialization()\":[{\"details\":\"Thrown when attempting to initialize a policy for unregistered or invalid content.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"AttestedAgreement(address,address,uint256)\":{\"params\":{\"account\":\"The address of the user whose access or compliance is being enforced.\",\"attestationId\":\"The unique identifier of the attestations that confirms compliance or access.\",\"holder\":\"The address of the rights holder managing the asset or access.\"}}},\"kind\":\"dev\",\"methods\":{\"enforce(address,(address,address,address,uint256,uint256,address[],bytes))\":{\"details\":\"Rights Policies Manager contract should be the only one allowed to call this method.\",\"params\":{\"agreement\":\"An object containing the terms agreed upon between the asset holder and the user.\",\"holder\":\"The rights holder whose authorization is required for accessing the asset.\"}},\"getAttestation(address,address)\":{\"params\":{\"holder\":\"The address of the rights holder with whom the agreement was made.\",\"recipient\":\"The address of the account for which the attestation is being retrieved.\"}},\"getAttestationProvider()\":{\"returns\":{\"_0\":\"The address of the provider associated with the policy.\"}},\"getHolder(uint256)\":{\"params\":{\"assetId\":\"the asset ID to retrieve the holder.\"}},\"initialize(address,bytes)\":{\"details\":\"Only the Rights Policies Authorizer contract has permission to call this function.\",\"params\":{\"holder\":\"The address of the holder for whom the policy is being initialized.\",\"init\":\"Initialization data required to configure the policy.\"}},\"isCompliant(address,address)\":{\"details\":\"The function checks if the provided account complies with the attestation.\",\"params\":{\"account\":\"The address of the user whose access is being verified.\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The bytes4 identifier of the interface to check for support.\"},\"returns\":{\"_0\":\"A boolean indicating whether the interface ID is supported (true) or not (false).\"}}},\"title\":\"SubscriptionPolicy\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidNotSupportedOperation()\":[{\"notice\":\"This error is thrown when a method not implemented is called.\"}],\"InvalidUnauthorizedCall(string)\":[{\"notice\":\"Thrown when a function is called by an address other than the authorized Rights Manager. This restricts access to functions that are intended to be executed only by the Rights Manager.\"}]},\"events\":{\"AttestedAgreement(address,address,uint256)\":{\"notice\":\"Emitted when an enforcement process is successfully completed for a given account and holder.\"}},\"kind\":\"user\",\"methods\":{\"description()\":{\"notice\":\"Returns the business/strategy model implemented by the policy.\"},\"enforce(address,(address,address,address,uint256,uint256,address[],bytes))\":{\"notice\":\"Executes the agreement between the asset holder and the account based on the policy's rules.\"},\"getAttestation(address,address)\":{\"notice\":\"Retrieves the attestation id associated with a specific account and rights holder.\"},\"getAttestationProvider()\":{\"notice\":\"Retrieves the address of the attestation provider.\"},\"getHolder(uint256)\":{\"notice\":\"Returns the asset holder registered in the ownership contract.\"},\"initialize(address,bytes)\":{\"notice\":\"Initializes the policy with specific data for a given holder.\"},\"isAccessAllowed(address,bytes)\":{\"notice\":\"Verifies if an account has access to holder's content or asset id.\"},\"isCompliant(address,address)\":{\"notice\":\"Verifies whether the on-chain access terms are satisfied for an account.\"},\"isInitialized()\":{\"notice\":\"Checks if the policy has been initialized.\"},\"name()\":{\"notice\":\"Returns the name of the policy.\"},\"resolveTerms(bytes)\":{\"notice\":\"Retrieves the terms associated with a specific criteria and policy.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if a given interface ID is supported by this contract.\"}},\"notice\":\"Implements a subscription-based content access policy.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/policies/SubscriptionPolicy.sol\":\"SubscriptionPolicy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/policies/SubscriptionPolicy.sol\":{\"keccak256\":\"0x17caa3281a451aedf75776764eedec7628b03347fdd369c229d60e887bd0cf54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9dbc13584e69fecfaf7f6f79e5f6b100f0923dd3b90fc5c20e76036abf6ff995\",\"dweb:/ipfs/QmZQSp7sHVmncnNTRob65WFuJCrrxkdyTjya1LSZv7ZHUA\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol\":{\"keccak256\":\"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025\",\"dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/base/IAttestationProvider.sol\":{\"keccak256\":\"0x33857a9a398c81f5a8cb00f94fa6b67545638acfc7cb728ba12d6ad8f5278ea8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d33a8beadb20c46b8cdf80cebe3640f6ee411ec1e0dcf0b99ac4498c8548b79f\",\"dweb:/ipfs/QmVjkZppdWpowdob77ymvzhbTsMXLEZuPAJ6G7mcmSTgzj\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405\",\"dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol\":{\"keccak256\":\"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6\",\"dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu\"]},\"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol\":{\"keccak256\":\"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2\",\"dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL\"]},\"node_modules/@synaps3/types/contracts/core/primitives/BasePolicy.sol\":{\"keccak256\":\"0xbec0c6dae3148c9c400255b1107181ea037e6f178c141505a1ce883941557753\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd187cdee309d7965ca81a3bd91836fe4c281d97256db519b10a23ebf414fcbf\",\"dweb:/ipfs/Qma6ZXgXr35Pv3c1h3XvX8V9vUeKVXHAJ3CrhLndoGEMHM\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf\",\"dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"rightPolicyManagerAddress","type":"address"},{"internalType":"address","name":"ownershipAddress","type":"address"},{"internalType":"address","name":"providerAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"InvalidAssetHolder"},{"inputs":[],"type":"error","name":"InvalidAttestation"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidEnforcement"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidNotSupportedOperation"},{"inputs":[],"type":"error","name":"InvalidPolicyInitialization"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidUnauthorizedCall"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"holder","type":"address","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"attestationId","type":"uint256","indexed":false}],"type":"event","name":"AttestedAgreement","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ASSET_OWNERSHIP","outputs":[{"internalType":"contract IAssetOwnership","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ATTESTATION_PROVIDER","outputs":[{"internalType":"contract IAttestationProvider","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_POLICY_MANAGER","outputs":[{"internalType":"contract IRightsPolicyManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"description","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"struct T.Agreement","name":"agreement","type":"tuple","components":[{"internalType":"address","name":"broker","type":"address"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"address","name":"initiator","type":"address"},{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"fees","type":"uint256"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"enforce","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"getAttestation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAttestationProvider","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"assetId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getHolder","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bytes","name":"init","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes","name":"criteria","type":"bytes"}],"stateMutability":"view","type":"function","name":"isAccessAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"isCompliant","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"criteria","type":"bytes"}],"stateMutability":"view","type":"function","name":"resolveTerms","outputs":[{"internalType":"struct T.Terms","name":"","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"enum T.RateBasis","name":"rateBasis","type":"uint8"},{"internalType":"string","name":"uri","type":"string"}]}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"enforce(address,(address,address,address,uint256,uint256,address[],bytes))":{"details":"Rights Policies Manager contract should be the only one allowed to call this method.","params":{"agreement":"An object containing the terms agreed upon between the asset holder and the user.","holder":"The rights holder whose authorization is required for accessing the asset."}},"getAttestation(address,address)":{"params":{"holder":"The address of the rights holder with whom the agreement was made.","recipient":"The address of the account for which the attestation is being retrieved."}},"getAttestationProvider()":{"returns":{"_0":"The address of the provider associated with the policy."}},"getHolder(uint256)":{"params":{"assetId":"the asset ID to retrieve the holder."}},"initialize(address,bytes)":{"details":"Only the Rights Policies Authorizer contract has permission to call this function.","params":{"holder":"The address of the holder for whom the policy is being initialized.","init":"Initialization data required to configure the policy."}},"isCompliant(address,address)":{"details":"The function checks if the provided account complies with the attestation.","params":{"account":"The address of the user whose access is being verified."}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The bytes4 identifier of the interface to check for support."},"returns":{"_0":"A boolean indicating whether the interface ID is supported (true) or not (false)."}}},"version":1},"userdoc":{"kind":"user","methods":{"description()":{"notice":"Returns the business/strategy model implemented by the policy."},"enforce(address,(address,address,address,uint256,uint256,address[],bytes))":{"notice":"Executes the agreement between the asset holder and the account based on the policy's rules."},"getAttestation(address,address)":{"notice":"Retrieves the attestation id associated with a specific account and rights holder."},"getAttestationProvider()":{"notice":"Retrieves the address of the attestation provider."},"getHolder(uint256)":{"notice":"Returns the asset holder registered in the ownership contract."},"initialize(address,bytes)":{"notice":"Initializes the policy with specific data for a given holder."},"isAccessAllowed(address,bytes)":{"notice":"Verifies if an account has access to holder's content or asset id."},"isCompliant(address,address)":{"notice":"Verifies whether the on-chain access terms are satisfied for an account."},"isInitialized()":{"notice":"Checks if the policy has been initialized."},"name()":{"notice":"Returns the name of the policy."},"resolveTerms(bytes)":{"notice":"Retrieves the terms associated with a specific criteria and policy."},"supportsInterface(bytes4)":{"notice":"Checks if a given interface ID is supported by this contract."}},"version":1}},"settings":{"remappings":["@account-abstraction/=node_modules/@account-abstraction/","@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=node_modules/@synaps3/types/contracts/","@uniswap/=node_modules/@uniswap/","base64-sol/=node_modules/base64-sol/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/policies/SubscriptionPolicy.sol":"SubscriptionPolicy"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/policies/SubscriptionPolicy.sol":{"keccak256":"0x17caa3281a451aedf75776764eedec7628b03347fdd369c229d60e887bd0cf54","urls":["bzz-raw://9dbc13584e69fecfaf7f6f79e5f6b100f0923dd3b90fc5c20e76036abf6ff995","dweb:/ipfs/QmZQSp7sHVmncnNTRob65WFuJCrrxkdyTjya1LSZv7ZHUA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol":{"keccak256":"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18","urls":["bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025","dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/base/IAttestationProvider.sol":{"keccak256":"0x33857a9a398c81f5a8cb00f94fa6b67545638acfc7cb728ba12d6ad8f5278ea8","urls":["bzz-raw://d33a8beadb20c46b8cdf80cebe3640f6ee411ec1e0dcf0b99ac4498c8548b79f","dweb:/ipfs/QmVjkZppdWpowdob77ymvzhbTsMXLEZuPAJ6G7mcmSTgzj"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol":{"keccak256":"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02","urls":["bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405","dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol":{"keccak256":"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e","urls":["bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6","dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol":{"keccak256":"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411","urls":["bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2","dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/BasePolicy.sol":{"keccak256":"0xbec0c6dae3148c9c400255b1107181ea037e6f178c141505a1ce883941557753","urls":["bzz-raw://fd187cdee309d7965ca81a3bd91836fe4c281d97256db519b10a23ebf414fcbf","dweb:/ipfs/Qma6ZXgXr35Pv3c1h3XvX8V9vUeKVXHAJ3CrhLndoGEMHM"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Types.sol":{"keccak256":"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1","urls":["bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf","dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":45796,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"_status","offset":0,"slot":"0","type":"t_uint256"},{"astId":50784,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"_initialized","offset":0,"slot":"1","type":"t_bool"},{"astId":50791,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"_attestations","offset":0,"slot":"2","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":1308,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"_packages","offset":0,"slot":"3","type":"t_mapping(t_address,t_struct(Package)1303_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_struct(Package)1303_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct SubscriptionPolicy.Package)","numberOfBytes":"32","value":"t_struct(Package)1303_storage"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_struct(Package)1303_storage":{"encoding":"inplace","label":"struct SubscriptionPolicy.Package","numberOfBytes":"64","members":[{"astId":1300,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"pricePerDay","offset":0,"slot":"0","type":"t_uint256"},{"astId":1302,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"currency","offset":0,"slot":"1","type":"t_address"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"contracts/policies/SubscriptionPolicy.sol","id":1648,"exportedSymbols":{"BasePolicy":[51139],"SubscriptionPolicy":[1647],"T":[51233]},"nodeType":"SourceUnit","src":"32:6409:7","nodes":[{"id":1290,"nodeType":"PragmaDirective","src":"32:23:7","nodes":[],"literals":["solidity","0.8",".26"]},{"id":1292,"nodeType":"ImportDirective","src":"57:69:7","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/BasePolicy.sol","file":"@synaps3/core/primitives/BasePolicy.sol","nameLocation":"-1:-1:-1","scope":1648,"sourceUnit":51140,"symbolAliases":[{"foreign":{"id":1291,"name":"BasePolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51139,"src":"66:10:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1294,"nodeType":"ImportDirective","src":"127:55:7","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/Types.sol","file":"@synaps3/core/primitives/Types.sol","nameLocation":"-1:-1:-1","scope":1648,"sourceUnit":51234,"symbolAliases":[{"foreign":{"id":1293,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51233,"src":"136:1:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1647,"nodeType":"ContractDefinition","src":"281:6159:7","nodes":[{"id":1303,"nodeType":"StructDefinition","src":"386:77:7","nodes":[],"canonicalName":"SubscriptionPolicy.Package","documentation":{"id":1298,"nodeType":"StructuredDocumentation","src":"329:52:7","text":"@dev Structure to define a subscription package."},"members":[{"constant":false,"id":1300,"mutability":"mutable","name":"pricePerDay","nameLocation":"419:11:7","nodeType":"VariableDeclaration","scope":1303,"src":"411:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1299,"name":"uint256","nodeType":"ElementaryTypeName","src":"411:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1302,"mutability":"mutable","name":"currency","nameLocation":"448:8:7","nodeType":"VariableDeclaration","scope":1303,"src":"440:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1301,"name":"address","nodeType":"ElementaryTypeName","src":"440:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"Package","nameLocation":"393:7:7","scope":1647,"visibility":"public"},{"id":1308,"nodeType":"VariableDeclaration","src":"553:45:7","nodes":[],"constant":false,"mutability":"mutable","name":"_packages","nameLocation":"589:9:7","scope":1647,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$1303_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package)"},"typeName":{"id":1307,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1304,"name":"address","nodeType":"ElementaryTypeName","src":"561:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"553:27:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$1303_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1306,"nodeType":"UserDefinedTypeName","pathNode":{"id":1305,"name":"Package","nameLocations":["572:7:7"],"nodeType":"IdentifierPath","referencedDeclaration":1303,"src":"572:7:7"},"referencedDeclaration":1303,"src":"572:7:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_storage_ptr","typeString":"struct SubscriptionPolicy.Package"}}},"visibility":"private"},{"id":1323,"nodeType":"FunctionDefinition","src":"605:203:7","nodes":[],"body":{"id":1322,"nodeType":"Block","src":"806:2:7","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":1317,"name":"rightPolicyManagerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1310,"src":"744:25:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1318,"name":"ownershipAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1312,"src":"771:16:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1319,"name":"providerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1314,"src":"789:15:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1320,"kind":"baseConstructorSpecifier","modifierName":{"id":1316,"name":"BasePolicy","nameLocations":["733:10:7"],"nodeType":"IdentifierPath","referencedDeclaration":51139,"src":"733:10:7"},"nodeType":"ModifierInvocation","src":"733:72:7"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":1315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1310,"mutability":"mutable","name":"rightPolicyManagerAddress","nameLocation":"634:25:7","nodeType":"VariableDeclaration","scope":1323,"src":"626:33:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1309,"name":"address","nodeType":"ElementaryTypeName","src":"626:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1312,"mutability":"mutable","name":"ownershipAddress","nameLocation":"677:16:7","nodeType":"VariableDeclaration","scope":1323,"src":"669:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1311,"name":"address","nodeType":"ElementaryTypeName","src":"669:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1314,"mutability":"mutable","name":"providerAddress","nameLocation":"711:15:7","nodeType":"VariableDeclaration","scope":1323,"src":"703:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1313,"name":"address","nodeType":"ElementaryTypeName","src":"703:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"616:116:7"},"returnParameters":{"id":1321,"nodeType":"ParameterList","parameters":[],"src":"806:0:7"},"scope":1647,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1332,"nodeType":"FunctionDefinition","src":"862:98:7","nodes":[],"body":{"id":1331,"nodeType":"Block","src":"916:44:7","nodes":[],"statements":[{"expression":{"hexValue":"537562736372697074696f6e506f6c696379","id":1329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"933:20:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf969a651e510b963d800a99660818c73f95de791671120782050ada205e0116","typeString":"literal_string \"SubscriptionPolicy\""},"value":"SubscriptionPolicy"},"functionReturnParameters":1328,"id":1330,"nodeType":"Return","src":"926:27:7"}]},"baseFunctions":[50246],"documentation":{"id":1324,"nodeType":"StructuredDocumentation","src":"814:43:7","text":"@notice Returns the name of the policy."},"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"871:4:7","parameters":{"id":1325,"nodeType":"ParameterList","parameters":[],"src":"875:2:7"},"returnParameters":{"id":1328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1327,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1332,"src":"901:13:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1326,"name":"string","nodeType":"ElementaryTypeName","src":"901:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"900:15:7"},"scope":1647,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":1341,"nodeType":"FunctionDefinition","src":"1045:458:7","nodes":[],"body":{"id":1340,"nodeType":"Block","src":"1106:397:7","nodes":[],"statements":[{"expression":{"hexValue":"5468697320706f6c69637920666f6c6c6f7773206120737562736372697074696f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c6f77696e6720757365727320746f20616363657373206120636f6e74656e7420686f6c646572277320636174616c6f6720627920706179696e672061206461696c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b65792066656174757265733a0a312920466c657869626c6520737562736372697074696f6e20706572696f6473207365742062792074686520617373657420686f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c20636f6e74656e7420647572696e672074686520737562736372697074696f6e20706572696f642e","id":1338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1135:361:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_194b266123184e70dc22bea7312509d4d684e05e0185bd5a1d15a300a36c3030","typeString":"literal_string hex\"5468697320706f6c69637920666f6c6c6f7773206120737562736372697074696f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c6f77696e6720757365727320746f20616363657373206120636f6e74656e7420686f6c646572277320636174616c6f6720627920706179696e672061206461696c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b65792066656174757265733a0a312920466c657869626c6520737562736372697074696f6e20706572696f6473207365742062792074686520617373657420686f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c20636f6e74656e7420647572696e672074686520737562736372697074696f6e20706572696f642e\""},"value":"This policy follows a subscription model with daily pricing, allowing users to access a content holder's catalog by paying a daily fee for a chosen duration.\n\nKey features:\n1) Flexible subscription periods set by the asset holder.\n2) Instant access to all content during the subscription period."},"functionReturnParameters":1337,"id":1339,"nodeType":"Return","src":"1116:380:7"}]},"baseFunctions":[50252],"documentation":{"id":1333,"nodeType":"StructuredDocumentation","src":"966:74:7","text":"@notice Returns the business/strategy model implemented by the policy."},"functionSelector":"7284e416","implemented":true,"kind":"function","modifiers":[],"name":"description","nameLocation":"1054:11:7","parameters":{"id":1334,"nodeType":"ParameterList","parameters":[],"src":"1065:2:7"},"returnParameters":{"id":1337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1336,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1341,"src":"1091:13:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1335,"name":"string","nodeType":"ElementaryTypeName","src":"1091:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1090:15:7"},"scope":1647,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":1384,"nodeType":"FunctionDefinition","src":"1895:377:7","nodes":[],"body":{"id":1383,"nodeType":"Block","src":"1994:278:7","nodes":[],"statements":[{"assignments":[1353,1355],"declarations":[{"constant":false,"id":1353,"mutability":"mutable","name":"price","nameLocation":"2013:5:7","nodeType":"VariableDeclaration","scope":1383,"src":"2005:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1352,"name":"uint256","nodeType":"ElementaryTypeName","src":"2005:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1355,"mutability":"mutable","name":"currency","nameLocation":"2028:8:7","nodeType":"VariableDeclaration","scope":1383,"src":"2020:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1354,"name":"address","nodeType":"ElementaryTypeName","src":"2020:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1365,"initialValue":{"arguments":[{"id":1358,"name":"init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1345,"src":"2051:4:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":1360,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2058:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1359,"name":"uint256","nodeType":"ElementaryTypeName","src":"2058:7:7","typeDescriptions":{}}},{"id":1362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2067:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1361,"name":"address","nodeType":"ElementaryTypeName","src":"2067:7:7","typeDescriptions":{}}}],"id":1363,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2057:18:7","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_address_$_$","typeString":"tuple(type(uint256),type(address))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_address_$_$","typeString":"tuple(type(uint256),type(address))"}],"expression":{"id":1356,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2040:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1357,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2044:6:7","memberName":"decode","nodeType":"MemberAccess","src":"2040:10:7","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":1364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2040:36:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_address_payable_$","typeString":"tuple(uint256,address payable)"}},"nodeType":"VariableDeclarationStatement","src":"2004:72:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1366,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1353,"src":"2090:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2099:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2090:10:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1373,"nodeType":"IfStatement","src":"2086:75:7","trueBody":{"errorCall":{"arguments":[{"hexValue":"496e76616c696420737562736372697074696f6e2070726963652e","id":1370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2131:29:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_c34de7f84731edc9f4306314e0fbfea34befcd31b45a6958b105a0d671747e17","typeString":"literal_string \"Invalid subscription price.\""},"value":"Invalid subscription price."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c34de7f84731edc9f4306314e0fbfea34befcd31b45a6958b105a0d671747e17","typeString":"literal_string \"Invalid subscription price.\""}],"id":1369,"name":"InvalidInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50827,"src":"2109:21:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":1371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2109:52:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1372,"nodeType":"RevertStatement","src":"2102:59:7"}},{"expression":{"id":1381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1374,"name":"_packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1308,"src":"2221:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$1303_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package storage ref)"}},"id":1376,"indexExpression":{"id":1375,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1343,"src":"2231:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2221:17:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1378,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1353,"src":"2249:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1379,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1355,"src":"2256:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1377,"name":"Package","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1303,"src":"2241:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Package_$1303_storage_ptr_$","typeString":"type(struct SubscriptionPolicy.Package storage pointer)"}},"id":1380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2241:24:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"src":"2221:44:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"id":1382,"nodeType":"ExpressionStatement","src":"2221:44:7"}]},"baseFunctions":[50260],"functionSelector":"d1f57894","implemented":true,"kind":"function","modifiers":[{"id":1348,"kind":"modifierInvocation","modifierName":{"id":1347,"name":"onlyPolicyAuthorizer","nameLocations":["1961:20:7"],"nodeType":"IdentifierPath","referencedDeclaration":50865,"src":"1961:20:7"},"nodeType":"ModifierInvocation","src":"1961:20:7"},{"id":1350,"kind":"modifierInvocation","modifierName":{"id":1349,"name":"initializer","nameLocations":["1982:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":50878,"src":"1982:11:7"},"nodeType":"ModifierInvocation","src":"1982:11:7"}],"name":"initialize","nameLocation":"1904:10:7","parameters":{"id":1346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1343,"mutability":"mutable","name":"holder","nameLocation":"1923:6:7","nodeType":"VariableDeclaration","scope":1384,"src":"1915:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1342,"name":"address","nodeType":"ElementaryTypeName","src":"1915:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1345,"mutability":"mutable","name":"init","nameLocation":"1946:4:7","nodeType":"VariableDeclaration","scope":1384,"src":"1931:19:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1344,"name":"bytes","nodeType":"ElementaryTypeName","src":"1931:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1914:37:7"},"returnParameters":{"id":1351,"nodeType":"ParameterList","parameters":[],"src":"1994:0:7"},"scope":1647,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1457,"nodeType":"FunctionDefinition","src":"2427:933:7","nodes":[],"body":{"id":1456,"nodeType":"Block","src":"2580:780:7","nodes":[],"statements":[{"assignments":[1401],"declarations":[{"constant":false,"id":1401,"mutability":"mutable","name":"pkg","nameLocation":"2605:3:7","nodeType":"VariableDeclaration","scope":1456,"src":"2590:18:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_memory_ptr","typeString":"struct SubscriptionPolicy.Package"},"typeName":{"id":1400,"nodeType":"UserDefinedTypeName","pathNode":{"id":1399,"name":"Package","nameLocations":["2590:7:7"],"nodeType":"IdentifierPath","referencedDeclaration":1303,"src":"2590:7:7"},"referencedDeclaration":1303,"src":"2590:7:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_storage_ptr","typeString":"struct SubscriptionPolicy.Package"}},"visibility":"internal"}],"id":1405,"initialValue":{"baseExpression":{"id":1402,"name":"_packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1308,"src":"2611:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$1303_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package storage ref)"}},"id":1404,"indexExpression":{"id":1403,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1386,"src":"2621:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2611:17:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2590:38:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1406,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1401,"src":"2642:3:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":1407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2646:11:7","memberName":"pricePerDay","nodeType":"MemberAccess","referencedDeclaration":1300,"src":"2642:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2661:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2642:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1415,"nodeType":"IfStatement","src":"2638:213:7","trueBody":{"id":1414,"nodeType":"Block","src":"2664:187:7","statements":[{"errorCall":{"arguments":[{"hexValue":"496e76616c6964206e6f7420696e697469616c697a656420686f6c64657220636f6e646974696f6e73","id":1411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2796:43:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_1aec205e23794276aa0afcfadd0b767e900e2e41565fc044513d6e45af83bcbd","typeString":"literal_string \"Invalid not initialized holder conditions\""},"value":"Invalid not initialized holder conditions"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1aec205e23794276aa0afcfadd0b767e900e2e41565fc044513d6e45af83bcbd","typeString":"literal_string \"Invalid not initialized holder conditions\""}],"id":1410,"name":"InvalidEnforcement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50819,"src":"2777:18:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":1412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2777:63:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1413,"nodeType":"RevertStatement","src":"2770:70:7"}]}},{"assignments":[1417],"declarations":[{"constant":false,"id":1417,"mutability":"mutable","name":"paidAmount","nameLocation":"2869:10:7","nodeType":"VariableDeclaration","scope":1456,"src":"2861:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1416,"name":"uint256","nodeType":"ElementaryTypeName","src":"2861:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1420,"initialValue":{"expression":{"id":1418,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1389,"src":"2882:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$51199_calldata_ptr","typeString":"struct T.Agreement calldata"}},"id":1419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2892:5:7","memberName":"total","nodeType":"MemberAccess","referencedDeclaration":51191,"src":"2882:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2861:36:7"},{"assignments":[1422],"declarations":[{"constant":false,"id":1422,"mutability":"mutable","name":"partiesLen","nameLocation":"2915:10:7","nodeType":"VariableDeclaration","scope":1456,"src":"2907:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1421,"name":"uint256","nodeType":"ElementaryTypeName","src":"2907:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1426,"initialValue":{"expression":{"expression":{"id":1423,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1389,"src":"2928:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$51199_calldata_ptr","typeString":"struct T.Agreement calldata"}},"id":1424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2938:7:7","memberName":"parties","nodeType":"MemberAccess","referencedDeclaration":51196,"src":"2928:17:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2946:6:7","memberName":"length","nodeType":"MemberAccess","src":"2928:24:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2907:45:7"},{"assignments":[1428],"declarations":[{"constant":false,"id":1428,"mutability":"mutable","name":"pricePerDay","nameLocation":"2970:11:7","nodeType":"VariableDeclaration","scope":1456,"src":"2962:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1427,"name":"uint256","nodeType":"ElementaryTypeName","src":"2962:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1431,"initialValue":{"expression":{"id":1429,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1401,"src":"2984:3:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":1430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2988:11:7","memberName":"pricePerDay","nodeType":"MemberAccess","referencedDeclaration":1300,"src":"2984:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2962:37:7"},{"assignments":[1433],"declarations":[{"constant":false,"id":1433,"mutability":"mutable","name":"duration","nameLocation":"3097:8:7","nodeType":"VariableDeclaration","scope":1456,"src":"3089:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1432,"name":"uint256","nodeType":"ElementaryTypeName","src":"3089:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1439,"initialValue":{"arguments":[{"id":1435,"name":"paidAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1417,"src":"3130:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1436,"name":"pricePerDay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"3142:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1437,"name":"partiesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1422,"src":"3155:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1434,"name":"_verifyDaysFromAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1596,"src":"3108:21:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":1438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3108:58:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3089:77:7"},{"assignments":[1441],"declarations":[{"constant":false,"id":1441,"mutability":"mutable","name":"subExpire","nameLocation":"3250:9:7","nodeType":"VariableDeclaration","scope":1456,"src":"3242:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1440,"name":"uint256","nodeType":"ElementaryTypeName","src":"3242:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1449,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1442,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3262:5:7","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":1443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3268:9:7","memberName":"timestamp","nodeType":"MemberAccess","src":"3262:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1444,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1433,"src":"3281:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31","id":1445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3292:6:7","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"1"},"src":"3281:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1447,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3280:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3262:37:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3242:57:7"},{"expression":{"arguments":[{"id":1451,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1386,"src":"3324:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1452,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1389,"src":"3332:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$51199_calldata_ptr","typeString":"struct T.Agreement calldata"}},{"id":1453,"name":"subExpire","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1441,"src":"3343:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Agreement_$51199_calldata_ptr","typeString":"struct T.Agreement calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1450,"name":"_commit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51083,"src":"3316:7:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_Agreement_$51199_memory_ptr_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,struct T.Agreement memory,uint256) returns (uint256[] memory)"}},"id":1454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3316:37:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":1398,"id":1455,"nodeType":"Return","src":"3309:44:7"}]},"baseFunctions":[50272],"functionSelector":"464c0aeb","implemented":true,"kind":"function","modifiers":[{"id":1392,"kind":"modifierInvocation","modifierName":{"id":1391,"name":"onlyPolicyManager","nameLocations":["2523:17:7"],"nodeType":"IdentifierPath","referencedDeclaration":50845,"src":"2523:17:7"},"nodeType":"ModifierInvocation","src":"2523:17:7"},{"id":1394,"kind":"modifierInvocation","modifierName":{"id":1393,"name":"initialized","nameLocations":["2541:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":50890,"src":"2541:11:7"},"nodeType":"ModifierInvocation","src":"2541:11:7"}],"name":"enforce","nameLocation":"2436:7:7","parameters":{"id":1390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1386,"mutability":"mutable","name":"holder","nameLocation":"2461:6:7","nodeType":"VariableDeclaration","scope":1457,"src":"2453:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1385,"name":"address","nodeType":"ElementaryTypeName","src":"2453:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1389,"mutability":"mutable","name":"agreement","nameLocation":"2498:9:7","nodeType":"VariableDeclaration","scope":1457,"src":"2477:30:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$51199_calldata_ptr","typeString":"struct T.Agreement"},"typeName":{"id":1388,"nodeType":"UserDefinedTypeName","pathNode":{"id":1387,"name":"T.Agreement","nameLocations":["2477:1:7","2479:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":51199,"src":"2477:11:7"},"referencedDeclaration":51199,"src":"2477:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$51199_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"src":"2443:70:7"},"returnParameters":{"id":1398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1397,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1457,"src":"2562:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1395,"name":"uint256","nodeType":"ElementaryTypeName","src":"2562:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1396,"nodeType":"ArrayTypeName","src":"2562:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2561:18:7"},"scope":1647,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1505,"nodeType":"FunctionDefinition","src":"3449:527:7","nodes":[],"body":{"id":1504,"nodeType":"Block","src":"3545:431:7","nodes":[],"statements":[{"condition":{"arguments":[{"id":1468,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1462,"src":"3640:8:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1467,"name":"_isHolderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1646,"src":"3623:16:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_bool_$","typeString":"function (bytes calldata) pure returns (bool)"}},"id":1469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3623:26:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1486,"nodeType":"IfStatement","src":"3619:186:7","trueBody":{"id":1485,"nodeType":"Block","src":"3651:154:7","statements":[{"assignments":[1471],"declarations":[{"constant":false,"id":1471,"mutability":"mutable","name":"holder","nameLocation":"3705:6:7","nodeType":"VariableDeclaration","scope":1485,"src":"3697:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1470,"name":"address","nodeType":"ElementaryTypeName","src":"3697:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1479,"initialValue":{"arguments":[{"id":1474,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1462,"src":"3725:8:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":1476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3736:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1475,"name":"address","nodeType":"ElementaryTypeName","src":"3736:7:7","typeDescriptions":{}}}],"id":1477,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3735:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":1472,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3714:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3718:6:7","memberName":"decode","nodeType":"MemberAccess","src":"3714:10:7","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":1478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3714:31:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"3697:48:7"},{"expression":{"arguments":[{"id":1481,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1460,"src":"3778:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1482,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1471,"src":"3787:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1480,"name":"isCompliant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51009,"src":"3766:11:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":1483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3766:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1466,"id":1484,"nodeType":"Return","src":"3759:35:7"}]}},{"assignments":[1488],"declarations":[{"constant":false,"id":1488,"mutability":"mutable","name":"assetId","nameLocation":"3871:7:7","nodeType":"VariableDeclaration","scope":1504,"src":"3863:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1487,"name":"uint256","nodeType":"ElementaryTypeName","src":"3863:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1496,"initialValue":{"arguments":[{"id":1491,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1462,"src":"3892:8:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":1493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3903:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1492,"name":"uint256","nodeType":"ElementaryTypeName","src":"3903:7:7","typeDescriptions":{}}}],"id":1494,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3902:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":1489,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3881:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3885:6:7","memberName":"decode","nodeType":"MemberAccess","src":"3881:10:7","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":1495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3881:31:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3863:49:7"},{"expression":{"arguments":[{"id":1498,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1460,"src":"3941:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1500,"name":"assetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1488,"src":"3960:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1499,"name":"getHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51023,"src":"3950:9:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3950:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1497,"name":"isCompliant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51009,"src":"3929:11:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":1502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3929:40:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1466,"id":1503,"nodeType":"Return","src":"3922:47:7"}]},"baseFunctions":[50282],"documentation":{"id":1458,"nodeType":"StructuredDocumentation","src":"3366:78:7","text":"@notice Verifies if an account has access to holder's content or asset id."},"functionSelector":"cfdce1a7","implemented":true,"kind":"function","modifiers":[],"name":"isAccessAllowed","nameLocation":"3458:15:7","parameters":{"id":1463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1460,"mutability":"mutable","name":"account","nameLocation":"3482:7:7","nodeType":"VariableDeclaration","scope":1505,"src":"3474:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1459,"name":"address","nodeType":"ElementaryTypeName","src":"3474:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1462,"mutability":"mutable","name":"criteria","nameLocation":"3506:8:7","nodeType":"VariableDeclaration","scope":1505,"src":"3491:23:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1461,"name":"bytes","nodeType":"ElementaryTypeName","src":"3491:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3473:42:7"},"returnParameters":{"id":1466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1465,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1505,"src":"3539:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1464,"name":"bool","nodeType":"ElementaryTypeName","src":"3539:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3538:6:7"},"scope":1647,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1553,"nodeType":"FunctionDefinition","src":"4066:604:7","nodes":[],"body":{"id":1552,"nodeType":"Block","src":"4152:518:7","nodes":[],"statements":[{"condition":{"id":1517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4345:27:7","subExpression":{"arguments":[{"id":1515,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1508,"src":"4363:8:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1514,"name":"_isHolderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1646,"src":"4346:16:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_bool_$","typeString":"function (bytes calldata) pure returns (bool)"}},"id":1516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4346:26:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1522,"nodeType":"IfStatement","src":"4341:95:7","trueBody":{"id":1521,"nodeType":"Block","src":"4374:62:7","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1518,"name":"InvalidNotSupportedOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50806,"src":"4395:28:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":1519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4395:30:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1520,"nodeType":"RevertStatement","src":"4388:37:7"}]}},{"assignments":[1524],"declarations":[{"constant":false,"id":1524,"mutability":"mutable","name":"holder","nameLocation":"4454:6:7","nodeType":"VariableDeclaration","scope":1552,"src":"4446:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1523,"name":"address","nodeType":"ElementaryTypeName","src":"4446:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1532,"initialValue":{"arguments":[{"id":1527,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1508,"src":"4474:8:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":1529,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4485:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1528,"name":"address","nodeType":"ElementaryTypeName","src":"4485:7:7","typeDescriptions":{}}}],"id":1530,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4484:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":1525,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4463:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4467:6:7","memberName":"decode","nodeType":"MemberAccess","src":"4463:10:7","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":1531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4463:31:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"4446:48:7"},{"assignments":[1535],"declarations":[{"constant":false,"id":1535,"mutability":"mutable","name":"pkg","nameLocation":"4519:3:7","nodeType":"VariableDeclaration","scope":1552,"src":"4504:18:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_memory_ptr","typeString":"struct SubscriptionPolicy.Package"},"typeName":{"id":1534,"nodeType":"UserDefinedTypeName","pathNode":{"id":1533,"name":"Package","nameLocations":["4504:7:7"],"nodeType":"IdentifierPath","referencedDeclaration":1303,"src":"4504:7:7"},"referencedDeclaration":1303,"src":"4504:7:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_storage_ptr","typeString":"struct SubscriptionPolicy.Package"}},"visibility":"internal"}],"id":1539,"initialValue":{"baseExpression":{"id":1536,"name":"_packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1308,"src":"4525:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$1303_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package storage ref)"}},"id":1538,"indexExpression":{"id":1537,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1524,"src":"4535:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4525:17:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4504:38:7"},{"expression":{"arguments":[{"expression":{"id":1542,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1535,"src":"4603:3:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":1543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4607:11:7","memberName":"pricePerDay","nodeType":"MemberAccess","referencedDeclaration":1300,"src":"4603:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":1544,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1535,"src":"4620:3:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":1545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4624:8:7","memberName":"currency","nodeType":"MemberAccess","referencedDeclaration":1302,"src":"4620:12:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":1546,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51233,"src":"4634:1:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_T_$51233_$","typeString":"type(library T)"}},"id":1547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4636:9:7","memberName":"RateBasis","nodeType":"MemberAccess","referencedDeclaration":51211,"src":"4634:11:7","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RateBasis_$51211_$","typeString":"type(enum T.RateBasis)"}},"id":1548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4646:5:7","memberName":"DAILY","nodeType":"MemberAccess","referencedDeclaration":51209,"src":"4634:17:7","typeDescriptions":{"typeIdentifier":"t_enum$_RateBasis_$51211","typeString":"enum T.RateBasis"}},{"hexValue":"697066733a2f2f","id":1549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4653:9:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe","typeString":"literal_string \"ipfs://\""},"value":"ipfs://"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_RateBasis_$51211","typeString":"enum T.RateBasis"},{"typeIdentifier":"t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe","typeString":"literal_string \"ipfs://\""}],"expression":{"id":1540,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51233,"src":"4595:1:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_T_$51233_$","typeString":"type(library T)"}},"id":1541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4597:5:7","memberName":"Terms","nodeType":"MemberAccess","referencedDeclaration":51222,"src":"4595:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Terms_$51222_storage_ptr_$","typeString":"type(struct T.Terms storage pointer)"}},"id":1550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4595:68:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51222_memory_ptr","typeString":"struct T.Terms memory"}},"functionReturnParameters":1513,"id":1551,"nodeType":"Return","src":"4588:75:7"}]},"baseFunctions":[50291],"documentation":{"id":1506,"nodeType":"StructuredDocumentation","src":"3982:79:7","text":"@notice Retrieves the terms associated with a specific criteria and policy."},"functionSelector":"a3937111","implemented":true,"kind":"function","modifiers":[],"name":"resolveTerms","nameLocation":"4075:12:7","parameters":{"id":1509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1508,"mutability":"mutable","name":"criteria","nameLocation":"4103:8:7","nodeType":"VariableDeclaration","scope":1553,"src":"4088:23:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1507,"name":"bytes","nodeType":"ElementaryTypeName","src":"4088:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4087:25:7"},"returnParameters":{"id":1513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1512,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1553,"src":"4136:14:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51222_memory_ptr","typeString":"struct T.Terms"},"typeName":{"id":1511,"nodeType":"UserDefinedTypeName","pathNode":{"id":1510,"name":"T.Terms","nameLocations":["4136:1:7","4138:5:7"],"nodeType":"IdentifierPath","referencedDeclaration":51222,"src":"4136:7:7"},"referencedDeclaration":51222,"src":"4136:7:7","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51222_storage_ptr","typeString":"struct T.Terms"}},"visibility":"internal"}],"src":"4135:16:7"},"scope":1647,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1596,"nodeType":"FunctionDefinition","src":"4676:669:7","nodes":[],"body":{"id":1595,"nodeType":"Block","src":"4825:520:7","nodes":[],"statements":[{"assignments":[1565],"declarations":[{"constant":false,"id":1565,"mutability":"mutable","name":"paymentPerAccount","nameLocation":"4918:17:7","nodeType":"VariableDeclaration","scope":1595,"src":"4910:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1564,"name":"uint256","nodeType":"ElementaryTypeName","src":"4910:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1569,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1566,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1555,"src":"4938:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1567,"name":"partiesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1559,"src":"4947:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4938:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4910:47:7"},{"assignments":[1571],"declarations":[{"constant":false,"id":1571,"mutability":"mutable","name":"subscriptionDuration","nameLocation":"5023:20:7","nodeType":"VariableDeclaration","scope":1595,"src":"5015:28:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1570,"name":"uint256","nodeType":"ElementaryTypeName","src":"5015:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1575,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1572,"name":"paymentPerAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1565,"src":"5046:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1573,"name":"pricePerDay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1557,"src":"5066:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5046:31:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5015:62:7"},{"assignments":[1577],"declarations":[{"constant":false,"id":1577,"mutability":"mutable","name":"total","nameLocation":"5150:5:7","nodeType":"VariableDeclaration","scope":1595,"src":"5142:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1576,"name":"uint256","nodeType":"ElementaryTypeName","src":"5142:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1584,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1578,"name":"subscriptionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1571,"src":"5159:20:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1579,"name":"pricePerDay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1557,"src":"5182:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5159:34:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1581,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5158:36:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1582,"name":"partiesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1559,"src":"5197:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5158:49:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5142:65:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1585,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1555,"src":"5221:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1586,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1577,"src":"5230:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5221:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1592,"nodeType":"IfStatement","src":"5217:84:7","trueBody":{"errorCall":{"arguments":[{"hexValue":"496e73756666696369656e742066756e647320666f7220737562736372697074696f6e","id":1589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5263:37:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_672f704359c96e0312355040ab5c89b621a6d70e08076807a34681fa7dc8d2e7","typeString":"literal_string \"Insufficient funds for subscription\""},"value":"Insufficient funds for subscription"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_672f704359c96e0312355040ab5c89b621a6d70e08076807a34681fa7dc8d2e7","typeString":"literal_string \"Insufficient funds for subscription\""}],"id":1588,"name":"InvalidEnforcement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50819,"src":"5244:18:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":1590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5244:57:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1591,"nodeType":"RevertStatement","src":"5237:64:7"}},{"expression":{"id":1593,"name":"subscriptionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1571,"src":"5318:20:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1563,"id":1594,"nodeType":"Return","src":"5311:27:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_verifyDaysFromAmount","nameLocation":"4685:21:7","parameters":{"id":1560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1555,"mutability":"mutable","name":"amount","nameLocation":"4724:6:7","nodeType":"VariableDeclaration","scope":1596,"src":"4716:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1554,"name":"uint256","nodeType":"ElementaryTypeName","src":"4716:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1557,"mutability":"mutable","name":"pricePerDay","nameLocation":"4748:11:7","nodeType":"VariableDeclaration","scope":1596,"src":"4740:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1556,"name":"uint256","nodeType":"ElementaryTypeName","src":"4740:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1559,"mutability":"mutable","name":"partiesLen","nameLocation":"4777:10:7","nodeType":"VariableDeclaration","scope":1596,"src":"4769:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1558,"name":"uint256","nodeType":"ElementaryTypeName","src":"4769:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4706:87:7"},"returnParameters":{"id":1563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1562,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1596,"src":"4816:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1561,"name":"uint256","nodeType":"ElementaryTypeName","src":"4816:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4815:9:7"},"scope":1647,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":1646,"nodeType":"FunctionDefinition","src":"5351:1087:7","nodes":[],"body":{"id":1645,"nodeType":"Block","src":"5430:1008:7","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1603,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1598,"src":"6193:8:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":1604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6202:6:7","memberName":"length","nodeType":"MemberAccess","src":"6193:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3332","id":1605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6212:2:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"6193:21:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1610,"nodeType":"IfStatement","src":"6189:64:7","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1607,"name":"InvalidNotSupportedOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50806,"src":"6223:28:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":1608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6223:30:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1609,"nodeType":"RevertStatement","src":"6216:37:7"}},{"assignments":[1612],"declarations":[{"constant":false,"id":1612,"mutability":"mutable","name":"last20Valid","nameLocation":"6268:11:7","nodeType":"VariableDeclaration","scope":1645,"src":"6263:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1611,"name":"bool","nodeType":"ElementaryTypeName","src":"6263:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":1625,"initialValue":{"commonType":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"id":1624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":1615,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1598,"src":"6290:8:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"3332","id":1617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6302:2:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"id":1618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"6290:15:7","startExpression":{"hexValue":"3132","id":1616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6299:2:7","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":1614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6282:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":1613,"name":"bytes20","nodeType":"ElementaryTypeName","src":"6282:7:7","typeDescriptions":{}}},"id":1619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6282:24:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6318:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6310:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":1620,"name":"bytes20","nodeType":"ElementaryTypeName","src":"6310:7:7","typeDescriptions":{}}},"id":1623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6310:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"src":"6282:38:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"6263:57:7"},{"assignments":[1627],"declarations":[{"constant":false,"id":1627,"mutability":"mutable","name":"first12Valid","nameLocation":"6335:12:7","nodeType":"VariableDeclaration","scope":1645,"src":"6330:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1626,"name":"bool","nodeType":"ElementaryTypeName","src":"6330:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":1640,"initialValue":{"commonType":{"typeIdentifier":"t_bytes12","typeString":"bytes12"},"id":1639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":1630,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1598,"src":"6358:8:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"3132","id":1632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6369:2:7","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"id":1633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"6358:14:7","startExpression":{"hexValue":"30","id":1631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6367:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":1629,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6350:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes12_$","typeString":"type(bytes12)"},"typeName":{"id":1628,"name":"bytes12","nodeType":"ElementaryTypeName","src":"6350:7:7","typeDescriptions":{}}},"id":1634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6350:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6385:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1636,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6377:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes12_$","typeString":"type(bytes12)"},"typeName":{"id":1635,"name":"bytes12","nodeType":"ElementaryTypeName","src":"6377:7:7","typeDescriptions":{}}},"id":1638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6377:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"src":"6350:37:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"6330:57:7"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1641,"name":"last20Valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1612,"src":"6404:11:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":1642,"name":"first12Valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1627,"src":"6419:12:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6404:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1602,"id":1644,"nodeType":"Return","src":"6397:34:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_isHolderAddress","nameLocation":"5360:16:7","parameters":{"id":1599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1598,"mutability":"mutable","name":"criteria","nameLocation":"5392:8:7","nodeType":"VariableDeclaration","scope":1646,"src":"5377:23:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1597,"name":"bytes","nodeType":"ElementaryTypeName","src":"5377:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5376:25:7"},"returnParameters":{"id":1602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1601,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1646,"src":"5424:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1600,"name":"bool","nodeType":"ElementaryTypeName","src":"5424:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5423:6:7"},"scope":1647,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":1296,"name":"BasePolicy","nameLocations":["312:10:7"],"nodeType":"IdentifierPath","referencedDeclaration":51139,"src":"312:10:7"},"id":1297,"nodeType":"InheritanceSpecifier","src":"312:10:7"}],"canonicalName":"SubscriptionPolicy","contractDependencies":[],"contractKind":"contract","documentation":{"id":1295,"nodeType":"StructuredDocumentation","src":"184:97:7","text":"@title SubscriptionPolicy\n @notice Implements a subscription-based content access policy."},"fullyImplemented":true,"linearizedBaseContracts":[1647,51139,46322,46334,50308,45854],"name":"SubscriptionPolicy","nameLocation":"290:18:7","scope":1648,"usedErrors":[45799,50803,50806,50811,50814,50819,50822,50827],"usedEvents":[50800]}],"license":"MIT"},"id":7} \ No newline at end of file diff --git a/src/config/abi/TipActionModule.json b/src/config/abi/TipActionModule.json deleted file mode 100644 index d120b0f9d..000000000 --- a/src/config/abi/TipActionModule.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"hub","type":"address","internalType":"address"},{"name":"moduleRegistry","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"HUB","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"MODULE_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IModuleRegistry"}],"stateMutability":"view"},{"type":"function","name":"getModuleMetadataURI","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getTipReceiver","inputs":[{"name":"profileId","type":"uint256","internalType":"uint256"},{"name":"pubId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initializePublicationAction","inputs":[{"name":"profileId","type":"uint256","internalType":"uint256"},{"name":"pubId","type":"uint256","internalType":"uint256"},{"name":"","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"isRegistered","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"metadataURI","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"processPublicationAction","inputs":[{"name":"params","type":"tuple","internalType":"struct Types.ProcessActionParams","components":[{"name":"publicationActedProfileId","type":"uint256","internalType":"uint256"},{"name":"publicationActedId","type":"uint256","internalType":"uint256"},{"name":"actorProfileId","type":"uint256","internalType":"uint256"},{"name":"actorProfileOwner","type":"address","internalType":"address"},{"name":"transactionExecutor","type":"address","internalType":"address"},{"name":"referrerProfileIds","type":"uint256[]","internalType":"uint256[]"},{"name":"referrerPubIds","type":"uint256[]","internalType":"uint256[]"},{"name":"referrerPubTypes","type":"uint8[]","internalType":"enum Types.PublicationType[]"},{"name":"actionModuleData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerModule","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setModuleMetadataURI","inputs":[{"name":"_metadataURI","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceID","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ModuleRegistered","inputs":[],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TipCreated","inputs":[{"name":"transactionExecutor","type":"address","indexed":true,"internalType":"address"},{"name":"tipReceiver","type":"address","indexed":true,"internalType":"address"},{"name":"currency","type":"address","indexed":true,"internalType":"address"},{"name":"tipAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TipReceiverRegistered","inputs":[{"name":"profileId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"pubId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"tipReceiver","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"CurrencyNotWhitelisted","inputs":[]},{"type":"error","name":"NotHub","inputs":[]},{"type":"error","name":"TipAmountCannotBeZero","inputs":[]},{"type":"error","name":"TipReceiverNotProvided","inputs":[]}],"bytecode":{"object":"0x60c0346100ea57601f61140538819003918201601f19168301916001600160401b038311848410176100ee5780849260409485528339810103126100ea57610052602061004b83610102565b9201610102565b5f8054336001600160a01b0319821681178355604051949290916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a36080526001600160a01b031660a0526112ee908161011782396080518181816102be015281816103780152610b8e015260a05181818161026e0152818161046f0152818161101901526110e60152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100ea5756fe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714610c7b5750806303ee438c1461020f5780630b96022014610b135780632236684414610af9578063681591c1146108aa578063715018a61461082e5780638da5cb5b146107fc57806390ce6e081461032e5780639df31650146102e2578063a4c52b8614610292578063b95ddb5214610242578063ce90d52e1461020f578063e0f0da85146101e35763f2fde38b146100b6575f80fd5b346101df5760206003193601126101df5760043573ffffffffffffffffffffffffffffffffffffffff81168091036101df576100f061116a565b801561015b5773ffffffffffffffffffffffffffffffffffffffff5f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b5f80fd5b346101df575f6003193601126101df576101fb61116a565b6020610205611089565b6040519015158152f35b346101df575f6003193601126101df5761023e61022a610dec565b604051918291602083526020830190610ec1565b0390f35b346101df575f6003193601126101df57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101df575f6003193601126101df57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101df5760406003193601126101df576004355f52600260205260405f206024355f52602052602073ffffffffffffffffffffffffffffffffffffffff60405f205416604051908152f35b346101df5760206003193601126101df5760043567ffffffffffffffff81116101df578036036101206003198201126101df5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633036107d4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd61010483013591018112156101df57810190600482013567ffffffffffffffff81116101df57602483019080360382136101df576040908401849003126101df57604461042073ffffffffffffffffffffffffffffffffffffffff92610f97565b9301359216906040517ff21b24d700000000000000000000000000000000000000000000000000000000815282600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156107c9575f9161079a575b501561077257821561074a5780600401355f52600260205260405f2060248201355f52602052610537608473ffffffffffffffffffffffffffffffffffffffff60405f2054169201838373ffffffffffffffffffffffffffffffffffffffff61050784611068565b167fa97c26bcff37e30b62e8fde0564a6b12c848ec32b59c38db21c5742ff60a2d9460206040518a8152a4611068565b9261063d6040516105cd816105a18587602084019a7f23b872dd000000000000000000000000000000000000000000000000000000008c526024850173ffffffffffffffffffffffffffffffffffffffff6040929594938160608401971683521660208201520152565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610dab565b5f806040978851936105df8a86610dab565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020860152519082895af13d15610742573d9061062082610f27565b9161062d89519384610dab565b82523d5f602084013e5b866111e8565b8051908115918215610728575b5050156106a557835173ffffffffffffffffffffffffffffffffffffffff9283166020820152929091166040830152606080830191909152815261023e91610693608083610dab565b51918291602083526020830190610ec1565b608484517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b61073b9250602080918301019101610fb8565b858061064a565b606090610637565b7f7378d044000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f5f6063cc000000000000000000000000000000000000000000000000000000005f5260045ffd5b6107bc915060203d6020116107c2575b6107b48183610dab565b810190610fb8565b8461049f565b503d6107aa565b6040513d5f823e3d90fd5b7f9de97418000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101df575f6003193601126101df57602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b346101df575f6003193601126101df5761084661116a565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346101df5760206003193601126101df5760043567ffffffffffffffff81116101df57366023820112156101df576108ec903690602481600401359101610f61565b6108f461116a565b805167ffffffffffffffff8111610acc57610910600154610d5a565b601f8111610a2b575b50602091601f8211600114610973579181925f92610968575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176001555f80f35b015190508280610932565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082169260015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6915f5b858110610a13575083600195106109dc575b505050811b01600155005b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690558280806109d1565b919260206001819286850151815501940192016109bf565b60015f52601f820160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6019060208310610aa4575b601f0160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601905b818110610a995750610919565b5f8155600101610a8c565b7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69150610a62565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b346101df575f6003193601126101df576020610205610fd0565b346101df5760806003193601126101df57602435600435610b32610f04565b5060643567ffffffffffffffff81116101df57366023820112156101df57806004013567ffffffffffffffff81116101df576024820191818101903660248301116101df5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633036107d45760209103126101df5773ffffffffffffffffffffffffffffffffffffffff610bdb83610f97565b168015610c535761023e948461022a955f52600260205260405f20825f5260205260405f20837fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557fd8766a4dde1c3b5c500372d6448edb28568eedabe9de08a94992f30a560516825f80a43691610f61565b7f2d89e952000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101df5760206003193601126101df57600435907fffffffff0000000000000000000000000000000000000000000000000000000082168092036101df57817f9b586c280000000000000000000000000000000000000000000000000000000060209314918215610cf4575b50506040519015158152f35b7fffffffff00000000000000000000000000000000000000000000000000000000919250838101907f4c454e535f4d4f44554c450000000000000000000000000000000000000000008252600b8152610d4e602b82610dab565b51902016148280610ce8565b90600182811c92168015610da1575b6020831014610d7457565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691610d69565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610acc57604052565b604051905f8260015491610dff83610d5a565b8083529260018116908115610e845750600114610e25575b610e2392500383610dab565b565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b818310610e68575050906020610e2392820101610e17565b6020919350806001915483858901015201910190918492610e50565b60209250610e239491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b820101610e17565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6044359073ffffffffffffffffffffffffffffffffffffffff821682036101df57565b67ffffffffffffffff8111610acc57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b929192610f6d82610f27565b91610f7b6040519384610dab565b8294818452818301116101df578281602093845f960137010152565b359073ffffffffffffffffffffffffffffffffffffffff821682036101df57565b908160209103126101df575180151581036101df5790565b6040517f1c5ebe2f00000000000000000000000000000000000000000000000000000000815230600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156107c9575f9161104c575090565b611065915060203d6020116107c2576107b48183610dab565b90565b3573ffffffffffffffffffffffffffffffffffffffff811681036101df5790565b611091610fd0565b611165576040517f41ab44ee000000000000000000000000000000000000000000000000000000008152306004820152600160248201526020816044815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af19081156107c9575f91611146575b508061111f5790565b7fb24617d9cac8b35b25b3bcaf3eb7e8e8e1cbed6ee116121e4e1c08a9774310625f80a190565b61115f915060203d6020116107c2576107b48183610dab565b5f611116565b600190565b73ffffffffffffffffffffffffffffffffffffffff5f5416330361118a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b9192901561126357508151156111fc575090565b3b156112055790565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b8251909150156112765750805190602001fd5b6112b4906040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352602060048401526024830190610ec1565b0390fdfea2646970667358221220a603317607cf6c4d6692310fd4fe8e10e6d1ae6625ec2bcfa004ddd37faf1f8064736f6c634300081a0033","sourceMap":"760:3342:0:-:0;;;;;;;;;;;;;-1:-1:-1;;760:3342:0;;;;-1:-1:-1;;;;;760:3342:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;-1:-1:-1;760:3342:0;;734:10:36;-1:-1:-1;;;;;;760:3342:0;;;;;;;;;;734:10:36;;-1:-1:-1;;;;;760:3342:0;;2566:40:30;;-1:-1:-1;2566:40:30;598:9:1;;-1:-1:-1;;;;;760:3342:0;;780:49:4;760:3342:0;;;;;;598:9:1;760:3342:0;;;;;;;;;;;;;;;780:49:4;760:3342:0;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;760:3342:0;;;;;;-1:-1:-1;760:3342:0;;;;;-1:-1:-1;760:3342:0;;;;-1:-1:-1;;;;;760:3342:0;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714610c7b5750806303ee438c1461020f5780630b96022014610b135780632236684414610af9578063681591c1146108aa578063715018a61461082e5780638da5cb5b146107fc57806390ce6e081461032e5780639df31650146102e2578063a4c52b8614610292578063b95ddb5214610242578063ce90d52e1461020f578063e0f0da85146101e35763f2fde38b146100b6575f80fd5b346101df5760206003193601126101df5760043573ffffffffffffffffffffffffffffffffffffffff81168091036101df576100f061116a565b801561015b5773ffffffffffffffffffffffffffffffffffffffff5f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b5f80fd5b346101df575f6003193601126101df576101fb61116a565b6020610205611089565b6040519015158152f35b346101df575f6003193601126101df5761023e61022a610dec565b604051918291602083526020830190610ec1565b0390f35b346101df575f6003193601126101df57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101df575f6003193601126101df57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101df5760406003193601126101df576004355f52600260205260405f206024355f52602052602073ffffffffffffffffffffffffffffffffffffffff60405f205416604051908152f35b346101df5760206003193601126101df5760043567ffffffffffffffff81116101df578036036101206003198201126101df5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633036107d4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd61010483013591018112156101df57810190600482013567ffffffffffffffff81116101df57602483019080360382136101df576040908401849003126101df57604461042073ffffffffffffffffffffffffffffffffffffffff92610f97565b9301359216906040517ff21b24d700000000000000000000000000000000000000000000000000000000815282600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156107c9575f9161079a575b501561077257821561074a5780600401355f52600260205260405f2060248201355f52602052610537608473ffffffffffffffffffffffffffffffffffffffff60405f2054169201838373ffffffffffffffffffffffffffffffffffffffff61050784611068565b167fa97c26bcff37e30b62e8fde0564a6b12c848ec32b59c38db21c5742ff60a2d9460206040518a8152a4611068565b9261063d6040516105cd816105a18587602084019a7f23b872dd000000000000000000000000000000000000000000000000000000008c526024850173ffffffffffffffffffffffffffffffffffffffff6040929594938160608401971683521660208201520152565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610dab565b5f806040978851936105df8a86610dab565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020860152519082895af13d15610742573d9061062082610f27565b9161062d89519384610dab565b82523d5f602084013e5b866111e8565b8051908115918215610728575b5050156106a557835173ffffffffffffffffffffffffffffffffffffffff9283166020820152929091166040830152606080830191909152815261023e91610693608083610dab565b51918291602083526020830190610ec1565b608484517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b61073b9250602080918301019101610fb8565b858061064a565b606090610637565b7f7378d044000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f5f6063cc000000000000000000000000000000000000000000000000000000005f5260045ffd5b6107bc915060203d6020116107c2575b6107b48183610dab565b810190610fb8565b8461049f565b503d6107aa565b6040513d5f823e3d90fd5b7f9de97418000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101df575f6003193601126101df57602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b346101df575f6003193601126101df5761084661116a565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346101df5760206003193601126101df5760043567ffffffffffffffff81116101df57366023820112156101df576108ec903690602481600401359101610f61565b6108f461116a565b805167ffffffffffffffff8111610acc57610910600154610d5a565b601f8111610a2b575b50602091601f8211600114610973579181925f92610968575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176001555f80f35b015190508280610932565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082169260015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6915f5b858110610a13575083600195106109dc575b505050811b01600155005b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690558280806109d1565b919260206001819286850151815501940192016109bf565b60015f52601f820160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6019060208310610aa4575b601f0160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601905b818110610a995750610919565b5f8155600101610a8c565b7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69150610a62565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b346101df575f6003193601126101df576020610205610fd0565b346101df5760806003193601126101df57602435600435610b32610f04565b5060643567ffffffffffffffff81116101df57366023820112156101df57806004013567ffffffffffffffff81116101df576024820191818101903660248301116101df5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633036107d45760209103126101df5773ffffffffffffffffffffffffffffffffffffffff610bdb83610f97565b168015610c535761023e948461022a955f52600260205260405f20825f5260205260405f20837fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557fd8766a4dde1c3b5c500372d6448edb28568eedabe9de08a94992f30a560516825f80a43691610f61565b7f2d89e952000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101df5760206003193601126101df57600435907fffffffff0000000000000000000000000000000000000000000000000000000082168092036101df57817f9b586c280000000000000000000000000000000000000000000000000000000060209314918215610cf4575b50506040519015158152f35b7fffffffff00000000000000000000000000000000000000000000000000000000919250838101907f4c454e535f4d4f44554c450000000000000000000000000000000000000000008252600b8152610d4e602b82610dab565b51902016148280610ce8565b90600182811c92168015610da1575b6020831014610d7457565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691610d69565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610acc57604052565b604051905f8260015491610dff83610d5a565b8083529260018116908115610e845750600114610e25575b610e2392500383610dab565b565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b818310610e68575050906020610e2392820101610e17565b6020919350806001915483858901015201910190918492610e50565b60209250610e239491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b820101610e17565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6044359073ffffffffffffffffffffffffffffffffffffffff821682036101df57565b67ffffffffffffffff8111610acc57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b929192610f6d82610f27565b91610f7b6040519384610dab565b8294818452818301116101df578281602093845f960137010152565b359073ffffffffffffffffffffffffffffffffffffffff821682036101df57565b908160209103126101df575180151581036101df5790565b6040517f1c5ebe2f00000000000000000000000000000000000000000000000000000000815230600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156107c9575f9161104c575090565b611065915060203d6020116107c2576107b48183610dab565b90565b3573ffffffffffffffffffffffffffffffffffffffff811681036101df5790565b611091610fd0565b611165576040517f41ab44ee000000000000000000000000000000000000000000000000000000008152306004820152600160248201526020816044815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af19081156107c9575f91611146575b508061111f5790565b7fb24617d9cac8b35b25b3bcaf3eb7e8e8e1cbed6ee116121e4e1c08a9774310625f80a190565b61115f915060203d6020116107c2576107b48183610dab565b5f611116565b600190565b73ffffffffffffffffffffffffffffffffffffffff5f5416330361118a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b9192901561126357508151156111fc575090565b3b156112055790565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b8251909150156112765750805190602001fd5b6112b4906040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352602060048401526024830190610ec1565b0390fdfea2646970667358221220a603317607cf6c4d6692310fd4fe8e10e6d1ae6625ec2bcfa004ddd37faf1f8064736f6c634300081a0033","sourceMap":"760:3342:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;760:3342:0;;;;;;;;;;;;;;;1063:62:30;;:::i;:::-;2162:22;;760:3342:0;;;;;;;;;;;;;2566:40:30;760:3342:0;2566:40:30;;760:3342:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;760:3342:0;;;;;1063:62:30;;:::i;:::-;760:3342:0;1065:404:4;;:::i;:::-;760:3342:0;;;;;;;;;;;;;-1:-1:-1;;760:3342:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;760:3342:0;;;;;;;;;679:48:4;760:3342:0;;;;;;;;;-1:-1:-1;;760:3342:0;;;;;;;;;406:28:1;760:3342:0;;;;;;;;;-1:-1:-1;;760:3342:0;;;;;;;;;2266:13;760:3342;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;760:3342:0;;;;;;;;;;;;;;;;-1:-1:-1;;760:3342:0;;;;;;488:3:1;760:3342:0;474:10:1;:17;470:70;;760:3342:0;3309:23;;;760:3342;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3285:89;;;760:3342;;;;;;;;;;;:::i;:::-;;;;;;;;;;3390:51;;;760:3342;3390:51;;760:3342;;3390:15;:51;:15;760:3342;3390:15;760:3342;3390:51;;;;;;;760:3342;3390:51;;;760:3342;3389:52;;3385:114;;3513:14;;3509:75;;760:3342;;;;;;3616:13;760:3342;;;;;3390:51;3677:25;;760:3342;;;;;3947:26;3794;760:3342;;;;;;3794:26;;;;760:3342;3794:26;;;:::i;:::-;760:3342;3770:130;760:3342;;;;;;3770:130;3947:26;:::i;:::-;760:3342;5535:69:35;760:3342:0;;1482:68:34;;;;;760:3342:0;1482:68:34;;;760:3342:0;1482:68:34;;3390:51:0;1482:68:34;;760:3342:0;;;;;;;;;;;;;;;;;;;;;;1482:68:34;;760:3342:0;1482:68:34;;;;;;:::i;:::-;760:3342:0;;;;;;;;;;;:::i;:::-;;;;;;;;;5487:31:35;;;;;;760:3342:0;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;5535:69:35;;:::i;:::-;760:3342:0;;5728:22:34;;;:56;;;;;760:3342:0;;;;;;;;;;;;;4049:44;;760:3342;;;;;;;;;;;;;;;;;4049:44;;760:3342;;4049:44;760:3342;;4049:44;:::i;:::-;760:3342;;;;;;;;;;;;:::i;:::-;3794:26;760:3342;;;;;;;;;;;3390:51;760:3342;;;;;;;;;;;;;;5728:56:34;5754:30;;;760:3342:0;5754:30:34;;;;;;;;:::i;:::-;5728:56;;;;760:3342:0;;;;;3509:75;3550:23;760:3342;3550:23;760:3342;;3550:23;3385:114;3464:24;760:3342;3464:24;760:3342;;3464:24;3390:51;;;;760:3342;3390:51;760:3342;3390:51;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;760:3342;;;;;;;;;470:70:1;514:15;760:3342:0;514:15:1;760:3342:0;;514:15:1;760:3342:0;;;;;-1:-1:-1;;760:3342:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;760:3342:0;;;;;1063:62:30;;:::i;:::-;760:3342:0;;;;;;;;;;2566:40:30;;;;760:3342:0;;;;;;-1:-1:-1;;760:3342:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1063:62:30;;:::i;:::-;760:3342:0;;;;;;;;371:26:3;760:3342:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:26:3;760:3342:0;;;;;;;;371:26:3;760:3342:0;;;;;;;;-1:-1:-1;760:3342:0;;;;;;;;;371:26:3;760:3342:0;;;;;;;;;;;;;371:26:3;760:3342:0;;;;;-1:-1:-1;;;760:3342:0;;;371:26:3;760:3342:0;;;;;;;;;;;;;;;;;;;;;;;;;371:26:3;760:3342:0;;;;;;;;;;;;;;;;371:26:3;760:3342:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:26:3;760:3342:0;;;;;;-1:-1:-1;760:3342:0;;;;;;;;;;;;;;;;;-1:-1:-1;;760:3342:0;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;760:3342:0;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:3:1;760:3342:0;474:10:1;:17;470:70;;760:3342:0;;;;;;;;;;:::i;:::-;;2854:25;;2850:87;;760:3342;;;;;;;2947:13;760:3342;;;;;;;;;;;;;;;;;;;;;3008:52;760:3342;3008:52;;760:3342;;;:::i;2850:87::-;2902:24;760:3342;2902:24;760:3342;;2902:24;760:3342;;;;;-1:-1:-1;;760:3342:0;;;;;;;;;;;;;;;;2444:57;2459:42;760:3342;2444:57;;:109;;;;;760:3342;;;;;;;;;;;2444:109;760:3342;366:31:2;;;;;;760:3342:0;;;;366:31:2;;;;;;;:::i;:::-;760:3342:0;356:42:2;;760:3342:0;334:65:2;2444:109:0;;;;760:3342;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;760:3342:0;238:25:3;760:3342:0;;;;;:::i;:::-;;;;;238:25:3;760:3342:0;;;238:25:3;;;;760:3342:0;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;238:25:3;-1:-1:-1;760:3342:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;238:25:3;760:3342:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;760:3342:0;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;760:3342:0;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;884:133:4:-;760:3342:0;;;961:49:4;;1004:4;961:49;;;760:3342:0;;961:15:4;:49;:15;760:3342:0;961:15:4;760:3342:0;961:49:4;;;;;;;-1:-1:-1;961:49:4;;;954:56;884:133;:::o;961:49::-;;;;760:3342:0;961:49:4;760:3342:0;961:49:4;;;;;;;:::i;:::-;884:133;:::o;760:3342:0:-;;;;;;;;;;:::o;1065:404:4:-;1148:14;;:::i;:::-;1144:56;;760:3342:0;;;1228:132:4;;1280:4;760:3342:0;1228:132:4;;760:3342:0;1307:42:4;760:3342:0;;;;;1228:15:4;:132;:15;-1:-1:-1;760:3342:0;1228:15:4;760:3342:0;1228:132:4;;;;;;;-1:-1:-1;1228:132:4;;;1065:404;1371:64;;;;1065:404;:::o;1371:64::-;1406:18;-1:-1:-1;1406:18:4;;1065:404;:::o;1228:132::-;;;;760:3342:0;1228:132:4;760:3342:0;1228:132:4;;;;;;;:::i;:::-;;;;1144:56;1185:4;1178:11;:::o;1359:130:30:-;760:3342:0;1273:6:30;760:3342:0;;734:10:36;1422:23:30;760:3342:0;;1359:130:30:o;760:3342:0:-;;;;;;;;;;;;;;;;;;;;;;;7671:628:35;;;;7875:418;;;760:3342:0;;;7906:22:35;7902:286;;8201:17;;:::o;7902:286::-;1702:19;:23;760:3342:0;;8201:17:35;:::o;760:3342:0:-;;;;;;;;;;;;;;;;;;;;;;;7875:418:35;760:3342:0;;;;-1:-1:-1;8980:21:35;:17;;9152:142;;;;;;;8976:379;760:3342:0;;;;9324:20:35;;;;;;760:3342:0;9324:20:35;;;760:3342:0;;;;;;:::i;:::-;9324:20:35;;","linkReferences":{},"immutableReferences":{"270":[{"start":702,"length":32},{"start":888,"length":32},{"start":2958,"length":32}],"378":[{"start":622,"length":32},{"start":1135,"length":32},{"start":4121,"length":32},{"start":4326,"length":32}]}},"methodIdentifiers":{"HUB()":"a4c52b86","MODULE_REGISTRY()":"b95ddb52","getModuleMetadataURI()":"ce90d52e","getTipReceiver(uint256,uint256)":"9df31650","initializePublicationAction(uint256,uint256,address,bytes)":"0b960220","isRegistered()":"22366844","metadataURI()":"03ee438c","owner()":"8da5cb5b","processPublicationAction((uint256,uint256,uint256,address,address,uint256[],uint256[],uint8[],bytes))":"90ce6e08","registerModule()":"e0f0da85","renounceOwnership()":"715018a6","setModuleMetadataURI(string)":"681591c1","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hub\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"moduleRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CurrencyNotWhitelisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotHub\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TipAmountCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TipReceiverNotProvided\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"ModuleRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"transactionExecutor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tipReceiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tipAmount\",\"type\":\"uint256\"}],\"name\":\"TipCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"pubId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tipReceiver\",\"type\":\"address\"}],\"name\":\"TipReceiverRegistered\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"HUB\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODULE_REGISTRY\",\"outputs\":[{\"internalType\":\"contract IModuleRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getModuleMetadataURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pubId\",\"type\":\"uint256\"}],\"name\":\"getTipReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pubId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initializePublicationAction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"metadataURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"publicationActedProfileId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicationActedId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actorProfileId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"actorProfileOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"transactionExecutor\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"referrerProfileIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"referrerPubIds\",\"type\":\"uint256[]\"},{\"internalType\":\"enum Types.PublicationType[]\",\"name\":\"referrerPubTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes\",\"name\":\"actionModuleData\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.ProcessActionParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"processPublicationAction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerModule\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_metadataURI\",\"type\":\"string\"}],\"name\":\"setModuleMetadataURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Open Action Module for tipping Lens publications.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the TipActionModule contract.\",\"params\":{\"hub\":\"Address of the LensHub contract.\",\"moduleRegistry\":\"Address of the ModuleRegistry contract.\"}},\"getTipReceiver(uint256,uint256)\":{\"details\":\"Returns the tip receiver for a publication.\",\"params\":{\"profileId\":\"ID of the profile.\",\"pubId\":\"ID of the publication.\"},\"returns\":{\"_0\":\"Address of the tip receiver.\"}},\"isRegistered()\":{\"details\":\"Checks if the module is registered in the module registry\",\"returns\":{\"_0\":\"True if the module is registered, false otherwise\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"registerModule()\":{\"details\":\"Registers the open action in the module registry\",\"returns\":{\"_0\":\"True if the module was registered, false otherwise\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"supportsInterface(bytes4)\":{\"details\":\"for now we check for keccak('LENS_MODULE'); Override this and add the type(IModuleInterface).interfaceId for corresponding module type\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"stateVariables\":{\"_tipReceivers\":{\"details\":\"Mapping of tip receivers for publications.\"}},\"title\":\"TipActionModule\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getModuleMetadataURI()\":{\"notice\":\"Human-readable description of the module\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/TipActionModule.sol\":\"TipActionModule\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\"],\"viaIR\":true},\"sources\":{\"contracts/TipActionModule.sol\":{\"keccak256\":\"0xb9c2c75935053e7db55abe6d9733e781f608c77047e266343676047f800bd9e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f1e52e4a596a987831987d039668a8eab24fc2ab7a2bec08e0654a8c9dc3ea4d\",\"dweb:/ipfs/QmUncawdBvqRwynAwopRAuinYEpBj8s9ER2z1yRzV1o242\"]},\"contracts/base/HubRestricted.sol\":{\"keccak256\":\"0xd8f26a8ae5f4804ba772d5e435049addc5c07941afd800112da10f2d6c1aef53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e68872641f1cd288c9c0e8cc64d802e107c7708f066b0ea34abdeeea96341e5f\",\"dweb:/ipfs/QmPMErvGfj8tJGZu8EkhaXB1Nssd9hYMLMbDRGSNgPTmzS\"]},\"contracts/base/LensModule.sol\":{\"keccak256\":\"0xd4420e82d2deb5661197ff0b68ecfcd002d10fe1bbc8abcb430c91c085a23541\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48d43d08a7b357d025991a8689a83a9197c61943500c8275961ef4f52f4388dd\",\"dweb:/ipfs/QmUF1y6AAQgWfGS2RCbxLHxdRcqMBe6uKEuikQNVN3UNkz\"]},\"contracts/base/LensModuleMetadata.sol\":{\"keccak256\":\"0xb58dba2680da23ba36b982026f2c4d02ed31ff909e438abc101dbc96e3183776\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16fd251d6eb4915814358ad5e0ac3e16031d4e82f271dba34fc2d8a7ed13a18f\",\"dweb:/ipfs/QmdXgGfFvxZFFWPLcgZ6d4NSiAK8uVG89Ba1z8SFBaRecd\"]},\"contracts/base/LensModuleRegistrant.sol\":{\"keccak256\":\"0xeefdf0894cedf29418945370978b8f2326459aa7e948f3f08d063810b01a3ef2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5a157386822ba06963b544ec8eb595765b4ec3fe2dd9f1036d7563db71ed986\",\"dweb:/ipfs/QmNcXszZBxey6ZHTh4ZRJJVvSehz82XH4rahrNBC1zMM3d\"]},\"contracts/interfaces/ILensModule.sol\":{\"keccak256\":\"0xe79bb91025e837d34316321c18f5d70c70d8cc806cdc5e4be5b3da0eb935ae76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bbb797c11555fd425d7b6029d10b1ef1f4c1da49df7bf26eb56d4e0f3e0275bb\",\"dweb:/ipfs/Qmb5qpjEXZbR54tCHaYW7nPbzVXmNHTKtRbr9UkHZAJ7nZ\"]},\"contracts/interfaces/IModuleRegistrant.sol\":{\"keccak256\":\"0x65775e302fe25589350604898faf62a332deae229fedf36fcb3af555ddb27561\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eef38030c5f1e23495f117e040cfa5fe9a13da2278b9e5b45ebbd7d8ee3ff6f9\",\"dweb:/ipfs/QmQHhGmwg3NJgeTej2f4M6MyJc1M7hititG6AKNZ173wdB\"]},\"contracts/interfaces/IModuleRegistry.sol\":{\"keccak256\":\"0x767d9704c9245c975364320b556eee83cfbd6b98c40d6af5eed850576f8a0768\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34d1237bd1ca7ed821f37c5a252c30fd4a75f13b24545ae24062a0190ea48955\",\"dweb:/ipfs/QmaEgE1ELrZqd74dyMF4ceCMTiddJoKTiGfAP8s1JnyXT2\"]},\"contracts/interfaces/IPublicationActionModule.sol\":{\"keccak256\":\"0x0d8a60a9aee94002214eebde0ccbcb272461349288396e746cbed32c62d45436\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f8fc9135442ec71bca6b71c6dbb74fec77940a3b7b8c18e3e6f368053cbd34b\",\"dweb:/ipfs/QmXLKRX86B6T9dnU5s4djmaGJqqrYM1SApLTb3udUtfeSx\"]},\"contracts/libraries/Errors.sol\":{\"keccak256\":\"0x3bce382447150a8b2c7213bea5f4dd2cf210b315d45e1d0984c96bf8d610d175\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4044462a72359fb08ac34e88d3bb2161591d2bfbb6f4c0b33e96325a9f1d42e5\",\"dweb:/ipfs/QmWqubTyokdPCKVJz6sQqEh6F9Mw9GG1BcWvyTNbYMcajt\"]},\"contracts/libraries/Types.sol\":{\"keccak256\":\"0xb6d8f76aa56243519841e17e78c85113c4d957f5c0dd72b00903a0c7f5610ec2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dd9ba7b31b44513c4fa13f2bdf85cd61d8dcae4832f0b9960ff70704d3dcbaf\",\"dweb:/ipfs/QmXDN4HD4bMUCh9Nf6LD4ubV5AMaLVUJvmVfEpcFcwdqAC\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xd04b0f06e0666f29cf7cccc82894de541e19bb30a765b107b1e40bb7fe5f7d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b652499d098e88d8d878374616bb58434301061cae2253298b3f374044e0ddb\",\"dweb:/ipfs/QmbhAzctqo5jrSKU6idHdVyqfmzCcDbNUPvmx4GiXxfA6q\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"hub","type":"address"},{"internalType":"address","name":"moduleRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"CurrencyNotWhitelisted"},{"inputs":[],"type":"error","name":"NotHub"},{"inputs":[],"type":"error","name":"TipAmountCannotBeZero"},{"inputs":[],"type":"error","name":"TipReceiverNotProvided"},{"inputs":[],"type":"event","name":"ModuleRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"transactionExecutor","type":"address","indexed":true},{"internalType":"address","name":"tipReceiver","type":"address","indexed":true},{"internalType":"address","name":"currency","type":"address","indexed":true},{"internalType":"uint256","name":"tipAmount","type":"uint256","indexed":false}],"type":"event","name":"TipCreated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256","indexed":true},{"internalType":"uint256","name":"pubId","type":"uint256","indexed":true},{"internalType":"address","name":"tipReceiver","type":"address","indexed":true}],"type":"event","name":"TipReceiverRegistered","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"HUB","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MODULE_REGISTRY","outputs":[{"internalType":"contract IModuleRegistry","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getModuleMetadataURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"},{"internalType":"uint256","name":"pubId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getTipReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"},{"internalType":"uint256","name":"pubId","type":"uint256"},{"internalType":"address","name":"","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initializePublicationAction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isRegistered","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"metadataURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct Types.ProcessActionParams","name":"params","type":"tuple","components":[{"internalType":"uint256","name":"publicationActedProfileId","type":"uint256"},{"internalType":"uint256","name":"publicationActedId","type":"uint256"},{"internalType":"uint256","name":"actorProfileId","type":"uint256"},{"internalType":"address","name":"actorProfileOwner","type":"address"},{"internalType":"address","name":"transactionExecutor","type":"address"},{"internalType":"uint256[]","name":"referrerProfileIds","type":"uint256[]"},{"internalType":"uint256[]","name":"referrerPubIds","type":"uint256[]"},{"internalType":"enum Types.PublicationType[]","name":"referrerPubTypes","type":"uint8[]"},{"internalType":"bytes","name":"actionModuleData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"processPublicationAction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registerModule","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"string","name":"_metadataURI","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setModuleMetadataURI"},{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the TipActionModule contract.","params":{"hub":"Address of the LensHub contract.","moduleRegistry":"Address of the ModuleRegistry contract."}},"getTipReceiver(uint256,uint256)":{"details":"Returns the tip receiver for a publication.","params":{"profileId":"ID of the profile.","pubId":"ID of the publication."},"returns":{"_0":"Address of the tip receiver."}},"isRegistered()":{"details":"Checks if the module is registered in the module registry","returns":{"_0":"True if the module is registered, false otherwise"}},"owner()":{"details":"Returns the address of the current owner."},"registerModule()":{"details":"Registers the open action in the module registry","returns":{"_0":"True if the module was registered, false otherwise"}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"supportsInterface(bytes4)":{"details":"for now we check for keccak('LENS_MODULE'); Override this and add the type(IModuleInterface).interfaceId for corresponding module type"},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"getModuleMetadataURI()":{"notice":"Human-readable description of the module"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/TipActionModule.sol":"TipActionModule"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/TipActionModule.sol":{"keccak256":"0xb9c2c75935053e7db55abe6d9733e781f608c77047e266343676047f800bd9e9","urls":["bzz-raw://f1e52e4a596a987831987d039668a8eab24fc2ab7a2bec08e0654a8c9dc3ea4d","dweb:/ipfs/QmUncawdBvqRwynAwopRAuinYEpBj8s9ER2z1yRzV1o242"],"license":"MIT"},"contracts/base/HubRestricted.sol":{"keccak256":"0xd8f26a8ae5f4804ba772d5e435049addc5c07941afd800112da10f2d6c1aef53","urls":["bzz-raw://e68872641f1cd288c9c0e8cc64d802e107c7708f066b0ea34abdeeea96341e5f","dweb:/ipfs/QmPMErvGfj8tJGZu8EkhaXB1Nssd9hYMLMbDRGSNgPTmzS"],"license":"MIT"},"contracts/base/LensModule.sol":{"keccak256":"0xd4420e82d2deb5661197ff0b68ecfcd002d10fe1bbc8abcb430c91c085a23541","urls":["bzz-raw://48d43d08a7b357d025991a8689a83a9197c61943500c8275961ef4f52f4388dd","dweb:/ipfs/QmUF1y6AAQgWfGS2RCbxLHxdRcqMBe6uKEuikQNVN3UNkz"],"license":"MIT"},"contracts/base/LensModuleMetadata.sol":{"keccak256":"0xb58dba2680da23ba36b982026f2c4d02ed31ff909e438abc101dbc96e3183776","urls":["bzz-raw://16fd251d6eb4915814358ad5e0ac3e16031d4e82f271dba34fc2d8a7ed13a18f","dweb:/ipfs/QmdXgGfFvxZFFWPLcgZ6d4NSiAK8uVG89Ba1z8SFBaRecd"],"license":"MIT"},"contracts/base/LensModuleRegistrant.sol":{"keccak256":"0xeefdf0894cedf29418945370978b8f2326459aa7e948f3f08d063810b01a3ef2","urls":["bzz-raw://b5a157386822ba06963b544ec8eb595765b4ec3fe2dd9f1036d7563db71ed986","dweb:/ipfs/QmNcXszZBxey6ZHTh4ZRJJVvSehz82XH4rahrNBC1zMM3d"],"license":"MIT"},"contracts/interfaces/ILensModule.sol":{"keccak256":"0xe79bb91025e837d34316321c18f5d70c70d8cc806cdc5e4be5b3da0eb935ae76","urls":["bzz-raw://bbb797c11555fd425d7b6029d10b1ef1f4c1da49df7bf26eb56d4e0f3e0275bb","dweb:/ipfs/Qmb5qpjEXZbR54tCHaYW7nPbzVXmNHTKtRbr9UkHZAJ7nZ"],"license":"MIT"},"contracts/interfaces/IModuleRegistrant.sol":{"keccak256":"0x65775e302fe25589350604898faf62a332deae229fedf36fcb3af555ddb27561","urls":["bzz-raw://eef38030c5f1e23495f117e040cfa5fe9a13da2278b9e5b45ebbd7d8ee3ff6f9","dweb:/ipfs/QmQHhGmwg3NJgeTej2f4M6MyJc1M7hititG6AKNZ173wdB"],"license":"MIT"},"contracts/interfaces/IModuleRegistry.sol":{"keccak256":"0x767d9704c9245c975364320b556eee83cfbd6b98c40d6af5eed850576f8a0768","urls":["bzz-raw://34d1237bd1ca7ed821f37c5a252c30fd4a75f13b24545ae24062a0190ea48955","dweb:/ipfs/QmaEgE1ELrZqd74dyMF4ceCMTiddJoKTiGfAP8s1JnyXT2"],"license":"MIT"},"contracts/interfaces/IPublicationActionModule.sol":{"keccak256":"0x0d8a60a9aee94002214eebde0ccbcb272461349288396e746cbed32c62d45436","urls":["bzz-raw://5f8fc9135442ec71bca6b71c6dbb74fec77940a3b7b8c18e3e6f368053cbd34b","dweb:/ipfs/QmXLKRX86B6T9dnU5s4djmaGJqqrYM1SApLTb3udUtfeSx"],"license":"MIT"},"contracts/libraries/Errors.sol":{"keccak256":"0x3bce382447150a8b2c7213bea5f4dd2cf210b315d45e1d0984c96bf8d610d175","urls":["bzz-raw://4044462a72359fb08ac34e88d3bb2161591d2bfbb6f4c0b33e96325a9f1d42e5","dweb:/ipfs/QmWqubTyokdPCKVJz6sQqEh6F9Mw9GG1BcWvyTNbYMcajt"],"license":"MIT"},"contracts/libraries/Types.sol":{"keccak256":"0xb6d8f76aa56243519841e17e78c85113c4d957f5c0dd72b00903a0c7f5610ec2","urls":["bzz-raw://4dd9ba7b31b44513c4fa13f2bdf85cd61d8dcae4832f0b9960ff70704d3dcbaf","dweb:/ipfs/QmXDN4HD4bMUCh9Nf6LD4ubV5AMaLVUJvmVfEpcFcwdqAC"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xd04b0f06e0666f29cf7cccc82894de541e19bb30a765b107b1e40bb7fe5f7d7a","urls":["bzz-raw://7b652499d098e88d8d878374616bb58434301061cae2253298b3f374044e0ddb","dweb:/ipfs/QmbhAzctqo5jrSKU6idHdVyqfmzCcDbNUPvmx4GiXxfA6q"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":37243,"contract":"contracts/TipActionModule.sol:TipActionModule","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":337,"contract":"contracts/TipActionModule.sol:TipActionModule","label":"metadataURI","offset":0,"slot":"1","type":"t_string_storage"},{"astId":65,"contract":"contracts/TipActionModule.sol:TipActionModule","label":"_tipReceivers","offset":0,"slot":"2","type":"t_mapping(t_uint256,t_mapping(t_uint256,t_address))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_uint256,t_mapping(t_uint256,t_address))":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => mapping(uint256 => address))","numberOfBytes":"32","value":"t_mapping(t_uint256,t_address)"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"contracts/TipActionModule.sol","id":264,"exportedSymbols":{"HubRestricted":[296],"IERC20":[37429],"IModuleRegistry":[559],"IPublicationActionModule":[588],"LensModuleMetadata":[358],"LensModuleRegistrant":[447],"Ownable":[37348],"SafeERC20":[37841],"TipActionModule":[263],"Types":[1074]},"nodeType":"SourceUnit","src":"32:4070:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"32:24:0","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":3,"nodeType":"ImportDirective","src":"58:67:0","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":264,"sourceUnit":37349,"symbolAliases":[{"foreign":{"id":2,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37348,"src":"66:7:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5,"nodeType":"ImportDirective","src":"126:70:0","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":264,"sourceUnit":37430,"symbolAliases":[{"foreign":{"id":4,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37429,"src":"134:6:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7,"nodeType":"ImportDirective","src":"197:82:0","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","nameLocation":"-1:-1:-1","scope":264,"sourceUnit":37842,"symbolAliases":[{"foreign":{"id":6,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37841,"src":"205:9:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":9,"nodeType":"ImportDirective","src":"280:44:0","nodes":[],"absolutePath":"contracts/libraries/Types.sol","file":"./libraries/Types.sol","nameLocation":"-1:-1:-1","scope":264,"sourceUnit":1075,"symbolAliases":[{"foreign":{"id":8,"name":"Types","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1074,"src":"288:5:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11,"nodeType":"ImportDirective","src":"325:83:0","nodes":[],"absolutePath":"contracts/interfaces/IPublicationActionModule.sol","file":"./interfaces/IPublicationActionModule.sol","nameLocation":"-1:-1:-1","scope":264,"sourceUnit":589,"symbolAliases":[{"foreign":{"id":10,"name":"IPublicationActionModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":588,"src":"333:24:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13,"nodeType":"ImportDirective","src":"409:55:0","nodes":[],"absolutePath":"contracts/base/HubRestricted.sol","file":"./base/HubRestricted.sol","nameLocation":"-1:-1:-1","scope":264,"sourceUnit":297,"symbolAliases":[{"foreign":{"id":12,"name":"HubRestricted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":296,"src":"417:13:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":15,"nodeType":"ImportDirective","src":"465:65:0","nodes":[],"absolutePath":"contracts/interfaces/IModuleRegistry.sol","file":"./interfaces/IModuleRegistry.sol","nameLocation":"-1:-1:-1","scope":264,"sourceUnit":560,"symbolAliases":[{"foreign":{"id":14,"name":"IModuleRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":559,"src":"473:15:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":17,"nodeType":"ImportDirective","src":"531:65:0","nodes":[],"absolutePath":"contracts/base/LensModuleMetadata.sol","file":"./base/LensModuleMetadata.sol","nameLocation":"-1:-1:-1","scope":264,"sourceUnit":359,"symbolAliases":[{"foreign":{"id":16,"name":"LensModuleMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":358,"src":"539:18:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":19,"nodeType":"ImportDirective","src":"597:69:0","nodes":[],"absolutePath":"contracts/base/LensModuleRegistrant.sol","file":"./base/LensModuleRegistrant.sol","nameLocation":"-1:-1:-1","scope":264,"sourceUnit":448,"symbolAliases":[{"foreign":{"id":18,"name":"LensModuleRegistrant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":447,"src":"605:20:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":263,"nodeType":"ContractDefinition","src":"760:3342:0","nodes":[{"id":34,"nodeType":"UsingForDirective","src":"905:27:0","nodes":[],"global":false,"libraryName":{"id":31,"name":"SafeERC20","nameLocations":["911:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":37841,"src":"911:9:0"},"typeName":{"id":33,"nodeType":"UserDefinedTypeName","pathNode":{"id":32,"name":"IERC20","nameLocations":["925:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":37429,"src":"925:6:0"},"referencedDeclaration":37429,"src":"925:6:0","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$37429","typeString":"contract IERC20"}}},{"id":36,"nodeType":"ErrorDefinition","src":"938:31:0","nodes":[],"errorSelector":"5f6063cc","name":"CurrencyNotWhitelisted","nameLocation":"944:22:0","parameters":{"id":35,"nodeType":"ParameterList","parameters":[],"src":"966:2:0"}},{"id":38,"nodeType":"ErrorDefinition","src":"974:31:0","nodes":[],"errorSelector":"2d89e952","name":"TipReceiverNotProvided","nameLocation":"980:22:0","parameters":{"id":37,"nodeType":"ParameterList","parameters":[],"src":"1002:2:0"}},{"id":40,"nodeType":"ErrorDefinition","src":"1010:30:0","nodes":[],"errorSelector":"7378d044","name":"TipAmountCannotBeZero","nameLocation":"1016:21:0","parameters":{"id":39,"nodeType":"ParameterList","parameters":[],"src":"1037:2:0"}},{"id":48,"nodeType":"EventDefinition","src":"1046:137:0","nodes":[],"anonymous":false,"eventSelector":"d8766a4dde1c3b5c500372d6448edb28568eedabe9de08a94992f30a56051682","name":"TipReceiverRegistered","nameLocation":"1052:21:0","parameters":{"id":47,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42,"indexed":true,"mutability":"mutable","name":"profileId","nameLocation":"1099:9:0","nodeType":"VariableDeclaration","scope":48,"src":"1083:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41,"name":"uint256","nodeType":"ElementaryTypeName","src":"1083:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44,"indexed":true,"mutability":"mutable","name":"pubId","nameLocation":"1134:5:0","nodeType":"VariableDeclaration","scope":48,"src":"1118:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43,"name":"uint256","nodeType":"ElementaryTypeName","src":"1118:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46,"indexed":true,"mutability":"mutable","name":"tipReceiver","nameLocation":"1165:11:0","nodeType":"VariableDeclaration","scope":48,"src":"1149:27:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45,"name":"address","nodeType":"ElementaryTypeName","src":"1149:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1073:109:0"}},{"id":58,"nodeType":"EventDefinition","src":"1189:166:0","nodes":[],"anonymous":false,"eventSelector":"a97c26bcff37e30b62e8fde0564a6b12c848ec32b59c38db21c5742ff60a2d94","name":"TipCreated","nameLocation":"1195:10:0","parameters":{"id":57,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50,"indexed":true,"mutability":"mutable","name":"transactionExecutor","nameLocation":"1231:19:0","nodeType":"VariableDeclaration","scope":58,"src":"1215:35:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49,"name":"address","nodeType":"ElementaryTypeName","src":"1215:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52,"indexed":true,"mutability":"mutable","name":"tipReceiver","nameLocation":"1276:11:0","nodeType":"VariableDeclaration","scope":58,"src":"1260:27:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51,"name":"address","nodeType":"ElementaryTypeName","src":"1260:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54,"indexed":true,"mutability":"mutable","name":"currency","nameLocation":"1313:8:0","nodeType":"VariableDeclaration","scope":58,"src":"1297:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53,"name":"address","nodeType":"ElementaryTypeName","src":"1297:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56,"indexed":false,"mutability":"mutable","name":"tipAmount","nameLocation":"1339:9:0","nodeType":"VariableDeclaration","scope":58,"src":"1331:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55,"name":"uint256","nodeType":"ElementaryTypeName","src":"1331:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1205:149:0"}},{"id":65,"nodeType":"VariableDeclaration","src":"1432:106:0","nodes":[],"constant":false,"documentation":{"id":59,"nodeType":"StructuredDocumentation","src":"1361:66:0","text":" @dev Mapping of tip receivers for publications."},"mutability":"mutable","name":"_tipReceivers","nameLocation":"1525:13:0","scope":263,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_address_$_$","typeString":"mapping(uint256 => mapping(uint256 => address))"},"typeName":{"id":64,"keyName":"profileId","keyNameLocation":"1448:9:0","keyType":{"id":60,"name":"uint256","nodeType":"ElementaryTypeName","src":"1440:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1432:75:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_address_$_$","typeString":"mapping(uint256 => mapping(uint256 => address))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":63,"keyName":"pubId","keyNameLocation":"1477:5:0","keyType":{"id":61,"name":"uint256","nodeType":"ElementaryTypeName","src":"1469:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1461:45:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"tipReceiver","valueNameLocation":"1494:11:0","valueType":{"id":62,"name":"address","nodeType":"ElementaryTypeName","src":"1486:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}}},"visibility":"internal"},{"id":84,"nodeType":"FunctionDefinition","src":"1735:196:0","nodes":[],"body":{"id":83,"nodeType":"Block","src":"1929:2:0","nodes":[],"statements":[]},"documentation":{"id":66,"nodeType":"StructuredDocumentation","src":"1545:185:0","text":" @dev Initializes the TipActionModule contract.\n @param hub Address of the LensHub contract.\n @param moduleRegistry Address of the ModuleRegistry contract."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":73,"kind":"baseConstructorSpecifier","modifierName":{"id":72,"name":"Ownable","nameLocations":["1814:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":37348,"src":"1814:7:0"},"nodeType":"ModifierInvocation","src":"1814:9:0"},{"arguments":[{"id":75,"name":"hub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68,"src":"1846:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76,"kind":"baseConstructorSpecifier","modifierName":{"id":74,"name":"HubRestricted","nameLocations":["1832:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":296,"src":"1832:13:0"},"nodeType":"ModifierInvocation","src":"1832:18:0"},{"arguments":[],"id":78,"kind":"baseConstructorSpecifier","modifierName":{"id":77,"name":"LensModuleMetadata","nameLocations":["1859:18:0"],"nodeType":"IdentifierPath","referencedDeclaration":358,"src":"1859:18:0"},"nodeType":"ModifierInvocation","src":"1859:20:0"},{"arguments":[{"id":80,"name":"moduleRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70,"src":"1909:14:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":81,"kind":"baseConstructorSpecifier","modifierName":{"id":79,"name":"LensModuleRegistrant","nameLocations":["1888:20:0"],"nodeType":"IdentifierPath","referencedDeclaration":447,"src":"1888:20:0"},"nodeType":"ModifierInvocation","src":"1888:36:0"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":71,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68,"mutability":"mutable","name":"hub","nameLocation":"1764:3:0","nodeType":"VariableDeclaration","scope":84,"src":"1756:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67,"name":"address","nodeType":"ElementaryTypeName","src":"1756:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":70,"mutability":"mutable","name":"moduleRegistry","nameLocation":"1785:14:0","nodeType":"VariableDeclaration","scope":84,"src":"1777:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":69,"name":"address","nodeType":"ElementaryTypeName","src":"1777:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1746:59:0"},"returnParameters":{"id":82,"nodeType":"ParameterList","parameters":[],"src":"1929:0:0"},"scope":263,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":101,"nodeType":"FunctionDefinition","src":"2139:165:0","nodes":[],"body":{"id":100,"nodeType":"Block","src":"2249:55:0","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":94,"name":"_tipReceivers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65,"src":"2266:13:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_address_$_$","typeString":"mapping(uint256 => mapping(uint256 => address))"}},"id":96,"indexExpression":{"id":95,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87,"src":"2280:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2266:24:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":98,"indexExpression":{"id":97,"name":"pubId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89,"src":"2291:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2266:31:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":93,"id":99,"nodeType":"Return","src":"2259:38:0"}]},"documentation":{"id":85,"nodeType":"StructuredDocumentation","src":"1937:197:0","text":" @dev Returns the tip receiver for a publication.\n @param profileId ID of the profile.\n @param pubId ID of the publication.\n @return Address of the tip receiver."},"functionSelector":"9df31650","implemented":true,"kind":"function","modifiers":[],"name":"getTipReceiver","nameLocation":"2148:14:0","parameters":{"id":90,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87,"mutability":"mutable","name":"profileId","nameLocation":"2180:9:0","nodeType":"VariableDeclaration","scope":101,"src":"2172:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86,"name":"uint256","nodeType":"ElementaryTypeName","src":"2172:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":89,"mutability":"mutable","name":"pubId","nameLocation":"2207:5:0","nodeType":"VariableDeclaration","scope":101,"src":"2199:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":88,"name":"uint256","nodeType":"ElementaryTypeName","src":"2199:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2162:56:0"},"returnParameters":{"id":93,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":101,"src":"2240:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91,"name":"address","nodeType":"ElementaryTypeName","src":"2240:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2239:9:0"},"scope":263,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":122,"nodeType":"FunctionDefinition","src":"2310:250:0","nodes":[],"body":{"id":121,"nodeType":"Block","src":"2415:145:0","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":109,"name":"interfaceID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"2444:11:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":111,"name":"IPublicationActionModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":588,"src":"2464:24:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPublicationActionModule_$588_$","typeString":"type(contract IPublicationActionModule)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPublicationActionModule_$588_$","typeString":"type(contract IPublicationActionModule)"}],"id":110,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2459:4:0","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2459:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPublicationActionModule_$588","typeString":"type(contract IPublicationActionModule)"}},"id":113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2490:11:0","memberName":"interfaceId","nodeType":"MemberAccess","src":"2459:42:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2444:57:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":117,"name":"interfaceID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"2541:11:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":115,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2517:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TipActionModule_$263_$","typeString":"type(contract super TipActionModule)"}},"id":116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2523:17:0","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":324,"src":"2517:23:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) pure returns (bool)"}},"id":118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2517:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2444:109:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":108,"id":120,"nodeType":"Return","src":"2425:128:0"}]},"baseFunctions":[324],"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2319:17:0","overrides":{"id":105,"nodeType":"OverrideSpecifier","overrides":[],"src":"2391:8:0"},"parameters":{"id":104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":103,"mutability":"mutable","name":"interfaceID","nameLocation":"2353:11:0","nodeType":"VariableDeclaration","scope":122,"src":"2346:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":102,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2346:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2336:34:0"},"returnParameters":{"id":108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":107,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":122,"src":"2409:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":106,"name":"bool","nodeType":"ElementaryTypeName","src":"2409:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2408:6:0"},"scope":263,"stateMutability":"pure","virtual":true,"visibility":"public"},{"id":176,"nodeType":"FunctionDefinition","src":"2566:523:0","nodes":[],"body":{"id":175,"nodeType":"Block","src":"2780:309:0","nodes":[],"statements":[{"assignments":[139],"declarations":[{"constant":false,"id":139,"mutability":"mutable","name":"tipReceiver","nameLocation":"2798:11:0","nodeType":"VariableDeclaration","scope":175,"src":"2790:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":138,"name":"address","nodeType":"ElementaryTypeName","src":"2790:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":147,"initialValue":{"arguments":[{"id":142,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":130,"src":"2823:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":144,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2830:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":143,"name":"address","nodeType":"ElementaryTypeName","src":"2830:7:0","typeDescriptions":{}}}],"id":145,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2829:9:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":140,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2812:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2816:6:0","memberName":"decode","nodeType":"MemberAccess","src":"2812:10:0","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2812:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"2790:49:0"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":148,"name":"tipReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"2854:11:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2877:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":150,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2869:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":149,"name":"address","nodeType":"ElementaryTypeName","src":"2869:7:0","typeDescriptions":{}}},"id":152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2869:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2854:25:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":158,"nodeType":"IfStatement","src":"2850:87:0","trueBody":{"id":157,"nodeType":"Block","src":"2881:56:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":154,"name":"TipReceiverNotProvided","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38,"src":"2902:22:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2902:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":156,"nodeType":"RevertStatement","src":"2895:31:0"}]}},{"expression":{"id":165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":159,"name":"_tipReceivers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65,"src":"2947:13:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_address_$_$","typeString":"mapping(uint256 => mapping(uint256 => address))"}},"id":162,"indexExpression":{"id":160,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":124,"src":"2961:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2947:24:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":163,"indexExpression":{"id":161,"name":"pubId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126,"src":"2972:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2947:31:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":164,"name":"tipReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"2981:11:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2947:45:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":166,"nodeType":"ExpressionStatement","src":"2947:45:0"},{"eventCall":{"arguments":[{"id":168,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":124,"src":"3030:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":169,"name":"pubId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126,"src":"3041:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":170,"name":"tipReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"3048:11:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":167,"name":"TipReceiverRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48,"src":"3008:21:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,uint256,address)"}},"id":171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3008:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":172,"nodeType":"EmitStatement","src":"3003:57:0"},{"expression":{"id":173,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":130,"src":"3078:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":137,"id":174,"nodeType":"Return","src":"3071:11:0"}]},"baseFunctions":[578],"functionSelector":"0b960220","implemented":true,"kind":"function","modifiers":[{"id":134,"kind":"modifierInvocation","modifierName":{"id":133,"name":"onlyHub","nameLocations":["2749:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":285,"src":"2749:7:0"},"nodeType":"ModifierInvocation","src":"2749:7:0"}],"name":"initializePublicationAction","nameLocation":"2575:27:0","overrides":{"id":132,"nodeType":"OverrideSpecifier","overrides":[],"src":"2740:8:0"},"parameters":{"id":131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":124,"mutability":"mutable","name":"profileId","nameLocation":"2620:9:0","nodeType":"VariableDeclaration","scope":176,"src":"2612:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":123,"name":"uint256","nodeType":"ElementaryTypeName","src":"2612:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":126,"mutability":"mutable","name":"pubId","nameLocation":"2647:5:0","nodeType":"VariableDeclaration","scope":176,"src":"2639:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":125,"name":"uint256","nodeType":"ElementaryTypeName","src":"2639:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":128,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":176,"src":"2662:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":127,"name":"address","nodeType":"ElementaryTypeName","src":"2662:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":130,"mutability":"mutable","name":"data","nameLocation":"2720:4:0","nodeType":"VariableDeclaration","scope":176,"src":"2705:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":129,"name":"bytes","nodeType":"ElementaryTypeName","src":"2705:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2602:128:0"},"returnParameters":{"id":137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":136,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":176,"src":"2766:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":135,"name":"bytes","nodeType":"ElementaryTypeName","src":"2766:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2765:14:0"},"scope":263,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":262,"nodeType":"FunctionDefinition","src":"3095:1005:0","nodes":[],"body":{"id":261,"nodeType":"Block","src":"3235:865:0","nodes":[],"statements":[{"assignments":[188,190],"declarations":[{"constant":false,"id":188,"mutability":"mutable","name":"currency","nameLocation":"3254:8:0","nodeType":"VariableDeclaration","scope":261,"src":"3246:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":187,"name":"address","nodeType":"ElementaryTypeName","src":"3246:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":190,"mutability":"mutable","name":"tipAmount","nameLocation":"3272:9:0","nodeType":"VariableDeclaration","scope":261,"src":"3264:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":189,"name":"uint256","nodeType":"ElementaryTypeName","src":"3264:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":201,"initialValue":{"arguments":[{"expression":{"id":193,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":179,"src":"3309:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProcessActionParams_$950_calldata_ptr","typeString":"struct Types.ProcessActionParams calldata"}},"id":194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3316:16:0","memberName":"actionModuleData","nodeType":"MemberAccess","referencedDeclaration":949,"src":"3309:23:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3347:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":195,"name":"address","nodeType":"ElementaryTypeName","src":"3347:7:0","typeDescriptions":{}}},{"id":198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3356:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":197,"name":"uint256","nodeType":"ElementaryTypeName","src":"3356:7:0","typeDescriptions":{}}}],"id":199,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3346:18:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(address),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(address),type(uint256))"}],"expression":{"id":191,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3285:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3289:6:0","memberName":"decode","nodeType":"MemberAccess","src":"3285:10:0","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3285:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_uint256_$","typeString":"tuple(address payable,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"3245:129:0"},{"condition":{"id":206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3389:52:0","subExpression":{"arguments":[{"id":204,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":188,"src":"3432:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":202,"name":"MODULE_REGISTRY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"3390:15:0","typeDescriptions":{"typeIdentifier":"t_contract$_IModuleRegistry_$559","typeString":"contract IModuleRegistry"}},"id":203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3406:25:0","memberName":"isErc20CurrencyRegistered","nodeType":"MemberAccess","referencedDeclaration":558,"src":"3390:41:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3390:51:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":211,"nodeType":"IfStatement","src":"3385:114:0","trueBody":{"id":210,"nodeType":"Block","src":"3443:56:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":207,"name":"CurrencyNotWhitelisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36,"src":"3464:22:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3464:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":209,"nodeType":"RevertStatement","src":"3457:31:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":212,"name":"tipAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":190,"src":"3513:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3526:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3513:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":219,"nodeType":"IfStatement","src":"3509:75:0","trueBody":{"id":218,"nodeType":"Block","src":"3529:55:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":215,"name":"TipAmountCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40,"src":"3550:21:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3550:23:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":217,"nodeType":"RevertStatement","src":"3543:30:0"}]}},{"assignments":[221],"declarations":[{"constant":false,"id":221,"mutability":"mutable","name":"tipReceiver","nameLocation":"3602:11:0","nodeType":"VariableDeclaration","scope":261,"src":"3594:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":220,"name":"address","nodeType":"ElementaryTypeName","src":"3594:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":229,"initialValue":{"baseExpression":{"baseExpression":{"id":222,"name":"_tipReceivers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65,"src":"3616:13:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_address_$_$","typeString":"mapping(uint256 => mapping(uint256 => address))"}},"id":225,"indexExpression":{"expression":{"id":223,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":179,"src":"3630:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProcessActionParams_$950_calldata_ptr","typeString":"struct Types.ProcessActionParams calldata"}},"id":224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3637:25:0","memberName":"publicationActedProfileId","nodeType":"MemberAccess","referencedDeclaration":929,"src":"3630:32:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3616:47:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":228,"indexExpression":{"expression":{"id":226,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":179,"src":"3677:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProcessActionParams_$950_calldata_ptr","typeString":"struct Types.ProcessActionParams calldata"}},"id":227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3684:18:0","memberName":"publicationActedId","nodeType":"MemberAccess","referencedDeclaration":931,"src":"3677:25:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3616:96:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3594:118:0"},{"assignments":[232],"declarations":[{"constant":false,"id":232,"mutability":"mutable","name":"token","nameLocation":"3730:5:0","nodeType":"VariableDeclaration","scope":261,"src":"3723:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$37429","typeString":"contract IERC20"},"typeName":{"id":231,"nodeType":"UserDefinedTypeName","pathNode":{"id":230,"name":"IERC20","nameLocations":["3723:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":37429,"src":"3723:6:0"},"referencedDeclaration":37429,"src":"3723:6:0","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$37429","typeString":"contract IERC20"}},"visibility":"internal"}],"id":236,"initialValue":{"arguments":[{"id":234,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":188,"src":"3745:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":233,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37429,"src":"3738:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$37429_$","typeString":"type(contract IERC20)"}},"id":235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3738:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$37429","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"3723:31:0"},{"eventCall":{"arguments":[{"expression":{"id":238,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":179,"src":"3794:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProcessActionParams_$950_calldata_ptr","typeString":"struct Types.ProcessActionParams calldata"}},"id":239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3801:19:0","memberName":"transactionExecutor","nodeType":"MemberAccess","referencedDeclaration":937,"src":"3794:26:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":240,"name":"tipReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":221,"src":"3834:11:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":241,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":188,"src":"3859:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":242,"name":"tipAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":190,"src":"3881:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":237,"name":"TipCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"3770:10:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3770:130:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":244,"nodeType":"EmitStatement","src":"3765:135:0"},{"expression":{"arguments":[{"expression":{"id":248,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":179,"src":"3947:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProcessActionParams_$950_calldata_ptr","typeString":"struct Types.ProcessActionParams calldata"}},"id":249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3954:19:0","memberName":"transactionExecutor","nodeType":"MemberAccess","referencedDeclaration":937,"src":"3947:26:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":250,"name":"tipReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":221,"src":"3987:11:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":251,"name":"tipAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":190,"src":"4012:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":245,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"3911:5:0","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$37429","typeString":"contract IERC20"}},"id":247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3917:16:0","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":37525,"src":"3911:22:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$37429_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$37429_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3911:120:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":253,"nodeType":"ExpressionStatement","src":"3911:120:0"},{"expression":{"arguments":[{"id":256,"name":"tipReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":221,"src":"4060:11:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":257,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":188,"src":"4073:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":258,"name":"tipAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":190,"src":"4083:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":254,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4049:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":255,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4053:6:0","memberName":"encode","nodeType":"MemberAccess","src":"4049:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4049:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":186,"id":260,"nodeType":"Return","src":"4042:51:0"}]},"baseFunctions":[587],"functionSelector":"90ce6e08","implemented":true,"kind":"function","modifiers":[{"id":183,"kind":"modifierInvocation","modifierName":{"id":182,"name":"onlyHub","nameLocations":["3204:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":285,"src":"3204:7:0"},"nodeType":"ModifierInvocation","src":"3204:7:0"}],"name":"processPublicationAction","nameLocation":"3104:24:0","overrides":{"id":181,"nodeType":"OverrideSpecifier","overrides":[],"src":"3195:8:0"},"parameters":{"id":180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":179,"mutability":"mutable","name":"params","nameLocation":"3173:6:0","nodeType":"VariableDeclaration","scope":262,"src":"3138:41:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ProcessActionParams_$950_calldata_ptr","typeString":"struct Types.ProcessActionParams"},"typeName":{"id":178,"nodeType":"UserDefinedTypeName","pathNode":{"id":177,"name":"Types.ProcessActionParams","nameLocations":["3138:5:0","3144:19:0"],"nodeType":"IdentifierPath","referencedDeclaration":950,"src":"3138:25:0"},"referencedDeclaration":950,"src":"3138:25:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProcessActionParams_$950_storage_ptr","typeString":"struct Types.ProcessActionParams"}},"visibility":"internal"}],"src":"3128:57:0"},"returnParameters":{"id":186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":185,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":262,"src":"3221:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":184,"name":"bytes","nodeType":"ElementaryTypeName","src":"3221:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3220:14:0"},"scope":263,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":21,"name":"IPublicationActionModule","nameLocations":["792:24:0"],"nodeType":"IdentifierPath","referencedDeclaration":588,"src":"792:24:0"},"id":22,"nodeType":"InheritanceSpecifier","src":"792:24:0"},{"baseName":{"id":23,"name":"Ownable","nameLocations":["822:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":37348,"src":"822:7:0"},"id":24,"nodeType":"InheritanceSpecifier","src":"822:7:0"},{"baseName":{"id":25,"name":"HubRestricted","nameLocations":["835:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":296,"src":"835:13:0"},"id":26,"nodeType":"InheritanceSpecifier","src":"835:13:0"},{"baseName":{"id":27,"name":"LensModuleMetadata","nameLocations":["854:18:0"],"nodeType":"IdentifierPath","referencedDeclaration":358,"src":"854:18:0"},"id":28,"nodeType":"InheritanceSpecifier","src":"854:18:0"},{"baseName":{"id":29,"name":"LensModuleRegistrant","nameLocations":["878:20:0"],"nodeType":"IdentifierPath","referencedDeclaration":447,"src":"878:20:0"},"id":30,"nodeType":"InheritanceSpecifier","src":"878:20:0"}],"canonicalName":"TipActionModule","contractDependencies":[],"contractKind":"contract","documentation":{"id":20,"nodeType":"StructuredDocumentation","src":"668:91:0","text":" @title TipActionModule\n @dev Open Action Module for tipping Lens publications."},"fullyImplemented":true,"linearizedBaseContracts":[263,447,358,296,37348,38201,484,325,468,38213,588],"name":"TipActionModule","nameLocation":"769:15:0","scope":264,"usedErrors":[36,38,40,604],"usedEvents":[48,58,375,37249]}],"license":"MIT"},"id":0} \ No newline at end of file diff --git a/src/hooks/use-authorize-policy.ts b/src/hooks/use-authorize-policy.ts index 81ef437a2..640f188dd 100644 --- a/src/hooks/use-authorize-policy.ts +++ b/src/hooks/use-authorize-policy.ts @@ -8,8 +8,6 @@ import { encodeFunctionData } from 'viem'; import { useWeb3Auth } from '@src/hooks/use-web3-auth.ts'; import RightsPolicyAuthorizerAbi from '@src/config/abi/RightsPolicyAuthorizer.json'; import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; -// @ts-ignore -import { ReadResult } from '@lens-protocol/react/dist/declarations/src/helpers/reads'; import {useSelector} from "react-redux"; // ---------------------------------------------------------------------- @@ -69,7 +67,9 @@ export const useAuthorizePolicy = (): useAuthorizePolicyHook => { try { // Retrieve the account abstraction provider, bundler client, and smart account const accountAbstractionProvider = web3Auth.options.accountAbstractionProvider; + // @ts-ignore const bundlerClient = accountAbstractionProvider.bundlerClient; + // @ts-ignore const smartAccount = accountAbstractionProvider.smartAccount; if (!sessionData?.authenticated) { diff --git a/src/hooks/use-deposit-metamask.ts b/src/hooks/use-deposit-metamask.ts new file mode 100644 index 000000000..94d5e30fa --- /dev/null +++ b/src/hooks/use-deposit-metamask.ts @@ -0,0 +1,127 @@ +import { useState } from 'react'; +import { parseUnits } from 'viem'; +import { ConnectWalletClient } from '@src/clients/viem/walletClient'; +import LedgerVaultAbi from '@src/config/abi/LedgerVault.json'; +import MMCAbi from '@src/config/abi/MMC.json'; +import { GLOBAL_CONSTANTS } from '@src/config-global'; +import { publicClient } from '@src/clients/viem/publicClient'; +import { useSnackbar } from 'notistack'; + +interface VaultError { + message: string; + code?: number; + [key: string]: any; +} + +interface DepositParams { + recipient: string; // The address receiving the deposit + amount: number; // Amount in "human" format (not in Wei) +} + +interface UseDepositHook { + data?: any; + deposit: (params: DepositParams) => Promise; + loading: boolean; + error?: VaultError | null; +} + +/** + * Hook that allows the deposit flow to be made + * using MetaMask (or any injected EOA) instead + * of the smart wallet. + */ +export const useDepositMetamask = (): UseDepositHook => { + const [data, setData] = useState(null); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + const { enqueueSnackbar } = useSnackbar(); + + const deposit = async ({ recipient, amount }: DepositParams) => { + setLoading(true); + setError(null); + + try { + // 1) Connect to the wallet (MetaMask) + const walletClient = await ConnectWalletClient(); + + // 2) Retrieve the user's address from the wallet + const [senderAddress] = await walletClient.requestAddresses(); + + // 3) Convert the amount to Wei (18 decimals for MMC) + const weiAmount = parseUnits(amount.toString(), 18); + + // Notify the user that we are sending approve transaction to the network + enqueueSnackbar('Sending approve transaction to the network...', { + variant: 'info', + autoHideDuration: 3000, + }); + + // 4) First transaction: approve + const approveTxHash = await walletClient.writeContract({ + address: GLOBAL_CONSTANTS.MMC_ADDRESS, + abi: MMCAbi.abi, + functionName: 'approve', + args: [GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS, weiAmount], + account: senderAddress, + }); + + // Notify the user that we are now waiting for the approve transaction to be confirmed + enqueueSnackbar('Approve transaction broadcasted. Waiting for confirmation (1/2)...', { + variant: 'info', + autoHideDuration: 7000, + }); + + // Wait for the approve transaction to be mined + const approveReceipt = await publicClient.waitForTransactionReceipt({ + hash: approveTxHash, + }); + + // Notify the user that we are now sending the deposit transaction + enqueueSnackbar('Sending deposit transaction to the network...', { + variant: 'info', + autoHideDuration: 3000, + }); + + // 5) Second transaction: deposit + const depositTxHash = await walletClient.writeContract({ + address: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS, + abi: LedgerVaultAbi.abi, + functionName: 'deposit', + args: [recipient, weiAmount, GLOBAL_CONSTANTS.MMC_ADDRESS], + account: senderAddress, + }); + + // Notify the user that we are now waiting for the deposit transaction to be confirmed + enqueueSnackbar('Deposit transaction broadcasted. Waiting for confirmation (2/2)...', { + variant: 'info', + autoHideDuration: 7000, + }); + + // Wait for the deposit transaction to be mined + const depositReceipt = await publicClient.waitForTransactionReceipt({ + hash: depositTxHash, + }); + + // 6) Store data about both transactions + setData({ + approveTxHash, + depositTxHash, + approveReceipt, + depositReceipt, + }); + } catch (err: any) { + // If something fails (either approve or deposit), set an error + setError({ message: err.message || 'An error occurred', ...err }); + } finally { + // Reset loading state + setLoading(false); + } + }; + + return { + data, + deposit, + loading, + error, + }; +}; diff --git a/src/hooks/use-deposit.ts b/src/hooks/use-deposit.ts new file mode 100644 index 000000000..09b8a0a69 --- /dev/null +++ b/src/hooks/use-deposit.ts @@ -0,0 +1,124 @@ +import { useState } from 'react'; +import { useSelector } from 'react-redux'; +import { encodeFunctionData, parseUnits } from 'viem'; +import { useWeb3Auth } from '@src/hooks/use-web3-auth.ts'; +import LedgerVaultAbi from '@src/config/abi/LedgerVault.json'; +import MMCAbi from '@src/config/abi/MMC.json'; +import { GLOBAL_CONSTANTS } from '@src/config-global'; + +interface VaultError { + message: string; + code?: number; + [key: string]: any; +} + +interface DepositParams { + recipient: string; // address + amount: number; // plain number +} + +interface UseDepositHook { + data?: any; + deposit: (params: DepositParams) => Promise; + loading: boolean; + error?: VaultError | null; +} + +export const useDeposit = (): UseDepositHook => { + const [data, setData] = useState(null); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + + const sessionData = useSelector((state: any) => state.auth.session); + const { web3Auth } = useWeb3Auth(); + + const approveMMC = (amount: number): string => { + // Convert to Wei (assuming 18 decimals) + const weiAmount = parseUnits(amount.toString(), 18); + + // Encode the approve function call data + return encodeFunctionData({ + abi: MMCAbi.abi, + functionName: 'approve', + args: [GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS, weiAmount], + }); + }; + + /** + * Encodes the call to LedgerVault’s `deposit` function. + */ + const initializeDeposit = ({ recipient, amount }: DepositParams) => { + // Convert to Wei (assuming 18 decimals) + const weiAmount = parseUnits(amount.toString(), 18); + + return encodeFunctionData({ + abi: LedgerVaultAbi.abi, + functionName: 'deposit', + args: [recipient, weiAmount, GLOBAL_CONSTANTS.MMC_ADDRESS], + }); + }; + + /** + * Main function to perform a deposit. + */ + const deposit = async ({ recipient, amount }: DepositParams) => { + setLoading(true); + setError(null); + + try { + const accountAbstractionProvider = web3Auth.options.accountAbstractionProvider; + // @ts-ignore + const bundlerClient = accountAbstractionProvider.bundlerClient; + // @ts-ignore + const smartAccount = accountAbstractionProvider.smartAccount; + + if (!sessionData?.authenticated) { + setError({ message: 'Please login to deposit funds' }); + setLoading(false); + return; + } + + if (!bundlerClient) { + setError({ message: 'Bundler client not available' }); + setLoading(false); + return; + } + + const approveData = approveMMC(amount); + const depositData = initializeDeposit({ recipient, amount }); + + // Create the calls array + const calls = [ + { + to: GLOBAL_CONSTANTS.MMC_ADDRESS, + value: 0, + data: approveData, + }, + { + to: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS, + value: 0, + data: depositData, + }, + ]; + + // Send the user operation + const userOpHash = await bundlerClient.sendUserOperation({ + account: smartAccount, + calls, + }); + + // Wait for the operation receipt + const receipt = await bundlerClient.waitForUserOperationReceipt({ + hash: userOpHash, + }); + + setData(receipt); + setLoading(false); + } catch (err: any) { + setError({ message: err.message || 'An error occurred', ...err }); + setLoading(false); + } + }; + + return { data, deposit, loading, error }; +}; diff --git a/src/hooks/use-get-attestation.ts b/src/hooks/use-get-attestation.ts index 3c9eb4ed1..92ea5b997 100644 --- a/src/hooks/use-get-attestation.ts +++ b/src/hooks/use-get-attestation.ts @@ -3,11 +3,6 @@ import { Address } from 'viem'; import { publicClient } from '@src/clients/viem/publicClient'; import { GLOBAL_CONSTANTS } from '@src/config-global'; import SubscriptionPolicyAbi from '@src/config/abi/SubscriptionPolicy.json'; - -// LENS IMPORTS -import { ProfileSession, useSession } from '@lens-protocol/react-web'; -// @ts-ignore -import { ReadResult } from '@lens-protocol/react/dist/declarations/src/helpers/reads'; import {useSelector} from "react-redux"; interface AttestationError { diff --git a/src/hooks/use-get-authorized-holder-policies.ts b/src/hooks/use-get-authorized-holder-policies.ts new file mode 100644 index 000000000..5a01ac7c6 --- /dev/null +++ b/src/hooks/use-get-authorized-holder-policies.ts @@ -0,0 +1,90 @@ +import { useState, useEffect, useCallback } from 'react'; +import { Address } from 'viem'; +import { publicClient } from '@src/clients/viem/publicClient'; +import PoliciesAggAbi from '@src/config/abi/PoliciesAgg.json'; +import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; + +interface HasAccessError { + message: string; + code?: number; + [key: string]: any; +} + +interface PolicyTerms { + amount: string; + currency: string; + rateBasis: number; + uri: string; +} + +interface Policy { + policy: string; + terms: PolicyTerms +} + +interface UseGetAuthorizedHolderPoliciesHook { + authorizedHolderPolicies: Policy[]; + loading: boolean; + error?: HasAccessError | null; + refetch: () => void; +} + +/** + * Custom hook that fetches the authorized policies for a given holder. + * @param holder Address of the holder. + */ +export const useGetAuthorizedHolderPolicies = ( + holder: Address | undefined +): UseGetAuthorizedHolderPoliciesHook => { + const [authorizedHolderPolicies, setAuthorizedHolderPolicies] = useState([]); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + + const fetchHolderPolicies = useCallback(async () => { + // Validate that holder exists + if (!holder) { + setAuthorizedHolderPolicies([]); + setLoading(false); + setError({ message: 'Holder address is missing.' }); + return; + } + + setLoading(true); + + try { + // Call the contract method + const policies: any = await publicClient.readContract({ + address: GLOBAL_CONSTANTS.POLICIES_AGG_ADDRESS, + abi: PoliciesAggAbi.abi, + functionName: 'getHolderWidePolicies', + args: [holder], + }) as Policy[]; + + // Store the response in state + setAuthorizedHolderPolicies(policies); + setError(null); + } catch (err: any) { + console.error('Error fetching holder-wide policies:', err); + setAuthorizedHolderPolicies([]); + setError({ message: err?.message || 'Error occurred while fetching authorized policies.' }); + } finally { + setLoading(false); + } + }, [holder]); + + useEffect(() => { + fetchHolderPolicies(); + }, [fetchHolderPolicies]); + + // Allows to refetch the data on demand + const refetch = useCallback(() => { + fetchHolderPolicies(); + }, [fetchHolderPolicies]); + + return { + authorizedHolderPolicies, + loading, + error, + refetch, + }; +}; diff --git a/src/hooks/use-get-balance.ts b/src/hooks/use-get-balance.ts index 122eea0f6..d8776c7f4 100644 --- a/src/hooks/use-get-balance.ts +++ b/src/hooks/use-get-balance.ts @@ -1,34 +1,20 @@ -import { useState, useEffect, useCallback } from 'react'; -import { formatUnits, Address } from 'viem'; -import MMCAbi from '@src/config/abi/MMC.json'; -import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; -import { publicClient } from '@src/clients/viem/publicClient.ts'; +import { useEffect } from 'react'; +import { useDispatch, useSelector } from 'react-redux'; +import { useGetVaultBalance } from '@src/hooks/use-get-vault-balance.ts'; +import { setBalance } from '@redux/auth'; -export function useGetBalance(address?: Address) { - const [balance, setBalance] = useState(null); +export function useGetBalance() { + const balance = useSelector((state: any) => state.auth.balance); + const sessionData = useSelector((state: any) => state.auth.session); + const dispatch = useDispatch(); - const fetchBalance = useCallback(async () => { - if (!address) return; - - try { - const rawBalance: any = await publicClient.readContract({ - address: GLOBAL_CONSTANTS.MMC_ADDRESS, - abi: MMCAbi.abi, - functionName: 'balanceOf', - args: [address], - }); - - const formattedBalance = parseFloat(formatUnits(rawBalance, 18)); - setBalance(isNaN(formattedBalance) ? 0 : formattedBalance); - } catch (error) { - console.error('Error fetching balance:', error); - setBalance(null); - } - }, [address]); + const { balance: vaultBalance, refetch } = useGetVaultBalance(sessionData?.address); useEffect(() => { - fetchBalance(); - }, [fetchBalance]); + if (vaultBalance !== null && vaultBalance !== undefined) { + dispatch(setBalance({ balance: vaultBalance })); + } + }, [vaultBalance, dispatch]); - return { balance, refetch: fetchBalance }; + return { balance, refetch }; } diff --git a/src/hooks/use-get-mmc-contract-balance.ts b/src/hooks/use-get-mmc-contract-balance.ts new file mode 100644 index 000000000..6870f6272 --- /dev/null +++ b/src/hooks/use-get-mmc-contract-balance.ts @@ -0,0 +1,36 @@ +import { useState, useEffect, useCallback } from 'react'; +import { formatUnits, Address } from 'viem'; +import MMCAbi from '@src/config/abi/MMC.json'; +import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; +import { publicClient } from '@src/clients/viem/publicClient.ts'; +import { useSelector } from 'react-redux'; + +export function useGetMmcContractBalance(address?: Address) { + const [balance, setBalance] = useState(null); + const blockchainEvents = useSelector((state: any) => state.blockchainEvents.events); + + const fetchBalance = useCallback(async () => { + if (!address) return; + + try { + const rawBalance: any = await publicClient.readContract({ + address: GLOBAL_CONSTANTS.MMC_ADDRESS, + abi: MMCAbi.abi, + functionName: 'balanceOf', + args: [address], + }); + + const formattedBalance = parseFloat(formatUnits(rawBalance, 18)); + setBalance(isNaN(formattedBalance) ? 0 : formattedBalance); + } catch (error) { + console.error('Error fetching balance:', error); + setBalance(null); + } + }, [address]); + + useEffect(() => { + fetchBalance(); + }, [fetchBalance, address, blockchainEvents]); + + return { balance, refetch: fetchBalance }; +} diff --git a/src/hooks/use-get-policy-terms.ts b/src/hooks/use-get-policy-terms.ts new file mode 100644 index 000000000..14479e2fc --- /dev/null +++ b/src/hooks/use-get-policy-terms.ts @@ -0,0 +1,134 @@ +import { useState, useEffect, useCallback } from 'react'; +import { Address } from 'viem'; +import { useGetAuthorizedHolderPolicies } from './use-get-authorized-holder-policies'; + +interface HasAccessError { + message: string; + code?: number; + [key: string]: any; +} + +interface Terms { + amount: any; // amount in wei + currency: string; + rateBasis: number; + uri: string; +} + +interface UseGetPolicyTermsHook { + terms?: Terms; + loading: boolean; + fetching: boolean; + error?: HasAccessError | null; + refetch: () => void; +} + +/** + * Custom hook to get the `terms` of a specific policy, using the data from `useGetAuthorizedHolderPolicies`. + * @param policyAddress The address of the policy whose terms you want to retrieve. + * @param holderAddress The holder's address for which the policies are fetched. + */ +export const useGetPolicyTerms = ( + policyAddress?: Address, + holderAddress?: Address +): UseGetPolicyTermsHook => { + const [terms, setTerms] = useState(undefined); + const [fetching, setFetching] = useState(true); + const [error, setError] = useState(null); + + // Reuse the hook to get all authorized policies for the holder + const { + authorizedHolderPolicies, + loading: loadingPolicies, + error: errorPolicies, + refetch: refetchPolicies, + } = useGetAuthorizedHolderPolicies(holderAddress); + + /** + * Attempt to find `policyAddress` in the array of `authorizedHolderPolicies` + * and extract its `terms`. + */ + const fetchTerms = useCallback(() => { + setFetching(true); + + // Validate inputs + if (!policyAddress || !holderAddress) { + setTerms(undefined); + setError({ message: 'Policy address or holder address is missing.' }); + setFetching(false); + return; + } + + // If there's an error from the getAuthorizedHolderPolicies hook, propagate it + if (errorPolicies) { + setTerms(undefined); + setError(errorPolicies); + setFetching(false); + return; + } + + // If we haven't fetched or there are no policies, we can't proceed yet + if (!authorizedHolderPolicies || authorizedHolderPolicies.length === 0) { + setTerms(undefined); + setError(null); + setFetching(false); + return; + } + + try { + // Find the policy object with a matching address + const foundPolicy = authorizedHolderPolicies.find( + (p) => p.policy.toLowerCase() === policyAddress.toLowerCase() + ); + + if (foundPolicy) { + setTerms(foundPolicy.terms); + setError(null); + } else { + // If the policy is not found, we can consider that an "empty" or "not found" state + setTerms(undefined); + setError(null); // or setError({ message: 'Policy not found among authorized ones.' }) + } + } catch (err: any) { + console.error('Error filtering policy terms:', err); + setTerms(undefined); + setError({ message: err?.message || 'An error occurred while filtering policy terms.' }); + } finally { + setFetching(false); + } + }, [ + policyAddress, + holderAddress, + authorizedHolderPolicies, + errorPolicies, + ]); + + // Recompute whenever the authorizedHolderPolicies or errors change + useEffect(() => { + fetchTerms(); + }, [fetchTerms]); + + // We can re-trigger the fetch by refetching the authorized policies + const refetch = useCallback(() => { + refetchPolicies(); + }, [refetchPolicies]); + + // If no addresses are provided, return an immediate error (optional approach) + if (!policyAddress || !holderAddress) { + return { + terms: undefined, + loading: false, + fetching: false, + error: { message: 'Policy address or holder address is missing.' }, + refetch: () => {}, + }; + } + + return { + terms, + loading: loadingPolicies, // Reflect the loading state of fetching authorized policies + fetching, // Reflect the local fetching/checking state + error, + refetch, + }; +}; diff --git a/src/hooks/use-get-smart-wallet-transactions-ok.ts b/src/hooks/use-get-smart-wallet-transactions-ok.ts new file mode 100644 index 000000000..4797ebe41 --- /dev/null +++ b/src/hooks/use-get-smart-wallet-transactions-ok.ts @@ -0,0 +1,106 @@ +import { useEffect, useState } from 'react' +import axios from 'axios' +import { Address } from 'viem'; +import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; + +interface SmartWalletTransactionParams { + chainShortName?: string; // Blockchain network abbreviation (e.g., 'eth') + address: Address; // Address to query + protocolType?: string; // Token protocol type (default: 'token_20') + tokenContractAddress?: string; // Optional token contract address + startBlockHeight?: string; // Optional starting block height + endBlockHeight?: string; // Optional ending block height + isFromOrTo?: 'from' | 'to'; // Filter transactions by 'from' or 'to' + page?: number; // Optional page number + limit?: number; // Number of results per request (default: 20, max: 50) +} + +interface UseGetSmartWalletTransactionsReturn { + data: any; + isLoading: boolean; + error: string | null; + refetch: () => Promise; +} + +export function useGetSmartWalletTransactions({ + address, + chainShortName = 'AMOY_TESTNET', + protocolType = 'token_20', + tokenContractAddress = GLOBAL_CONSTANTS.MMC_ADDRESS, + startBlockHeight, + endBlockHeight, + isFromOrTo, + page = 1, + limit = 20, + }: SmartWalletTransactionParams): UseGetSmartWalletTransactionsReturn { + const [data, setData] = useState(null); + const [isLoading, setIsLoading] = useState(false); + const [error, setError] = useState(null); + + // Create an axios instance + const axiosInstance = axios.create({ + headers: { + 'Content-Type': 'application/json;charset=utf-8', + Accept: 'application/json', + 'OK-ACCESS-KEY': GLOBAL_CONSTANTS.OKLINK_API_KEY, + }, + timeout: 5000, + validateStatus: (status) => status < 600, + }); + + // Fetch transactions using GET request + const fetchTransactions = async () => { + setIsLoading(true); + setError(null); + + try { + // Build query string + const queryParams = new URLSearchParams({ + chainShortName, + address, + protocolType, + ...(tokenContractAddress && { tokenContractAddress }), + ...(startBlockHeight && { startBlockHeight }), + ...(endBlockHeight && { endBlockHeight }), + ...(isFromOrTo && { isFromOrTo }), + page: page.toString(), + limit: limit.toString(), + }).toString(); + + const url = `https://www.oklink.com/api/v5/explorer/address/token-transaction-list?${queryParams}`; + const response = await axiosInstance.get(url); + + console.log('response', response); + + // Handle response + if (response.data?.code === '0') { + setData(response.data.data?.[0]); + } else { + setError(response.data?.msg || 'Unknown error'); + } + } catch (err: any) { + setError(err?.message || 'Unknown error'); + } finally { + setIsLoading(false); + } + }; + + // Fetch data on parameter change + useEffect(() => { + if (!address || !chainShortName) return; + fetchTransactions(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [chainShortName, address, protocolType, tokenContractAddress, startBlockHeight, endBlockHeight, isFromOrTo, page, limit]); + + // Refetch function + const refetch = async () => { + await fetchTransactions(); + }; + + return { + data, + isLoading, + error, + refetch, + }; +} diff --git a/src/hooks/use-get-smart-wallet-transactions.ts b/src/hooks/use-get-smart-wallet-transactions.ts new file mode 100644 index 000000000..6368fa2c6 --- /dev/null +++ b/src/hooks/use-get-smart-wallet-transactions.ts @@ -0,0 +1,229 @@ +import { useState, useEffect } from 'react'; +import { parseAbiItem, formatUnits, Address } from 'viem'; +import { useDispatch, useSelector } from 'react-redux'; +import { publicClient } from '@src/clients/viem/publicClient.ts'; +import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; +import LedgerVaultAbi from '@src/config/abi/LedgerVault.json'; +import { addTransaction, setTransactions } from '@redux/transactions'; + +export type TransactionLog = { + address: string; + args: { + amount: bigint; + currency: string; + recipient: string; + origin: string; + }; + blockHash: string; + blockNumber: bigint; + data: string; + event: string; + eventName: string; + formattedAmount: string; + logIndex: number; + readableDate: string; + removed: boolean; + timestamp: bigint; + topics: string[]; + transactionHash: string; + transactionIndex: number; +}; + +const useGetSmartWalletTransactions = () => { + const dispatch = useDispatch(); + const sessionData = useSelector((state: any) => state.auth.session); + const blockchainEvents = useSelector((state: any) => state.blockchainEvents.events); + const transactions = useSelector((state: any) => state.transactions.transactions); + + // Local states for loading and error + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + + // Function to fetch historical logs + const fetchLogs = async () => { + console.log('Fetching logs for address:', sessionData?.address); + if (!sessionData?.address) { + setLoading(false); + return; + } + + try { + setLoading(true); + setError(null); + + // Define ABI for events to monitor + const eventsAbi = { + FundsTransferred: parseAbiItem( + createEventSignature( + LedgerVaultAbi.abi.find( + (item: any) => item.type === 'event' && item.name === 'FundsTransferred' + ) + ) + ), + FundsDeposited: parseAbiItem( + createEventSignature( + LedgerVaultAbi.abi.find( + (item: any) => item.type === 'event' && item.name === 'FundsDeposited' + ) + ) + ), + FundsWithdrawn: parseAbiItem( + createEventSignature( + LedgerVaultAbi.abi.find( + (item: any) => item.type === 'event' && item.name === 'FundsWithdrawn' + ) + ) + ), + }; + + // Fetch logs for each event + const [transfersToMe, transfersFromMe, deposits, withdraws] = await Promise.all([ + publicClient.getLogs({ + address: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS as Address, + event: eventsAbi.FundsTransferred as any, + args: { recipient: sessionData.address }, + fromBlock: 0n, + toBlock: 'latest', + }), + publicClient.getLogs({ + address: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS as Address, + event: eventsAbi.FundsTransferred as any, + args: { origin: sessionData.address }, + fromBlock: 0n, + toBlock: 'latest', + }), + publicClient.getLogs({ + address: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS as Address, + event: eventsAbi.FundsDeposited as any, + args: { recipient: sessionData.address }, + fromBlock: 0n, + toBlock: 'latest', + }), + publicClient.getLogs({ + address: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS as Address, + event: eventsAbi.FundsWithdrawn as any, + args: { origin: sessionData.address }, + fromBlock: 0n, + toBlock: 'latest', + }), + ]); + + const allLogs = [...transfersToMe, ...transfersFromMe, ...deposits, ...withdraws]; + + // Add timestamps and format details for each log + const logsWithDetails = await Promise.all( + allLogs.map(async (log: any) => { + const block = await publicClient.getBlock({ blockNumber: log.blockNumber }); + + // Determine the event type + const event = (() => { + switch (log.eventName) { + case 'FundsTransferred': + return log.args.origin === sessionData.address ? 'transferTo' : 'transferFrom'; + case 'FundsDeposited': + return 'deposit'; + case 'FundsWithdrawn': + return 'withdraw'; + default: + return 'unknown'; + } + })(); + + return { + ...log, + timestamp: block.timestamp, // UNIX timestamp of the block + readableDate: new Date(Number(block.timestamp) * 1000).toLocaleString(), // Human-readable date + formattedAmount: log.args.amount ? formatUnits(log.args.amount, 18) : '0', // Convert amount from wei to ether + event, + }; + }) + ); + + // Sort logs by block number and transaction index + const sortedLogs = logsWithDetails.sort((a, b) => { + const blockDifference = Number(b.blockNumber) - Number(a.blockNumber); + if (blockDifference !== 0) return blockDifference; + return Number(b.transactionIndex) - Number(a.transactionIndex); + }); + + // Dispatch the setTransactions action to store the logs in Redux + dispatch(setTransactions(sortedLogs)); + } catch (err) { + console.error('Error fetching logs:', err); + setError(err instanceof Error ? err.message : 'An unknown error occurred'); + } finally { + setLoading(false); + } + }; + + // Helper function to create event signatures + const createEventSignature = (event: any): string => { + if (!event || !event.name || !event.inputs) { + throw new Error('Invalid event in ABI'); + } + const inputs = event.inputs + .map( + (input: any) => + `${input.type}${input.indexed ? ' indexed' : ''} ${input.name}` + ) + .join(', '); + return `event ${event.name}(${inputs})`; + }; + + // Effect to fetch historical logs when the address changes + useEffect(() => { + fetchLogs(); + }, [sessionData?.address]); + + // Effect to handle real-time events from blockchainEvents + useEffect(() => { + if (!blockchainEvents || blockchainEvents.length === 0) return; + + // Iterate over new blockchain events + blockchainEvents.forEach(async (log: any) => { + // Process only relevant events + if ( + log.address !== GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS || + !['FundsTransferred', 'FundsDeposited', 'FundsWithdrawn'].includes(log.eventName) + ) { + return; + } + + try { + const block = await publicClient.getBlock({ blockNumber: log.blockNumber }); + + // Determine the event type + const event = (() => { + switch (log.eventName) { + case 'FundsTransferred': + return log.args.origin === sessionData.address ? 'transferTo' : 'transferFrom'; + case 'FundsDeposited': + return 'deposit'; + case 'FundsWithdrawn': + return 'withdraw'; + default: + return 'unknown'; + } + })(); + + // Create a formatted transaction log + const formattedLog = { + ...log, + timestamp: block.timestamp, // UNIX timestamp of the block + readableDate: new Date(Number(block.timestamp) * 1000).toLocaleString(), // Human-readable date + formattedAmount: log.args.amount ? formatUnits(log.args.amount, 18) : '0', // Convert amount from wei to ether + event, + }; + + // Dispatch the addTransaction action to add the new log to Redux + dispatch(addTransaction(formattedLog)); + } catch (err) { + console.error('Error processing real-time log:', err); + } + }); + }, [blockchainEvents, sessionData?.address, dispatch]); + + return { transactions, loading, error }; +}; + +export default useGetSmartWalletTransactions; diff --git a/src/hooks/use-get-vault-balance.ts b/src/hooks/use-get-vault-balance.ts new file mode 100644 index 000000000..929e370ce --- /dev/null +++ b/src/hooks/use-get-vault-balance.ts @@ -0,0 +1,37 @@ +import { useState, useEffect, useCallback } from 'react'; +import { formatUnits, Address } from 'viem'; +import LedgerVaultAbi from '@src/config/abi/LedgerVault.json'; +import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; +import { publicClient } from '@src/clients/viem/publicClient.ts'; +import { useSelector } from 'react-redux'; + +export function useGetVaultBalance(address?: Address) { + const [balance, setBalance] = useState(null); + const blockchainEvents = useSelector((state: any) => state.blockchainEvents.events); + + const fetchBalance = useCallback(async () => { + console.log('Fetching balance for address:', address); + if (!address) return; + + try { + const rawBalance: any = await publicClient.readContract({ + address: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS, + abi: LedgerVaultAbi.abi, + functionName: 'getLedgerBalance', + args: [address, GLOBAL_CONSTANTS.MMC_ADDRESS], + }); + + const formattedBalance = parseFloat(formatUnits(rawBalance, 18)); + setBalance(isNaN(formattedBalance) ? 0 : formattedBalance); + } catch (error) { + console.error('Error fetching balance:', error); + setBalance(null); + } + }, [address]); + + useEffect(() => { + fetchBalance(); + }, [fetchBalance, address, blockchainEvents]); + + return { balance, refetch: fetchBalance }; +} diff --git a/src/hooks/use-has-access.ts b/src/hooks/use-has-access.ts index 436f49d28..77ac30f90 100644 --- a/src/hooks/use-has-access.ts +++ b/src/hooks/use-has-access.ts @@ -1,10 +1,8 @@ import { useState, useEffect, useCallback } from 'react'; import { Address } from 'viem'; import { publicClient } from '@src/clients/viem/publicClient'; -import SubscriptionPolicyAbi from '@src/config/abi/SubscriptionPolicy.json'; +import AccessAggAbi from '@src/config/abi/AccessAgg.json'; import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; -// @ts-ignore -import { ReadResult } from '@lens-protocol/react/dist/declarations/src/helpers/reads'; import {useSelector} from "react-redux"; interface HasAccessError { @@ -46,12 +44,14 @@ export const useHasAccess = (ownerAddress?: Address): UseHasAccessHook => { setFetching(true); try { const accessData: unknown = await publicClient.readContract({ - address: GLOBAL_CONSTANTS.SUBSCRIPTION_POLICY_ADDRESS, - abi: SubscriptionPolicyAbi.abi, - functionName: 'isAccessAllowed', + address: GLOBAL_CONSTANTS.ACCESS_AGG_ADDRESS, + abi: AccessAggAbi.abi, + functionName: 'isAccessAllowedByHolder', args: [userAddress, ownerAddress], }); + console.log('isAccessAllowedByHolder', accessData); + const access = Boolean(accessData); setHasAccess(access); setError(null); diff --git a/src/hooks/use-is-policy-authorized.ts b/src/hooks/use-is-policy-authorized.ts index b302cc564..c3b7b8248 100644 --- a/src/hooks/use-is-policy-authorized.ts +++ b/src/hooks/use-is-policy-authorized.ts @@ -1,13 +1,7 @@ import { useState, useEffect, useCallback } from 'react'; import { Address } from 'viem'; -import { publicClient } from '@src/clients/viem/publicClient'; -import RightsPolicyAuthorizerAbi from '@src/config/abi/RightsPolicyAuthorizer.json'; -import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; -// LENS IMPORTS -import { ProfileSession, useSession } from '@lens-protocol/react-web'; -// @ts-ignore -import { ReadResult } from '@lens-protocol/react/dist/declarations/src/helpers/reads'; -import {useSelector} from "react-redux"; +import { useSelector } from 'react-redux'; +import { useGetAuthorizedHolderPolicies } from './use-get-authorized-holder-policies.ts'; interface HasAccessError { message: string; @@ -24,9 +18,9 @@ interface UseIsPolicyAuthorizedHook { } /** - * Custom hook to check if a user has a policy authorized. - * @param policy The address of the policy. - * @param holder The address of the holder. If not provided, it uses the current logged-in profile's address. + * Custom hook to check if a specific policy is authorized for the user (holder). + * @param policy Address of the policy. + * @param holder Address of the holder (optional). If not provided, it will use the user's address from Redux. */ export const useIsPolicyAuthorized = ( policy: Address, @@ -36,53 +30,87 @@ export const useIsPolicyAuthorized = ( const userAddress = sessionData?.profile?.ownedBy?.address as Address | undefined; const [isAuthorized, setIsAuthorized] = useState(undefined); - const [loading, setLoading] = useState(true); - const [fetching, setFetching] = useState(true); + // `fetching` indicates if we are currently checking for authorization + const [fetching, setFetching] = useState(true); const [error, setError] = useState(null); - const fetchAuthorization = useCallback(async () => { + // Use the hook that fetches all authorized policies for the holder + const { + authorizedHolderPolicies, + loading: loadingPolicies, + error: errorPolicies, + refetch: refetchPolicies, + } = useGetAuthorizedHolderPolicies(holder ?? userAddress); + + /** + * Checks if the given policy exists in the holder's authorized policies. + */ + const fetchAuthorization = useCallback(() => { + setFetching(true); + + // Validate that policy and holder exist if (!policy || !(holder ?? userAddress)) { - setLoading(false); - setFetching(false); + setIsAuthorized(false); setError({ message: 'Policy or holder address is missing.' }); + setFetching(false); return; } - setFetching(true); + // If there's an error from the other hook, propagate it + if (errorPolicies) { + setIsAuthorized(false); + setError(errorPolicies); + setFetching(false); + return; + } + + // If no policies have been fetched yet, we cannot check + if (!authorizedHolderPolicies) { + setIsAuthorized(false); + setError(null); + setFetching(false); + return; + } try { - const authorizedData = await publicClient.readContract({ - address: GLOBAL_CONSTANTS.RIGHT_POLICY_AUTHORIZER, - abi: RightsPolicyAuthorizerAbi.abi, - functionName: 'isPolicyAuthorized', - args: [policy, holder ?? userAddress], - }); + // Check if the given policy is in the list + // Assume that each element looks like { policy: string, terms: {...} } + const isPolicyInList = authorizedHolderPolicies.some( + (p: any) => p.policy.toLowerCase() === policy.toLowerCase() + ); - const authorized = Boolean(authorizedData); - setIsAuthorized(authorized); + setIsAuthorized(isPolicyInList); setError(null); } catch (err: any) { console.error('Error checking policy authorization:', err); setIsAuthorized(undefined); - setError({ message: err?.message || 'An error occurred' }); + setError({ message: err?.message || 'An error occurred while checking policy authorization.' }); } finally { - setLoading(false); setFetching(false); } - }, [policy, holder, userAddress]); + }, [ + policy, + holder, + userAddress, + authorizedHolderPolicies, + errorPolicies, + ]); + // Whenever authorizedHolderPolicies or errorPolicies change, verify again useEffect(() => { fetchAuthorization(); }, [fetchAuthorization]); + // Allows re-triggering the fetch const refetch = useCallback(() => { - fetchAuthorization(); - }, [fetchAuthorization]); + // Refetch policies from the contract + refetchPolicies(); + }, [refetchPolicies]); return { isAuthorized, - loading, - fetching, + loading: loadingPolicies, // Indicates if we are still fetching the list of policies + fetching, // Indicates if we are checking authorization in that list error, refetch, }; diff --git a/src/hooks/use-notifications.ts b/src/hooks/use-notifications.ts index a3b45fb93..29261f331 100644 --- a/src/hooks/use-notifications.ts +++ b/src/hooks/use-notifications.ts @@ -12,6 +12,7 @@ type UseNotificationsReturn = { markAsRead: (id: string) => Promise; sendNotification: (receiver_id: string, sender_id: string, payload: any) => Promise; markAllAsRead: () => Promise; + deleteNotification: (id: string) => Promise; }; export function useNotifications(): UseNotificationsReturn { @@ -74,11 +75,27 @@ export function useNotifications(): UseNotificationsReturn { } } + // async deleteNotification(id: string) + async function deleteNotification(id: string) { + const { error } = await supabase + .from('notifications') + .delete() + .eq('id', id); + + if (error) { + console.error('Error deleting notification:', error); + } else { + const updatedNotifications = notifications.filter(notification => notification.id !== id); + dispatch(setNotifications(updatedNotifications)); + } + } + return { getNotifications, notifications, markAllAsRead, markAsRead, sendNotification, + deleteNotification }; } diff --git a/src/hooks/use-resolve-terms.ts b/src/hooks/use-resolve-terms.ts deleted file mode 100644 index d0414226a..000000000 --- a/src/hooks/use-resolve-terms.ts +++ /dev/null @@ -1,100 +0,0 @@ -import { useState, useEffect, useCallback } from 'react'; -import { Address } from 'viem'; -import { publicClient } from '@src/clients/viem/publicClient'; -import SubscriptionPolicyAbi from '@src/config/abi/SubscriptionPolicy.json'; -import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; - -interface HasAccessError { - message: string; - code?: number; - [key: string]: any; -} - -interface Terms { - amount: any; // Amount in wei - currency: string; // MMC address - rateBasis: number; - uri: string; -} - -interface UseResolveTermsHook { - terms?: Terms; - loading: boolean; - fetching: boolean; - error?: HasAccessError | null; - refetch: () => void; -} - -type SubscriptionTerms = { - amount: number; - currency: string; - rateBasis: number; - uri: string; -}; - -/** - * Custom hook to resolve terms from a given holder address. - * @param holderAddress The address of the publication owner (holder). - * @returns An object with terms, loading state, error, and a refetch function. - */ -export const useResolveTerms = (holderAddress?: Address): UseResolveTermsHook => { - const [terms, setTerms] = useState(undefined); - const [loading, setLoading] = useState(true); - const [fetching, setFetching] = useState(true); - const [error, setError] = useState(null); - - const fetchTerms = useCallback(async () => { - if (!holderAddress) { - setLoading(false); - setFetching(false); - setError({ message: 'Holder address is missing.' }); - return; - } - - try { - setFetching(true); - const data: SubscriptionTerms = (await publicClient.readContract({ - address: GLOBAL_CONSTANTS.SUBSCRIPTION_POLICY_ADDRESS, - abi: SubscriptionPolicyAbi.abi, - functionName: 'resolveTerms', - args: [holderAddress], - })) as unknown as SubscriptionTerms; - - setTerms(data); - setError(null); - } catch (err: any) { - console.error('Error resolving terms:', err); - setTerms(undefined); - setError({ message: err?.message || 'An error occurred' }); - } finally { - setLoading(false); - setFetching(false); - } - }, [holderAddress]); - - useEffect(() => { - fetchTerms(); - }, [fetchTerms]); - - const refetch = useCallback(() => { - fetchTerms(); - }, [fetchTerms]); - - if (!holderAddress) { - return { - terms: {} as Terms, - loading: false, - fetching: false, - error: null, - refetch: () => {}, - }; - } - - return { - terms, - loading, - fetching, - error, - refetch, - }; -}; diff --git a/src/hooks/use-subscribe.ts b/src/hooks/use-subscribe.ts index 51846ba74..60882b7da 100644 --- a/src/hooks/use-subscribe.ts +++ b/src/hooks/use-subscribe.ts @@ -9,11 +9,9 @@ import { encodeFunctionData } from 'viem'; // LOCAL IMPORTS import { useWeb3Auth } from '@src/hooks/use-web3-auth.ts'; -import MMCAbi from '@src/config/abi/MMC.json'; -import AgreementPortalAbi from '@src/config/abi/AgreementPortal.json'; +import AccessWorkflowAbi from '@src/config/abi/AccessWorkflow.json'; +import LedgerVaultabi from '@src/config/abi/LedgerVault.json'; import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; -// @ts-ignore -import { ReadResult } from '@lens-protocol/react/dist/declarations/src/helpers/reads'; import {useSelector} from "react-redux"; // ---------------------------------------------------------------------- @@ -53,38 +51,27 @@ export const useSubscribe = (): UseSubscribeHook => { const sessionData = useSelector((state: any) => state.auth.session); const { web3Auth } = useWeb3Auth(); - /** - * Approves MMC tokens for the Agreement Portal. - * @param amountInWei The amount of MMC tokens to approve (in Wei). - * @returns The encoded function data for the approve call. - */ - const approveMMC = (amountInWei: bigint): string => { - // Encode the approve function call data + const transferToAccessAgreement = (approvalAmount: bigint): string => { return encodeFunctionData({ - abi: MMCAbi.abi, - functionName: 'approve', - args: [GLOBAL_CONSTANTS.AGREEMENT_PORTAL_ADDRESS, amountInWei], + abi: LedgerVaultabi.abi, + functionName: 'transfer', + args: [ + GLOBAL_CONSTANTS.ACCESS_WORKFLOW_ADDRESS, + approvalAmount, + GLOBAL_CONSTANTS.MMC_ADDRESS, + ], }); }; - /** - * Creates the flash policy agreement data. - * @param approvalAmount The amount approved for the agreement (in Wei). - * @param holderAddress The owner address (e.g., 'holderAddress' parameter). - * @param parties The parties involved in the agreement. - * @param payload Additional payload data. - * @returns The encoded function data for the flashPolicyAgreement call. - */ - const createFlashPolicyAgreement = ( + const registerAccessAgreement = ( approvalAmount: bigint, holderAddress: string, parties: string[], payload: string ): string => { - // Encode the flashPolicyAgreement function call data return encodeFunctionData({ - abi: AgreementPortalAbi.abi, - functionName: 'flashPolicyAgreement', + abi: AccessWorkflowAbi.abi, + functionName: 'registerAccessAgreement', args: [ approvalAmount, holderAddress, @@ -106,7 +93,9 @@ export const useSubscribe = (): UseSubscribeHook => { try { // Retrieve the account abstraction provider, bundler client, and smart account const accountAbstractionProvider = web3Auth.options.accountAbstractionProvider; + // @ts-ignore const bundlerClient = accountAbstractionProvider.bundlerClient; + // @ts-ignore const smartAccount = accountAbstractionProvider.smartAccount; if (!sessionData?.authenticated) { @@ -125,11 +114,11 @@ export const useSubscribe = (): UseSubscribeHook => { const parties = [sessionData?.profile?.ownedBy.address]; // The parties involved in the agreement (e.g., the user's address) const payload = '0x'; // Additional payload data if needed - // Prepare the approve MMC data - const approveData = approveMMC(approvalAmountInWei); + // Prepare the transfer to access agreement + const transferToAccessAgreementData = transferToAccessAgreement(approvalAmountInWei); - // Prepare the flash policy agreement data - const flashPolicyAgreementData = createFlashPolicyAgreement( + // Prepare the access agreement data + const registerAccessAgreementData = registerAccessAgreement( approvalAmountInWei, holderAddress, parties, @@ -139,14 +128,14 @@ export const useSubscribe = (): UseSubscribeHook => { // Create the array of calls to be included in the user operation const calls = [ { - to: GLOBAL_CONSTANTS.MMC_ADDRESS, + to: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS, value: 0, - data: approveData, + data: transferToAccessAgreementData, }, { - to: GLOBAL_CONSTANTS.AGREEMENT_PORTAL_ADDRESS, + to: GLOBAL_CONSTANTS.ACCESS_WORKFLOW_ADDRESS, value: 0, - data: flashPolicyAgreementData, + data: registerAccessAgreementData, }, ]; @@ -165,7 +154,9 @@ export const useSubscribe = (): UseSubscribeHook => { setData(receipt); setLoading(false); } catch (err: any) { - setError({ message: err.message || 'An error occurred', ...err }); + console.log('err:') + console.log(err) + // setError({ message: err.message || 'An error occurred', ...err }); setLoading(false); } }; diff --git a/src/hooks/use-transaction-data.ts b/src/hooks/use-transaction-data.ts new file mode 100644 index 000000000..8c569b999 --- /dev/null +++ b/src/hooks/use-transaction-data.ts @@ -0,0 +1,109 @@ +import { useEffect, useState } from 'react'; +import { supabase } from '@src/utils/supabase'; +import { useSelector } from 'react-redux'; + +export type TransactionType = { + id: number; + receiver_id: string; + sender_id: string; + created_at: string; + payload: { + data: { + to: { + id: string; + avatar: string; + displayName: string; + }; + from: { + id: string; + avatar: string; + displayName: string; + }; + content: { + message: string; + rawDescription: string; + }; + }, + type: string; + amount: number; + address: string; + message?: string; + category: string; + }; +}; + +export type TableRowTransactionType = { + id: string; + name: string; + avatarUrl: string; + amount:string | null; + type: string; + date: bigint; + status: string; + message: string; + category: string; +} + +export type TransactionData = { + date: string; + income: number; + expenses: number; +}; + +export type TransactionsDataResponseHook = { + data: TransactionData[]; + rawData: TransactionType[]; +}; + +export const useTransactionData = (): TransactionsDataResponseHook => { + const [data, setData] = useState([]); + const [rawData, setRawData] = useState([]); + const sessionData = useSelector((state: any) => state.auth.session); + + useEffect(() => { + const fetchData = async () => { + if (!sessionData?.profile?.id) return; + + const { data: transactions, error } = await supabase + .from('transactions') + .select('*') + .or(`receiver_id.eq.${sessionData?.profile?.id},sender_id.eq.${sessionData?.profile?.id}`) + .order('created_at', { ascending: true }); + + if (error) { + console.error('Error fetching transactions:', error); + return; + } + + const processedTransactions = transactions.map((transaction: TransactionType) => ({ + ...transaction, + payload: { + ...transaction.payload, + type: transaction.sender_id === sessionData?.profile?.id ? 'Outcome' : 'Income', + }, + })); + + setRawData(processedTransactions); + + const groupedData = transactions.reduce((acc: Record, transaction) => { + const date = new Date(transaction.created_at).toISOString().split('T')[0]; + if (!acc[date]) { + acc[date] = { date, income: 0, expenses: 0 }; + } + if (transaction.receiver_id === sessionData.profile.id) { + acc[date].income += transaction.payload.amount; + } + if (transaction.sender_id === sessionData.profile.id) { + acc[date].expenses += transaction.payload.amount; + } + return acc; + }, {}); + + setData(Object.values(groupedData)); + }; + + fetchData().then(r => console.log(r)); + }, [sessionData]); + + return { data, rawData }; +}; diff --git a/src/hooks/use-transfer.ts b/src/hooks/use-transfer.ts new file mode 100644 index 000000000..5859dbe8d --- /dev/null +++ b/src/hooks/use-transfer.ts @@ -0,0 +1,95 @@ +import { useState } from 'react'; +import { useSelector } from 'react-redux'; +import { encodeFunctionData, parseUnits } from 'viem'; +import { useWeb3Auth } from '@src/hooks/use-web3-auth.ts'; +import LedgerVaultAbi from '@src/config/abi/LedgerVault.json'; +import { GLOBAL_CONSTANTS } from '@src/config-global'; + +interface VaultError { + message: string; + code?: number; + [key: string]: any; +} + +interface TransferParams { + recipient: string; + amount: number; +} + +interface UseTransferHook { + data?: any; + transfer: (params: TransferParams) => Promise; + loading: boolean; + error?: VaultError | null; +} + +export const useTransfer = (): UseTransferHook => { + const [data, setData] = useState(null); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + + const sessionData = useSelector((state: any) => state.auth.session); + const { web3Auth } = useWeb3Auth(); + + const initializeTransfer = ({ recipient, amount }: TransferParams) => { + const weiAmount = parseUnits(amount.toString(), 18); + + return encodeFunctionData({ + abi: LedgerVaultAbi.abi, + functionName: 'transfer', + args: [recipient, weiAmount, GLOBAL_CONSTANTS.MMC_ADDRESS], + }); + }; + + const transfer = async ({ recipient, amount }: TransferParams) => { + setLoading(true); + setError(null); + + try { + const accountAbstractionProvider = web3Auth.options.accountAbstractionProvider; + // @ts-ignore + const bundlerClient = accountAbstractionProvider.bundlerClient; + // @ts-ignore + const smartAccount = accountAbstractionProvider.smartAccount; + + if (!sessionData?.authenticated) { + setError({ message: 'Please login to transfer funds' }); + setLoading(false); + return; + } + + if (!bundlerClient) { + setError({ message: 'Bundler client not available' }); + setLoading(false); + return; + } + + const transferData = initializeTransfer({ recipient, amount }); + + const calls = [ + { + to: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS, + value: 0, + data: transferData, + }, + ]; + + const userOpHash = await bundlerClient.sendUserOperation({ + account: smartAccount, + calls, + }); + + const receipt = await bundlerClient.waitForUserOperationReceipt({ + hash: userOpHash, + }); + + setData(receipt); + setLoading(false); + } catch (err: any) { + setError({ message: err.message || 'An error occurred', ...err }); + setLoading(false); + } + }; + + return { data, transfer, loading, error }; +}; diff --git a/src/hooks/use-withdraw-metamask.ts b/src/hooks/use-withdraw-metamask.ts new file mode 100644 index 000000000..7eed4aeda --- /dev/null +++ b/src/hooks/use-withdraw-metamask.ts @@ -0,0 +1,98 @@ +import { useState } from 'react'; +import { parseUnits } from 'viem'; +import { ConnectWalletClient } from '@src/clients/viem/walletClient'; +import LedgerVaultAbi from '@src/config/abi/LedgerVault.json'; +import { GLOBAL_CONSTANTS } from '@src/config-global'; +import { publicClient } from '@src/clients/viem/publicClient'; +import { useSnackbar } from 'notistack'; + +interface VaultError { + message: string; + code?: number; + [key: string]: any; +} + +interface WithdrawParams { + recipient: string; // Address receiving the funds + amount: number; // Amount in "human" format (not in Wei) +} + +interface UseWithdrawHook { + data?: any; + withdraw: (params: WithdrawParams) => Promise; + loading: boolean; + error?: VaultError | null; +} + +/** + * Hook that allows the withdrawal flow to be made + * using MetaMask (or any injected EOA) instead + * of the smart wallet. + */ +export const useWithdrawMetamask = (): UseWithdrawHook => { + const [data, setData] = useState(null); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + const { enqueueSnackbar } = useSnackbar(); + + const withdraw = async ({ recipient, amount }: WithdrawParams) => { + setLoading(true); + setError(null); + + try { + // 1) Connect to the wallet (MetaMask) + const walletClient = await ConnectWalletClient(); + + // 2) Retrieve the user's address from the wallet + const [senderAddress] = await walletClient.requestAddresses(); + + // 3) Convert the amount to Wei (18 decimals) + const weiAmount = parseUnits(amount.toString(), 18); + + // Notify the user that we are sending the withdraw transaction + enqueueSnackbar('Sending withdraw transaction to the network...', { + variant: 'info', + autoHideDuration: 3000, + }); + + // 4) Send the withdraw transaction + const withdrawTxHash = await walletClient.writeContract({ + address: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS, + abi: LedgerVaultAbi.abi, + functionName: 'withdraw', + args: [recipient, weiAmount, GLOBAL_CONSTANTS.MMC_ADDRESS], + account: senderAddress, + }); + + // Notify the user that we are waiting for confirmation + enqueueSnackbar('Withdraw transaction broadcasted. Waiting for confirmation...', { + variant: 'info', + autoHideDuration: 7000, + }); + + // Wait for the withdraw transaction to be mined + const withdrawReceipt = await publicClient.waitForTransactionReceipt({ + hash: withdrawTxHash, + }); + + // Store the transaction data + setData({ + withdrawTxHash, + withdrawReceipt, + }); + } catch (err: any) { + // If something fails, set an error + setError({ message: err.message || 'An error occurred', ...err }); + } finally { + // Reset loading state + setLoading(false); + } + }; + + return { + data, + withdraw, + loading, + error, + }; +}; diff --git a/src/hooks/use-withdraw.ts b/src/hooks/use-withdraw.ts new file mode 100644 index 000000000..1c9a94032 --- /dev/null +++ b/src/hooks/use-withdraw.ts @@ -0,0 +1,95 @@ +import { useState } from 'react'; +import { useSelector } from 'react-redux'; +import { encodeFunctionData, parseUnits } from 'viem'; +import { useWeb3Auth } from '@src/hooks/use-web3-auth.ts'; +import LedgerVaultAbi from '@src/config/abi/LedgerVault.json'; +import { GLOBAL_CONSTANTS } from '@src/config-global'; + +interface VaultError { + message: string; + code?: number; + [key: string]: any; +} + +interface WithdrawParams { + recipient: string; + amount: number; +} + +interface UseWithdrawHook { + data?: any; + withdraw: (params: WithdrawParams) => Promise; + loading: boolean; + error?: VaultError | null; +} + +export const useWithdraw = (): UseWithdrawHook => { + const [data, setData] = useState(null); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + + const sessionData = useSelector((state: any) => state.auth.session); + const { web3Auth } = useWeb3Auth(); + + const initializeWithdraw = ({ recipient, amount }: WithdrawParams) => { + const weiAmount = parseUnits(amount.toString(), 18); + + return encodeFunctionData({ + abi: LedgerVaultAbi.abi, + functionName: 'withdraw', + args: [recipient, weiAmount, GLOBAL_CONSTANTS.MMC_ADDRESS], + }); + }; + + const withdraw = async ({ recipient, amount }: WithdrawParams) => { + setLoading(true); + setError(null); + + try { + const accountAbstractionProvider = web3Auth.options.accountAbstractionProvider; + // @ts-ignore + const bundlerClient = accountAbstractionProvider.bundlerClient; + // @ts-ignore + const smartAccount = accountAbstractionProvider.smartAccount; + + if (!sessionData?.authenticated) { + setError({ message: 'Please login to withdraw funds' }); + setLoading(false); + return; + } + + if (!bundlerClient) { + setError({ message: 'Bundler client not available' }); + setLoading(false); + return; + } + + const withdrawData = initializeWithdraw({ recipient, amount }); + + const calls = [ + { + to: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS, + value: 0, + data: withdrawData, + }, + ]; + + const userOpHash = await bundlerClient.sendUserOperation({ + account: smartAccount, + calls, + }); + + const receipt = await bundlerClient.waitForUserOperationReceipt({ + hash: userOpHash, + }); + + setData(receipt); + setLoading(false); + } catch (err: any) { + setError({ message: err.message || 'An error occurred', ...err }); + setLoading(false); + } + }; + + return { data, withdraw, loading, error }; +}; diff --git a/src/layouts/_common/header-balance.tsx b/src/layouts/_common/header-balance.tsx index c64f7509e..48922313b 100644 --- a/src/layouts/_common/header-balance.tsx +++ b/src/layouts/_common/header-balance.tsx @@ -1,47 +1,36 @@ -import { m } from 'framer-motion'; -// @mui -import IconButton from '@mui/material/IconButton'; -// components -import { varHover } from '@src/components/animate'; +// MUI IMPORTS import Typography from '@mui/material/Typography'; import Stack from '@mui/material/Stack'; -import { useDispatch, useSelector } from 'react-redux'; -import { useEffect } from 'react'; -import { setBalance } from '@redux/auth'; +import Button from '@mui/material/Button'; +import Box from '@mui/material/Box'; + +// LOCAL IMPORTS import { useGetBalance } from '@src/hooks/use-get-balance.ts'; +// @ts-ignore import mmcTokenIcon from '@src/assets/mmc_token.ico'; +import { paths } from '@src/routes/paths.ts'; +import { useRouter } from '@src/routes/hooks'; +import { formatBalanceNumber } from '@src/utils/format-number.ts'; // ---------------------------------------------------------------------- export default function HeaderBalance() { - const dispatch = useDispatch(); - const { balance: balanceFromRedux } = useSelector((state: any) => state.auth); - const sessionData = useSelector((state: any) => state.auth.session); - const { balance: balanceFromContract } = useGetBalance(sessionData?.address); - - useEffect(() => { - if (balanceFromContract) { - dispatch(setBalance({ balance: balanceFromContract })); - } - }, [balanceFromContract]); + const { balance } = useGetBalance(); + const router = useRouter(); - const balanceOptions = { minimumFractionDigits: 1, maximumFractionDigits: 3 }; - const formattedBalance = new Intl.NumberFormat('en-US', balanceOptions).format(balanceFromRedux); + const handleGoFinance = () => { + router.push(paths.dashboard.finance) + } return ( - <> + ); } diff --git a/src/layouts/_common/notifications-popover/notification-item.tsx b/src/layouts/_common/notifications-popover/notification-item.tsx index dad66f8cb..2760cd736 100644 --- a/src/layouts/_common/notifications-popover/notification-item.tsx +++ b/src/layouts/_common/notifications-popover/notification-item.tsx @@ -11,19 +11,47 @@ import TextMaxLine from "@src/components/text-max-line"; import {useRouter} from "@src/routes/hooks"; import {paths} from "@src/routes/paths.ts"; import { NotificationCategories, type NotificationColumnsProps } from "@src/types/notification.ts"; +import IconButton from "@mui/material/IconButton"; +import Iconify from "@src/components/iconify"; +import {useNotifications} from "@src/hooks/use-notifications.ts"; +import {openLoginModal} from "@redux/auth"; +import {PublicationReactionType, useReactionToggle} from "@lens-protocol/react-web"; +import {decrementCounterLikes, incrementCounterLikes} from "@redux/comments"; +import {useEffect, useState} from "react"; +import {useDispatch, useSelector} from "react-redux"; +import {useNotificationPayload} from "@src/hooks/use-notification-payload.ts"; +import {usePublication} from "@lens-protocol/react"; +import {CircularProgress} from "@mui/material"; -type NotificationItemProps = { +export type NotificationItemProps = { + id: any; notification: NotificationColumnsProps; onMarkAsRead: (id: string) => void; }; export default function NotificationItem({ notification, onMarkAsRead }: NotificationItemProps) { + const commentId = notification?.payload?.data?.content?.comment_id; + + const sessionData = useSelector((state: any) => state.auth.session); + const { deleteNotification } = useNotifications(); + const dispatch = useDispatch(); + const { execute: toggle, loading: loadingLike } = useReactionToggle(); + const typeOfNotification = notification?.payload?.category; + const receiver = notification?.payload?.data?.to?.displayName; + const message = notification?.payload?.data?.content?.message ||notification?.payload?.data?.content?.comment || ''; + const [hasLiked, setHasLiked] = useState(false) + const { sendNotification } = useNotifications(); + const { generatePayload } = useNotificationPayload(sessionData); const router = useRouter(); + const { data: comment, loading }: any = usePublication({ forId: commentId as any }); + + useEffect(() => { + setHasLiked(comment?.operations?.hasUpvoted); + }, [comment]); + const handleItemClick = () => { onMarkAsRead(notification.id); - const typeOfNotification = notification?.payload?.category; - // Verify if is LIKE / COMMENT if (typeOfNotification === NotificationCategories.LIKE || typeOfNotification === NotificationCategories.COMMENT) { router.push(paths.dashboard.publication.details(notification.payload.data.content.root_id)); @@ -35,6 +63,42 @@ export default function NotificationItem({ notification, onMarkAsRead }: Notific } }; + const toggleReaction = async () => { + if (!sessionData?.authenticated) return dispatch(openLoginModal()); + + try { + await toggle({ + reaction: PublicationReactionType.Upvote, + publication: comment, + }).then(() => { + // Send notification to the author of the comment + const notificationPayload = generatePayload('LIKE', { + id: comment?.by?.id, + displayName: comment?.by?.metadata?.displayName ?? 'no name', + avatar: comment?.by?.metadata?.avatar, + }, { + root_id: comment?.commentOn?.root?.id ?? comment?.commentOn?.id, + parent_id: comment?.commentOn?.id, + comment_id: comment?.id, + rawDescription: `${sessionData?.profile?.metadata?.displayName} liked your comment`, + }); + + if (!hasLiked){ + dispatch(incrementCounterLikes(comment.id)); + } else { + dispatch(decrementCounterLikes(comment.id)); + } + + if(!hasLiked && comment?.by?.id !== sessionData?.profile?.id) { + sendNotification(comment?.by?.id, sessionData?.profile?.id, notificationPayload); + } + }); + setHasLiked(!hasLiked); // Toggle the UI based on the reaction state + } catch (err) { + console.error('Error toggling reaction:', err); + } + }; + const renderAvatar = ( @@ -60,6 +124,77 @@ export default function NotificationItem({ notification, onMarkAsRead }: Notific /> ); + function reader(data: string) { + return ( + data.length > 8 ? ( + ):null + ); + } + + const transferAction = ( + + + {reader(`

@${receiver} ${message}.

`)} +
+
+ ); + + const messageAction = ( + message.length > 0 && ( + + + + {reader( + `

${message}.

` + )} +
+ + {/*Stack for show IconHeart and Reply icon*/} + + + { + loading ||loadingLike ? ( + + ) : ( + hasLiked ? ( + + ) : ( + + ))} + + + + + + +
+ ) + ); + const renderUnReadBadge = !notification.read && ( ); + const onDelete = async (id: string) => { + await deleteNotification(id); + } + + const renderDeleteButton = () => { + return ( notification.read && + onDelete(notification.id)} + sx={{ position: 'absolute', right: 20, top: 30, width: 32, height:32, transform: 'translateY(-50%)', borderRadius: '50%', bgcolor: 'background.neutral' }} + > + + + ); + } + return ( {renderUnReadBadge} + {renderDeleteButton()} + {renderAvatar} - {renderText} + + {renderText} + {typeOfNotification === NotificationCategories.TRANSFER && transferAction} + {typeOfNotification === NotificationCategories.COMMENT && messageAction} + ); } diff --git a/src/layouts/_common/notifications-popover/notifications-popover.tsx b/src/layouts/_common/notifications-popover/notifications-popover.tsx index 209e375e3..c49f99555 100644 --- a/src/layouts/_common/notifications-popover/notifications-popover.tsx +++ b/src/layouts/_common/notifications-popover/notifications-popover.tsx @@ -21,14 +21,41 @@ import { useNotifications } from "@src/hooks/use-notifications.ts"; import {Box} from "@mui/system"; import Image from "@src/components/image"; // @ts-ignore -import emptyImage from "@public/assets/illustrations/empty-notifications.png"; +import emptyImage from "@src/assets/illustrations/empty-notifications.png"; +import {useCallback, useState} from "react"; +import Tabs from "@mui/material/Tabs"; +import Tab from "@mui/material/Tab"; +import Label from "@src/components/label"; export default function NotificationsPopover() { const { notifications, markAsRead, markAllAsRead } = useNotifications(); + const unreadNotifications = notifications.filter((notification) => !notification.read); + const drawer = useBoolean(); const smUp = useResponsive('up', 'sm'); - const unreadNotifications = notifications.filter((notification) => !notification.read); + const [currentTab, setCurrentTab] = useState('all'); + const handleChangeTab = useCallback((event: React.SyntheticEvent, newValue: string) => { + setCurrentTab(newValue); + }, []); + + const TABS = [ + { + value: 'all', + label: 'All', + count: notifications.length, + }, + { + value: 'unread', + label: 'Unread', + count: unreadNotifications.length, + }, + { + value: 'archived', + label: 'Archived', + count: notifications.length - unreadNotifications.length, + }, + ]; const renderHead = ( @@ -37,7 +64,7 @@ export default function NotificationsPopover() { {notifications.length ? ( - + @@ -52,6 +79,53 @@ export default function NotificationsPopover() { ); + const renderTabs = ( + + {TABS.map((tab) => ( + + {tab.count} + + } + sx={{ + '&:not(:last-of-type)': { + mr: 3, + }, + }} + /> + ))} + + ); + + + const renderNotifications = (notifications: any) => ( + + + { notifications.length > 0 ? ( + notifications.map((notification: NotificationColumnsProps) => ( + + )) + ) : } + + + ); + return ( <> - - - { notifications.length > 0 ? ( - notifications.map((notification: NotificationColumnsProps) => ( - - )) - ) : } - - + + {renderTabs} + {/* + + */} + + + + + { + currentTab === 'all' && renderNotifications(notifications) + } + + { + currentTab === 'unread' && renderNotifications(unreadNotifications) + } + + { + currentTab === 'archived' && renderNotifications(notifications.filter((notification) => notification.read)) + } + ); diff --git a/src/layouts/dashboard/config-navigation.tsx b/src/layouts/dashboard/config-navigation.tsx index 566e9e9b5..fe86ad8b8 100644 --- a/src/layouts/dashboard/config-navigation.tsx +++ b/src/layouts/dashboard/config-navigation.tsx @@ -61,7 +61,7 @@ export function useNavData() { icon: ICONS.dashboard, }, { - title: t('Comunity'), + title: t('Community'), path: paths.dashboard.community, icon: ICONS.userGroup, }, diff --git a/src/layouts/dashboard/main.tsx b/src/layouts/dashboard/main.tsx index aeee16ad1..a3b134d0f 100644 --- a/src/layouts/dashboard/main.tsx +++ b/src/layouts/dashboard/main.tsx @@ -18,6 +18,7 @@ export default function Main({ children, sx, ...other }: BoxProps) { WatchIt | Finance - - - +
+ +
+ ); } diff --git a/src/pages/dashboard/publication/play.tsx b/src/pages/dashboard/publication/play.tsx index 3d04969cd..0865efd48 100644 --- a/src/pages/dashboard/publication/play.tsx +++ b/src/pages/dashboard/publication/play.tsx @@ -1,7 +1,7 @@ import { Helmet } from 'react-helmet-async'; // sections import { PublicationPlayView } from '@src/sections/publication/view'; -import { useParams } from '../../../routes/hooks'; +import { useParams } from '@src/routes/hooks'; // ---------------------------------------------------------------------- diff --git a/src/redux/address/index.ts b/src/redux/address/index.ts new file mode 100644 index 000000000..a2dca61f5 --- /dev/null +++ b/src/redux/address/index.ts @@ -0,0 +1,32 @@ +import { createSlice, PayloadAction } from '@reduxjs/toolkit'; + +interface AddressState { + address: string; + profileId: string; + showRainbow: boolean; +} + +const initialState: AddressState = { + address: '', + profileId: '', + showRainbow: false, +}; + +const addressSlice = createSlice({ + name: 'address', + initialState, + reducers: { + storeAddress(state, action: PayloadAction<{ address: string; profileId: string }>) { + state.address = action.payload.address; + state.profileId = action.payload.profileId; + }, + + toggleRainbow(state) { + state.showRainbow = !state.showRainbow; + }, + + }, +}); + +export const { storeAddress, toggleRainbow } = addressSlice.actions; +export default addressSlice.reducer; diff --git a/src/redux/blockchain-events/index.ts b/src/redux/blockchain-events/index.ts new file mode 100644 index 000000000..9a1bd2fbd --- /dev/null +++ b/src/redux/blockchain-events/index.ts @@ -0,0 +1,31 @@ +import { createSlice, PayloadAction } from '@reduxjs/toolkit'; +import { Log } from 'viem'; + +interface BlockchainEventsState { + events: Log[]; +} + +const initialState: BlockchainEventsState = { + events: [], +}; + +const blockchainEventsSlice = createSlice({ + name: 'blockchainEvents', + initialState, + reducers: { + addBlockchainEvent(state, action: PayloadAction) { + state.events.push(action.payload); + }, + setBlockchainEvents(state, action: PayloadAction) { + state.events = action.payload; + }, + clearBlockchainEvents(state) { + state.events = []; + }, + }, +}); + +export const { addBlockchainEvent, setBlockchainEvents, clearBlockchainEvents } = + blockchainEventsSlice.actions; + +export default blockchainEventsSlice.reducer; diff --git a/src/redux/middlewares/backgroundTaskMiddleware.ts b/src/redux/middlewares/backgroundTaskMiddleware.ts index 80a9d9de3..4696bde07 100644 --- a/src/redux/middlewares/backgroundTaskMiddleware.ts +++ b/src/redux/middlewares/backgroundTaskMiddleware.ts @@ -73,6 +73,7 @@ const processBackgroundComment = (store: any, data: any) => { displayName: owner?.displayName, avatar: owner?.avatar, }, { + comment: pendingComment?.metadata?.content, root_id: root, comment_id: commentOn, rawDescription: `${sessionData?.profile?.metadata?.displayName} left a comment`, diff --git a/src/redux/notifications/index.ts b/src/redux/notifications/index.ts index 756192680..e023e4abb 100644 --- a/src/redux/notifications/index.ts +++ b/src/redux/notifications/index.ts @@ -1,8 +1,11 @@ import { createSlice, PayloadAction } from '@reduxjs/toolkit'; -import { NotificationColumnsProps } from '@src/layouts/_common/notifications-popover/notification-item.tsx'; +import { NotificationItemProps } from '@src/layouts/_common/notifications-popover/notification-item.tsx'; + +// @ts-ignore +import Ding from '@src/assets/audio/notify.mp3'; interface NotificationsState { - notifications: NotificationColumnsProps[]; + notifications: NotificationItemProps[]; } const initialState: NotificationsState = { @@ -13,14 +16,17 @@ const notificationsSlice = createSlice({ name: 'notifications', initialState, reducers: { - setNotifications(state, action: PayloadAction) { + setNotifications(state, action: PayloadAction) { state.notifications = action.payload; }, - appendNotification(state, action: PayloadAction) { + appendNotification(state, action: PayloadAction) { const existingIndex = state.notifications.findIndex(notification => notification.id === action.payload.id); if (existingIndex !== -1) { state.notifications[existingIndex] = action.payload; } else { + // Play a sound when a new notification is appended + const audio = new Audio(Ding); + audio.play(); state.notifications = [action.payload, ...state.notifications]; } }, diff --git a/src/redux/recent-transactions/index.ts b/src/redux/recent-transactions/index.ts new file mode 100644 index 000000000..b7f3a097e --- /dev/null +++ b/src/redux/recent-transactions/index.ts @@ -0,0 +1,60 @@ +import { createSlice, PayloadAction } from '@reduxjs/toolkit'; + +export type TransactionItemProps = { + id: string; + receiver_id: string; + sender_id: string; + payload: { + amount: number; + address: string; + message: string; + type: string; + category: string; + data: { + to : { + id: string; + displayName: string; + avatar: string; + }, + from: { + id: string; + displayName: string; + avatar: string; + }, + content: { + message: string; + rawDescription: string; + }; +} + } +} + +interface TransactionsState { + transactions: TransactionItemProps[]; +} + +const initialState: TransactionsState = { + transactions: [], +}; + +const transactionsSlice = createSlice({ + name: 'notifications', + initialState, + reducers: { + setTransactions(state, action: PayloadAction) { + state.transactions = action.payload; + }, + appendTransaction(state, action: PayloadAction) { + const existingIndex = state.transactions.findIndex(transaction => transaction.id === action.payload.id); + if (existingIndex !== -1) { + state.transactions[existingIndex] = action.payload; + } else { + // Play a sound when a new transaction is appended + state.transactions = [action.payload, ...state.transactions]; + } + }, + }, +}); + +export const { setTransactions, appendTransaction } = transactionsSlice.actions; +export default transactionsSlice.reducer; diff --git a/src/redux/reducer.ts b/src/redux/reducer.ts index ffa59d5e7..52ce6e058 100644 --- a/src/redux/reducer.ts +++ b/src/redux/reducer.ts @@ -6,6 +6,9 @@ import notificationsReducer from '@redux/notifications/index'; import bookmarkReducer from '@redux/bookmark/index'; import commentsReducer from '@redux/comments/index'; import followersReducer from '@redux/followers/index'; +import addressReducer from '@redux/address/index'; +import blockchainEventsReducer from '@redux/blockchain-events/index'; +import transactionsReducer from '@redux/transactions/index'; const appReducer = combineReducers({ minibar: minibarReducer, @@ -15,6 +18,9 @@ const appReducer = combineReducers({ comments: commentsReducer, notifications: notificationsReducer, followers: followersReducer, + address: addressReducer, + blockchainEvents: blockchainEventsReducer, + transactions: transactionsReducer, }); const rootReducer = (state: any, action: any) => { diff --git a/src/redux/transactions/index.ts b/src/redux/transactions/index.ts new file mode 100644 index 000000000..951b40f21 --- /dev/null +++ b/src/redux/transactions/index.ts @@ -0,0 +1,60 @@ +import { createSlice, PayloadAction } from '@reduxjs/toolkit'; + +// Define the type for a transaction log +export type TransactionLog = { + address: string; + args: { + amount: bigint; + currency: string; + recipient: string; + sender: string; + }; + blockHash: string; + blockNumber: bigint; + data: string; + event: string; + eventName: string; + formattedAmount: string; + logIndex: number; + readableDate: string; + removed: boolean; + timestamp: bigint; + topics: string[]; + transactionHash: string; + transactionIndex: number; +}; + +// Define the initial state +interface TransactionsState { + transactions: TransactionLog[]; +} + +const initialState: TransactionsState = { + transactions: [], +}; + +// Create the slice +const transactionsSlice = createSlice({ + name: 'transactions', + initialState, + reducers: { + // Action to set all transactions (e.g., from history) + setTransactions: (state, action: PayloadAction) => { + state.transactions = action.payload; + }, + // Action to add a new transaction in real-time + addTransaction: (state, action: PayloadAction) => { + // Avoid duplicates based on transactionHash + const exists = state.transactions.find( + (tx) => tx.transactionHash === action.payload.transactionHash + ); + if (!exists) { + state.transactions.unshift(action.payload); // Add to the beginning to maintain order + } + }, + }, +}); + +export const { setTransactions, addTransaction } = transactionsSlice.actions; + +export default transactionsSlice.reducer; diff --git a/src/routes/sections/index.tsx b/src/routes/sections/index.tsx index 3262fc660..37adf0ee5 100644 --- a/src/routes/sections/index.tsx +++ b/src/routes/sections/index.tsx @@ -1,22 +1,60 @@ import { Navigate, useRoutes } from 'react-router-dom'; -import { PATH_AFTER_LOGIN } from '@src/config-global'; +import { GLOBAL_CONSTANTS, PATH_AFTER_LOGIN } from '@src/config-global'; import { dashboardRoutes } from './dashboard'; import NotFoundPage from '../../pages/404'; import {useEffect} from "react"; import { subscribeToNotifications } from '@src/utils/subscribe-notifications-supabase.ts'; import { useDispatch, useSelector } from 'react-redux'; -// @ts-ignore -import {ReadResult} from "@lens-protocol/react/dist/declarations/src/helpers/reads"; import {useNotifications} from "@src/hooks/use-notifications.ts"; +import { publicClientWebSocket } from '@src/clients/viem/publicClient.ts'; +import LedgerVaultAbi from '@src/config/abi/LedgerVault.json'; +import { setBlockchainEvents } from '@redux/blockchain-events'; export default function Router() { const dispatch = useDispatch(); const sessionData = useSelector((state: any) => state.auth.session); const { getNotifications } = useNotifications(); + + useEffect(() => { + // TODO - Filter events by user + const unwatchDeposit = publicClientWebSocket.watchContractEvent({ + address: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS, + abi: LedgerVaultAbi.abi, + eventName: 'FundsDeposited', + onLogs: (logs) => { + console.log('New deposit event received:', logs); + dispatch(setBlockchainEvents(logs)); + }, + }); + const unwatchWithdraw = publicClientWebSocket.watchContractEvent({ + address: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS, + abi: LedgerVaultAbi.abi, + eventName: 'FundsWithdrawn', + onLogs: (logs) => { + console.log('New withdraw event received:', logs); + dispatch(setBlockchainEvents(logs)); + }, + }); + const unwatchTransfer = publicClientWebSocket.watchContractEvent({ + address: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS, + abi: LedgerVaultAbi.abi, + eventName: 'FundsTransferred', + onLogs: (logs) => { + console.log('New withdraw event received:', logs); + dispatch(setBlockchainEvents(logs)); + }, + }); + return () => { + unwatchDeposit(); + unwatchWithdraw(); + unwatchTransfer(); + }; + }, []); + useEffect(() => { if (sessionData?.profile?.id) { // Subscribe to notifications channel - subscribeToNotifications(sessionData?.profile?.id, dispatch); + subscribeToNotifications(sessionData?.profile?.id, dispatch, ['notifications']); // Set the notifications in first render getNotifications(sessionData?.profile?.id).then(() => {}); diff --git a/src/sections/finance/components/finance-balance-statistics.tsx b/src/sections/finance/components/finance-balance-statistics.tsx new file mode 100644 index 000000000..4d00b5b75 --- /dev/null +++ b/src/sections/finance/components/finance-balance-statistics.tsx @@ -0,0 +1,265 @@ +import { useState, useEffect } from 'react'; +// @mui +import Box from '@mui/material/Box'; +import MenuItem from '@mui/material/MenuItem'; +import ButtonBase from '@mui/material/ButtonBase'; +import CardHeader from '@mui/material/CardHeader'; +import Card from '@mui/material/Card'; +// Components +import Iconify from '@src/components/iconify'; +import Chart, { useChart } from '@src/components/chart'; +import CustomPopover, { usePopover } from '@src/components/custom-popover'; +import useGetSmartWalletTransactions from '@src/hooks/use-get-smart-wallet-transactions.ts'; + +export default function FinanceBalanceStatistics() { + const { transactions, loading } = useGetSmartWalletTransactions(); + const popover = usePopover(); + const [timeFrame, setTimeFrame] = useState('Week'); + const [incomeData, setIncomeData] = useState([]); + const [expenseData, setExpenseData] = useState([]); + const [categories, setCategories] = useState([]); + const [fullCategories, setFullCategories] = useState([]); + + // Initialize chart options with short labels and detailed tooltips + const chartOptions = useChart({ + colors: ['#00AB55', '#FF4842'], // Green for income, red for expenses + stroke: { + show: true, + width: 2, + colors: ['transparent'], + }, + xaxis: { + categories: categories, // Short labels + }, + tooltip: { + y: { + formatter: (value: number) => `${value} MMC`, // Value format + }, + x: { + formatter: (_, { dataPointIndex }) => { + const fullLabel = fullCategories[dataPointIndex]; + if (fullLabel && fullLabel.includes('-')) { + // Timeframe "Week" or "Month" + const [start, end] = fullLabel.split('-').map((part) => part.trim()); + return `From ${start} to ${end}`; // Example: "From Dec 15 to Dec 21" or "From Dec 29 to Jan 4" + } else { + // Timeframe "Year" + return fullLabel || 'No data available'; + } + }, + }, + }, + }); + + // Generate labels in useEffect + useEffect(() => { + if (!transactions || loading) return; + + const now = Date.now(); + const oneWeekAgo = now - 7 * 24 * 60 * 60 * 1000; + const oneMonthAgo = now - 30 * 24 * 60 * 60 * 1000; + const oneYearAgo = now - 365 * 24 * 60 * 60 * 1000; + + // Grouped data structure: key is timestamp for "Week" and "Month", string for "Year" + let groupedData: Record = {}; + + if (timeFrame === 'Week') { + // Group data by each day in the last week + groupedData = transactions.reduce((acc: any, log: any) => { + const timestamp = Number(log.timestamp) * 1000; + if (timestamp < oneWeekAgo) return acc; + + // Format date as 'YYYY-MM-DD' for consistent sorting + const date = new Date(timestamp); + const dateKey = date.toISOString().split('T')[0]; // '2024-12-31' + const dayLabel = date.toLocaleDateString('en-US', { + weekday: 'short', + month: 'short', + day: 'numeric', + }); // e.g., 'Mon Dec 31' + + const amount = parseFloat(log.formattedAmount); + const eventType = log.event; + + if (!acc[dateKey]) acc[dateKey] = { label: dayLabel, income: 0, expense: 0 }; + + if (eventType === 'transferFrom' || eventType === 'deposit') { + acc[dateKey].income += amount; + } else if (eventType === 'transferTo' || eventType === 'withdraw') { + acc[dateKey].expense += amount; + } + + return acc; + }, {}); + } else if (timeFrame === 'Month') { + // Group data by week within the last month + groupedData = transactions.reduce((acc: any, log: any) => { + const timestamp = Number(log.timestamp) * 1000; + if (timestamp < oneMonthAgo) return acc; + + const date = new Date(timestamp); + const weekStart = new Date( + date.getFullYear(), + date.getMonth(), + date.getDate() - date.getDay() // Start of the week (Sunday) + ); + const weekEnd = new Date(weekStart.getTime() + 6 * 24 * 60 * 60 * 1000); // End of the week (Saturday) + + const weekStartTimestamp = weekStart.getTime(); + + const label = `${weekStart.toLocaleDateString('en-US', { + month: 'short', + day: 'numeric', + })} - ${weekEnd.toLocaleDateString('en-US', { month: 'short', day: 'numeric' })}`; // e.g., "Dec 1 - Dec 7" + + const amount = parseFloat(log.formattedAmount); + const eventType = log.event; + + if (!acc[weekStartTimestamp]) acc[weekStartTimestamp] = { label, income: 0, expense: 0 }; + + if (eventType === 'transferTo' || eventType === 'deposit') { + acc[weekStartTimestamp].income += amount; + } else if (eventType === 'transferFrom') { + acc[weekStartTimestamp].expense += amount; + } + + return acc; + }, {}); + } else if (timeFrame === 'Year') { + // Group data by each month in the last year + groupedData = transactions.reduce((acc: any, log: any) => { + const timestamp = Number(log.timestamp) * 1000; + if (timestamp < oneYearAgo) return acc; + + const date = new Date(timestamp); + const monthLabel = date.toLocaleDateString('en-US', { month: 'short', year: 'numeric' }); // e.g., 'Dec 2024' + + const amount = parseFloat(log.formattedAmount); + const eventType = log.event; + + if (!acc[monthLabel]) acc[monthLabel] = { label: monthLabel, income: 0, expense: 0 }; + + if (eventType === 'transferTo' || eventType === 'deposit') { + acc[monthLabel].income += amount; + } else if (eventType === 'transferFrom') { + acc[monthLabel].expense += amount; + } + + return acc; + }, {}); + } + + // Sort keys chronologically + const sortedKeys = Object.keys(groupedData) + .map((key) => (typeof key === 'string' && /^\d+$/.test(key) ? Number(key) : key)) + .sort((a, b) => { + if (typeof a === 'number' && typeof b === 'number') { + return a - b; + } + const dateA = new Date(a as string).getTime(); + const dateB = new Date(b as string).getTime(); + return dateA - dateB; + }); + + // Extract full labels for tooltips + const sortedFullCategories = sortedKeys.map((key) => groupedData[key].label); + setFullCategories(sortedFullCategories); + + // Generate short labels for the X-axis + const shortLabels = sortedKeys.map((key) => { + const label = groupedData[key].label; + if (timeFrame === 'Month') { + if (label && label.includes('-')) { + const [start, end] = label.split('-').map((part) => part.trim()); + const startParts = start.split(' '); // ['Dec', '1'] + const endParts = end.split(' '); // ['Dec', '7'] or ['Jan', '4'] + + const startMonth = startParts[0]; + const startDay = startParts[1]; + const endMonth = endParts[0]; + const endDay = endParts[1]; + + if (startMonth === endMonth) { + return `${startMonth} ${startDay}-${endDay}`; // "Dec 1-7" + } else { + return `${startMonth} ${startDay}-${endMonth} ${endDay}`; // "Dec 29-Jan 4" + } + } + } + if (timeFrame === 'Week') { + return label || ''; + } + if (timeFrame === 'Year') { + return label || ''; + } + return label; + }); + + setCategories(shortLabels); + setIncomeData(sortedKeys.map((key) => groupedData[key].income)); + setExpenseData(sortedKeys.map((key) => groupedData[key].expense)); + }, [transactions, timeFrame, loading, ]); + + const handleChangeTimeFrame = (newValue: string) => { + popover.onClose(); + setTimeFrame(newValue); + }; + + return ( + <> + + + {timeFrame} + + + } + /> + + + + + + + + {['Week', 'Month', 'Year'].map((option) => ( + handleChangeTimeFrame(option)} + > + {option} + + ))} + + + ); +} diff --git a/src/sections/finance/components/finance-change-wallet.tsx b/src/sections/finance/components/finance-change-wallet.tsx new file mode 100644 index 000000000..f79ee7df5 --- /dev/null +++ b/src/sections/finance/components/finance-change-wallet.tsx @@ -0,0 +1,56 @@ +import "viem/window"; +// @mui +import Button from "@mui/material/Button"; +// ---------------------------------------------------------------------- + +// Import necessary hooks and clients +import { useSnackbar } from 'notistack'; +import Box from "@mui/material/Box"; +import {FC} from "react"; +import {Address} from "viem"; +import TextMaxLine from "@src/components/text-max-line"; +import {useResponsive} from "@src/hooks/use-responsive.ts"; + +type FinanceChangeWalletProps = { + onChangingWallet?: (address: Address ) => void; +} + +const FinanceChangeWallet: FC = ({onChangingWallet}) => { + const { enqueueSnackbar } = useSnackbar(); + + // Function to handle wallet changes (User can interchange wallets using MetaMask extension) + const handleChangeWallet = async () => { + window?.ethereum?.request({ + method: "wallet_requestPermissions", + params: [{ + eth_accounts: {} + }] + }).then(() => window?.ethereum?.request({method: 'eth_requestAccounts'}).then((accounts: string[]) => { + console.log('Changed wallet to:', accounts[0]); + onChangingWallet?.(accounts[0] as Address); + enqueueSnackbar('Wallet changed successfully!', { variant: 'success', autoHideDuration: 3000 }); + })).catch((error: any) => { + console.error('Error changing wallet:', error); + enqueueSnackbar(`Failed to change wallet: ${error.message}`, {variant: 'error', autoHideDuration: 5000}); + }) + } + + const mdUp = useResponsive('up', 'md'); + + return ( + + + + ); +}; + +export default FinanceChangeWallet; diff --git a/src/sections/finance/components/finance-contacts.tsx b/src/sections/finance/components/finance-contacts.tsx new file mode 100644 index 000000000..c8b80b12c --- /dev/null +++ b/src/sections/finance/components/finance-contacts.tsx @@ -0,0 +1,170 @@ +// @mui +import Stack from '@mui/material/Stack'; +import CardHeader from '@mui/material/CardHeader'; +import Card, { CardProps } from '@mui/material/Card'; +import Tooltip from '@mui/material/Tooltip'; +import Avatar from '@mui/material/Avatar'; +import IconButton from '@mui/material/IconButton'; +import ListItemText from '@mui/material/ListItemText'; +import Box from '@mui/material/Box'; + +// components +import Iconify from '@src/components/iconify'; +import Carousel, { useCarousel } from '@src/components/carousel/index'; +import NavigationArrows from '@src/components/carousel/NavigationArrows'; + +// routes +import { paths } from '@src/routes/paths'; +import { useRouter } from '@src/routes/hooks'; + +// lens +import { Profile } from '@lens-protocol/api-bindings'; +import {useDispatch} from "react-redux"; +import {storeAddress, toggleRainbow} from '@redux/address'; +import React from "react"; + +// ---------------------------------------------------------------------- + +interface Props extends CardProps { + title?: string; + subheader?: string; + list: Profile[]; + chunkSize?: number; // how many contacts to display per slide +} + +export default function FinanceContactsCarousel({ + title, + subheader, + list, + chunkSize = 5, + ...other + }: Props) { + const router = useRouter(); + const dispatch = useDispatch(); + + + function scrollToSmoothly(pos: number, time: number) { + let currentPos = window.scrollY; + let start:number |null = null; + if(time == null) time = 500; + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + pos = +pos, time = +time; + window.requestAnimationFrame(function step(currentTime) { + start = !start ? currentTime : start; + let progress = currentTime - start; + if (currentPos < pos) { + window.scrollTo(0, ((pos - currentPos) * progress / time) + currentPos); + } else { + window.scrollTo(0, currentPos - ((currentPos - pos) * progress / time)); + } + if (progress < time) { + window.requestAnimationFrame(step); + } else { + window.scrollTo(0, pos); + } + }); + } + + const handleClick = (address: string, profileId: string) => { + dispatch(toggleRainbow()); + dispatch(storeAddress({address, profileId})); + + // Scroll to top the window with a smooth animation + scrollToSmoothly(0, 1000) + setTimeout(() => { + dispatch(toggleRainbow()); + },1400) + } + + const goToProfile = (id: string) => { + router.push(paths.dashboard.user.root(id)); + }; + + const carousel = useCarousel({ + infinite: false, + slidesToShow: 1, + speed: 500, + dots: false, + arrows: false, + adaptiveHeight: true, + }); + + // Split the array of contacts into chunks (each chunk is a "slide") + const slidesData: Profile[][] = []; + for (let i = 0; i < list.length; i += chunkSize) { + slidesData.push(list.slice(i, i + chunkSize)); + } + + return ( + + + } + /> + + {/* Main carousel container */} + + + {slidesData.map((chunk, index) => ( + handleClick(address, profileId)} + /> + ))} + + + + ); +} + +// ---------------------------------------------------------------------- + +type SlideContactsProps = { + chunk: Profile[]; + goToProfile: (id: string) => void; + onClickArrow: (address: string, profileId: string) => void; +}; + +function SlideContacts({ chunk, goToProfile, onClickArrow}: SlideContactsProps) { + const handleArrowClick = (event: React.MouseEvent, address: string, profileId: string) => { + event.stopPropagation(); + onClickArrow(address, profileId); + }; + return ( + + {chunk.map((profile) => ( + + goToProfile(profile.id)} + > + + + + + + handleArrowClick(event, profile.ownedBy.address, profile.id)}> + + + + + ))} + + ); +} diff --git a/src/sections/finance/components/finance-deposit-from-metamask.tsx b/src/sections/finance/components/finance-deposit-from-metamask.tsx new file mode 100644 index 000000000..1d1ff1fb4 --- /dev/null +++ b/src/sections/finance/components/finance-deposit-from-metamask.tsx @@ -0,0 +1,168 @@ +import "viem/window"; +import {FC, PropsWithChildren, useEffect, useState} from "react"; +import Box from "@mui/material/Box"; +import Button from "@mui/material/Button"; +import { ConnectWalletClient } from "@src/clients/viem/walletClient"; +import { Address } from 'viem'; +import Iconify from "@src/components/iconify"; +import Stack from "@mui/material/Stack"; +import {formatBalanceNumber} from "@src/utils/format-number.ts"; +import TextMaxLine from "@src/components/text-max-line"; +import {InputAmount} from "@src/components/input-amount.tsx"; +import Divider from "@mui/material/Divider"; +import { useGetMmcContractBalance } from '@src/hooks/use-get-mmc-contract-balance.ts'; +import NeonPaper from '@src/sections/publication/NeonPaperContainer.tsx'; +import { useSelector } from 'react-redux'; +import { useSnackbar } from 'notistack'; +import { useDepositMetamask } from "@src/hooks/use-deposit-metamask.ts"; +import { truncateAddress } from '@src/utils/wallet.ts'; +import FinanceDialogsActions from "@src/sections/finance/components/finance-dialogs-actions.tsx"; +import {useResponsive} from "@src/hooks/use-responsive.ts"; + +interface FinanceDepositFromMetamaskProps { + onClose: () => void; +} + +const FinanceDepositFromMetamask: FC = ({ onClose }) => { + const [address, setAddress] = useState
(); + const { balance } = useGetMmcContractBalance(address); + const [amount, setAmount] = useState(0); + const [loading, setLoading] = useState(false); + const sessionData = useSelector((state: any) => state.auth.session); + const { enqueueSnackbar } = useSnackbar(); + const { + deposit: depositWithMetamask, + loading: depositLoading, + error, + } = useDepositMetamask(); + + useEffect(() => { + if (error) { + enqueueSnackbar(`An error occurred during transaction.`, { variant: "error" }); + } + }, [enqueueSnackbar, error]); + + useEffect(() => { + handleConnectMetamask(); + }, []); + + async function handleConnectMetamask() { + try { + const walletClient = await ConnectWalletClient(); + const [addr] = await walletClient.requestAddresses(); + setAddress(addr); + } catch (error) { + alert(`Transaction failed: ${error}`); + } + } + + const handleConfirmDeposit = async () => { + if (amount > 0 && amount <= (balance ?? 0)) { + try { + setLoading(true); + await depositWithMetamask({ + recipient: sessionData?.address, // o la dirección que quieras + amount + }); + enqueueSnackbar(`The deposit was successful`, { variant: "success" }); + onClose(); + } catch (err: any) { + enqueueSnackbar(`Deposit failed: ${err?.message}`, { variant: "error" }); + } finally { + setLoading(false); + } + } else { + enqueueSnackbar("Invalid deposit amount", { variant: "warning" }); + } + }; + + const RainbowEffect = loading || depositLoading ? NeonPaper : Box; + + const mdUp = useResponsive('up', 'md'); + + return ( + + { address ? ( + <> + + + Connected Wallet + + {truncateAddress(address)} + + + + + + + Balance + + {formatBalanceNumber(balance ?? 0)} MMC + + + + + + + Enter the amount to deposit + setAmount(Number(e.target.value))} + /> + + + + + + + ) : ( + + )} + + ); +} + +export const BoxRow: FC = ({children}) => ( + + {children} + +) + +export default FinanceDepositFromMetamask; diff --git a/src/sections/finance/components/finance-deposit-from-smart-account.tsx b/src/sections/finance/components/finance-deposit-from-smart-account.tsx new file mode 100644 index 000000000..2727ebd1c --- /dev/null +++ b/src/sections/finance/components/finance-deposit-from-smart-account.tsx @@ -0,0 +1,114 @@ +import Stack from "@mui/material/Stack"; +import TextMaxLine from "@src/components/text-max-line"; +import { formatBalanceNumber } from "@src/utils/format-number.ts"; +import Divider from "@mui/material/Divider"; +import { InputAmount } from "@src/components/input-amount.tsx"; +import { BoxRow } from "@src/sections/finance/components/finance-deposit-from-metamask.tsx"; +import { useSelector } from "react-redux"; +import { useGetMmcContractBalance } from "@src/hooks/use-get-mmc-contract-balance.ts"; +import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; +import Box from "@mui/material/Box"; +import { useSnackbar } from "notistack"; +import { FC, useEffect, useState } from 'react'; +import { useDeposit } from "@src/hooks/use-deposit.ts"; +import { truncateAddress } from '@src/utils/wallet.ts'; +import {useResponsive} from "@src/hooks/use-responsive.ts"; +import FinanceDialogsActions from "@src/sections/finance/components/finance-dialogs-actions.tsx"; + +interface FinanceDepositFromSmartAccountProps { + onClose: () => void; +} + +const FinanceDepositFromSmartAccount: FC = ({ onClose }) => { + const [amount, setAmount] = useState(0); + const [loading, setLoading] = useState(false); + const sessionData = useSelector((state: any) => state.auth.session); + const { balance } = useGetMmcContractBalance(sessionData?.address); + const { enqueueSnackbar } = useSnackbar(); + const { deposit, loading: depositLoading, error } = useDeposit(); + + useEffect(() => { + if (error) { + enqueueSnackbar(`Deposit failed: ${error?.message}`, { variant: "error" }); + } + }, [enqueueSnackbar, error]); + + const handleConfirmDeposit = async () => { + if (amount > 0 && amount <= (balance ?? 0)) { + try { + setLoading(true); + await deposit({ recipient: sessionData?.address, amount }); + enqueueSnackbar(`The deposit was successful`, { variant: "success" }); + onClose(); + } catch (err: any) { + enqueueSnackbar(`Deposit failed: ${err?.message}`, { variant: "error" }); + } finally { + setLoading(false); + } + } else { + enqueueSnackbar("Invalid deposit amount", { variant: "warning" }); + } + }; + + const RainbowEffect = loading || depositLoading ? NeonPaper : Box; + + const mdUp = useResponsive('up', 'md'); + + return ( + <> + + + Connected Wallet + + {truncateAddress(sessionData?.address)} + + + + + + + Balance + + {formatBalanceNumber(balance ?? 0)} MMC + + + + + + + Amount to deposit + setAmount(Number(e.target.value))} + /> + + + + + + ); +}; + +export default FinanceDepositFromSmartAccount; diff --git a/src/sections/finance/components/finance-deposit-from-stripe.tsx b/src/sections/finance/components/finance-deposit-from-stripe.tsx new file mode 100644 index 000000000..4ad65bcb1 --- /dev/null +++ b/src/sections/finance/components/finance-deposit-from-stripe.tsx @@ -0,0 +1,9 @@ +import Box from "@mui/material/Box"; + +const FinanceDepositFromStripe = () => { + return ( + + ); +} + +export default FinanceDepositFromStripe diff --git a/src/sections/finance/components/finance-deposit-modal.tsx b/src/sections/finance/components/finance-deposit-modal.tsx new file mode 100644 index 000000000..15f366fb6 --- /dev/null +++ b/src/sections/finance/components/finance-deposit-modal.tsx @@ -0,0 +1,70 @@ +// REACT IMPORTS +import { FC, useState } from 'react'; + +// MUI IMPORTS +import Tab from "@mui/material/Tab"; +import DialogTitle from "@mui/material/DialogTitle"; +import Tabs, {tabsClasses} from "@mui/material/Tabs"; +import Dialog, {DialogProps} from "@mui/material/Dialog"; + +// LOCAL IMPORTS +import Iconify from '@src/components/iconify'; +import FinanceDepositFromStripe from "@src/sections/finance/components/finance-deposit-from-stripe.tsx"; +import FinanceDepositFromMetamask from "@src/sections/finance/components/finance-deposit-from-metamask.tsx"; +import FinanceDepositFromSmartAccount from "@src/sections/finance/components/finance-deposit-from-smart-account.tsx"; + +// ---------------------------------------------------------------------- + +interface FinanceDepositModalProps extends DialogProps { + onClose: VoidFunction; +} + +// ---------------------------------------------------------------------- + +const TABS = [ + { value: 'fiat', label: 'Stripe', disabled: true, icon: }, + { value: 'metamask', label: 'Metamask', disabled: false, icon: }, + { value: 'smartAccount', label: 'Smart Account', disabled: false, icon: }, +]; + +// ---------------------------------------------------------------------- + +export const FinanceDepositModal: FC = ({ open, onClose }) => { + const [currentTab, setCurrentTab] = useState('metamask'); + + const handleChangeTab = (_event: any, newValue: any) => { + setCurrentTab(newValue); + }; + + return ( + + Deposit to your vault balance + + + {TABS.map((tab) => ( + + ))} + + + {currentTab === 'fiat' && ()} + {currentTab === 'metamask' && ()} + {currentTab === 'smartAccount' && ()} + + ); +} diff --git a/src/sections/finance/components/finance-dialogs-actions.tsx b/src/sections/finance/components/finance-dialogs-actions.tsx new file mode 100644 index 000000000..071604713 --- /dev/null +++ b/src/sections/finance/components/finance-dialogs-actions.tsx @@ -0,0 +1,40 @@ +import DialogActions from "@mui/material/DialogActions"; +import LoadingButton from "@mui/lab/LoadingButton"; +import FinanceChangeWallet from "@src/sections/finance/components/finance-change-wallet.tsx"; +import {Address} from "viem"; + +type FinanceDialogsActionsProps = { + rainbowComponent: any; + loading: boolean; + actionLoading: boolean; + amount: number; + balance: number; + label: string; + onConfirmAction: () => void; + onCloseAction?: () => void; + onChangeWallet?: (address: Address) => void; +} + +const FinanceDialogsActions = ({rainbowComponent: RainbowEffect, onConfirmAction, loading, actionLoading, amount, balance, label, onChangeWallet }: FinanceDialogsActionsProps) => { + return ( + + { + onChangeWallet && ( + + ) + } + {/**/} + + (balance ?? 0)} + loading={loading || actionLoading} + >{label} + + + + ) +} +export default FinanceDialogsActions; diff --git a/src/sections/finance/components/finance-external-wallet.tsx b/src/sections/finance/components/finance-external-wallet.tsx new file mode 100644 index 000000000..baefa6f64 --- /dev/null +++ b/src/sections/finance/components/finance-external-wallet.tsx @@ -0,0 +1,106 @@ +// @mui +import { useTheme, alpha } from '@mui/material/styles'; +import Typography from '@mui/material/Typography'; +import Stack, { StackProps } from '@mui/material/Stack'; +// theme +import { bgGradient } from '@src/theme/css'; +import React from "react"; +import {Box} from "@mui/system"; + +// ---------------------------------------------------------------------- + +interface Props extends StackProps { + connectedWallet: boolean; + title?: string; + description?: string; + info?: string; + img?: React.ReactNode; + action?: React.ReactNode; +} + +export default function FinanceExternalWallet({connectedWallet, title, description, info, action, img, ...other }: Props) { + const theme = useTheme(); + return ( + <> + + + + {title} + + + { connectedWallet ? ( + + {description} MMC + + ) : action && action } + + + {info} + + + {connectedWallet ? (action && action) : null } + + + + {img && ( + + {img} + + )} + + + ); +} +// diff --git a/src/sections/finance/components/finance-invite-friends.tsx b/src/sections/finance/components/finance-invite-friends.tsx new file mode 100644 index 000000000..58fdb3d8f --- /dev/null +++ b/src/sections/finance/components/finance-invite-friends.tsx @@ -0,0 +1,141 @@ +import React, { useState } from 'react'; +import { useTheme } from '@mui/material/styles'; +import Stack from '@mui/material/Stack'; +import Button from '@mui/material/Button'; +import InputBase from '@mui/material/InputBase'; +import Box, { BoxProps } from '@mui/material/Box'; +import Typography from '@mui/material/Typography'; +import { bgGradient } from '@src/theme/css'; +import { COLORS } from '@src/layouts/config-layout.ts'; +import { supabase } from '@src/utils/supabase'; +import { useSelector } from 'react-redux'; +import { useSnackbar } from 'notistack'; + +interface Props extends BoxProps { + img?: string; + title?: string; + price?: string; + description?: string; +} + +export default function FinanceInviteFriends({ + img, + price, + title, + description, + sx, + ...other + }: Props) { + const theme = useTheme(); + const { enqueueSnackbar } = useSnackbar(); + const sessionData = useSelector((state: any) => state.auth.session); + const [email, setEmail] = useState(''); + + async function storeEmailData(destination: string, payload: any) { + const { error } = await supabase + .from('invitations') + .insert([{ destination, sender_id: payload?.data?.from?.id, payload }]); + + if (error) { + console.error('Error storing email data:', error); + } else { + console.log('Email data stored successfully'); + } + } + + const handleInputChange = (event: React.ChangeEvent) => { + setEmail(event.target.value); + }; + + const handleInviteClick = () => { + const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; + if (!emailRegex.test(email)) { + enqueueSnackbar('Invalid email address', { variant: 'error' }); + return; + } + const payload = { + data: { + from: { + id: sessionData?.profile?.id, + displayName: sessionData?.profile?.metadata?.displayName, + avatar: (sessionData?.profile?.metadata?.picture as any)?.optimized?.uri + }, + } + }; + storeEmailData(email, payload).then(() => { + enqueueSnackbar('Invitation sent successfully', { variant: 'success' }) + setEmail(''); + }); + + + }; + + return ( + + + + + + + {title} + + {price} + MMC + + + + + {description} + + + Invite + + } + sx={{ + pl: 1.5, + height: 40, + borderRadius: 1, + color: 'primary.main', + bgcolor: 'common.white', + }} + /> + + + ); +} diff --git a/src/sections/finance/components/finance-quick-actions.tsx b/src/sections/finance/components/finance-quick-actions.tsx new file mode 100644 index 000000000..152a9ddd3 --- /dev/null +++ b/src/sections/finance/components/finance-quick-actions.tsx @@ -0,0 +1,138 @@ +import "viem/window"; +// @mui +import Stack from '@mui/material/Stack'; +import { CardProps } from '@mui/material/Card'; +import Button from "@mui/material/Button"; + +// theme +import { bgGradient } from '@src/theme/css'; +// components +import Iconify from '@src/components/iconify'; +import FinanceExternalWallet from './finance-external-wallet.tsx'; +import SeoIllustration from "@src/assets/illustrations/seo-illustration.tsx"; +// ---------------------------------------------------------------------- + +// Import necessary hooks and clients +import { useState, useEffect, FC } from 'react'; +import { ConnectWalletClient } from '@src/clients/viem/walletClient'; +import { useGetVaultBalance } from '@src/hooks/use-get-vault-balance'; // Ensure correct path +import { useSnackbar } from 'notistack'; + +const FinanceQuickActions: FC = ({ sx, ...other }) => { + const [connectedWallet, setConnectedWallet] = useState(false); + const [walletAddress, setWalletAddress] = useState(null); + const { balance } = useGetVaultBalance(walletAddress as any); + const { enqueueSnackbar } = useSnackbar(); + + // Function to connect to MetaMask + const connectWallet = async () => { + try { + const walletClient = await ConnectWalletClient(); + const [address] = await walletClient.requestAddresses(); + if (address) { + setWalletAddress(address); + setConnectedWallet(true); + enqueueSnackbar('MetaMask connected successfully!', { variant: 'success', autoHideDuration: 3000 }); + } + } catch (error: any) { + console.error('Error connecting to wallet:', error); + enqueueSnackbar(`Failed to connect wallet: ${error.message}`, { variant: 'error', autoHideDuration: 5000 }); + } + }; + + // Function to handle wallet changes (User can interchange wallets using MetaMask extension) + const handleChangeWallet = async () => { + setConnectedWallet(false); + + window?.ethereum?.request({ + method: "wallet_requestPermissions", + params: [{ + eth_accounts: {} + }] + }).then(() => window?.ethereum?.request({method: 'eth_requestAccounts'}).then((accounts: string[]) => { + setWalletAddress(accounts[0]); + setConnectedWallet(true); + })).catch((error: any) => { + console.error('Error changing wallet:', error); + enqueueSnackbar(`Failed to change wallet: ${error.message}`, {variant: 'error', autoHideDuration: 5000}); + }) + } + + + // Automatically attempt to connect wallet on component mount + useEffect(() => { + (async () => { + try { + const walletClient = await ConnectWalletClient(); + const [address] = await walletClient.requestAddresses(); + if (address) { + setWalletAddress(address); + setConnectedWallet(true); + } + } catch (error) { + console.log('Wallet not connected'); + } + })(); + }, []); + + // Determine title and info based on connection status + const title = connectedWallet ? "Balance's Vault Metamask." : 'Connect external wallet'; + const info = connectedWallet + ? 'MetaMask connected. If you wish to change, click the button below.' + : 'You can connect your MetaMask wallet to view your vault balance.'; + + // Format the balance for display + const totalOptions = { minimumFractionDigits: 1, maximumFractionDigits: 3 }; + const formattedTotal = balance !== null ? new Intl.NumberFormat('en-US', totalOptions).format(balance) : '0'; + + return ( + + } + action={ + <> + {connectedWallet ? ( + + ) : ( + + )} + + } + /> + + ); +}; + +export default FinanceQuickActions; diff --git a/src/sections/finance/components/finance-quick-transfer-modal.tsx b/src/sections/finance/components/finance-quick-transfer-modal.tsx new file mode 100644 index 000000000..4a2f17814 --- /dev/null +++ b/src/sections/finance/components/finance-quick-transfer-modal.tsx @@ -0,0 +1,144 @@ +import { useState, useEffect } from 'react'; +// @mui +import Stack from '@mui/material/Stack'; +import Button from '@mui/material/Button'; +import Avatar from '@mui/material/Avatar'; +import TextField from '@mui/material/TextField'; +import Box from '@mui/material/Box'; +import DialogTitle from '@mui/material/DialogTitle'; +import ListItemText from '@mui/material/ListItemText'; +import DialogActions from '@mui/material/DialogActions'; +import Dialog, { DialogProps } from '@mui/material/Dialog'; +// hooks +import { useSelector} from "react-redux"; +import {truncateAddress} from "@src/utils/wallet.ts"; +import {Profile} from "@lens-protocol/api-bindings"; +import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; +import LoadingButton from "@mui/lab/LoadingButton"; +import { supabase } from '@src/utils/supabase'; +import {useNotificationPayload} from "@src/hooks/use-notification-payload.ts"; +import {useNotifications} from "@src/hooks/use-notifications.ts"; +import {useSnackbar} from "notistack"; +import { InputAmountProps } from '@src/components/input-amount.tsx'; + +import { useTransfer } from '@src/hooks/use-transfer.ts'; +type TConfirmTransferDialogProps = InputAmountProps & DialogProps; + +interface ConfirmTransferDialogProps extends TConfirmTransferDialogProps { + contactInfo?: Profile; + address?: string; + onClose: VoidFunction; + amount: number +} + +function FinanceQuickTransferModal({ + open, + amount, + contactInfo, + onClose, + address +}: ConfirmTransferDialogProps) { + const sessionData = useSelector((state: any) => state.auth.session); + const { generatePayload } = useNotificationPayload(sessionData); + const { sendNotification } = useNotifications(); + const { enqueueSnackbar } = useSnackbar(); + const [message, setMessage] = useState(''); + const isSame = contactInfo?.ownedBy?.address === address; + const defaultImage = `https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${address}`; + const defaultName = 'Destination wallet'; + const { transfer, loading: transferLoading, error } = useTransfer(); + + useEffect(() => { + if (error) enqueueSnackbar(error.message, { variant: 'error' }); + }, [error]); + + async function storeTransactionInSupabase(receiver_id?: string, sender_id?: string, payload?: any) { + const { error } = await supabase + .from('transactions') + .insert([{ receiver_id, sender_id, payload }]); + + if (error) { + console.error('Error storing transaction:', error); + } else { + console.log('Transaction stored successfully'); + } + } + + const handleConfirmTransfer = async () => { + await transfer({ amount, recipient: address ?? '' }); + + const senderId = sessionData?.profile?.id ?? address; + const notificationPayload = generatePayload('TRANSFER', { + id: isSame ? (contactInfo?.id ?? '') : (address ?? ''), + displayName: isSame ? (contactInfo?.metadata?.displayName ?? 'no name') : 'External wallet', + avatar: (contactInfo?.metadata?.picture as any)?.optimized?.uri ?? '', + }, { + rawDescription: `${sessionData?.profile?.metadata?.displayName ?? address} sent you ${amount} MMC`, + message, + }); + + await storeTransactionInSupabase(contactInfo?.id ?? address, senderId, { + address: contactInfo?.ownedBy?.address ?? address, + amount, + message, + ...notificationPayload, + }); + + await sendNotification(contactInfo?.id ?? address ?? '', sessionData?.profile?.id, notificationPayload); + + enqueueSnackbar('The transfer has been sent to ' + (isSame ? contactInfo?.metadata?.displayName : truncateAddress(address ?? '')) , { variant: 'success' }) + + onClose(); + }; + + const RainbowEffect = transferLoading ? NeonPaper : Box; + return ( + + Transfer to + + + + + + + + + + + + + setMessage(e.target.value)} + fullWidth multiline rows={3} placeholder="Write a message..." /> + + + + + + + + Confirm & Transfer + + + + + ); +} + +export default FinanceQuickTransferModal; diff --git a/src/sections/finance/components/finance-quick-transfer.tsx b/src/sections/finance/components/finance-quick-transfer.tsx new file mode 100644 index 000000000..a2b983fb3 --- /dev/null +++ b/src/sections/finance/components/finance-quick-transfer.tsx @@ -0,0 +1,351 @@ +import React, { useState, useEffect, useCallback } from 'react'; +// @mui +import { useTheme } from '@mui/material/styles'; +import Stack from '@mui/material/Stack'; +import Button from '@mui/material/Button'; +import Avatar from '@mui/material/Avatar'; +import Slider from '@mui/material/Slider'; +import Tooltip from '@mui/material/Tooltip'; +import TextField from '@mui/material/TextField'; +import Box from '@mui/material/Box'; +import CardHeader from '@mui/material/CardHeader'; +import { CardProps } from '@mui/material/Card'; + +// hooks +import { useBoolean } from '@src/hooks/use-boolean'; +// components +import Carousel, { CarouselArrows, useCarousel } from '@src/components/carousel'; +import {useDispatch, useSelector} from "react-redux"; +import {storeAddress, toggleRainbow} from '@redux/address'; +import {Profile} from "@lens-protocol/api-bindings"; +import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; +import { InputAmount } from '@src/components/input-amount.tsx'; +import { ethers } from 'ethers'; +import FinanceQuickTransferModal from "@src/sections/finance/components/finance-quick-transfer-modal.tsx"; + +// ---------------------------------------------------------------------- + +const STEP = 50; + +const MIN_AMOUNT = 0; + +const AVATAR_SIZE = 40; + +// ---------------------------------------------------------------------- + +interface Props extends CardProps { + title?: string; + subheader?: string; + list: Profile[] | undefined; +} + +// ---------------------------------------------------------------------- + +export const isValidAddress = (address: string): boolean => { + return ethers.isAddress(address); +}; + +// ---------------------------------------------------------------------- + +export default function FinanceQuickTransfer({ title, subheader,sx, list, ...other }: Props) { + const theme = useTheme(); + const dispatch = useDispatch(); + const storedAddress = useSelector((state: any) => state.address) + const showRainbow = useSelector((state: any) => state.address.showRainbow) + const balance = useSelector((state: any) => state.auth.balance); + const [walletAddress, setWalletAddress] = useState(storedAddress.address ?? ''); + const [addressError, setAddressError] = useState(false); + const [currentIndex, setCurrentIndex] = useState(0); + const [addressFiltered, setAddressFiltered] = useState(false); + const MAX_AMOUNT = balance; + const carousel = useCarousel({ + centerMode: true, + swipeToSlide: true, + focusOnSelect: true, + centerPadding: '0px', + rows: 1, + // @ts-ignore + slidesToShow: list?.length > 7 ? 7 : list?.length ?? 1, + responsive: [ + { + // Down 1600 + breakpoint: 1600, + settings: { + slidesToShow: 5, + }, + }, + { + // Down 1400 + breakpoint: 1400, + settings: { + slidesToShow: 3, + }, + }, + { + // Down 900 + breakpoint: theme.breakpoints.values.md, + settings: { + slidesToShow: 5, + }, + }, + { + // Down 400 + breakpoint: 400, + settings: { + slidesToShow: 3, + }, + }, + ], + }); + const [amount, setAmount] = useState(0); + const confirm = useBoolean(); + const [initialized, setInitialized] = useState(false); + const getContactInfo: Profile | undefined= list?.find((_, index) => index === carousel.currentIndex); + + useEffect(() => { + if (!initialized && list?.length && carousel.carouselRef.current) { + carousel.setCurrentIndex(list?.length > 5 ? 2 : 0); + setInitialized(true); + } + }, [list, carousel, initialized]); + + useEffect(() => { + const currentProfile = list?.[carousel.currentIndex]; + if (currentProfile?.ownedBy?.address) { + setWalletAddress(currentProfile.ownedBy.address); + dispatch(storeAddress({ address: currentProfile.ownedBy.address, profileId: currentProfile.id })) + } + }, [carousel.currentIndex, list]); + + const handleInputChange = (event: React.ChangeEvent) => { + const value = event.target.value; + setWalletAddress(value); + dispatch(storeAddress({ address: value, profileId: getContactInfo?.id ?? ''})) + + if (isValidAddress(value)) { + setAddressFiltered(true); + dispatch(toggleRainbow()); + setAddressError(false); + } else { + setAddressError(true); + } + + setTimeout(() => { + dispatch(toggleRainbow()); + },1400) + }; + + const handleChangeSlider = useCallback((_event: Event, newValue: number | number[]) => { + setAmount(newValue as number); + }, []); + + const handleChangeInput = useCallback((_event: React.ChangeEvent) => { + setAmount(Number(_event.target.value)); + }, []); + + const handleBlur = useCallback(() => { + if (amount < 0) { + setAmount(0); + } else if (amount > MAX_AMOUNT) { + setAmount(MAX_AMOUNT); + } + }, [amount]); + + const handleTransferFinish = () => { + setAmount(0) + setWalletAddress('') + confirm.onFalse?.(); + dispatch(storeAddress({ address: '', profileId: ''})) + } + + useEffect(() => { + const index = list?.findIndex((profile) => profile.ownedBy?.address === storedAddress?.address && profile.id === storedAddress.profileId); + + if (index !== -1) { + setCurrentIndex(index ?? 0) + } + + // Verify is only the address is stored(changed) + if (addressFiltered) { + //find in list only filtering the address + const profile = list?.findIndex((profile) => profile.ownedBy?.address === storedAddress?.address); + + // If the address is found, set the current index + if (profile !== -1) { + setCurrentIndex(profile ?? 0) + } + + // Reset the filter + setAddressFiltered(false); + } + + }, [storedAddress]); + + + useEffect(() => { + if (!showRainbow) { + if (carousel.carouselRef.current) { + carousel.carouselRef.current.slickGoTo(currentIndex); + } + } + }, [showRainbow]); + + const renderWalletInput = ( + + + + ); + + const renderCarousel = ( + + + + {list?.map((profile, index) => ( + + + + + + ))} + + + + ); + + const balanceOptions = { minimumFractionDigits: 1, maximumFractionDigits: 3 }; + const formattedBalance = new Intl.NumberFormat('en-US', balanceOptions).format(balance); + + const renderInput = ( + + + + + + + + + Your Balance + + {formattedBalance} MMC + + + + + ); + + const Wrapper = showRainbow ? NeonPaper : Box; + + return ( + <> + + + + + + {renderWalletInput} + + {!!list?.length ? renderCarousel : undefined} + + {renderInput} + + + + + + + ); +} diff --git a/src/sections/finance/components/finance-transactions-history.tsx b/src/sections/finance/components/finance-transactions-history.tsx new file mode 100644 index 000000000..f6b6a84e9 --- /dev/null +++ b/src/sections/finance/components/finance-transactions-history.tsx @@ -0,0 +1,235 @@ +import React, {useState, useCallback } from 'react'; +// @mui +import { alpha } from '@mui/material/styles'; +import Tab from '@mui/material/Tab'; +import Tabs from '@mui/material/Tabs'; +import Table from '@mui/material/Table'; +import TableBody from '@mui/material/TableBody'; + +import TableContainer from '@mui/material/TableContainer'; +// _mock +import {TRANSACTIONS_TYPES} from '@src/types/transaction'; +// components +import Label from '@src/components/label'; +import Scrollbar from '@src/components/scrollbar'; + +import { + useTable, + getComparator, + emptyRows, + TableNoData, + TableEmptyRows, + TableHeadCustom, + TablePaginationCustom, +} from '@src/components/table'; +// types +import { IOrderTableFilters, IOrderTableFilterValue } from '@src/types/transaction'; +// +import FinanceTransactionTableRow from '@src/sections/finance/components/finance-transactions-table-row'; +import FinanceTransactionsTableFiltersResult from '@src/sections/finance/components/finance-transactions-table-filters-result'; +import {ProcessedTransactionData} from "@src/utils/finance-graphs/groupedTransactions.ts"; + +// ---------------------------------------------------------------------- +// REmove last 2 elements from the array TRANSACTIONS_TYPES +const STATUS_OPTIONS = [{ value: 'all', label: 'All' }, ...TRANSACTIONS_TYPES.slice(0, -2)]; + +const TABLE_HEAD = [ + { id: 'name', label: 'Profile Info', width: 20 }, + { id: 'createdAt', label: 'Date', width: 40 }, + { id: 'amount', label: 'Amount', width: 40 }, +]; + +const defaultFilters: IOrderTableFilters = { + status: 'all' +}; + +type TransactionsProcessedData = { + transactionData: ProcessedTransactionData[]; +} + +export default function FinanceTransactionsHistory({ transactionData }: TransactionsProcessedData) { + console.log('processedTransactions passed:', transactionData); + const table = useTable({ defaultOrderBy: 'name' }); + + const [tableData, _setTableData] = useState(transactionData); + + const [filters, setFilters] = useState(defaultFilters); + + const dataFiltered = applyFilter({ + inputData: transactionData, + comparator: getComparator(table.order, table.orderBy), + filters + }); + + const denseHeight = table.dense ? 52 : 72; + + const canReset = filters.status !== 'all'; + + const notFound = (!dataFiltered.length && canReset) || !dataFiltered.length; + + console.log('Data:', tableData); + console.log('Date Filtered:', dataFiltered); + + const handleFilters = useCallback( + (name: string, value: IOrderTableFilterValue) => { + table.onResetPage(); + setFilters((prevState) => ({ + ...prevState, + [name]: value, + })); + }, + [table] + ); + + const handleResetFilters = useCallback(() => { + setFilters(defaultFilters); + }, []); + + const handleFilterStatus = useCallback( + (_event: React.SyntheticEvent, newValue: string) => { + handleFilters('status', newValue); + }, + [handleFilters] + ); + + return ( + <> + `inset 0 -2px 0 0 ${alpha(theme.palette.grey[500], 0.08)}`, + }} + > + {Array.isArray(transactionData) && STATUS_OPTIONS.map((tab) => ( + + + {tab.value === 'all' && transactionData.length} + {tab.value === 'transferFrom' && transactionData.filter((t) => t.type.toLowerCase() === 'transferfrom' || t.type.toLowerCase() === 'withdraw').length} + {tab.value === 'transferTo' && transactionData.filter((t) => t.type.toLowerCase() === 'transferto' || t.type.toLowerCase() === 'deposit').length} + + + } + /> + ))} + + + {canReset && ( + + )} + + + + + + + + {dataFiltered + .slice( + table.page * table.rowsPerPage, + table.page * table.rowsPerPage + table.rowsPerPage + ) + .map((row) => ( + + ))} + + + + + +
+
+
+ + + + ); +} + +// ---------------------------------------------------------------------- + +function applyFilter({ + inputData, + comparator, + filters +}: { + inputData: ProcessedTransactionData[]; + comparator: (a: any, b: any) => number; + filters: IOrderTableFilters; +}) { + + //Verify if the input data is an array; otherwise, return an empty array + if (!Array.isArray(inputData)) { + return []; + } + + const { status } = filters; + + const stabilizedThis = inputData.map((el, index) => [el, index] as const); + + stabilizedThis.sort((a, b) => { + const order = comparator(a[0], b[0]); + if (order !== 0) return order; + return a[1] - b[1]; + }); + + inputData = stabilizedThis.map((el) => el[0]); + + if (status !== 'all') { + if(status === 'transferFrom') { + inputData = inputData.filter((t) => t.type.toLowerCase() === 'transferfrom' || t.type.toLowerCase() === 'withdraw'); + } + + if(status === 'transferTo') { + inputData = inputData.filter((t) => t.type.toLowerCase() === 'transferto' || t.type.toLowerCase() === 'deposit'); + } + } + + return inputData; +} diff --git a/src/sections/finance/components/finance-transactions-table-filters-result.tsx b/src/sections/finance/components/finance-transactions-table-filters-result.tsx new file mode 100644 index 000000000..73efa8f6e --- /dev/null +++ b/src/sections/finance/components/finance-transactions-table-filters-result.tsx @@ -0,0 +1,102 @@ +// @mui +import Box from '@mui/material/Box'; +import Chip from '@mui/material/Chip'; +import Paper from '@mui/material/Paper'; +import Button from '@mui/material/Button'; +import Stack, { StackProps } from '@mui/material/Stack'; +// types +import { IOrderTableFilters, IOrderTableFilterValue } from '@src/types/transaction'; +// components +import Iconify from '@src/components/iconify'; + +// ---------------------------------------------------------------------- + +type Props = StackProps & { + filters: IOrderTableFilters; + onFilters: (name: string, value: IOrderTableFilterValue) => void; + // + onResetFilters: VoidFunction; + // + results: number; +}; + +export default function FinanceTransactionsTableFiltersResult({ + filters, + onFilters, + // + onResetFilters, + // + results, + ...other +}: Props) { + const handleRemoveStatus = () => { + onFilters('status', 'all'); + }; + + return ( + + + {results} + + results found + + + + + {filters.status !== 'all' && ( + + + + )} + + + + + ); +} + +const parseFilterLabel = (type: string): string => { + if (type === 'all') return 'All'; + if (type === 'transferTo') return 'Incomes'; + if (type === 'transferFrom') return 'Outcomes'; + return type; +} + +// ---------------------------------------------------------------------- + +type BlockProps = StackProps & { + label: string; +}; + +function Block({ label, children, sx, ...other }: BlockProps) { + return ( + + + {label} + + + + {children} + + + ); +} diff --git a/src/sections/finance/components/finance-transactions-table-row.tsx b/src/sections/finance/components/finance-transactions-table-row.tsx new file mode 100644 index 000000000..2ccafeeff --- /dev/null +++ b/src/sections/finance/components/finance-transactions-table-row.tsx @@ -0,0 +1,74 @@ +import { format } from 'date-fns'; +// @mui +import Avatar from '@mui/material/Avatar'; +import TableRow from '@mui/material/TableRow'; + +import TableCell from '@mui/material/TableCell'; +import ListItemText from '@mui/material/ListItemText'; +// components +import {TableRowTransactionType } from "@src/hooks/use-transaction-data.ts"; +import {truncateAddress} from "@src/utils/wallet.ts"; +import Typography from "@mui/material/Typography"; + +// ---------------------------------------------------------------------- + +type Props = { + row: TableRowTransactionType; + selected: boolean; +}; + +export default function FinanceTransactionTableRow({ + row, + selected +}: Props) { + const { date, name, amount, type, avatarUrl, message, category } = row; + + console.log('TYPE:', type); + + const dateObject = new Date(Number(date) * 1000); + const dateLbl = format(dateObject, 'dd/MM/yyyy'); + const timeLbl = format(dateObject, 'p'); + + + const renderPrimary = ( + + + + + + + + + + + + + {category === 'income' ? '': '-'} {amount} MMC + + + + ); + + return ( + <> + {renderPrimary} + + ); +} diff --git a/src/sections/finance/components/finance-transfer-accounts.tsx b/src/sections/finance/components/finance-transfer-accounts.tsx new file mode 100644 index 000000000..7676a942c --- /dev/null +++ b/src/sections/finance/components/finance-transfer-accounts.tsx @@ -0,0 +1,295 @@ +import React, { useState, useCallback, FC } from 'react'; +// @mui +import Stack from '@mui/material/Stack'; +import Button from '@mui/material/Button'; +import TextField from '@mui/material/TextField'; +import Box from '@mui/material/Box'; +import DialogTitle from '@mui/material/DialogTitle'; +import Card from '@mui/material/Card'; +import DialogActions from '@mui/material/DialogActions'; +import Dialog, { DialogProps } from '@mui/material/Dialog'; +// hooks +import { useBoolean } from '@src/hooks/use-boolean'; +// components +import { useSelector } from "react-redux"; +import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; +import LoadingButton from "@mui/lab/LoadingButton"; +import { useSnackbar } from "notistack"; +import { InputAmount, InputAmountProps } from '@src/components/input-amount.tsx'; +import IconButton from "@mui/material/IconButton"; +import Tooltip from "@mui/material/Tooltip"; +import Iconify from "@src/components/iconify"; +import Slider from "@mui/material/Slider"; +import { Divider, useTheme } from '@mui/material'; +import Scrollbar from '@src/components/scrollbar'; +import FinanceWalletTransferWidgetHorizontal from "@src/sections/finance/components/finance-wallet-transfer-widget-horizontal.tsx"; +import Typography from "@mui/material/Typography"; + +// ---------------------------------------------------------------------- + +type ButtonSwapProps = { + icon: string; + tooltip?: string; + onClick?: VoidFunction; + flipIcon?: boolean; +} + +const ButtonSwap: FC = ({ onClick, tooltip, icon, flipIcon }) => { + return ( + + + + + + + + ); +} + +// ---------------------------------------------------------------------- +export default function FinanceTransferAccounts() { + const sessionData = useSelector((state: any) => state.auth.session); + + const balanceETH = useSelector((state: any) => state.auth.balance); + const watchitBalance = balanceETH + 1000; // Just for testing purposes + + const confirm = useBoolean(); + + const [maxBalance, setMaxBalance] = useState(balanceETH); + const [fromWallet, setFromWallet] = useState(sessionData?.address); + const [toWallet, setToWallet] = useState('0x4B0897b0513fdc7C541B6d9D7E929C4e5364D2dB'); + const [labelFrom, setLabelFrom] = useState('From ETH Wallet'); + const [labelTo, setLabelTo] = useState('To Watchit Wallet'); + + const handleTransferFinish = () => { + confirm.onFalse?.(); + } + + const handleOpenModal = () => { + confirm.onTrue?.(); + }; + + const handleSwapWallets = () => { + // Swap the wallets + setFromWallet(toWallet); + setToWallet(fromWallet); + + // Swap the labels + setLabelFrom((prevLabel) => (prevLabel === 'From ETH Wallet' ? 'From Watchit Wallet' : 'From ETH Wallet')); + setLabelTo((prevLabel) => (prevLabel === 'To Watchit Wallet' ? 'To ETH Wallet' : 'To Watchit Wallet')); + + // Swap the max balance + setMaxBalance(() => (labelTo === 'To Watchit Wallet' ? watchitBalance : balanceETH)); + }; + + return ( + <> + + + + + + ); +} + +// ---------------------------------------------------------------------- + +type TConfirmTransferDialogProps = InputAmountProps & DialogProps; + +interface ConfirmTransferDialogProps extends TConfirmTransferDialogProps { + address?: string; + onClose: VoidFunction; + fromWallet: string; + toWallet: string; + labelFrom: string; + labelTo: string; + onSwapWallets: VoidFunction; + balanceETH: number; + balanceWatchit: number; +} + +function ConfirmTransferDialog({ + open, + onClose, + fromWallet, + toWallet, + labelFrom, + labelTo, + max, + onSwapWallets, + balanceETH, + balanceWatchit, + }: ConfirmTransferDialogProps) { + const { enqueueSnackbar } = useSnackbar(); + const [loading, setLoading] = useState(false); + const [amount, setAmount] = useState(0); + + const handleConfirmTransfer = async () => { + setLoading(true); + setTimeout(() => { + // Notification for the user from wallet to wallet + enqueueSnackbar(`The transfer was successful ${labelFrom.toLowerCase()} to ${labelTo.toLowerCase()}`, { variant: 'success' }); + onClose(); + setLoading(false); + }, 2000); + }; + + const handleInputChange = (_event: React.ChangeEvent) => { + // const value = event.target.value; + }; + + const handleChangeSlider = useCallback((_event: Event, newValue: number | number[]) => { + setAmount(newValue as number); + }, []); + + const handleChangeInput = useCallback((_event: React.ChangeEvent) => { + setAmount(Number(_event.target.value)); + }, []); + + const handleBlur = useCallback(() => { + if (amount < 0) { + setAmount(0); + } else if (amount > max) { + setAmount(max); + } + }, [amount]); + + const RainbowEffect = loading ? NeonPaper : Box; + + const renderFromWalletInput = ( + + + + ); + const renderToWalletInput = ( + + + + ); + + const theme = useTheme(); + + return ( + + Transfer between your wallets + + + + } + sx={{ py: 4 }} + > + + + + + + + + + + {renderFromWalletInput} + + {renderToWalletInput} + + + + + + + + + + + + + + Max: {max} MMC + + + + + + + Confirm & Transfer + + + + + ); +} diff --git a/src/sections/finance/components/finance-wallet-transfer-widget-horizontal.tsx b/src/sections/finance/components/finance-wallet-transfer-widget-horizontal.tsx new file mode 100644 index 000000000..dbd3901dc --- /dev/null +++ b/src/sections/finance/components/finance-wallet-transfer-widget-horizontal.tsx @@ -0,0 +1,49 @@ +import Box from '@mui/material/Box'; +import Stack from '@mui/material/Stack'; +import Typography from '@mui/material/Typography'; +import CircularProgress from '@mui/material/CircularProgress'; +// components +import Iconify from '@src/components/iconify'; + +// ---------------------------------------------------------------------- + +type Props = { + icon: string; + title: string; + value: number; + color?: string; +}; + +export default function FinanceWalletTransferWidgetHorizontal({ title, icon, color, value }: Props) { + return ( + + + + + + + + + {title} + + + Balance + + + {value} MMC + + + ); +} diff --git a/src/sections/finance/components/finance-widget-summary.tsx b/src/sections/finance/components/finance-widget-summary.tsx new file mode 100644 index 000000000..1c7498714 --- /dev/null +++ b/src/sections/finance/components/finance-widget-summary.tsx @@ -0,0 +1,220 @@ +// MUI IMPORTS +import Box from '@mui/material/Box'; +import Stack from '@mui/material/Stack'; +import Button from "@mui/material/Button"; +import { CardProps } from '@mui/material/Card'; +import Typography from '@mui/material/Typography'; +import { useTheme, alpha } from '@mui/material/styles'; + +// CHARTS IMPORTS +import { ApexOptions } from 'apexcharts'; + +// LOCAL IMPORTS +import { bgGradient } from '@src/theme/css'; +import Iconify from '@src/components/iconify'; +import { ColorSchema } from '@src/theme/palette'; +import {useBoolean} from "@src/hooks/use-boolean.ts"; +import Chart, { useChart } from '@src/components/chart'; +import { fCurrency, fPercent } from '@src/utils/format-number'; +import { FinanceDepositModal } from '@src/sections/finance/components/finance-deposit-modal.tsx'; +import { useWithdraw } from '@src/hooks/use-withdraw.ts'; +import LoadingButton from '@mui/lab/LoadingButton'; +import { useEffect } from 'react'; +import { useSnackbar } from 'notistack'; +import {FinanceWithdrawModal} from "@src/sections/finance/components/finance-withdraw-modal.tsx"; + +// ---------------------------------------------------------------------- + +interface Props extends CardProps { + title: string; + total: number; + percent: number; + color?: ColorSchema; + icon: string; + chart: { + series: { + x: string; + y: number; + }[]; + options?: ApexOptions; + }; +} + +// ---------------------------------------------------------------------- + +export default function FinanceWidgetSummary({ + title, + total, + icon, + percent, + color = 'primary', + chart, + sx, + ...other +}: Props) { + const confirmDeposit = useBoolean(); + const confirmWithdraw = useBoolean(); + const theme = useTheme(); + const { series, options } = chart; + const { loading: withdrawLoading, error } = useWithdraw(); + const { enqueueSnackbar } = useSnackbar(); + + useEffect(() => { + if (error) enqueueSnackbar(error.message, { variant: 'error' }); + }, [error]); + + const chartOptions = useChart({ + colors: [theme.palette[color].dark], + chart: { + sparkline: { + enabled: true, + }, + }, + xaxis: { + labels: { + show: false, + }, + }, + yaxis: { + min: 0, + max: series?.reduce((max, item) => Math.max(max, item.y) + 10, 0), + labels: { + show: false, + }, + }, + legend: { + show: false, + }, + grid: { + show: false, + }, + tooltip: { + marker: { + show: false, + }, + y: { + formatter: (value: number) => fCurrency(value), + title: { + formatter: () => '', + }, + }, + }, + ...options, + }); + + const totalOptions = { minimumFractionDigits: 1, maximumFractionDigits: 3 }; + const formattedTotal = new Intl.NumberFormat('en-US', totalOptions).format(total); + + const handleFinishDeposit = () => { + confirmDeposit.onFalse?.(); + } + + const handleFinishWithdraw = () => { + confirmWithdraw.onFalse?.(); + } + + const handleDepositOpenModal = () => { + confirmDeposit.onTrue?.(); + }; + + const handleWithdrawOpenModal = () => { + confirmWithdraw.onTrue?.(); + }; + + + return ( + + + + + } + loading={withdrawLoading} + onClick={handleWithdrawOpenModal} + > + Withdraw + + + + + {title} + + {formattedTotal} + MMC + + + + + + + {percent > 0 && '+'} + {fPercent(percent)} + + + than last month + + + + + + + + + + ) +} diff --git a/src/sections/finance/components/finance-withdraw-from-metamask.tsx b/src/sections/finance/components/finance-withdraw-from-metamask.tsx new file mode 100644 index 000000000..2240bdecf --- /dev/null +++ b/src/sections/finance/components/finance-withdraw-from-metamask.tsx @@ -0,0 +1,154 @@ +import Stack from "@mui/material/Stack"; +import TextMaxLine from "@src/components/text-max-line"; +import { formatBalanceNumber } from "@src/utils/format-number.ts"; +import Divider from "@mui/material/Divider"; +import { InputAmount } from "@src/components/input-amount.tsx"; +import { BoxRow } from "@src/sections/finance/components/finance-deposit-from-metamask.tsx"; +import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; +import Box from "@mui/material/Box"; +import { useSnackbar } from "notistack"; +import React, { FC, useEffect, useState } from 'react'; +import TextField from "@mui/material/TextField"; +import {isValidAddress} from "@src/sections/finance/components/finance-quick-transfer.tsx"; +import {useWithdrawMetamask} from "@src/hooks/use-withdraw-metamask"; +import {Address} from "viem"; +import {ConnectWalletClient} from "@src/clients/viem/walletClient.ts"; +import {truncateAddress} from "@src/utils/wallet.ts"; +import {useGetVaultBalance} from "@src/hooks/use-get-vault-balance.ts"; +import {useResponsive} from "@src/hooks/use-responsive.ts"; +import FinanceDialogsActions from "@src/sections/finance/components/finance-dialogs-actions.tsx"; + +interface FinanceDepositFromSmartAccountProps { + onClose: () => void; +} + +const FinanceWithdrawFromMetamask: FC = ({ onClose }) => { + const [amount, setAmount] = useState(0); + const [loading, setLoading] = useState(false); + const [address, setAddress] = useState
(); + const { balance } = useGetVaultBalance(address); + const { enqueueSnackbar } = useSnackbar(); + const { withdraw, loading: withdrawLoading, error } = useWithdrawMetamask(); + const [destinationAddress, setDestinationAddress] = useState(''); + const [addressError, setAddressError] = useState(false); + + + useEffect(() => { + if (error) { + enqueueSnackbar(`Deposit failed: ${error?.message}`, { variant: "error" }); + } + }, [enqueueSnackbar, error]); + + + useEffect(() => { + handleConnectMetamask(); + }, []); + + async function handleConnectMetamask() { + try { + const walletClient = await ConnectWalletClient(); + const [addr] = await walletClient.requestAddresses(); + setAddress(addr); + } catch (error) { + alert(`Transaction failed: ${error}`); + } + } + + const handleConfirmWithdraw = async () => { + if (amount > 0 && amount <= (balance ?? 0)) { + try { + setLoading(true); + await withdraw({amount: amount, recipient: destinationAddress}); + enqueueSnackbar(`The withdraw was successful`, { variant: "success" }); + onClose(); + } catch (err: any) { + enqueueSnackbar(`Withdraw failed: ${err?.message}`, { variant: "error" }); + } finally { + setLoading(false); + } + } else { + enqueueSnackbar("Invalid withdraw amount", { variant: "warning" }); + } + }; + + const handleInputChange = (event: React.ChangeEvent) => { + const value = event.target.value; + setDestinationAddress(value); + + + if (isValidAddress(value)) { + setAddressError(false); + } else { + setAddressError(true); + } + }; + + const RainbowEffect = loading || withdrawLoading ? NeonPaper : Box; + const mdUp = useResponsive('up', 'md'); + return ( + <> + + + Connected Wallet + + {truncateAddress(address ?? '')} + + + + + Balance + + {formatBalanceNumber(balance ?? 0)} MMC + + + + + + + Amount to withdraw + setAmount(Number(e.target.value))} + /> + + + + + + + ); +}; + +export default FinanceWithdrawFromMetamask; diff --git a/src/sections/finance/components/finance-withdraw-from-smart-account.tsx b/src/sections/finance/components/finance-withdraw-from-smart-account.tsx new file mode 100644 index 000000000..337b5bb32 --- /dev/null +++ b/src/sections/finance/components/finance-withdraw-from-smart-account.tsx @@ -0,0 +1,131 @@ +import Stack from "@mui/material/Stack"; +import TextMaxLine from "@src/components/text-max-line"; +import { formatBalanceNumber } from "@src/utils/format-number.ts"; +import Divider from "@mui/material/Divider"; +import { InputAmount } from "@src/components/input-amount.tsx"; +import { BoxRow } from "@src/sections/finance/components/finance-deposit-from-metamask.tsx"; +import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; +import Box from "@mui/material/Box"; +import { useSnackbar } from "notistack"; +import React, { FC, useEffect, useState } from 'react'; +import {useWithdraw} from "@src/hooks/use-withdraw.ts"; +import {useGetBalance} from "@src/hooks/use-get-balance.ts"; +import TextField from "@mui/material/TextField"; +import {isValidAddress} from "@src/sections/finance/components/finance-quick-transfer.tsx"; +import FinanceDialogsActions from "@src/sections/finance/components/finance-dialogs-actions.tsx"; +import {useResponsive} from "@src/hooks/use-responsive.ts"; + +interface FinanceDepositFromSmartAccountProps { + onClose: () => void; +} + +const FinanceWithdrawFromSmartAccount: FC = ({ onClose }) => { + const [amount, setAmount] = useState(0); + const [loading, setLoading] = useState(false); + const { balance } = useGetBalance(); + const { enqueueSnackbar } = useSnackbar(); + const { withdraw, loading: withdrawLoading, error } = useWithdraw(); + const [destinationAddress, setDestinationAddress] = useState(''); + const [addressError, setAddressError] = useState(false); + + + useEffect(() => { + if (error) { + enqueueSnackbar(`Deposit failed: ${error?.message}`, { variant: "error" }); + } + }, [enqueueSnackbar, error]); + + const handleConfirmWithdraw = async () => { + if (amount > 0 && amount <= (balance ?? 0)) { + try { + setLoading(true); + await withdraw({amount: amount, recipient: destinationAddress}); + enqueueSnackbar(`The withdraw was successful`, { variant: "success" }); + onClose(); + } catch (err: any) { + enqueueSnackbar(`Withdraw failed: ${err?.message}`, { variant: "error" }); + } finally { + setLoading(false); + } + } else { + enqueueSnackbar("Invalid withdraw amount", { variant: "warning" }); + } + }; + + const handleInputChange = (event: React.ChangeEvent) => { + const value = event.target.value; + setDestinationAddress(value); + + + if (isValidAddress(value)) { + setAddressError(false); + } else { + setAddressError(true); + } + }; + + const RainbowEffect = loading || withdrawLoading ? NeonPaper : Box; + + const mdUp = useResponsive('up', 'md'); + + return ( + <> + + + + + + Balance + + {formatBalanceNumber(balance ?? 0)} MMC + + + + + + + + Amount to withdraw + setAmount(Number(e.target.value))} + /> + + + + + + + + ); +}; + +export default FinanceWithdrawFromSmartAccount; diff --git a/src/sections/finance/components/finance-withdraw-modal.tsx b/src/sections/finance/components/finance-withdraw-modal.tsx new file mode 100644 index 000000000..ac1fd2d88 --- /dev/null +++ b/src/sections/finance/components/finance-withdraw-modal.tsx @@ -0,0 +1,69 @@ +// REACT IMPORTS +import {FC, useState} from 'react'; + +// MUI IMPORTS + +import DialogTitle from "@mui/material/DialogTitle"; + +import Dialog, {DialogProps} from "@mui/material/Dialog"; + +// LOCAL IMPORTS + +import FinanceWithdrawFromSmartAccount from "@src/sections/finance/components/finance-withdraw-from-smart-account"; +import Iconify from "@src/components/iconify"; +import Tabs, {tabsClasses} from "@mui/material/Tabs"; +import Tab from "@mui/material/Tab"; +import FinanceWithdrawFromMetamask from "@src/sections/finance/components/finance-withdraw-from-metamask.tsx"; + +const TABS = [ + { value: 'metamask', label: 'Metamask', disabled: false, icon: }, + { value: 'smartAccount', label: 'Smart Account', disabled: false, icon: }, +]; + +// ---------------------------------------------------------------------- + +interface FinanceWitdrawModalProps extends DialogProps { + onClose: VoidFunction; +} + +// ---------------------------------------------------------------------- + +export const FinanceWithdrawModal: FC = ({ open, onClose }) => { + const [currentTab, setCurrentTab] = useState('metamask'); + + const handleChangeTab = (_event: any, newValue: any) => { + setCurrentTab(newValue); + }; + + return ( + + Withdraw from your vault balance + + + {TABS.map((tab) => ( + + ))} + + + {currentTab === 'metamask' && ()} + {currentTab === 'smartAccount' && ()} + + + ); +} diff --git a/src/sections/finance/index.tsx b/src/sections/finance/index.tsx new file mode 100644 index 000000000..e3fbda6ba --- /dev/null +++ b/src/sections/finance/index.tsx @@ -0,0 +1,119 @@ +import Stack from '@mui/material/Stack'; +import Container from '@mui/material/Container'; +import Grid from '@mui/material/Unstable_Grid2'; + +// +import FinanceContacts from '@src/sections/finance/components/finance-contacts.tsx'; +import FinanceQuickTransfer from '@src/sections/finance/components/finance-quick-transfer.tsx'; +import FinanceInviteFriends from '@src/sections/finance/components/finance-invite-friends.tsx'; +import FinanceWidgetSummary from '@src/sections/finance/components/finance-widget-summary.tsx'; +import FinanceBalanceStatistics from '@src/sections/finance/components/finance-balance-statistics.tsx'; + +import {useSelector} from "react-redux"; +import {useProfileFollowing} from "@lens-protocol/react"; +import { useTransactionData} from "@src/hooks/use-transaction-data"; +import { + groupedTransactionData, + processDayData, ProcessedTransactionData, + processTransactionData +} from "@src/utils/finance-graphs/groupedTransactions.ts"; +import Typography from "@mui/material/Typography"; +import FinanceQuickActions from "@src/sections/finance/components/finance-quick-actions.tsx"; +import useGetSmartWalletTransactions from "@src/hooks/use-get-smart-wallet-transactions.ts"; +import FinanceTransactionsHistory from "@src/sections/finance/components/finance-transactions-history.tsx"; + +// ---------------------------------------------------------------------- + +type UseGetSmartWalletTransactionsReturn = ReturnType; + +// ---------------------------------------------------------------------- + +export default function OverviewBankingView() { + const { balance: balanceFromRedux } = useSelector((state: any) => state.auth); + const sessionData = useSelector((state: any) => state.auth.session); + + const { data: following } = useProfileFollowing({ + // @ts-ignore + for: sessionData?.profile?.id, + }); + + const {data: transactionsData} = useTransactionData() + + // remove the last element as it is the current day + const processedData = groupedTransactionData(transactionsData); + const daySeriesData = processDayData(processedData); + // Get the difference between daySeriesData[1] and daySeriesData[0] in y value to calculate the percent + const percent = (daySeriesData[1]?.y - daySeriesData[0]?.y) / daySeriesData[0]?.y * 100; + + const { transactions }: UseGetSmartWalletTransactionsReturn = useGetSmartWalletTransactions(); + const processedTransactions: ProcessedTransactionData[] = processTransactionData(transactions) + + console.log('logs:', transactions); + console.log('processedTransactions:', processedTransactions); + + return ( + + + + + 0 ? 'eva:diagonal-arrow-right-up-fill' : 'eva:diagonal-arrow-left-down-fill'} + percent={percent} + total={balanceFromRedux} + chart={{ + series: daySeriesData, + }} + /> + + + + + + + + + + + + Recent Transactions + + + + + + + + + + + {following?.length ? ( + + ) : undefined} + + + + + + + ); +} diff --git a/src/sections/governance/view/governance-create-view.tsx b/src/sections/governance/view/governance-create-view.tsx index da22121ed..12abcccee 100644 --- a/src/sections/governance/view/governance-create-view.tsx +++ b/src/sections/governance/view/governance-create-view.tsx @@ -13,8 +13,8 @@ import Typography from '@mui/material/Typography'; import GovernanceNewEditForm from '../governance-new-edit-form'; import Label from '../../../components/label'; import Header from '../../../layouts/dashboard/header'; -import { useResponsive } from '../../../hooks/use-responsive'; -import { useRouter } from '../../../routes/hooks'; +import { useResponsive } from '@src/hooks/use-responsive.ts'; +import { useRouter } from '@src/routes/hooks'; // ---------------------------------------------------------------------- diff --git a/src/sections/governance/view/governance-details-view.tsx b/src/sections/governance/view/governance-details-view.tsx index 9e2347276..c497903a6 100644 --- a/src/sections/governance/view/governance-details-view.tsx +++ b/src/sections/governance/view/governance-details-view.tsx @@ -22,14 +22,14 @@ import { fShortenNumber } from '@src/utils/format-number'; import Iconify from '@src/components/iconify'; import Markdown from '@src/components/markdown'; import LoadingButton from '@mui/lab/LoadingButton'; -import { truncateAddress } from '../../../utils/wallet'; +import { truncateAddress } from '@src/utils/wallet.ts'; import GovernanceCommentList from '../governance-comment-list'; import GovernanceCommentForm from '../governance-comment-form'; import Label from '../../../components/label'; import Header from '../../../layouts/dashboard/header'; -import { useResponsive } from '../../../hooks/use-responsive'; -import { paths } from '../../../routes/paths'; -import { useRouter } from '../../../routes/hooks'; +import { useResponsive } from '@src/hooks/use-responsive.ts'; +import { paths } from '@src/routes/paths.ts'; +import { useRouter } from '@src/routes/hooks'; import { ProposalsMockList, proposalVotes as initialProposalVotes } from '../governance-mock'; // ---------------------------------------------------------------------- diff --git a/src/sections/publication/view/publication-create-view.tsx b/src/sections/publication/view/publication-create-view.tsx index 3bf2ca761..d86446de2 100644 --- a/src/sections/publication/view/publication-create-view.tsx +++ b/src/sections/publication/view/publication-create-view.tsx @@ -11,7 +11,7 @@ import { IconChevronLeft } from '@tabler/icons-react'; import PublicationNewWizard from '../publication-new-wizard.tsx'; import Header from '../../../layouts/dashboard/header'; import Label from '../../../components/label'; -import { useResponsive } from '../../../hooks/use-responsive'; +import { useResponsive } from '@src/hooks/use-responsive.ts'; // ---------------------------------------------------------------------- diff --git a/src/sections/user/profile-header.tsx b/src/sections/user/profile-header.tsx index b9fd45de6..b5296cda0 100644 --- a/src/sections/user/profile-header.tsx +++ b/src/sections/user/profile-header.tsx @@ -716,7 +716,7 @@ const ProfileHeader = ({ profile: profileData, children }: PropsWithChildren - Attestation + License { + const weekData: Record = {}; + const monthData: Record = {}; + const yearData: Record = {}; + const dayData: Record = {}; + const now = new Date(); + const sixtyDaysAgo = new Date(now); + sixtyDaysAgo.setDate(now.getDate() - 60); + + data.forEach(({ date, income, expenses }) => { + const week = getWeek(date); + const month = date.slice(0, 7); // YYYY-MM + const year = date.slice(0, 4); // YYYY + const transactionDate = new Date(date); + + if (!weekData[week]) weekData[week] = { income: 0, expenses: 0 }; + if (!monthData[month]) monthData[month] = { income: 0, expenses: 0 }; + if (!yearData[year]) yearData[year] = { income: 0, expenses: 0 }; + + weekData[week].income += income; + weekData[week].expenses += expenses; + monthData[month].income += income; + monthData[month].expenses += expenses; + yearData[year].income += income; + yearData[year].expenses += expenses; + + if (transactionDate >= sixtyDaysAgo && transactionDate <= now) { + if (!dayData[date]) dayData[date] = { income: 0, expenses: 0 }; + dayData[date].income += income; + dayData[date].expenses += expenses; + } + }); + + return [ + { + type: 'Week', + data: [ + { name: 'Income', data: Object.values(weekData).map(d => d.income) }, + { name: 'Expenses', data: Object.values(weekData).map(d => d.expenses) }, + ], + categories: Object.keys(weekData), + }, + { + type: 'Month', + data: [ + { name: 'Income', data: Object.values(monthData).map(d => d.income) }, + { name: 'Expenses', data: Object.values(monthData).map(d => d.expenses) }, + ], + categories: Object.keys(monthData), + }, + { + type: 'Year', + data: [ + { name: 'Income', data: Object.values(yearData).map(d => d.income) }, + { name: 'Expenses', data: Object.values(yearData).map(d => d.expenses) }, + ], + categories: Object.keys(yearData), + }, + { + type: 'Day', + data: [ + { name: 'Income', data: Object.values(dayData).map(d => d.income) }, + { name: 'Expenses', data: Object.values(dayData).map(d => d.expenses) }, + ], + categories: Object.keys(dayData), + }, + ]; +}; + + +// Helper function to get the week number of a date +const getWeek = (date: string): string => { + const d = new Date(date); + const yearStart = new Date(d.getFullYear(), 0, 1); + const weekNumber = Math.ceil(((d.getTime() - yearStart.getTime()) / 86400000 + yearStart.getDay() + 1) / 7); + return `${d.getFullYear()}-W${weekNumber}`; +}; + +// Helper function to process day data to the desired format +export const processDayData = (groupedData: GroupedData[]): { x: string, y: number }[] => { + const dayData = groupedData.find(group => group.type === 'Day'); + if (!dayData) return []; + + return dayData.categories.map((date, index) => { + const income = dayData.data[0].data[index]; + const expenses = dayData.data[1].data[index]; + const monthDay = date.slice(5, 10); // MM-DD + return { x: monthDay, y: income - expenses }; + }); +}; + + +export type ProcessedTransactionData = { + id: string; + name: string; + avatarUrl: string; + type: string; + message: string; + category: string; + date: bigint; + status: string; + amount: string | null; +}; + +export const processTransactionData = (data: TransactionLog[]): ProcessedTransactionData[] => { + return data?.map((transaction, _index) => ({ + id: transaction.transactionHash, + name: transaction.event === 'transferFrom' ? transaction.args.origin : transaction.args.recipient, + avatarUrl: `https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${transaction.event === 'transferFrom' ? transaction.args.origin : transaction.args.recipient}`, + type: transaction.event, + message: parseTransactionTypeLabel(transaction.event), + category: parseTransactionType(transaction.event), + date: transaction.timestamp, + status: 'completed', + amount: transaction.formattedAmount, + })); +}; + +const parseTransactionTypeLabel = (type: string): string => { + switch (type) { + case 'transferFrom': + return 'Sent money to'; + case 'transferTo': + return 'Received money from'; + case 'deposit': + return 'Deposited'; + case 'withdraw': + return 'Withdraw'; + + default: + return type; + } +}; + + +// Incomes or outcomes depending on the transaction type +const parseTransactionType = (type: string): string => { + switch (type) { + case 'transferFrom': + return 'outcome'; + case 'transferTo': + return 'income'; + case 'deposit': + return 'income'; + case 'withdraw': + return 'outcome'; + + default: + return type; + } +} diff --git a/src/utils/format-number.ts b/src/utils/format-number.ts index de1472138..b8242a758 100644 --- a/src/utils/format-number.ts +++ b/src/utils/format-number.ts @@ -37,3 +37,8 @@ function result(format: string, key = '.00') { return isInteger ? format.replace(key, '') : format; } + +export function formatBalanceNumber(balance: number) { + const balanceOptions = { minimumFractionDigits: 1, maximumFractionDigits: 3 }; + return new Intl.NumberFormat('en-US', balanceOptions).format(balance as any); +} diff --git a/src/utils/subscribe-notifications-supabase.ts b/src/utils/subscribe-notifications-supabase.ts index 560084fe0..9bb481c70 100644 --- a/src/utils/subscribe-notifications-supabase.ts +++ b/src/utils/subscribe-notifications-supabase.ts @@ -2,20 +2,18 @@ import { supabase } from '@src/utils/supabase'; import { Dispatch } from 'redux'; import {Events} from "@src/utils/events.ts"; -/** - * Subscribe to notifications channel from Supabase - * @param profileId - * @param dispatch - */ -export function subscribeToNotifications(profileId: string, dispatch?: Dispatch) { - supabase - .channel('notifications') - .on('postgres_changes', { event: 'INSERT', schema: 'public', table: 'notifications', filter: `receiver_id=eq.${profileId}`}, payload => { - Events.Handlers(payload, profileId, dispatch) - }) - // This is a handler when update the notifications table manually using the Supabase Dashboard - .on('postgres_changes', { event: 'UPDATE', schema: 'public', table: 'notifications', filter: `receiver_id=eq.${profileId}`}, payload => { - Events.Handlers(payload, profileId, dispatch) - }) - .subscribe(); +export function subscribeToNotifications(profileId: string, dispatch?: Dispatch, tables: string[] = ['notifications']) { + const channel = supabase.channel('changes'); + + tables.forEach(table => { + channel + .on('postgres_changes', { event: 'INSERT', schema: 'public', table, filter: `receiver_id=eq.${profileId}` }, payload => { + Events.Handlers(payload, profileId, dispatch); + }) + .on('postgres_changes', { event: 'UPDATE', schema: 'public', table, filter: `receiver_id=eq.${profileId}` }, payload => { + Events.Handlers(payload, profileId, dispatch); + }); + }); + + channel.subscribe(); }