diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 9bacfc6..6579802 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -8,38 +8,26 @@ on: pull_request: jobs: - # Tests: - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v2 - # - name: Run tests - # uses: actions/setup-node@v1 - # with: - # node-version: '14.x' - # - run: npm install - # - run: npx hardhat test - # env: - # CI: true - # # These are not needed for the tests but - # # hardhat fails to start when not present. - # NODE_URL_RINKEBY: ${{ secrets.RINKEBY_NODE }} - # NODE_URL_MAINNET: ${{ secrets.MAINNET_NODE }} - # PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }} - # #NODE_URL_RINKEBY: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" - # #NODE_URL_MAINNET: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" - # #PRIVATE_KEY: "00000000000000000000000000000000000000000000000000" - # Linting: - # runs-on: ubuntu-latest - # steps: - # - name: Checkout - # uses: actions/checkout@v2 - # - name: Run Solhint - # uses: actions/setup-node@v1 - # with: - # node-version: '14.x' - # - run: npm install -g solhint - # - run: make solhint - + Tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Run tests + uses: actions/setup-node@v1 + with: + node-version: '14.x' + - run: npm install + - run: npx hardhat test + env: + CI: true + # These are not needed for the tests but + # hardhat fails to start when not present. + NODE_URL_RINKEBY: ${{ secrets.RINKEBY_NODE }} + NODE_URL_MAINNET: ${{ secrets.MAINNET_NODE }} + PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }} + #NODE_URL_RINKEBY: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + #NODE_URL_MAINNET: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + #PRIVATE_KEY: "00000000000000000000000000000000000000000000000000" coverage: runs-on: ubuntu-latest @@ -56,23 +44,9 @@ jobs: uses: coverallsapp/github-action@v1.1.2 with: github-token: ${{ secrets.GITHUB_TOKEN }} - # Security: - # runs-on: ubuntu-latest - # steps: - # - name: Checkout - # uses: actions/checkout@v2 - # - name: Slither Static Analysis - # uses: actions/setup-node@v1 - # with: - # node-version: '14.x' - # - run: npm install - # - run: sudo apt-get install python3-setuptools - # - run: wget https://github.com/ethereum/solidity/releases/download/v0.7.6/solc-static-linux && sudo mv solc-static-linux /usr/bin/solc && sudo chmod 744 /usr/bin/solc - # - run: git clone https://github.com/crytic/slither.git && cd slither && sudo python3 setup.py install - # - run: make slither - # env: - # # These are not needed for the tests but - # # hardhat fails to start when not present. - # NODE_URL_RINKEBY: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" - # NODE_URL_MAINNET: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" - # PRIVATE_KEY: "00000000000000000000000000000000000000000000000000" + env: + # These are not needed for the tests but + # hardhat fails to start when not present. + NODE_URL_RINKEBY: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + NODE_URL_MAINNET: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + PRIVATE_KEY: "00000000000000000000000000000000000000000000000000" \ No newline at end of file diff --git a/artifacts/@openzeppelin/contracts/GSN/Context.sol/Context.dbg.json b/artifacts/@openzeppelin/contracts/GSN/Context.sol/Context.dbg.json index 8f39bbd..07a35d2 100644 --- a/artifacts/@openzeppelin/contracts/GSN/Context.sol/Context.dbg.json +++ b/artifacts/@openzeppelin/contracts/GSN/Context.sol/Context.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/be630f16223b3a0e91aff14d54f322b9.json" + "buildInfo": "../../../../build-info/51f15aea59c742b9698a8d4a2653bdef.json" } diff --git a/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json b/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json index 8f39bbd..07a35d2 100644 --- a/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json +++ b/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/be630f16223b3a0e91aff14d54f322b9.json" + "buildInfo": "../../../../build-info/51f15aea59c742b9698a8d4a2653bdef.json" } diff --git a/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json b/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json index 8f39bbd..07a35d2 100644 --- a/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +++ b/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/be630f16223b3a0e91aff14d54f322b9.json" + "buildInfo": "../../../../build-info/51f15aea59c742b9698a8d4a2653bdef.json" } diff --git a/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json b/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json index a4268ec..0623983 100644 --- a/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json +++ b/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json @@ -3,8 +3,8 @@ "contractName": "Address", "sourceName": "@openzeppelin/contracts/utils/Address.sol", "abi": [], - "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bf4d9c20cf9f5d209028eac65924dde1de29811bc95443418f1061ee88e2c5c264736f6c63430007000033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bf4d9c20cf9f5d209028eac65924dde1de29811bc95443418f1061ee88e2c5c264736f6c63430007000033", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a086234c04844d5dc8756f7a9e5475bf739511b3164e8922feac536a76382c6f64736f6c63430007000033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a086234c04844d5dc8756f7a9e5475bf739511b3164e8922feac536a76382c6f64736f6c63430007000033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/@openzeppelin/contracts/utils/EnumerableSet.sol/EnumerableSet.dbg.json b/artifacts/@openzeppelin/contracts/utils/EnumerableSet.sol/EnumerableSet.dbg.json index 8f39bbd..07a35d2 100644 --- a/artifacts/@openzeppelin/contracts/utils/EnumerableSet.sol/EnumerableSet.dbg.json +++ b/artifacts/@openzeppelin/contracts/utils/EnumerableSet.sol/EnumerableSet.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/be630f16223b3a0e91aff14d54f322b9.json" + "buildInfo": "../../../../build-info/51f15aea59c742b9698a8d4a2653bdef.json" } diff --git a/artifacts/@openzeppelin/contracts/utils/EnumerableSet.sol/EnumerableSet.json b/artifacts/@openzeppelin/contracts/utils/EnumerableSet.sol/EnumerableSet.json index 843806f..ed43bd9 100644 --- a/artifacts/@openzeppelin/contracts/utils/EnumerableSet.sol/EnumerableSet.json +++ b/artifacts/@openzeppelin/contracts/utils/EnumerableSet.sol/EnumerableSet.json @@ -3,8 +3,8 @@ "contractName": "EnumerableSet", "sourceName": "@openzeppelin/contracts/utils/EnumerableSet.sol", "abi": [], - "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e9934c6bd6b261c667391bb7f74d4026f4fc53401d39510c808acfbe0b998d2a64736f6c63430007000033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e9934c6bd6b261c667391bb7f74d4026f4fc53401d39510c808acfbe0b998d2a64736f6c63430007000033", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122068acffbcec76709ef75cef27a93ffc77240995a099d143ef05563a02fc58ca9964736f6c63430007000033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122068acffbcec76709ef75cef27a93ffc77240995a099d143ef05563a02fc58ca9964736f6c63430007000033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/build-info/be630f16223b3a0e91aff14d54f322b9.json b/artifacts/build-info/51f15aea59c742b9698a8d4a2653bdef.json similarity index 59% rename from artifacts/build-info/be630f16223b3a0e91aff14d54f322b9.json rename to artifacts/build-info/51f15aea59c742b9698a8d4a2653bdef.json index f0d8b07..955ea7a 100644 --- a/artifacts/build-info/be630f16223b3a0e91aff14d54f322b9.json +++ b/artifacts/build-info/51f15aea59c742b9698a8d4a2653bdef.json @@ -1,13 +1,16 @@ { - "id": "be630f16223b3a0e91aff14d54f322b9", + "id": "51f15aea59c742b9698a8d4a2653bdef", "_format": "hh-sol-build-info-1", "solcVersion": "0.7.0", "solcLongVersion": "0.7.0+commit.9e61f92b", "input": { "language": "Solidity", "sources": { + "contracts/Migrations.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity >=0.4.22 <0.8.0;\n\ncontract Migrations {\nfunction c_0xabb147e4(bytes32 c__0xabb147e4) public pure {}\n\n address public owner = msg.sender;\n uint public last_completed_migration;\n\n modifier restricted() {c_0xabb147e4(0xd5046512d46e33a6845acffadfd1edae344fc32d651ce1ed6e342501296fe060); /* function */ \n\nc_0xabb147e4(0xc04f4f02df9a30f356b5707c99e7334a580b79dba5132cfa7743f36350e390a3); /* line */ \n c_0xabb147e4(0xccf584977502dca4873f0eccac42573699b8b625ce28d317cff93c64efa1315d); /* requirePre */ \nc_0xabb147e4(0x5ebc1168354748aac98338fbcf780960b1c7dff6c5744662d667250e39f5f633); /* statement */ \nrequire(\n msg.sender == owner,\n \"This function is restricted to the contract's owner\"\n );c_0xabb147e4(0xd19a8f0f55452b58e34b7ca08928d8f205c8d8eebcf365651448b82ba5a786db); /* requirePost */ \n\nc_0xabb147e4(0xa29403cd54b6214f491fcccf132a590a63fa3cd53e3c3b2733bfffdb3236b790); /* line */ \n _;\n }\n\n function setCompleted(uint completed) public restricted {c_0xabb147e4(0xf45ce12012b9abd3ac6d8a616f43719db5528b3e70c7822796297a43ea8b1c91); /* function */ \n\nc_0xabb147e4(0xec67cfe99587ece7204487993e407537d9b539167b13bf4a04026d257cb68ad2); /* line */ \n c_0xabb147e4(0x7f15600e8540260d69357a6000cc99f6718a2dd33c27e526395b10e4373b3837); /* statement */ \nlast_completed_migration = completed;\n }\n}\n" + }, "contracts/TellorAccess.sol": { - "content": "// SPDX-License-Identifier: MIT\npragma solidity 0.7.0;\n\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\n\n\nlibrary SafeMath {\n\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n\n return c;\n }\n\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n return sub(a, b, \"SafeMath: subtraction overflow\");\n }\n\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b <= a, errorMessage);\n uint256 c = a - b;\n\n return c;\n }\n\n\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n return div(a, b, \"SafeMath: division by zero\");\n }\n\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n return mod(a, b, \"SafeMath: modulo by zero\");\n }\n\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b != 0, errorMessage);\n return a % b;\n }\n}\n\ncontract TellorAccess is AccessControl {\n\n using SafeMath for uint256;\n \n event NewValue(uint256 _requestId, uint256 _time, uint256 _value);\n \n mapping(uint256 => mapping(uint256 => uint256)) public values; //requestId -> timestamp -> value\n// mapping(uint256 => mapping(uint256 => bool)) public isDisputed; //requestId -> timestamp -> value\n mapping(uint256 => uint256[]) public timestamps;\n \n bytes32 public constant REPORTER_ROLE = keccak256(\"reporter\");\n\n\n\n constructor () {\n _setupRole(DEFAULT_ADMIN_ROLE, msg.sender);\n _setRoleAdmin(REPORTER_ROLE, DEFAULT_ADMIN_ROLE);\n }\n\n /**\n * @dev Modifier to restrict only to the admin role.\n */\n modifier onlyAdmin() {\n require(isAdmin(msg.sender), \"Restricted to admins.\");\n _;\n }\n\n /**\n * @dev Restricted to members of the reporter role.\n */\n modifier onlyReporter() {\n require(isReporter(msg.sender), \"Restricted to reporters.\");\n _;\n }\n\n /**\n @dev Add an account to the admin role. Restricted to admins.\n */\n function addAdmin(address account) public virtual onlyAdmin {\n grantRole(DEFAULT_ADMIN_ROLE, account);\n }\n\n /**\n * @dev Add an account to the reporter role. Restricted to admins.\n * @param account is the address of the reporter to give permissions to submit data\n */\n function addReporter(address account) public virtual onlyAdmin {\n grantRole(REPORTER_ROLE, account);\n }\n\n /** \n * @dev Remove an account from the reporter role. Restricted to admins.\n */\n function removeReporter(address account) public virtual onlyAdmin {\n revokeRole(REPORTER_ROLE, account);\n }\n\n /** \n * @dev Remove oneself from the admin role.\n */\n function renounceAdmin() public virtual {\n renounceRole(DEFAULT_ADMIN_ROLE, msg.sender);\n }\n \n /**\n * @dev Return `true` if the account belongs to the admin role.\n */\n function isAdmin(address account) public virtual view returns (bool) {\n return hasRole(DEFAULT_ADMIN_ROLE, account);\n }\n\n /**\n * @dev Return `true` if the account belongs to the reporter role.\n */\n function isReporter(address account) public virtual view returns (bool) {\n return hasRole(REPORTER_ROLE, account);\n }\n\n /**\n * @dev A mock function to submit a value to be read withoun miners needed\n * @param _requestId The tellorId to associate the value to\n * @param _value the value for the requestId\n */\n function submitValue(uint256 _requestId,uint256 _value) external {\n require(isReporter(msg.sender) || isAdmin(msg.sender), \"Sender must be an Admin or Reporter to submitValue\");\n values[_requestId][block.timestamp] = _value;\n timestamps[_requestId].push(block.timestamp);\n emit NewValue(_requestId, block.timestamp, _value);\n }\n\n\n /**\n * @dev Retreive value from oracle based on requestId/timestamp\n * @param _requestId being requested\n * @param _timestamp to retreive data/value from\n * @return uint value for requestId/timestamp submitted\n */\n function retrieveData(uint256 _requestId, uint256 _timestamp) public view returns(uint256){\n return values[_requestId][_timestamp];\n }\n\n\n /**\n * @dev Counts the number of values that have been submited for the request\n * @param _requestId the requestId to look up\n * @return uint count of the number of values received for the requestId\n */\n function getNewValueCountbyRequestId(uint256 _requestId) public view returns(uint) {\n return timestamps[_requestId].length;\n }\n\n /**\n * @dev Gets the timestamp for the value based on their index\n * @param _requestId is the requestId to look up\n * @param index is the value index to look up\n * @return uint timestamp\n */\n function getTimestampbyRequestIDandIndex(uint256 _requestId, uint256 index) public view returns(uint256) {\n uint len = timestamps[_requestId].length;\n if(len == 0 || len <= index) return 0; \n return timestamps[_requestId][index];\n }\n\n}" + "content": "// SPDX-License-Identifier: MIT\npragma solidity 0.7.0;\n\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\n\n\nlibrary SafeMath {\nfunction c_0xcb92bccd(bytes32 c__0xcb92bccd) public pure {}\n\n\n function add(uint256 a, uint256 b) internal pure returns (uint256) {c_0xcb92bccd(0x2a42ce17961a74df79574dee1f1846fc9adb30a650a25ae2d48fe5e07e50c6fd); /* function */ \n\nc_0xcb92bccd(0xf10b02fbb871f232412f9768fb434532ec4a187f525cf9754d6c0e88557f3bd8); /* line */ \n c_0xcb92bccd(0xb1880a53c02cd87c2fe5209ca61ce94e23792f0d8778e993431e057dcc2d52dc); /* statement */ \nuint256 c = a + b;\nc_0xcb92bccd(0xb6c79590b55649a6018bbc807505f4c998408a66879d8fcdebd304b67e181b89); /* line */ \n c_0xcb92bccd(0x289c208f2760a145f05d7f868f7d25b637d94e07ecdff5fc1e27e44d4ea9a081); /* requirePre */ \nc_0xcb92bccd(0x773dfcc1916b7ff59e33f4c860828717dc3e262d3fd4e099978a0d94f5632c4c); /* statement */ \nrequire(c >= a, \"SafeMath: addition overflow\");c_0xcb92bccd(0xb92fe789389e8489d433a7dbcb6a4005baac920df9a3695862c6d2561d1b3bfc); /* requirePost */ \n\n\nc_0xcb92bccd(0x45d9f9ebc5eb4f0fdf51c3d127af097963483fce82e6c0bb2bb531f145d083ed); /* line */ \n c_0xcb92bccd(0x0d9b69ff6f00250e27d6748ec342d165d1dc1d991d5d3a29414963cb55a60eae); /* statement */ \nreturn c;\n }\n\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {c_0xcb92bccd(0x63ab89f56f5f9411f6d8cf8905127c39882695a806fa325280cbcdb63d567449); /* function */ \n\nc_0xcb92bccd(0xd5bbc98cae6a444822c7b422a58414d16d86f8cdfacf73224a1832c439160206); /* line */ \n c_0xcb92bccd(0x32fe9777158f91db622333e379dde148ccf4d539ee827433da6e44fcdc280750); /* statement */ \nreturn sub(a, b, \"SafeMath: subtraction overflow\");\n }\n\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {c_0xcb92bccd(0x4ffb87c5844967eb3b61b146508e7c4feab62fffecf608e70d74465ea6076f57); /* function */ \n\nc_0xcb92bccd(0x24725e58da21d6a8090bf41b3e67368e9399e57110fecb0238113254bb50418c); /* line */ \n c_0xcb92bccd(0x7cbfe530f89062e4d3b10b1835df6dc54e6903613dffa76a6160c8169b924379); /* requirePre */ \nc_0xcb92bccd(0xadc11dc83aa961d9536d934c32d1e307161bd8781751ce87d4855ca81caeddc3); /* statement */ \nrequire(b <= a, errorMessage);c_0xcb92bccd(0xe85a91b283e91ac7613b3c0e18c556fe96f6e75740b107ffe073e382f77698f1); /* requirePost */ \n\nc_0xcb92bccd(0x8e9af964c3f40efd1c3fe312677e6ad70e65bed52826f307d3c9a4d67fe933e4); /* line */ \n c_0xcb92bccd(0x36c3fe96c49cb4a0bcd0fb806147a515ac4e857e731c707bfc9b1aa8f83b578c); /* statement */ \nuint256 c = a - b;\n\nc_0xcb92bccd(0x2c2accd65917ab969fe788214aae878baa4717fe436bba78695dc7d250146e24); /* line */ \n c_0xcb92bccd(0xb3ea0bd2c4757f36baa64c9aa919ab6f0282533c38b8bee8406ed7bf4e7a909b); /* statement */ \nreturn c;\n }\n\n\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {c_0xcb92bccd(0xd632afd49f1c0954bec7f73ddb87cb5808046efd02389e3ec5ed63a546f3c6ac); /* function */ \n\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\nc_0xcb92bccd(0x0081613a2e3ce215deb44faab8d4cd79196b72d6d64caa412c8681f08eebb483); /* line */ \n c_0xcb92bccd(0xc821e7317a0916a3e997d085b1c3a92a067757a7b81389aecf101d6ec9e8a14e); /* statement */ \nif (a == 0) {c_0xcb92bccd(0x8bf8fa38bbb0c972cc52d03ee1d2df22c1e58171b724e64a6b459d27facf9518); /* branch */ \n\nc_0xcb92bccd(0x3b49811b21cdfaa2609faee5803cfb60683b2c5761c9efb718a154fe7f9dcb05); /* line */ \n c_0xcb92bccd(0xd497b10547657a451260e71539ff1a86c8a6d6f6d704bdedd6cd78092d2ce62c); /* statement */ \nreturn 0;\n }else { c_0xcb92bccd(0xf548a84b23f403ecdc409034d8585d553c5475b5248ee125c3eb1124bf8c43d7); /* branch */ \n}\n\nc_0xcb92bccd(0x9f1c7e232a3c5a395c88dfdbcc4089e32e04bb69ba9109dadc2bc9ff7b811082); /* line */ \n c_0xcb92bccd(0x22f869e15d0064586fa871fd737e06ac907a87c8f49560250b1372bd1996566c); /* statement */ \nuint256 c = a * b;\nc_0xcb92bccd(0xb993af29414c460db5d28681da6517d4f07df3fe197e2c5bfc7de4eb8b234f22); /* line */ \n c_0xcb92bccd(0x62566e7664e4fbb9fcac0fa5326315337a99e482ae9f0f08c599c68f3d27582b); /* requirePre */ \nc_0xcb92bccd(0x8fcae4e9d41cb1e5819afafc05b9bcb6139eefb013e25c5378f6197e083dcb54); /* statement */ \nrequire(c / a == b, \"SafeMath: multiplication overflow\");c_0xcb92bccd(0xf714532f7809551b422f8e195c0205e839b261664d1a7514b1d739d2e5764781); /* requirePost */ \n\n\nc_0xcb92bccd(0x839e2aebc9f19be0580738d395763782170ad8dc52d319ea30e63adc1f813d95); /* line */ \n c_0xcb92bccd(0xcf063181419f48687f0fcbb0951f84bbeafa975f7bfb5d6f5971aa8f5e1901db); /* statement */ \nreturn c;\n }\n\n function div(uint256 a, uint256 b) internal pure returns (uint256) {c_0xcb92bccd(0xfc0018238b168fe68a95e6b0448fb9a489959b5a309e7e72affc55c7f733082a); /* function */ \n\nc_0xcb92bccd(0xfe4b5a2e8408ebb901461e797c90c77f1e15449846d79857426e5fa7fb5740d4); /* line */ \n c_0xcb92bccd(0xf02c2523647aed68b3704231da8703f5eb3f1738243679aef30f0364cf9826c0); /* statement */ \nreturn div(a, b, \"SafeMath: division by zero\");\n }\n\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {c_0xcb92bccd(0x383adb0ce93a7a7a6c3fa44968ac48745274c8754020d7487b46bc0c9ac24cde); /* function */ \n\nc_0xcb92bccd(0x9dc9f259d62a9b39c165449cb984fd0e05da5ff229054899e168de90bce5df85); /* line */ \n c_0xcb92bccd(0x9b2a6d862d32e0e87df041a9a8189e31fa75e223514d393e32535df35c215e2b); /* requirePre */ \nc_0xcb92bccd(0x1068f7633354f7dba9571bf9d441427dcf3c68669c2b1f69303289ca0ab64485); /* statement */ \nrequire(b > 0, errorMessage);c_0xcb92bccd(0x6dbfaf38d169038c6168a1cbad62891addf2a5979ca14edd91b5fcdc15f38d06); /* requirePost */ \n\nc_0xcb92bccd(0x7a8c312391c49769a6eaa76a8a6d07671467bee2fcb39ccb0aa4f5d3460f675f); /* line */ \n c_0xcb92bccd(0xe79a5b161c9dfef672072678e7f86ebaa3ec2b924f7d387d9808a4674a3f6cdd); /* statement */ \nuint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\nc_0xcb92bccd(0x209e5731a25c9170ffb409197c5f7892eb31b8947b630e1707b77589c09ac733); /* line */ \n c_0xcb92bccd(0x5ba2dedf57ddc65fe88ba6a381580475118dee163c87e34763cba5ae1d8cfb7e); /* statement */ \nreturn c;\n }\n\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {c_0xcb92bccd(0x78d445d55eb4b75e9c3925b5959807a5bd30615ca2aac3e51698d2bfbfa053bb); /* function */ \n\nc_0xcb92bccd(0x3928139efa17481e000110f89c17af8a0b20e4a2f1fdf2d968cecff820608e86); /* line */ \n c_0xcb92bccd(0xa2752819b8d5d24afec4d32200ac5c404b36c2080a9418cb5e9f14f93cc934c7); /* statement */ \nreturn mod(a, b, \"SafeMath: modulo by zero\");\n }\n\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {c_0xcb92bccd(0x7960e18cbd3f158d5cea6f8e5d03bc818d1f359c8dc02e1447d970ee26d354ed); /* function */ \n\nc_0xcb92bccd(0xc84473eccd655804a3a7def900b6ffed799b04b45cca1101aab723d0e3555780); /* line */ \n c_0xcb92bccd(0xe33acc46c7071bab5a0fad78653c99e17307bcb02d7bdcee4c27e01278829d46); /* requirePre */ \nc_0xcb92bccd(0x534c949f58e696e9e67d2f1a8ca2c194ca03fa0e99ab7aec772a8ad398ce2e0f); /* statement */ \nrequire(b != 0, errorMessage);c_0xcb92bccd(0xc428b91c3fa7e38ea942097d1a5c2d141db85aeb505033aa44a9f3e179a1a20b); /* requirePost */ \n\nc_0xcb92bccd(0xafb97fa37822359ca73d3e0b4ec5d07427da93183e33ef28bf3b27451577ade2); /* line */ \n c_0xcb92bccd(0xf2a8a59932391e45ad70b07926be5c905b8ce64f7cc6151e06de699bc8411d4c); /* statement */ \nreturn a % b;\n }\n}\n\ncontract TellorAccess is AccessControl {\nfunction c_0xf503494c(bytes32 c__0xf503494c) public pure {}\n\n\n using SafeMath for uint256;\n \n event NewValue(uint256 _requestId, uint256 _time, uint256 _value);\n \n mapping(uint256 => mapping(uint256 => uint256)) public values; //requestId -> timestamp -> value\n// mapping(uint256 => mapping(uint256 => bool)) public isDisputed; //requestId -> timestamp -> value\n mapping(uint256 => uint256[]) public timestamps;\n \n bytes32 public constant REPORTER_ROLE = keccak256(\"reporter\");\n\n\n\n constructor () {c_0xf503494c(0xc6b08aee1d651760292ac4042ea653f2242c01b27c692bf2f796b0dd118556fd); /* function */ \n\nc_0xf503494c(0x4e39c00eefbbee98d2cded56bb95f7b6ed06a4e14a1e4d257e2f1f43a905666c); /* line */ \n c_0xf503494c(0xaec841abfb4957ad012487614461e6cc819f606aa8dca6a82a2aeb52739ed59f); /* statement */ \n_setupRole(DEFAULT_ADMIN_ROLE, msg.sender);\nc_0xf503494c(0x3f0cecc29788bc24b8534dfb7b04d0f2cce8ce746eec94b4526b5031cedf0a82); /* line */ \n c_0xf503494c(0x4098d1e1716964bc267dbc393b9ef5d166b4ccfd39b13c3456c564f44e2f0dfe); /* statement */ \n_setRoleAdmin(REPORTER_ROLE, DEFAULT_ADMIN_ROLE);\n }\n\n /**\n * @dev Modifier to restrict only to the admin role.\n */\n modifier onlyAdmin() {c_0xf503494c(0x0e77a5e54c196ea29dc309e2f68c4223daf1968de80adc5a2ac702bf5ab9c79e); /* function */ \n\nc_0xf503494c(0xe9f980434a095784833a291a073cdb6a41ab9199099578db1d3341acd44a2de4); /* line */ \n c_0xf503494c(0x9595b610fd1b9c919129dea5ddfe638c65600694e2ce37d9422f767f67c136ec); /* requirePre */ \nc_0xf503494c(0x78d0f1e7604b8b03fc1f985b1f847a1c7ffd01321438d1e4bd201dc1078a72a8); /* statement */ \nrequire(isAdmin(msg.sender), \"Restricted to admins.\");c_0xf503494c(0x429b3ecf8c1da568a2089c011fbeed3678bf23e259fd14668e6fbfef767fe468); /* requirePost */ \n\nc_0xf503494c(0x033b13fa1064ccc6c9ad4d7776ecef9aec9835a1d8f0c6150cd947abd1899cd5); /* line */ \n _;\n }\n\n /**\n * @dev Restricted to members of the reporter role.\n */\n modifier onlyReporter() {c_0xf503494c(0xdb6a90a54b65d1764e8ee79a43bdd2f7c2a4431893d626bcd880c2f19448b5ee); /* function */ \n\nc_0xf503494c(0x27ccd90b7616860b167fec7728964ebca577499d37563523771020f771f86b79); /* line */ \n c_0xf503494c(0x208d6e9f532361718fb114d7e0db6a73138ebe327364f74252a464005f3abf60); /* requirePre */ \nc_0xf503494c(0xd0d691e58a52651083ce0fbee977e615e0da240ff70d9da3a73db6d2948109fe); /* statement */ \nrequire(isReporter(msg.sender), \"Restricted to reporters.\");c_0xf503494c(0x32ce3529f686439a4004dd82a584fa9e3ff3b79cbd8490d775c887f6b5a1ea1c); /* requirePost */ \n\nc_0xf503494c(0xd2a345febcaa1bbfaafe0fb8b1e2ce0573f4676bb11a35fc0c7604ec79182bc1); /* line */ \n _;\n }\n\n /**\n @dev Add an account to the admin role. Restricted to admins.\n */\n function addAdmin(address account) public virtual onlyAdmin {c_0xf503494c(0xe22d29e131054f3c994f0d6d0e56b945c3b27d7d46bba6051e5117dc2557a9ce); /* function */ \n\nc_0xf503494c(0x5d9d4e99a91272d9835f0344f013f5ecedd68addb9fe76318cc5ab6ccc528aa7); /* line */ \n c_0xf503494c(0x779753cdb8855d295ba63b5e4fe53b52bf48c517a4f99d1e2b4bd54a790b952b); /* statement */ \ngrantRole(DEFAULT_ADMIN_ROLE, account);\n }\n\n /**\n * @dev Add an account to the reporter role. Restricted to admins.\n * @param account is the address of the reporter to give permissions to submit data\n */\n function addReporter(address account) public virtual onlyAdmin {c_0xf503494c(0x5513e8eb426176372e83e140cada4fa2da0f8572dee369b0c6c23b216dd0336e); /* function */ \n\nc_0xf503494c(0x5b1d0c6a7147f51924e51f4f33b18c5a033c2652cbf52b128f85a628c0f5a527); /* line */ \n c_0xf503494c(0xeb3f27b671e7dcbf9a96657edddce7d837b25ad448e7ca694624a31bbdf1dd17); /* statement */ \ngrantRole(REPORTER_ROLE, account);\n }\n\n /** \n * @dev Remove an account from the reporter role. Restricted to admins.\n */\n function removeReporter(address account) public virtual onlyAdmin {c_0xf503494c(0xf97011770cd3eebb1618366d789416ba95163a626f368ca4383dffc1952b3c76); /* function */ \n\nc_0xf503494c(0x610617ce496b0c0d0459b71c9c95724872c5b0252c78f630ff2c583c044f22d7); /* line */ \n c_0xf503494c(0xb934982a5d13e5de7749ddcb19a0d3e46082f0724fe020fb64b00bc5ba3d4a5f); /* statement */ \nrevokeRole(REPORTER_ROLE, account);\n }\n\n /** \n * @dev Remove oneself from the admin role.\n */\n function renounceAdmin() public virtual {c_0xf503494c(0x476652241d4761bd624a0c2555256ff09d5fb8c6084d631fe985ef14595f3d61); /* function */ \n\nc_0xf503494c(0x622c26f9fef51842b1a83c52fb48b055910186a93cae8de00b07e43937bec610); /* line */ \n c_0xf503494c(0x0409301906a6a9c2144c18a65b7d89aedd2ff8a4801f344b8c4c9bd1820c5b99); /* statement */ \nrenounceRole(DEFAULT_ADMIN_ROLE, msg.sender);\n }\n \n /**\n * @dev Return `true` if the account belongs to the admin role.\n */\n function isAdmin(address account) public virtual view returns (bool) {c_0xf503494c(0x8623039a08acd822dee121268547e346d7e7bea142de92a38c0f94b4669e58e8); /* function */ \n\nc_0xf503494c(0xcb806bb50a07d306fe4b316dfb44150591788ad097f80609103c5f7206acf0e3); /* line */ \n c_0xf503494c(0x9a2a3cc0e1c51a161fc2f8ae5596c51c35ab179eeaad4b058be813e61897b4c8); /* statement */ \nreturn hasRole(DEFAULT_ADMIN_ROLE, account);\n }\n\n /**\n * @dev Return `true` if the account belongs to the reporter role.\n */\n function isReporter(address account) public virtual view returns (bool) {c_0xf503494c(0xf54de96a6b0f1e302aee8d7f95829cefaa70b030610ecb0951f2e4bbaf8ce0c9); /* function */ \n\nc_0xf503494c(0xdab20ba11bed5171be2c2d093a3957bd914953271a869801b87be44cf64523c2); /* line */ \n c_0xf503494c(0xf5e03f50ce48fb20f632d63549ee11d9ec9348358f87d56206f2e23cc0d8a0e5); /* statement */ \nreturn hasRole(REPORTER_ROLE, account);\n }\n\n /**\n * @dev A mock function to submit a value to be read withoun miners needed\n * @param _requestId The tellorId to associate the value to\n * @param _value the value for the requestId\n */\n function submitValue(uint256 _requestId,uint256 _value) external {c_0xf503494c(0xb68984996296ad029cf1c0a5f1a0dbe3b4c1cc9783e3496ab762570e9311a54e); /* function */ \n\nc_0xf503494c(0xcd8329a6919154e0b467c3c10a069c8c734098c58a236f23f9cec2f183e0561e); /* line */ \n c_0xf503494c(0x407a553c794813dffd15ec66138cbcb88cf43cf000721ba905f91c17106a2201); /* requirePre */ \nc_0xf503494c(0x1494819d655fdf72b94a9ff2c059ce92bdf5a1d1e8793979f69782874fe83130); /* statement */ \nrequire(isReporter(msg.sender) || isAdmin(msg.sender), \"Sender must be an Admin or Reporter to submitValue\");c_0xf503494c(0x8ca6475829765540af2c1b59ee2d814b5dd433cf52800d812f9e6774b55eb376); /* requirePost */ \n\nc_0xf503494c(0x920e320c5254fcf4049309d9897d4bc88721355ee56cfa7e51d84d1950d3bd07); /* line */ \n c_0xf503494c(0xad4f78a587a01de431bcebb6a5c73627d8d338a654d65bc681f544b18ef87fe4); /* statement */ \nvalues[_requestId][block.timestamp] = _value;\nc_0xf503494c(0xdbf86b1ec5755caa9ebfe27e46b4413982ff59ff910f42a487b0eedff95e364b); /* line */ \n c_0xf503494c(0x2d16d3e857355920d0623bdd93cc0d23ad3ccd45e0df5a75d7bbfbabe13741df); /* statement */ \ntimestamps[_requestId].push(block.timestamp);\nc_0xf503494c(0xfac8d8cdacd09a6c65b89771ff88b2a5673371a4be79ab262af1669a31b618b4); /* line */ \n c_0xf503494c(0x3c48e8bd819e8b6df826dc24c7aa9fe3d831b9b618c0b7b721052ffb026aed7f); /* statement */ \nemit NewValue(_requestId, block.timestamp, _value);\n }\n\n\n /**\n * @dev Retreive value from oracle based on requestId/timestamp\n * @param _requestId being requested\n * @param _timestamp to retreive data/value from\n * @return uint value for requestId/timestamp submitted\n */\n function retrieveData(uint256 _requestId, uint256 _timestamp) public view returns(uint256){c_0xf503494c(0x3f18806e18d20dd0c20b1b0ace60256d681454dd013ca49ecfb200390d8ddf88); /* function */ \n\nc_0xf503494c(0x6d00c549f3c0bded4cdae463341b651885e0fb498816f59bfd10568a1ddf9652); /* line */ \n c_0xf503494c(0x8584091a725cc0c597289f1ede5eac9c8c2d5779c561d38d703684b79d22f7c1); /* statement */ \nreturn values[_requestId][_timestamp];\n }\n\n\n /**\n * @dev Counts the number of values that have been submited for the request\n * @param _requestId the requestId to look up\n * @return uint count of the number of values received for the requestId\n */\n function getNewValueCountbyRequestId(uint256 _requestId) public view returns(uint) {c_0xf503494c(0x503a16da38e71e7bace6fe1f99c69adf154700b332f7356a846e033dec9741da); /* function */ \n\nc_0xf503494c(0x2ed8d5fe9135677c477f8f3ecd7a4256f04a4ff301bba1bd98f77b53b0f5aa50); /* line */ \n c_0xf503494c(0x11aa2427fc89ed6e6ed31a082ab8c6ba00ecac83001d180ff9e562917cdc3387); /* statement */ \nreturn timestamps[_requestId].length;\n }\n\n /**\n * @dev Gets the timestamp for the value based on their index\n * @param _requestId is the requestId to look up\n * @param index is the value index to look up\n * @return uint timestamp\n */\n function getTimestampbyRequestIDandIndex(uint256 _requestId, uint256 index) public view returns(uint256) {c_0xf503494c(0x277c50936358732bcb7ce0411a22cbe9ab2337b20bd35e5dd5e1da7a1f6e652e); /* function */ \n\nc_0xf503494c(0xcc87f107edf8d44825dcab64e93c264d8e2e046b5bab84d3729ebbad781942c2); /* line */ \n c_0xf503494c(0x3ba42484ad8627222eb591cc7f5f41bc3e009db7b608b17adde0ed502e9c760a); /* statement */ \nuint len = timestamps[_requestId].length;\nc_0xf503494c(0xf813aad69bac4a813ed915bc4dbaa09cbf71a2af0d7c9a330736e2f36f0a0ed4); /* line */ \n c_0xf503494c(0xc3cefdf26052bb70f9ddb00df44cc5beb13dc5e2968f244d0f51beada13720d5); /* statement */ \nif(len == 0 || len <= index) {c_0xf503494c(0x2e33720cf25f6b8e1092b5a1bb96fb16002cef3d8405d41a71c58af31be2ce88); /* statement */ \nc_0xf503494c(0x09f30554b2afe6c5ae770212b081f5de25ec9de1167a12c385bffb04989c9e2c); /* branch */ \nreturn 0;}else { c_0xf503494c(0xd6e06438bb09af04503f235afee5e843e740b935e191b28eca427e01bdfaf85f); /* branch */ \n} \nc_0xf503494c(0xc902d63022b053c0c683c7861c39e35890eefaf3707eea062b6829cc7b187777); /* line */ \n c_0xf503494c(0x06691175a989b65eb9bd39d4bc024718fbdc0d256b780c67cf49916d878e4a4b); /* statement */ \nreturn timestamps[_requestId][index];\n }\n\n}" }, "@openzeppelin/contracts/access/AccessControl.sol": { "content": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\nimport \"../utils/EnumerableSet.sol\";\nimport \"../utils/Address.sol\";\nimport \"../GSN/Context.sol\";\n\n/**\n * @dev Contract module that allows children to implement role-based access\n * control mechanisms.\n *\n * Roles are referred to by their `bytes32` identifier. These should be exposed\n * in the external API and be unique. The best way to achieve this is by\n * using `public constant` hash digests:\n *\n * ```\n * bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n * ```\n *\n * Roles can be used to represent a set of permissions. To restrict access to a\n * function call, use {hasRole}:\n *\n * ```\n * function foo() public {\n * require(hasRole(MY_ROLE, msg.sender));\n * ...\n * }\n * ```\n *\n * Roles can be granted and revoked dynamically via the {grantRole} and\n * {revokeRole} functions. Each role has an associated admin role, and only\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n *\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n * that only accounts with this role will be able to grant or revoke other\n * roles. More complex role relationships can be created by using\n * {_setRoleAdmin}.\n *\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n * grant and revoke this role. Extra precautions should be taken to secure\n * accounts that have been granted it.\n */\nabstract contract AccessControl is Context {\n using EnumerableSet for EnumerableSet.AddressSet;\n using Address for address;\n\n struct RoleData {\n EnumerableSet.AddressSet members;\n bytes32 adminRole;\n }\n\n mapping (bytes32 => RoleData) private _roles;\n\n bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\n\n /**\n * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n *\n * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n * {RoleAdminChanged} not being emitted signaling this.\n *\n * _Available since v3.1._\n */\n event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n /**\n * @dev Emitted when `account` is granted `role`.\n *\n * `sender` is the account that originated the contract call, an admin role\n * bearer except when using {_setupRole}.\n */\n event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Emitted when `account` is revoked `role`.\n *\n * `sender` is the account that originated the contract call:\n * - if using `revokeRole`, it is the admin role bearer\n * - if using `renounceRole`, it is the role bearer (i.e. `account`)\n */\n event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Returns `true` if `account` has been granted `role`.\n */\n function hasRole(bytes32 role, address account) public view returns (bool) {\n return _roles[role].members.contains(account);\n }\n\n /**\n * @dev Returns the number of accounts that have `role`. Can be used\n * together with {getRoleMember} to enumerate all bearers of a role.\n */\n function getRoleMemberCount(bytes32 role) public view returns (uint256) {\n return _roles[role].members.length();\n }\n\n /**\n * @dev Returns one of the accounts that have `role`. `index` must be a\n * value between 0 and {getRoleMemberCount}, non-inclusive.\n *\n * Role bearers are not sorted in any particular way, and their ordering may\n * change at any point.\n *\n * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n * you perform all queries on the same block. See the following\n * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n * for more information.\n */\n function getRoleMember(bytes32 role, uint256 index) public view returns (address) {\n return _roles[role].members.at(index);\n }\n\n /**\n * @dev Returns the admin role that controls `role`. See {grantRole} and\n * {revokeRole}.\n *\n * To change a role's admin, use {_setRoleAdmin}.\n */\n function getRoleAdmin(bytes32 role) public view returns (bytes32) {\n return _roles[role].adminRole;\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function grantRole(bytes32 role, address account) public virtual {\n require(hasRole(_roles[role].adminRole, _msgSender()), \"AccessControl: sender must be an admin to grant\");\n\n _grantRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function revokeRole(bytes32 role, address account) public virtual {\n require(hasRole(_roles[role].adminRole, _msgSender()), \"AccessControl: sender must be an admin to revoke\");\n\n _revokeRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from the calling account.\n *\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\n * purpose is to provide a mechanism for accounts to lose their privileges\n * if they are compromised (such as when a trusted device is misplaced).\n *\n * If the calling account had been granted `role`, emits a {RoleRevoked}\n * event.\n *\n * Requirements:\n *\n * - the caller must be `account`.\n */\n function renounceRole(bytes32 role, address account) public virtual {\n require(account == _msgSender(), \"AccessControl: can only renounce roles for self\");\n\n _revokeRole(role, account);\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event. Note that unlike {grantRole}, this function doesn't perform any\n * checks on the calling account.\n *\n * [WARNING]\n * ====\n * This function should only be called from the constructor when setting\n * up the initial roles for the system.\n *\n * Using this function in any other way is effectively circumventing the admin\n * system imposed by {AccessControl}.\n * ====\n */\n function _setupRole(bytes32 role, address account) internal virtual {\n _grantRole(role, account);\n }\n\n /**\n * @dev Sets `adminRole` as ``role``'s admin role.\n *\n * Emits a {RoleAdminChanged} event.\n */\n function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\n emit RoleAdminChanged(role, _roles[role].adminRole, adminRole);\n _roles[role].adminRole = adminRole;\n }\n\n function _grantRole(bytes32 role, address account) private {\n if (_roles[role].members.add(account)) {\n emit RoleGranted(role, account, _msgSender());\n }\n }\n\n function _revokeRole(bytes32 role, address account) private {\n if (_roles[role].members.remove(account)) {\n emit RoleRevoked(role, account, _msgSender());\n }\n }\n}\n" @@ -24,7 +27,7 @@ }, "settings": { "optimizer": { - "enabled": true, + "enabled": false, "runs": 999999 }, "outputSelection": { @@ -39,6 +42,9 @@ "ast" ] } + }, + "metadata": { + "useLiteralContent": false } } }, @@ -330,15 +336,15 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bf4d9c20cf9f5d209028eac65924dde1de29811bc95443418f1061ee88e2c5c264736f6c63430007000033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBF 0x4D SWAP13 KECCAK256 0xCF SWAP16 0x5D KECCAK256 SWAP1 0x28 0xEA 0xC6 MSIZE 0x24 0xDD 0xE1 0xDE 0x29 DUP2 SHL 0xC9 SLOAD NUMBER COINBASE DUP16 LT PUSH2 0xEE88 0xE2 0xC5 0xC2 PUSH5 0x736F6C6343 STOP SMOD STOP STOP CALLER ", + "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a086234c04844d5dc8756f7a9e5475bf739511b3164e8922feac536a76382c6f64736f6c63430007000033", + "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG0 DUP7 0x23 0x4C DIV DUP5 0x4D 0x5D 0xC8 PUSH22 0x6F7A9E5475BF739511B3164E8922FEAC536A76382C6F PUSH5 0x736F6C6343 STOP SMOD STOP STOP CALLER ", "sourceMap": "134:6704:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "immutableReferences": {}, "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bf4d9c20cf9f5d209028eac65924dde1de29811bc95443418f1061ee88e2c5c264736f6c63430007000033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBF 0x4D SWAP13 KECCAK256 0xCF SWAP16 0x5D KECCAK256 SWAP1 0x28 0xEA 0xC6 MSIZE 0x24 0xDD 0xE1 0xDE 0x29 DUP2 SHL 0xC9 SLOAD NUMBER COINBASE DUP16 LT PUSH2 0xEE88 0xE2 0xC5 0xC2 PUSH5 0x736F6C6343 STOP SMOD STOP STOP CALLER ", + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a086234c04844d5dc8756f7a9e5475bf739511b3164e8922feac536a76382c6f64736f6c63430007000033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG0 DUP7 0x23 0x4C DIV DUP5 0x4D 0x5D 0xC8 PUSH22 0x6F7A9E5475BF739511B3164E8922FEAC536A76382C6F PUSH5 0x736F6C6343 STOP SMOD STOP STOP CALLER ", "sourceMap": "134:6704:2:-:0;;;;;;;;" }, "methodIdentifiers": {} @@ -351,39 +357,134 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e9934c6bd6b261c667391bb7f74d4026f4fc53401d39510c808acfbe0b998d2a64736f6c63430007000033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE9 SWAP4 0x4C PUSH12 0xD6B261C667391BB7F74D4026 DELEGATECALL 0xFC MSTORE8 BLOCKHASH SAR CODECOPY MLOAD 0xC DUP1 DUP11 0xCF 0xBE SIGNEXTEND SWAP10 DUP14 0x2A PUSH5 0x736F6C6343 STOP SMOD STOP STOP CALLER ", + "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122068acffbcec76709ef75cef27a93ffc77240995a099d143ef05563a02fc58ca9964736f6c63430007000033", + "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH9 0xACFFBCEC76709EF75C 0xEF 0x27 0xA9 EXTCODEHASH 0xFC PUSH24 0x240995A099D143EF05563A02FC58CA9964736F6C63430007 STOP STOP CALLER ", "sourceMap": "753:8598:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "immutableReferences": {}, "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e9934c6bd6b261c667391bb7f74d4026f4fc53401d39510c808acfbe0b998d2a64736f6c63430007000033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE9 SWAP4 0x4C PUSH12 0xD6B261C667391BB7F74D4026 DELEGATECALL 0xFC MSTORE8 BLOCKHASH SAR CODECOPY MLOAD 0xC DUP1 DUP11 0xCF 0xBE SIGNEXTEND SWAP10 DUP14 0x2A PUSH5 0x736F6C6343 STOP SMOD STOP STOP CALLER ", + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122068acffbcec76709ef75cef27a93ffc77240995a099d143ef05563a02fc58ca9964736f6c63430007000033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH9 0xACFFBCEC76709EF75C 0xEF 0x27 0xA9 EXTCODEHASH 0xFC PUSH24 0x240995A099D143EF05563A02FC58CA9964736F6C63430007 STOP STOP CALLER ", "sourceMap": "753:8598:3:-:0;;;;;;;;" }, "methodIdentifiers": {} } } }, + "contracts/Migrations.sol": { + "Migrations": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "c__0xabb147e4", + "type": "bytes32" + } + ], + "name": "c_0xabb147e4", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "last_completed_migration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "completed", + "type": "uint256" + } + ], + "name": "setCompleted", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561005057600080fd5b506103cf806100606000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063445df0ac146100515780638da5cb5b1461006f5780639d3cf043146100a3578063fdacd576146100d1575b600080fd5b6100596100ff565b6040518082815260200191505060405180910390f35b610077610105565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100cf600480360360208110156100b957600080fd5b8101908080359060200190929190505050610129565b005b6100fd600480360360208110156100e757600080fd5b810190808035906020019092919050505061012c565b005b60015481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b50565b6101587fd5046512d46e33a6845acffadfd1edae344fc32d651ce1ed6e342501296fe06060001b610129565b6101847fc04f4f02df9a30f356b5707c99e7334a580b79dba5132cfa7743f36350e390a360001b610129565b6101b07fccf584977502dca4873f0eccac42573699b8b625ce28d317cff93c64efa1315d60001b610129565b6101dc7f5ebc1168354748aac98338fbcf780960b1c7dff6c5744662d667250e39f5f63360001b610129565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610280576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806103676033913960400191505060405180910390fd5b6102ac7fd19a8f0f55452b58e34b7ca08928d8f205c8d8eebcf365651448b82ba5a786db60001b610129565b6102d87fa29403cd54b6214f491fcccf132a590a63fa3cd53e3c3b2733bfffdb3236b79060001b610129565b6103047ff45ce12012b9abd3ac6d8a616f43719db5528b3e70c7822796297a43ea8b1c9160001b610129565b6103307fec67cfe99587ece7204487993e407537d9b539167b13bf4a04026d257cb68ad260001b610129565b61035c7f7f15600e8540260d69357a6000cc99f6718a2dd33c27e526395b10e4373b383760001b610129565b806001819055505056fe546869732066756e6374696f6e206973207265737472696374656420746f2074686520636f6e74726163742773206f776e6572a264697066735822122075f73357b348e55ded006c27a1d006b3182a8d4b9c00cd1d10e310432908fc6164736f6c63430007000033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH2 0x50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CF DUP1 PUSH2 0x60 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x445DF0AC EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0x9D3CF043 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0xFDACD576 EQ PUSH2 0xD1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xFF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x77 PUSH2 0x105 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x129 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFD PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x12C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x158 PUSH32 0xD5046512D46E33A6845ACFFADFD1EDAE344FC32D651CE1ED6E342501296FE060 PUSH1 0x0 SHL PUSH2 0x129 JUMP JUMPDEST PUSH2 0x184 PUSH32 0xC04F4F02DF9A30F356B5707C99E7334A580B79DBA5132CFA7743F36350E390A3 PUSH1 0x0 SHL PUSH2 0x129 JUMP JUMPDEST PUSH2 0x1B0 PUSH32 0xCCF584977502DCA4873F0ECCAC42573699B8B625CE28D317CFF93C64EFA1315D PUSH1 0x0 SHL PUSH2 0x129 JUMP JUMPDEST PUSH2 0x1DC PUSH32 0x5EBC1168354748AAC98338FBCF780960B1C7DFF6C5744662D667250E39F5F633 PUSH1 0x0 SHL PUSH2 0x129 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x280 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x33 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x367 PUSH1 0x33 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2AC PUSH32 0xD19A8F0F55452B58E34B7CA08928D8F205C8D8EEBCF365651448B82BA5A786DB PUSH1 0x0 SHL PUSH2 0x129 JUMP JUMPDEST PUSH2 0x2D8 PUSH32 0xA29403CD54B6214F491FCCCF132A590A63FA3CD53E3C3B2733BFFFDB3236B790 PUSH1 0x0 SHL PUSH2 0x129 JUMP JUMPDEST PUSH2 0x304 PUSH32 0xF45CE12012B9ABD3AC6D8A616F43719DB5528B3E70C7822796297A43EA8B1C91 PUSH1 0x0 SHL PUSH2 0x129 JUMP JUMPDEST PUSH2 0x330 PUSH32 0xEC67CFE99587ECE7204487993E407537D9B539167B13BF4A04026D257CB68AD2 PUSH1 0x0 SHL PUSH2 0x129 JUMP JUMPDEST PUSH2 0x35C PUSH32 0x7F15600E8540260D69357A6000CC99F6718A2DD33C27E526395B10E4373B3837 PUSH1 0x0 SHL PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH1 0x1 DUP2 SWAP1 SSTORE POP POP JUMP INVALID SLOAD PUSH9 0x69732066756E637469 PUSH16 0x6E206973207265737472696374656420 PUSH21 0x6F2074686520636F6E74726163742773206F776E65 PUSH19 0xA264697066735822122075F73357B348E55DED STOP PUSH13 0x27A1D006B3182A8D4B9C00CD1D LT 0xE3 LT NUMBER 0x29 ADDMOD 0xFC PUSH2 0x6473 PUSH16 0x6C634300070000330000000000000000 ", + "sourceMap": "66:1290:4:-:0;;;174:10;151:33;;;;;;;;;;;;;;;;;;;;66:1290;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c8063445df0ac146100515780638da5cb5b1461006f5780639d3cf043146100a3578063fdacd576146100d1575b600080fd5b6100596100ff565b6040518082815260200191505060405180910390f35b610077610105565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100cf600480360360208110156100b957600080fd5b8101908080359060200190929190505050610129565b005b6100fd600480360360208110156100e757600080fd5b810190808035906020019092919050505061012c565b005b60015481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b50565b6101587fd5046512d46e33a6845acffadfd1edae344fc32d651ce1ed6e342501296fe06060001b610129565b6101847fc04f4f02df9a30f356b5707c99e7334a580b79dba5132cfa7743f36350e390a360001b610129565b6101b07fccf584977502dca4873f0eccac42573699b8b625ce28d317cff93c64efa1315d60001b610129565b6101dc7f5ebc1168354748aac98338fbcf780960b1c7dff6c5744662d667250e39f5f63360001b610129565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610280576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806103676033913960400191505060405180910390fd5b6102ac7fd19a8f0f55452b58e34b7ca08928d8f205c8d8eebcf365651448b82ba5a786db60001b610129565b6102d87fa29403cd54b6214f491fcccf132a590a63fa3cd53e3c3b2733bfffdb3236b79060001b610129565b6103047ff45ce12012b9abd3ac6d8a616f43719db5528b3e70c7822796297a43ea8b1c9160001b610129565b6103307fec67cfe99587ece7204487993e407537d9b539167b13bf4a04026d257cb68ad260001b610129565b61035c7f7f15600e8540260d69357a6000cc99f6718a2dd33c27e526395b10e4373b383760001b610129565b806001819055505056fe546869732066756e6374696f6e206973207265737472696374656420746f2074686520636f6e74726163742773206f776e6572a264697066735822122075f73357b348e55ded006c27a1d006b3182a8d4b9c00cd1d10e310432908fc6164736f6c63430007000033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x445DF0AC EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0x9D3CF043 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0xFDACD576 EQ PUSH2 0xD1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xFF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x77 PUSH2 0x105 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x129 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFD PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x12C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x158 PUSH32 0xD5046512D46E33A6845ACFFADFD1EDAE344FC32D651CE1ED6E342501296FE060 PUSH1 0x0 SHL PUSH2 0x129 JUMP JUMPDEST PUSH2 0x184 PUSH32 0xC04F4F02DF9A30F356B5707C99E7334A580B79DBA5132CFA7743F36350E390A3 PUSH1 0x0 SHL PUSH2 0x129 JUMP JUMPDEST PUSH2 0x1B0 PUSH32 0xCCF584977502DCA4873F0ECCAC42573699B8B625CE28D317CFF93C64EFA1315D PUSH1 0x0 SHL PUSH2 0x129 JUMP JUMPDEST PUSH2 0x1DC PUSH32 0x5EBC1168354748AAC98338FBCF780960B1C7DFF6C5744662D667250E39F5F633 PUSH1 0x0 SHL PUSH2 0x129 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x280 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x33 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x367 PUSH1 0x33 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2AC PUSH32 0xD19A8F0F55452B58E34B7CA08928D8F205C8D8EEBCF365651448B82BA5A786DB PUSH1 0x0 SHL PUSH2 0x129 JUMP JUMPDEST PUSH2 0x2D8 PUSH32 0xA29403CD54B6214F491FCCCF132A590A63FA3CD53E3C3B2733BFFFDB3236B790 PUSH1 0x0 SHL PUSH2 0x129 JUMP JUMPDEST PUSH2 0x304 PUSH32 0xF45CE12012B9ABD3AC6D8A616F43719DB5528B3E70C7822796297A43EA8B1C91 PUSH1 0x0 SHL PUSH2 0x129 JUMP JUMPDEST PUSH2 0x330 PUSH32 0xEC67CFE99587ECE7204487993E407537D9B539167B13BF4A04026D257CB68AD2 PUSH1 0x0 SHL PUSH2 0x129 JUMP JUMPDEST PUSH2 0x35C PUSH32 0x7F15600E8540260D69357A6000CC99F6718A2DD33C27E526395B10E4373B3837 PUSH1 0x0 SHL PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH1 0x1 DUP2 SWAP1 SSTORE POP POP JUMP INVALID SLOAD PUSH9 0x69732066756E637469 PUSH16 0x6E206973207265737472696374656420 PUSH21 0x6F2074686520636F6E74726163742773206F776E65 PUSH19 0xA264697066735822122075F73357B348E55DED STOP PUSH13 0x27A1D006B3182A8D4B9C00CD1D LT 0xE3 LT NUMBER 0x29 ADDMOD 0xFC PUSH2 0x6473 PUSH16 0x6C634300070000330000000000000000 ", + "sourceMap": "66:1290:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;188:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;151:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;88:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;960:394;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;188:36;;;;:::o;151:33::-;;;;;;;;;;;;:::o;88:59::-;;:::o;960:394::-;252:80;265:66;252:80;;:12;:80::i;:::-;351;364:66;351:80;;:12;:80::i;:::-;449;462:66;449:80;;:12;:80::i;:::-;549;562:66;549:80;;:12;:80::i;:::-;677:5;;;;;;;;;;663:19;;:10;:19;;;648:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;750:80;763:66;750:80;;:12;:80::i;:::-;852;865:66;852:80;;:12;:80::i;:::-;1017::::1;1030:66;1017:80;;:12;:80::i;:::-;1116;1129:66;1116:80;;:12;:80::i;:::-;1214;1227:66;1214:80;;:12;:80::i;:::-;1340:9;1313:24;:36;;;;960:394:::0;:::o" + }, + "methodIdentifiers": { + "c_0xabb147e4(bytes32)": "9d3cf043", + "last_completed_migration()": "445df0ac", + "owner()": "8da5cb5b", + "setCompleted(uint256)": "fdacd576" + } + } + } + }, "contracts/TellorAccess.sol": { "SafeMath": { - "abi": [], + "abi": [ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "c__0xcb92bccd", + "type": "bytes32" + } + ], + "name": "c_0xcb92bccd", + "outputs": [], + "stateMutability": "pure", + "type": "function" + } + ], "evm": { "bytecode": { "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dbedd12e0278698c7e9c6ebf394e500f925e6c8c78a9051d00d47fb62102cf4064736f6c63430007000033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDB 0xED 0xD1 0x2E MUL PUSH25 0x698C7E9C6EBF394E500F925E6C8C78A9051D00D47FB62102CF BLOCKHASH PUSH5 0x736F6C6343 STOP SMOD STOP STOP CALLER ", - "sourceMap": "117:1718:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;" + "object": "609c610024600b82828239805160001a607314601757fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060335760003560e01c8063fa401a6a146038575b600080fd5b606160048036036020811015604c57600080fd5b81019080803590602001909291905050506063565b005b5056fea26469706673582212205b0494540674642a74b9d9b9b088a62fac397c11ccc4cb049ddfe3792d3d5e6864736f6c63430007000033", + "opcodes": "PUSH1 0x9C PUSH2 0x24 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x17 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x33 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xFA401A6A EQ PUSH1 0x38 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x61 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH1 0x4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH1 0x63 JUMP JUMPDEST STOP JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPDEST DIV SWAP5 SLOAD MOD PUSH21 0x642A74B9D9B9B088A62FAC397C11CCC4CB049DDFE3 PUSH26 0x2D3D5E6864736F6C634300070000330000000000000000000000 ", + "sourceMap": "117:7435:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "immutableReferences": {}, "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dbedd12e0278698c7e9c6ebf394e500f925e6c8c78a9051d00d47fb62102cf4064736f6c63430007000033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDB 0xED 0xD1 0x2E MUL PUSH25 0x698C7E9C6EBF394E500F925E6C8C78A9051D00D47FB62102CF BLOCKHASH PUSH5 0x736F6C6343 STOP SMOD STOP STOP CALLER ", - "sourceMap": "117:1718:4:-:0;;;;;;;;" + "object": "730000000000000000000000000000000000000000301460806040526004361060335760003560e01c8063fa401a6a146038575b600080fd5b606160048036036020811015604c57600080fd5b81019080803590602001909291905050506063565b005b5056fea26469706673582212205b0494540674642a74b9d9b9b088a62fac397c11ccc4cb049ddfe3792d3d5e6864736f6c63430007000033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x33 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xFA401A6A EQ PUSH1 0x38 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x61 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH1 0x4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH1 0x63 JUMP JUMPDEST STOP JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPDEST DIV SWAP5 SLOAD MOD PUSH21 0x642A74B9D9B9B088A62FAC397C11CCC4CB049DDFE3 PUSH26 0x2D3D5E6864736F6C634300070000330000000000000000000000 ", + "sourceMap": "117:7435:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;136:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o" }, - "methodIdentifiers": {} + "methodIdentifiers": { + "c_0xcb92bccd(bytes32)": "fa401a6a" + } } }, "TellorAccess": { @@ -545,6 +646,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "c__0xf503494c", + "type": "bytes32" + } + ], + "name": "c_0xf503494c", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { @@ -880,22 +994,23 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "60806040523480156200001157600080fd5b506200001f60003362000052565b6200004c7f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a6600062000062565b620001b8565b6200005e8282620000b4565b5050565b600082815260208190526040808220600201549051839285917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a460009182526020829052604090912060020155565b600082815260208181526040909120620000d991839062000ad06200012d821b17901c565b156200005e57620000e96200014d565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600062000144836001600160a01b03841662000151565b90505b92915050565b3390565b60006200015f8383620001a0565b620001975750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000147565b50600062000147565b60009081526001919091016020526040902054151590565b610f3780620001c86000396000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c806377fbb663116100d8578063a217fddf1161008c578063d547741f11610066578063d547741f14610462578063dd8755f21461049b578063fb0ceb04146104ce57610177565b8063a217fddf1461041a578063a318370114610422578063ca15c8731461044557610177565b80639010d07c116100bd5780639010d07c1461037257806391d14854146103be57806393fa4915146103f757610177565b806377fbb663146103475780638bad0c0a1461036a57610177565b80633f60d7991161012f5780635de5c212116101145780635de5c212146102be57806362f55112146102f1578063704802751461031457610177565b80633f60d7991461029957806346eee1c4146102a157610177565b806324d7806c1161016057806324d7806c146101f25780632f2ff15d1461022557806336568abe1461026057610177565b8063044ad7be1461017c578063248a9ca3146101c3575b600080fd5b6101af6004803603602081101561019257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104f1565b604080519115158252519081900360200190f35b6101e0600480360360208110156101d957600080fd5b5035610523565b60408051918252519081900360200190f35b6101af6004803603602081101561020857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610538565b61025e6004803603604081101561023b57600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff16610544565b005b61025e6004803603604081101561027657600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff166105ca565b6101e061065f565b6101e0600480360360208110156102b757600080fd5b5035610683565b61025e600480360360208110156102d457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610695565b61025e6004803603604081101561030757600080fd5b5080359060200135610736565b61025e6004803603602081101561032a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661081f565b6101e06004803603604081101561035d57600080fd5b508035906020013561089e565b61025e6108f7565b6103956004803603604081101561038857600080fd5b5080359060200135610904565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101af600480360360408110156103d457600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff16610923565b6101e06004803603604081101561040d57600080fd5b508035906020013561093b565b6101e0610958565b6101e06004803603604081101561043857600080fd5b508035906020013561095d565b6101e06004803603602081101561045b57600080fd5b503561097a565b61025e6004803603604081101561047857600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff16610991565b61025e600480360360208110156104b157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610a04565b6101e0600480360360408110156104e457600080fd5b5080359060200135610aa2565b600061051d7f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a683610923565b92915050565b60009081526020819052604090206002015490565b600061051d8183610923565b60008281526020819052604090206002015461056790610562610af2565b610923565b6105bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180610e42602f913960400191505060405180910390fd5b6105c68282610af6565b5050565b6105d2610af2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180610ed3602f913960400191505060405180910390fd5b6105c68282610b79565b7f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a681565b60009081526002602052604090205490565b61069e33610538565b61070957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5265737472696374656420746f2061646d696e732e0000000000000000000000604482015290519081900360640190fd5b6107337f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a682610991565b50565b61073f336104f1565b8061074e575061074e33610538565b6107a3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180610e716032913960400191505060405180910390fd5b6000828152600160208181526040808420428086529083528185208690558685526002835281852080549485018155855293829020909201839055815185815290810192909252818101839052517fba11e319aee26e7bbac889432515ba301ec8f6d27bf6b94829c21a65c5f6ff259181900360600190a15050565b61082833610538565b61089357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5265737472696374656420746f2061646d696e732e0000000000000000000000604482015290519081900360640190fd5b610733600082610544565b6000828152600260205260408120548015806108ba5750828111155b156108c957600091505061051d565b60008481526002602052604090208054849081106108e357fe5b906000526020600020015491505092915050565b6109026000336105ca565b565b600082815260208190526040812061091c9083610bfc565b9392505050565b600082815260208190526040812061091c9083610c08565b600091825260016020908152604080842092845291905290205490565b600081565b600160209081526000928352604080842090915290825290205481565b600081815260208190526040812061051d90610c2a565b6000828152602081905260409020600201546109af90610562610af2565b610655576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180610ea36030913960400191505060405180910390fd5b610a0d33610538565b610a7857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5265737472696374656420746f2061646d696e732e0000000000000000000000604482015290519081900360640190fd5b6107337f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a682610544565b60026020528160005260406000208181548110610abb57fe5b90600052602060002001600091509150505481565b600061091c8373ffffffffffffffffffffffffffffffffffffffff8416610c35565b3390565b6000828152602081905260409020610b0e9082610ad0565b156105c657610b1b610af2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081905260409020610b919082610c7f565b156105c657610b9e610af2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b600061091c8383610ca1565b600061091c8373ffffffffffffffffffffffffffffffffffffffff8416610d1f565b600061051d82610d37565b6000610c418383610d1f565b610c775750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561051d565b50600061051d565b600061091c8373ffffffffffffffffffffffffffffffffffffffff8416610d3b565b81546000908210610cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610e206022913960400191505060405180910390fd5b826000018281548110610d0c57fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b60008181526001830160205260408120548015610e155783547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8083019190810190600090879083908110610d8c57fe5b9060005260206000200154905080876000018481548110610da957fe5b600091825260208083209091019290925582815260018981019092526040902090840190558654879080610dd957fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061051d565b600091505061051d56fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7453656e646572206d75737420626520616e2041646d696e206f72205265706f7274657220746f207375626d697456616c7565416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a2646970667358221220e811515895d413116d25b636bd764bf801b048dc8fbdceb8e01205253ae8ffbc64736f6c63430007000033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x1F PUSH1 0x0 CALLER PUSH3 0x52 JUMP JUMPDEST PUSH3 0x4C PUSH32 0x176C2B761BFEB5DAB89F614B6C08152E31D9230394B3605EABF32249EA1C89A6 PUSH1 0x0 PUSH3 0x62 JUMP JUMPDEST PUSH3 0x1B8 JUMP JUMPDEST PUSH3 0x5E DUP3 DUP3 PUSH3 0xB4 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 MLOAD DUP4 SWAP3 DUP6 SWAP2 PUSH32 0xBD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF SWAP2 SWAP1 LOG4 PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 ADD SSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH3 0xD9 SWAP2 DUP4 SWAP1 PUSH3 0xAD0 PUSH3 0x12D DUP3 SHL OR SWAP1 SHR JUMP JUMPDEST ISZERO PUSH3 0x5E JUMPI PUSH3 0xE9 PUSH3 0x14D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x144 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH3 0x151 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x15F DUP4 DUP4 PUSH3 0x1A0 JUMP JUMPDEST PUSH3 0x197 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH3 0x147 JUMP JUMPDEST POP PUSH1 0x0 PUSH3 0x147 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH2 0xF37 DUP1 PUSH3 0x1C8 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x177 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x77FBB663 GT PUSH2 0xD8 JUMPI DUP1 PUSH4 0xA217FDDF GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xD547741F GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0xDD8755F2 EQ PUSH2 0x49B JUMPI DUP1 PUSH4 0xFB0CEB04 EQ PUSH2 0x4CE JUMPI PUSH2 0x177 JUMP JUMPDEST DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x41A JUMPI DUP1 PUSH4 0xA3183701 EQ PUSH2 0x422 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x445 JUMPI PUSH2 0x177 JUMP JUMPDEST DUP1 PUSH4 0x9010D07C GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x372 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x3BE JUMPI DUP1 PUSH4 0x93FA4915 EQ PUSH2 0x3F7 JUMPI PUSH2 0x177 JUMP JUMPDEST DUP1 PUSH4 0x77FBB663 EQ PUSH2 0x347 JUMPI DUP1 PUSH4 0x8BAD0C0A EQ PUSH2 0x36A JUMPI PUSH2 0x177 JUMP JUMPDEST DUP1 PUSH4 0x3F60D799 GT PUSH2 0x12F JUMPI DUP1 PUSH4 0x5DE5C212 GT PUSH2 0x114 JUMPI DUP1 PUSH4 0x5DE5C212 EQ PUSH2 0x2BE JUMPI DUP1 PUSH4 0x62F55112 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x70480275 EQ PUSH2 0x314 JUMPI PUSH2 0x177 JUMP JUMPDEST DUP1 PUSH4 0x3F60D799 EQ PUSH2 0x299 JUMPI DUP1 PUSH4 0x46EEE1C4 EQ PUSH2 0x2A1 JUMPI PUSH2 0x177 JUMP JUMPDEST DUP1 PUSH4 0x24D7806C GT PUSH2 0x160 JUMPI DUP1 PUSH4 0x24D7806C EQ PUSH2 0x1F2 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x225 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x260 JUMPI PUSH2 0x177 JUMP JUMPDEST DUP1 PUSH4 0x44AD7BE EQ PUSH2 0x17C JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1C3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x192 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x523 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1AF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x208 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x538 JUMP JUMPDEST PUSH2 0x25E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x23B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x544 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x25E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x276 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x5CA JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x65F JUMP JUMPDEST PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x683 JUMP JUMPDEST PUSH2 0x25E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x695 JUMP JUMPDEST PUSH2 0x25E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x307 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x736 JUMP JUMPDEST PUSH2 0x25E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x32A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x81F JUMP JUMPDEST PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x89E JUMP JUMPDEST PUSH2 0x25E PUSH2 0x8F7 JUMP JUMPDEST PUSH2 0x395 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x388 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x904 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1AF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x923 JUMP JUMPDEST PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x40D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x93B JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x958 JUMP JUMPDEST PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x438 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x95D JUMP JUMPDEST PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x45B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x97A JUMP JUMPDEST PUSH2 0x25E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x478 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x991 JUMP JUMPDEST PUSH2 0x25E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xA04 JUMP JUMPDEST PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x4E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xAA2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51D PUSH32 0x176C2B761BFEB5DAB89F614B6C08152E31D9230394B3605EABF32249EA1C89A6 DUP4 PUSH2 0x923 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51D DUP2 DUP4 PUSH2 0x923 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x567 SWAP1 PUSH2 0x562 PUSH2 0xAF2 JUMP JUMPDEST PUSH2 0x923 JUMP JUMPDEST PUSH2 0x5BC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xE42 PUSH1 0x2F SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5C6 DUP3 DUP3 PUSH2 0xAF6 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x5D2 PUSH2 0xAF2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x655 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xED3 PUSH1 0x2F SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5C6 DUP3 DUP3 PUSH2 0xB79 JUMP JUMPDEST PUSH32 0x176C2B761BFEB5DAB89F614B6C08152E31D9230394B3605EABF32249EA1C89A6 DUP2 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x69E CALLER PUSH2 0x538 JUMP JUMPDEST PUSH2 0x709 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5265737472696374656420746F2061646D696E732E0000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x733 PUSH32 0x176C2B761BFEB5DAB89F614B6C08152E31D9230394B3605EABF32249EA1C89A6 DUP3 PUSH2 0x991 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x73F CALLER PUSH2 0x4F1 JUMP JUMPDEST DUP1 PUSH2 0x74E JUMPI POP PUSH2 0x74E CALLER PUSH2 0x538 JUMP JUMPDEST PUSH2 0x7A3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x32 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xE71 PUSH1 0x32 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 TIMESTAMP DUP1 DUP7 MSTORE SWAP1 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP7 SWAP1 SSTORE DUP7 DUP6 MSTORE PUSH1 0x2 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP1 SLOAD SWAP5 DUP6 ADD DUP2 SSTORE DUP6 MSTORE SWAP4 DUP3 SWAP1 KECCAK256 SWAP1 SWAP3 ADD DUP4 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP1 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP2 DUP2 ADD DUP4 SWAP1 MSTORE MLOAD PUSH32 0xBA11E319AEE26E7BBAC889432515BA301EC8F6D27BF6B94829C21A65C5F6FF25 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x828 CALLER PUSH2 0x538 JUMP JUMPDEST PUSH2 0x893 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5265737472696374656420746F2061646D696E732E0000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x733 PUSH1 0x0 DUP3 PUSH2 0x544 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO DUP1 PUSH2 0x8BA JUMPI POP DUP3 DUP2 GT ISZERO JUMPDEST ISZERO PUSH2 0x8C9 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x51D JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP5 SWAP1 DUP2 LT PUSH2 0x8E3 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x902 PUSH1 0x0 CALLER PUSH2 0x5CA JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x91C SWAP1 DUP4 PUSH2 0xBFC JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x91C SWAP1 DUP4 PUSH2 0xC08 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP3 DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x51D SWAP1 PUSH2 0xC2A JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x9AF SWAP1 PUSH2 0x562 PUSH2 0xAF2 JUMP JUMPDEST PUSH2 0x655 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x30 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xEA3 PUSH1 0x30 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA0D CALLER PUSH2 0x538 JUMP JUMPDEST PUSH2 0xA78 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5265737472696374656420746F2061646D696E732E0000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x733 PUSH32 0x176C2B761BFEB5DAB89F614B6C08152E31D9230394B3605EABF32249EA1C89A6 DUP3 PUSH2 0x544 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xABB JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91C DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH2 0xC35 JUMP JUMPDEST CALLER SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xB0E SWAP1 DUP3 PUSH2 0xAD0 JUMP JUMPDEST ISZERO PUSH2 0x5C6 JUMPI PUSH2 0xB1B PUSH2 0xAF2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xB91 SWAP1 DUP3 PUSH2 0xC7F JUMP JUMPDEST ISZERO PUSH2 0x5C6 JUMPI PUSH2 0xB9E PUSH2 0xAF2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91C DUP4 DUP4 PUSH2 0xCA1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91C DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH2 0xD1F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51D DUP3 PUSH2 0xD37 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC41 DUP4 DUP4 PUSH2 0xD1F JUMP JUMPDEST PUSH2 0xC77 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x51D JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x51D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91C DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH2 0xD3B JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 SWAP1 DUP3 LT PUSH2 0xCFD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xE20 PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xD0C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0xE15 JUMPI DUP4 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP4 ADD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x0 SWAP1 DUP8 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0xD8C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xDA9 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE DUP3 DUP2 MSTORE PUSH1 0x1 DUP10 DUP2 ADD SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP5 ADD SWAP1 SSTORE DUP7 SLOAD DUP8 SWAP1 DUP1 PUSH2 0xDD9 JUMPI INVALID JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP7 PUSH1 0x1 ADD PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x51D JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x51D JUMP INVALID GASLIMIT PUSH15 0x756D657261626C655365743A20696E PUSH5 0x6578206F75 PUSH21 0x206F6620626F756E6473416363657373436F6E7472 PUSH16 0x6C3A2073656E646572206D7573742062 PUSH6 0x20616E206164 PUSH14 0x696E20746F206772616E7453656E PUSH5 0x6572206D75 PUSH20 0x7420626520616E2041646D696E206F7220526570 PUSH16 0x7274657220746F207375626D69745661 PUSH13 0x7565416363657373436F6E7472 PUSH16 0x6C3A2073656E646572206D7573742062 PUSH6 0x20616E206164 PUSH14 0x696E20746F207265766F6B654163 PUSH4 0x65737343 PUSH16 0x6E74726F6C3A2063616E206F6E6C7920 PUSH19 0x656E6F756E636520726F6C657320666F722073 PUSH6 0x6C66A2646970 PUSH7 0x7358221220E811 MLOAD PC SWAP6 0xD4 SGT GT PUSH14 0x25B636BD764BF801B048DC8FBDCE 0xB8 0xE0 SLT SDIV 0x25 GASPRICE 0xE8 SELFDESTRUCT 0xBC PUSH5 0x736F6C6343 STOP SMOD STOP STOP CALLER ", - "sourceMap": "1837:4114:4:-:0;;;2329:132;;;;;;;;;-1:-1:-1;2354:42:4;1770:4:1;2385:10:4;2354;:42::i;:::-;2406:48;2299:21;1770:4:1;2406:13:4;:48::i;:::-;1837:4114;;6586:110:1;6664:25;6675:4;6681:7;6664:10;:25::i;:::-;6586:110;;:::o;6821:196::-;6932:6;:12;;;;;;;;;;;:22;;;6909:57;;6956:9;;6939:4;;6909:57;;6932:6;6909:57;6976:6;:12;;;;;;;;;;;:22;;:34;6821:196::o;7023:184::-;7096:6;:12;;;;;;;;;;;:33;;7121:7;;7096:24;;;;;:33;;:::i;:::-;7092:109;;;7177:12;:10;:12::i;:::-;-1:-1:-1;;;;;7150:40:1;7168:7;-1:-1:-1;;;;;7150:40:1;7162:4;7150:40;;;;;;;;;;7023:184;;:::o;6429:141:3:-;6499:4;6522:41;6527:3;-1:-1:-1;;;;;6547:14:3;;6522:4;:41::i;:::-;6515:48;;6429:141;;;;;:::o;598:104:0:-;685:10;598:104;:::o;1640:404:3:-;1703:4;1724:21;1734:3;1739:5;1724:9;:21::i;:::-;1719:319;;-1:-1:-1;1761:23:3;;;;;;;;:11;:23;;;;;;;;;;;;;1941:18;;1919:19;;;:12;;;:19;;;;;;:40;;;;1973:11;;1719:319;-1:-1:-1;2022:5:3;2015:12;;3805:127;3878:4;3901:19;;;:12;;;;;:19;;;;;;:24;;;3805:127::o;1837:4114:4:-;;;;;;;" + "object": "60806040523480156200001157600080fd5b50620000467fc6b08aee1d651760292ac4042ea653f2242c01b27c692bf2f796b0dd118556fd60001b6200016660201b60201c565b6200007a7f4e39c00eefbbee98d2cded56bb95f7b6ed06a4e14a1e4d257e2f1f43a905666c60001b6200016660201b60201c565b620000ae7faec841abfb4957ad012487614461e6cc819f606aa8dca6a82a2aeb52739ed59f60001b6200016660201b60201c565b620000c36000801b336200016960201b60201c565b620000f77f3f0cecc29788bc24b8534dfb7b04d0f2cce8ce746eec94b4526b5031cedf0a8260001b6200016660201b60201c565b6200012b7f4098d1e1716964bc267dbc393b9ef5d166b4ccfd39b13c3456c564f44e2f0dfe60001b6200016660201b60201c565b620001607f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a66000801b6200017f60201b60201c565b62000361565b50565b6200017b8282620001e160201b60201c565b5050565b8060008084815260200190815260200160002060020154837fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a480600080848152602001908152602001600020600201819055505050565b6200020f816000808581526020019081526020016000206000016200028460201b6200190c1790919060201c565b15620002805762000225620002bc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620002b4836000018373ffffffffffffffffffffffffffffffffffffffff1660001b620002c460201b60201c565b905092915050565b600033905090565b6000620002d883836200033e60201b60201c565b6200033357826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905062000338565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b611e2080620003716000396000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c80638bad0c0a116100d8578063a31837011161008c578063dd8755f211610066578063dd8755f21461069b578063de0ef188146106df578063fb0ceb041461070d57610182565b8063a3183701146105bf578063ca15c8731461060b578063d547741f1461064d57610182565b806391d14854116100bd57806391d14854146104f157806393fa491514610555578063a217fddf146105a157610182565b80638bad0c0a146104855780639010d07c1461048f57610182565b80633f60d7991161013a57806362f551121161011457806362f55112146103bd57806370480275146103f557806377fbb6631461043957610182565b80633f60d7991461031957806346eee1c4146103375780635de5c2121461037957610182565b806324d7806c1161016b57806324d7806c146102235780632f2ff15d1461027d57806336568abe146102cb57610182565b8063044ad7be14610187578063248a9ca3146101e1575b600080fd5b6101c96004803603602081101561019d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610759565b60405180821515815260200191505060405180910390f35b61020d600480360360208110156101f757600080fd5b8101908080359060200190929190505050610810565b6040518082815260200191505060405180910390f35b6102656004803603602081101561023957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061082f565b60405180821515815260200191505060405180910390f35b6102c96004803603604081101561029357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c9565b005b610317600480360360408110156102e157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610952565b005b6103216109eb565b6040518082815260200191505060405180910390f35b6103636004803603602081101561034d57600080fd5b8101908080359060200190929190505050610a0f565b6040518082815260200191505060405180910390f35b6103bb6004803603602081101561038f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ab3565b005b6103f3600480360360408110156103d357600080fd5b810190808035906020019092919080359060200190929190505050610ce7565b005b6104376004803603602081101561040b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fe7565b005b61046f6004803603604081101561044f57600080fd5b8101908080359060200190929190803590602001909291905050506111fe565b6040518082815260200191505060405180910390f35b61048d611424565b005b6104c5600480360360408110156104a557600080fd5b8101908080359060200190929190803590602001909291905050506114b7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61053d6004803603604081101561050757600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114e8565b60405180821515815260200191505060405180910390f35b61058b6004803603604081101561056b57600080fd5b810190808035906020019092919080359060200190929190505050611519565b6040518082815260200191505060405180910390f35b6105a96115cc565b6040518082815260200191505060405180910390f35b6105f5600480360360408110156105d557600080fd5b8101908080359060200190929190803590602001909291905050506115d3565b6040518082815260200191505060405180910390f35b6106376004803603602081101561062157600080fd5b81019080803590602001909291905050506115f8565b6040518082815260200191505060405180910390f35b6106996004803603604081101561066357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061161e565b005b6106dd600480360360208110156106b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116a7565b005b61070b600480360360208110156106f557600080fd5b81019080803590602001909291905050506118db565b005b6107436004803603604081101561072357600080fd5b8101908080359060200190929190803590602001909291905050506118de565b6040518082815260200191505060405180910390f35b60006107877ff54de96a6b0f1e302aee8d7f95829cefaa70b030610ecb0951f2e4bbaf8ce0c960001b6118db565b6107b37fdab20ba11bed5171be2c2d093a3957bd914953271a869801b87be44cf64523c260001b6118db565b6107df7ff5e03f50ce48fb20f632d63549ee11d9ec9348358f87d56206f2e23cc0d8a0e560001b6118db565b6108097f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a6836114e8565b9050919050565b6000806000838152602001908152602001600020600201549050919050565b600061085d7f8623039a08acd822dee121268547e346d7e7bea142de92a38c0f94b4669e58e860001b6118db565b6108897fcb806bb50a07d306fe4b316dfb44150591788ad097f80609103c5f7206acf0e360001b6118db565b6108b57f9a2a3cc0e1c51a161fc2f8ae5596c51c35ab179eeaad4b058be813e61897b4c860001b6118db565b6108c26000801b836114e8565b9050919050565b6108ef600080848152602001908152602001600020600201546108ea61193c565b6114e8565b610944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611d2b602f913960400191505060405180910390fd5b61094e8282611944565b5050565b61095a61193c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146109dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611dbc602f913960400191505060405180910390fd5b6109e782826119d7565b5050565b7f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a681565b6000610a3d7f503a16da38e71e7bace6fe1f99c69adf154700b332f7356a846e033dec9741da60001b6118db565b610a697f2ed8d5fe9135677c477f8f3ecd7a4256f04a4ff301bba1bd98f77b53b0f5aa5060001b6118db565b610a957f11aa2427fc89ed6e6ed31a082ab8c6ba00ecac83001d180ff9e562917cdc338760001b6118db565b60026000838152602001908152602001600020805490509050919050565b610adf7f0e77a5e54c196ea29dc309e2f68c4223daf1968de80adc5a2ac702bf5ab9c79e60001b6118db565b610b0b7fe9f980434a095784833a291a073cdb6a41ab9199099578db1d3341acd44a2de460001b6118db565b610b377f9595b610fd1b9c919129dea5ddfe638c65600694e2ce37d9422f767f67c136ec60001b6118db565b610b637f78d0f1e7604b8b03fc1f985b1f847a1c7ffd01321438d1e4bd201dc1078a72a860001b6118db565b610b6c3361082f565b610bde576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f5265737472696374656420746f2061646d696e732e000000000000000000000081525060200191505060405180910390fd5b610c0a7f429b3ecf8c1da568a2089c011fbeed3678bf23e259fd14668e6fbfef767fe46860001b6118db565b610c367f033b13fa1064ccc6c9ad4d7776ecef9aec9835a1d8f0c6150cd947abd1899cd560001b6118db565b610c627ff97011770cd3eebb1618366d789416ba95163a626f368ca4383dffc1952b3c7660001b6118db565b610c8e7f610617ce496b0c0d0459b71c9c95724872c5b0252c78f630ff2c583c044f22d760001b6118db565b610cba7fb934982a5d13e5de7749ddcb19a0d3e46082f0724fe020fb64b00bc5ba3d4a5f60001b6118db565b610ce47f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a68261161e565b50565b610d137fb68984996296ad029cf1c0a5f1a0dbe3b4c1cc9783e3496ab762570e9311a54e60001b6118db565b610d3f7fcd8329a6919154e0b467c3c10a069c8c734098c58a236f23f9cec2f183e0561e60001b6118db565b610d6b7f407a553c794813dffd15ec66138cbcb88cf43cf000721ba905f91c17106a220160001b6118db565b610d977f1494819d655fdf72b94a9ff2c059ce92bdf5a1d1e8793979f69782874fe8313060001b6118db565b610da033610759565b80610db05750610daf3361082f565b5b610e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611d5a6032913960400191505060405180910390fd5b610e317f8ca6475829765540af2c1b59ee2d814b5dd433cf52800d812f9e6774b55eb37660001b6118db565b610e5d7f920e320c5254fcf4049309d9897d4bc88721355ee56cfa7e51d84d1950d3bd0760001b6118db565b610e897fad4f78a587a01de431bcebb6a5c73627d8d338a654d65bc681f544b18ef87fe460001b6118db565b8060016000848152602001908152602001600020600042815260200190815260200160002081905550610ede7fdbf86b1ec5755caa9ebfe27e46b4413982ff59ff910f42a487b0eedff95e364b60001b6118db565b610f0a7f2d16d3e857355920d0623bdd93cc0d23ad3ccd45e0df5a75d7bbfbabe13741df60001b6118db565b60026000838152602001908152602001600020429080600181540180825580915050600190039060005260206000200160009091909190915055610f707ffac8d8cdacd09a6c65b89771ff88b2a5673371a4be79ab262af1669a31b618b460001b6118db565b610f9c7f3c48e8bd819e8b6df826dc24c7aa9fe3d831b9b618c0b7b721052ffb026aed7f60001b6118db565b7fba11e319aee26e7bbac889432515ba301ec8f6d27bf6b94829c21a65c5f6ff2582428360405180848152602001838152602001828152602001935050505060405180910390a15050565b6110137f0e77a5e54c196ea29dc309e2f68c4223daf1968de80adc5a2ac702bf5ab9c79e60001b6118db565b61103f7fe9f980434a095784833a291a073cdb6a41ab9199099578db1d3341acd44a2de460001b6118db565b61106b7f9595b610fd1b9c919129dea5ddfe638c65600694e2ce37d9422f767f67c136ec60001b6118db565b6110977f78d0f1e7604b8b03fc1f985b1f847a1c7ffd01321438d1e4bd201dc1078a72a860001b6118db565b6110a03361082f565b611112576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f5265737472696374656420746f2061646d696e732e000000000000000000000081525060200191505060405180910390fd5b61113e7f429b3ecf8c1da568a2089c011fbeed3678bf23e259fd14668e6fbfef767fe46860001b6118db565b61116a7f033b13fa1064ccc6c9ad4d7776ecef9aec9835a1d8f0c6150cd947abd1899cd560001b6118db565b6111967fe22d29e131054f3c994f0d6d0e56b945c3b27d7d46bba6051e5117dc2557a9ce60001b6118db565b6111c27f5d9d4e99a91272d9835f0344f013f5ecedd68addb9fe76318cc5ab6ccc528aa760001b6118db565b6111ee7f779753cdb8855d295ba63b5e4fe53b52bf48c517a4f99d1e2b4bd54a790b952b60001b6118db565b6111fb6000801b826108c9565b50565b600061122c7f277c50936358732bcb7ce0411a22cbe9ab2337b20bd35e5dd5e1da7a1f6e652e60001b6118db565b6112587fcc87f107edf8d44825dcab64e93c264d8e2e046b5bab84d3729ebbad781942c260001b6118db565b6112847f3ba42484ad8627222eb591cc7f5f41bc3e009db7b608b17adde0ed502e9c760a60001b6118db565b6000600260008581526020019081526020016000208054905090506112cb7ff813aad69bac4a813ed915bc4dbaa09cbf71a2af0d7c9a330736e2f36f0a0ed460001b6118db565b6112f77fc3cefdf26052bb70f9ddb00df44cc5beb13dc5e2968f244d0f51beada13720d560001b6118db565b60008114806113065750828111155b1561136d576113377f2e33720cf25f6b8e1092b5a1bb96fb16002cef3d8405d41a71c58af31be2ce8860001b6118db565b6113637f09f30554b2afe6c5ae770212b081f5de25ec9de1167a12c385bffb04989c9e2c60001b6118db565b600091505061141e565b6113997fd6e06438bb09af04503f235afee5e843e740b935e191b28eca427e01bdfaf85f60001b6118db565b6113c57fc902d63022b053c0c683c7861c39e35890eefaf3707eea062b6829cc7b18777760001b6118db565b6113f17f06691175a989b65eb9bd39d4bc024718fbdc0d256b780c67cf49916d878e4a4b60001b6118db565b60026000858152602001908152602001600020838154811061140f57fe5b90600052602060002001549150505b92915050565b6114507f476652241d4761bd624a0c2555256ff09d5fb8c6084d631fe985ef14595f3d6160001b6118db565b61147c7f622c26f9fef51842b1a83c52fb48b055910186a93cae8de00b07e43937bec61060001b6118db565b6114a87f0409301906a6a9c2144c18a65b7d89aedd2ff8a4801f344b8c4c9bd1820c5b9960001b6118db565b6114b56000801b33610952565b565b60006114e082600080868152602001908152602001600020600001611a6a90919063ffffffff16565b905092915050565b600061151182600080868152602001908152602001600020600001611a8490919063ffffffff16565b905092915050565b60006115477f3f18806e18d20dd0c20b1b0ace60256d681454dd013ca49ecfb200390d8ddf8860001b6118db565b6115737f6d00c549f3c0bded4cdae463341b651885e0fb498816f59bfd10568a1ddf965260001b6118db565b61159f7f8584091a725cc0c597289f1ede5eac9c8c2d5779c561d38d703684b79d22f7c160001b6118db565b60016000848152602001908152602001600020600083815260200190815260200160002054905092915050565b6000801b81565b6001602052816000526040600020602052806000526040600020600091509150505481565b6000611617600080848152602001908152602001600020600001611ab4565b9050919050565b6116446000808481526020019081526020016000206002015461163f61193c565b6114e8565b611699576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180611d8c6030913960400191505060405180910390fd5b6116a382826119d7565b5050565b6116d37f0e77a5e54c196ea29dc309e2f68c4223daf1968de80adc5a2ac702bf5ab9c79e60001b6118db565b6116ff7fe9f980434a095784833a291a073cdb6a41ab9199099578db1d3341acd44a2de460001b6118db565b61172b7f9595b610fd1b9c919129dea5ddfe638c65600694e2ce37d9422f767f67c136ec60001b6118db565b6117577f78d0f1e7604b8b03fc1f985b1f847a1c7ffd01321438d1e4bd201dc1078a72a860001b6118db565b6117603361082f565b6117d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f5265737472696374656420746f2061646d696e732e000000000000000000000081525060200191505060405180910390fd5b6117fe7f429b3ecf8c1da568a2089c011fbeed3678bf23e259fd14668e6fbfef767fe46860001b6118db565b61182a7f033b13fa1064ccc6c9ad4d7776ecef9aec9835a1d8f0c6150cd947abd1899cd560001b6118db565b6118567f5513e8eb426176372e83e140cada4fa2da0f8572dee369b0c6c23b216dd0336e60001b6118db565b6118827f5b1d0c6a7147f51924e51f4f33b18c5a033c2652cbf52b128f85a628c0f5a52760001b6118db565b6118ae7feb3f27b671e7dcbf9a96657edddce7d837b25ad448e7ca694624a31bbdf1dd1760001b6118db565b6118d87f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a6826108c9565b50565b50565b600260205281600052604060002081815481106118f757fe5b90600052602060002001600091509150505481565b6000611934836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611ac9565b905092915050565b600033905090565b61196b8160008085815260200190815260200160002060000161190c90919063ffffffff16565b156119d35761197861193c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6119fe81600080858152602001908152602001600020600001611b3990919063ffffffff16565b15611a6657611a0b61193c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000611a798360000183611b69565b60001c905092915050565b6000611aac836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611bec565b905092915050565b6000611ac282600001611c0f565b9050919050565b6000611ad58383611bec565b611b2e578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050611b33565b600090505b92915050565b6000611b61836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611c20565b905092915050565b600081836000018054905011611bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611d096022913960400191505060405180910390fd5b826000018281548110611bd957fe5b9060005260206000200154905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b600081600001805490509050919050565b60008083600101600084815260200190815260200160002054905060008114611cfc5760006001820390506000600186600001805490500390506000866000018281548110611c6b57fe5b9060005260206000200154905080876000018481548110611c8857fe5b9060005260206000200181905550600183018760010160008381526020019081526020016000208190555086600001805480611cc057fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050611d02565b60009150505b9291505056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7453656e646572206d75737420626520616e2041646d696e206f72205265706f7274657220746f207375626d697456616c7565416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a2646970667358221220b2f2daa2765acc3d02bd3c3216c1f2182395680941168bf64e1586f4bff2521f64736f6c63430007000033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x46 PUSH32 0xC6B08AEE1D651760292AC4042EA653F2242C01B27C692BF2F796B0DD118556FD PUSH1 0x0 SHL PUSH3 0x166 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x7A PUSH32 0x4E39C00EEFBBEE98D2CDED56BB95F7B6ED06A4E14A1E4D257E2F1F43A905666C PUSH1 0x0 SHL PUSH3 0x166 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0xAE PUSH32 0xAEC841ABFB4957AD012487614461E6CC819F606AA8DCA6A82A2AEB52739ED59F PUSH1 0x0 SHL PUSH3 0x166 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0xC3 PUSH1 0x0 DUP1 SHL CALLER PUSH3 0x169 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0xF7 PUSH32 0x3F0CECC29788BC24B8534DFB7B04D0F2CCE8CE746EEC94B4526B5031CEDF0A82 PUSH1 0x0 SHL PUSH3 0x166 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x12B PUSH32 0x4098D1E1716964BC267DBC393B9EF5D166B4CCFD39B13C3456C564F44E2F0DFE PUSH1 0x0 SHL PUSH3 0x166 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x160 PUSH32 0x176C2B761BFEB5DAB89F614B6C08152E31D9230394B3605EABF32249EA1C89A6 PUSH1 0x0 DUP1 SHL PUSH3 0x17F PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x361 JUMP JUMPDEST POP JUMP JUMPDEST PUSH3 0x17B DUP3 DUP3 PUSH3 0x1E1 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD DUP4 PUSH32 0xBD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH3 0x20F DUP2 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH3 0x284 PUSH1 0x20 SHL PUSH3 0x190C OR SWAP1 SWAP2 SWAP1 PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH3 0x280 JUMPI PUSH3 0x225 PUSH3 0x2BC PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2B4 DUP4 PUSH1 0x0 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SHL PUSH3 0x2C4 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2D8 DUP4 DUP4 PUSH3 0x33E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x333 JUMPI DUP3 PUSH1 0x0 ADD DUP3 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE DUP3 PUSH1 0x0 ADD DUP1 SLOAD SWAP1 POP DUP4 PUSH1 0x1 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x1 SWAP1 POP PUSH3 0x338 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ ISZERO SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1E20 DUP1 PUSH3 0x371 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x182 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8BAD0C0A GT PUSH2 0xD8 JUMPI DUP1 PUSH4 0xA3183701 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xDD8755F2 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xDD8755F2 EQ PUSH2 0x69B JUMPI DUP1 PUSH4 0xDE0EF188 EQ PUSH2 0x6DF JUMPI DUP1 PUSH4 0xFB0CEB04 EQ PUSH2 0x70D JUMPI PUSH2 0x182 JUMP JUMPDEST DUP1 PUSH4 0xA3183701 EQ PUSH2 0x5BF JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x60B JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x64D JUMPI PUSH2 0x182 JUMP JUMPDEST DUP1 PUSH4 0x91D14854 GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x4F1 JUMPI DUP1 PUSH4 0x93FA4915 EQ PUSH2 0x555 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x5A1 JUMPI PUSH2 0x182 JUMP JUMPDEST DUP1 PUSH4 0x8BAD0C0A EQ PUSH2 0x485 JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x48F JUMPI PUSH2 0x182 JUMP JUMPDEST DUP1 PUSH4 0x3F60D799 GT PUSH2 0x13A JUMPI DUP1 PUSH4 0x62F55112 GT PUSH2 0x114 JUMPI DUP1 PUSH4 0x62F55112 EQ PUSH2 0x3BD JUMPI DUP1 PUSH4 0x70480275 EQ PUSH2 0x3F5 JUMPI DUP1 PUSH4 0x77FBB663 EQ PUSH2 0x439 JUMPI PUSH2 0x182 JUMP JUMPDEST DUP1 PUSH4 0x3F60D799 EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0x46EEE1C4 EQ PUSH2 0x337 JUMPI DUP1 PUSH4 0x5DE5C212 EQ PUSH2 0x379 JUMPI PUSH2 0x182 JUMP JUMPDEST DUP1 PUSH4 0x24D7806C GT PUSH2 0x16B JUMPI DUP1 PUSH4 0x24D7806C EQ PUSH2 0x223 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x27D JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x2CB JUMPI PUSH2 0x182 JUMP JUMPDEST DUP1 PUSH4 0x44AD7BE EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1E1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C9 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x19D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x759 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x810 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x265 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x239 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x82F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C9 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x293 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x8C9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x317 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x952 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x321 PUSH2 0x9EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x363 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x34D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xA0F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3BB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x38F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xAB3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3F3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xCE7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x437 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xFE7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x46F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x44F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x48D PUSH2 0x1424 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4C5 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x4A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x14B7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x53D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x507 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x14E8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x58B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x56B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1519 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x5A9 PUSH2 0x15CC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x5F5 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x5D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x15D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x637 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x621 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x15F8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x699 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x663 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x161E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6DD PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x6B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x16A7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x70B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x6F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x18DB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x743 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x723 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x18DE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0x787 PUSH32 0xF54DE96A6B0F1E302AEE8D7F95829CEFAA70B030610ECB0951F2E4BBAF8CE0C9 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x7B3 PUSH32 0xDAB20BA11BED5171BE2C2D093A3957BD914953271A869801B87BE44CF64523C2 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x7DF PUSH32 0xF5E03F50CE48FB20F632D63549EE11D9EC9348358F87D56206F2E23CC0D8A0E5 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x809 PUSH32 0x176C2B761BFEB5DAB89F614B6C08152E31D9230394B3605EABF32249EA1C89A6 DUP4 PUSH2 0x14E8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x85D PUSH32 0x8623039A08ACD822DEE121268547E346D7E7BEA142DE92A38C0F94B4669E58E8 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x889 PUSH32 0xCB806BB50A07D306FE4B316DFB44150591788AD097F80609103C5F7206ACF0E3 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x8B5 PUSH32 0x9A2A3CC0E1C51A161FC2F8AE5596C51C35AB179EEAAD4B058BE813E61897B4C8 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x8C2 PUSH1 0x0 DUP1 SHL DUP4 PUSH2 0x14E8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8EF PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x8EA PUSH2 0x193C JUMP JUMPDEST PUSH2 0x14E8 JUMP JUMPDEST PUSH2 0x944 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1D2B PUSH1 0x2F SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x94E DUP3 DUP3 PUSH2 0x1944 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x95A PUSH2 0x193C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x9DD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1DBC PUSH1 0x2F SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x9E7 DUP3 DUP3 PUSH2 0x19D7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x176C2B761BFEB5DAB89F614B6C08152E31D9230394B3605EABF32249EA1C89A6 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA3D PUSH32 0x503A16DA38E71E7BACE6FE1F99C69ADF154700B332F7356A846E033DEC9741DA PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xA69 PUSH32 0x2ED8D5FE9135677C477F8F3ECD7A4256F04A4FF301BBA1BD98F77B53B0F5AA50 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xA95 PUSH32 0x11AA2427FC89ED6E6ED31A082AB8C6BA00ECAC83001D180FF9E562917CDC3387 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xADF PUSH32 0xE77A5E54C196EA29DC309E2F68C4223DAF1968DE80ADC5A2AC702BF5AB9C79E PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xB0B PUSH32 0xE9F980434A095784833A291A073CDB6A41AB9199099578DB1D3341ACD44A2DE4 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xB37 PUSH32 0x9595B610FD1B9C919129DEA5DDFE638C65600694E2CE37D9422F767F67C136EC PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xB63 PUSH32 0x78D0F1E7604B8B03FC1F985B1F847A1C7FFD01321438D1E4BD201DC1078A72A8 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xB6C CALLER PUSH2 0x82F JUMP JUMPDEST PUSH2 0xBDE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x5265737472696374656420746F2061646D696E732E0000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC0A PUSH32 0x429B3ECF8C1DA568A2089C011FBEED3678BF23E259FD14668E6FBFEF767FE468 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xC36 PUSH32 0x33B13FA1064CCC6C9AD4D7776ECEF9AEC9835A1D8F0C6150CD947ABD1899CD5 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xC62 PUSH32 0xF97011770CD3EEBB1618366D789416BA95163A626F368CA4383DFFC1952B3C76 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xC8E PUSH32 0x610617CE496B0C0D0459B71C9C95724872C5B0252C78F630FF2C583C044F22D7 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xCBA PUSH32 0xB934982A5D13E5DE7749DDCB19A0D3E46082F0724FE020FB64B00BC5BA3D4A5F PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xCE4 PUSH32 0x176C2B761BFEB5DAB89F614B6C08152E31D9230394B3605EABF32249EA1C89A6 DUP3 PUSH2 0x161E JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xD13 PUSH32 0xB68984996296AD029CF1C0A5F1A0DBE3B4C1CC9783E3496AB762570E9311A54E PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xD3F PUSH32 0xCD8329A6919154E0B467C3C10A069C8C734098C58A236F23F9CEC2F183E0561E PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xD6B PUSH32 0x407A553C794813DFFD15EC66138CBCB88CF43CF000721BA905F91C17106A2201 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xD97 PUSH32 0x1494819D655FDF72B94A9FF2C059CE92BDF5A1D1E8793979F69782874FE83130 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xDA0 CALLER PUSH2 0x759 JUMP JUMPDEST DUP1 PUSH2 0xDB0 JUMPI POP PUSH2 0xDAF CALLER PUSH2 0x82F JUMP JUMPDEST JUMPDEST PUSH2 0xE05 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x32 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1D5A PUSH1 0x32 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE31 PUSH32 0x8CA6475829765540AF2C1B59EE2D814B5DD433CF52800D812F9E6774B55EB376 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xE5D PUSH32 0x920E320C5254FCF4049309D9897D4BC88721355EE56CFA7E51D84D1950D3BD07 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xE89 PUSH32 0xAD4F78A587A01DE431BCEBB6A5C73627D8D338A654D65BC681F544B18EF87FE4 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 TIMESTAMP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xEDE PUSH32 0xDBF86B1EC5755CAA9EBFE27E46B4413982FF59FF910F42A487B0EEDFF95E364B PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xF0A PUSH32 0x2D16D3E857355920D0623BDD93CC0D23AD3CCD45E0DF5A75D7BBFBABE13741DF PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 TIMESTAMP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE PUSH2 0xF70 PUSH32 0xFAC8D8CDACD09A6C65B89771FF88B2A5673371A4BE79AB262AF1669A31B618B4 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xF9C PUSH32 0x3C48E8BD819E8B6DF826DC24C7AA9FE3D831B9B618C0B7B721052FFB026AED7F PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH32 0xBA11E319AEE26E7BBAC889432515BA301EC8F6D27BF6B94829C21A65C5F6FF25 DUP3 TIMESTAMP DUP4 PUSH1 0x40 MLOAD DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x1013 PUSH32 0xE77A5E54C196EA29DC309E2F68C4223DAF1968DE80ADC5A2AC702BF5AB9C79E PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x103F PUSH32 0xE9F980434A095784833A291A073CDB6A41AB9199099578DB1D3341ACD44A2DE4 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x106B PUSH32 0x9595B610FD1B9C919129DEA5DDFE638C65600694E2CE37D9422F767F67C136EC PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x1097 PUSH32 0x78D0F1E7604B8B03FC1F985B1F847A1C7FFD01321438D1E4BD201DC1078A72A8 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x10A0 CALLER PUSH2 0x82F JUMP JUMPDEST PUSH2 0x1112 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x5265737472696374656420746F2061646D696E732E0000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x113E PUSH32 0x429B3ECF8C1DA568A2089C011FBEED3678BF23E259FD14668E6FBFEF767FE468 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x116A PUSH32 0x33B13FA1064CCC6C9AD4D7776ECEF9AEC9835A1D8F0C6150CD947ABD1899CD5 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x1196 PUSH32 0xE22D29E131054F3C994F0D6D0E56B945C3B27D7D46BBA6051E5117DC2557A9CE PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x11C2 PUSH32 0x5D9D4E99A91272D9835F0344F013F5ECEDD68ADDB9FE76318CC5AB6CCC528AA7 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x11EE PUSH32 0x779753CDB8855D295BA63B5E4FE53B52BF48C517A4F99D1E2B4BD54A790B952B PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x11FB PUSH1 0x0 DUP1 SHL DUP3 PUSH2 0x8C9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x122C PUSH32 0x277C50936358732BCB7CE0411A22CBE9AB2337B20BD35E5DD5E1DA7A1F6E652E PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x1258 PUSH32 0xCC87F107EDF8D44825DCAB64E93C264D8E2E046B5BAB84D3729EBBAD781942C2 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x1284 PUSH32 0x3BA42484AD8627222EB591CC7F5F41BC3E009DB7B608B17ADDE0ED502E9C760A PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD SWAP1 POP SWAP1 POP PUSH2 0x12CB PUSH32 0xF813AAD69BAC4A813ED915BC4DBAA09CBF71A2AF0D7C9A330736E2F36F0A0ED4 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x12F7 PUSH32 0xC3CEFDF26052BB70F9DDB00DF44CC5BEB13DC5E2968F244D0F51BEADA13720D5 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH1 0x0 DUP2 EQ DUP1 PUSH2 0x1306 JUMPI POP DUP3 DUP2 GT ISZERO JUMPDEST ISZERO PUSH2 0x136D JUMPI PUSH2 0x1337 PUSH32 0x2E33720CF25F6B8E1092B5A1BB96FB16002CEF3D8405D41A71C58AF31BE2CE88 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x1363 PUSH32 0x9F30554B2AFE6C5AE770212B081F5DE25EC9DE1167A12C385BFFB04989C9E2C PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x141E JUMP JUMPDEST PUSH2 0x1399 PUSH32 0xD6E06438BB09AF04503F235AFEE5E843E740B935E191B28ECA427E01BDFAF85F PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x13C5 PUSH32 0xC902D63022B053C0C683C7861C39E35890EEFAF3707EEA062B6829CC7B187777 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x13F1 PUSH32 0x6691175A989B65EB9BD39D4BC024718FBDC0D256B780C67CF49916D878E4A4B PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x140F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1450 PUSH32 0x476652241D4761BD624A0C2555256FF09D5FB8C6084D631FE985EF14595F3D61 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x147C PUSH32 0x622C26F9FEF51842B1A83C52FB48B055910186A93CAE8DE00B07E43937BEC610 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x14A8 PUSH32 0x409301906A6A9C2144C18A65B7D89AEDD2FF8A4801F344B8C4C9BD1820C5B99 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x14B5 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x952 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14E0 DUP3 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x1A6A SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1511 DUP3 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x1A84 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1547 PUSH32 0x3F18806E18D20DD0C20B1B0ACE60256D681454DD013CA49ECFB200390D8DDF88 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x1573 PUSH32 0x6D00C549F3C0BDED4CDAE463341B651885E0FB498816F59BFD10568A1DDF9652 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x159F PUSH32 0x8584091A725CC0C597289F1EDE5EAC9C8C2D5779C561D38D703684B79D22F7C1 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1617 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x1AB4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1644 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x163F PUSH2 0x193C JUMP JUMPDEST PUSH2 0x14E8 JUMP JUMPDEST PUSH2 0x1699 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x30 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1D8C PUSH1 0x30 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x16A3 DUP3 DUP3 PUSH2 0x19D7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x16D3 PUSH32 0xE77A5E54C196EA29DC309E2F68C4223DAF1968DE80ADC5A2AC702BF5AB9C79E PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x16FF PUSH32 0xE9F980434A095784833A291A073CDB6A41AB9199099578DB1D3341ACD44A2DE4 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x172B PUSH32 0x9595B610FD1B9C919129DEA5DDFE638C65600694E2CE37D9422F767F67C136EC PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x1757 PUSH32 0x78D0F1E7604B8B03FC1F985B1F847A1C7FFD01321438D1E4BD201DC1078A72A8 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x1760 CALLER PUSH2 0x82F JUMP JUMPDEST PUSH2 0x17D2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x5265737472696374656420746F2061646D696E732E0000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x17FE PUSH32 0x429B3ECF8C1DA568A2089C011FBEED3678BF23E259FD14668E6FBFEF767FE468 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x182A PUSH32 0x33B13FA1064CCC6C9AD4D7776ECEF9AEC9835A1D8F0C6150CD947ABD1899CD5 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x1856 PUSH32 0x5513E8EB426176372E83E140CADA4FA2DA0F8572DEE369B0C6C23B216DD0336E PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x1882 PUSH32 0x5B1D0C6A7147F51924E51F4F33B18C5A033C2652CBF52B128F85A628C0F5A527 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x18AE PUSH32 0xEB3F27B671E7DCBF9A96657EDDDCE7D837B25AD448E7CA694624A31BBDF1DD17 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x18D8 PUSH32 0x176C2B761BFEB5DAB89F614B6C08152E31D9230394B3605EABF32249EA1C89A6 DUP3 PUSH2 0x8C9 JUMP JUMPDEST POP JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x18F7 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1934 DUP4 PUSH1 0x0 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SHL PUSH2 0x1AC9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x196B DUP2 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x190C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST ISZERO PUSH2 0x19D3 JUMPI PUSH2 0x1978 PUSH2 0x193C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x19FE DUP2 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x1B39 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST ISZERO PUSH2 0x1A66 JUMPI PUSH2 0x1A0B PUSH2 0x193C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A79 DUP4 PUSH1 0x0 ADD DUP4 PUSH2 0x1B69 JUMP JUMPDEST PUSH1 0x0 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AAC DUP4 PUSH1 0x0 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SHL PUSH2 0x1BEC JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AC2 DUP3 PUSH1 0x0 ADD PUSH2 0x1C0F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AD5 DUP4 DUP4 PUSH2 0x1BEC JUMP JUMPDEST PUSH2 0x1B2E JUMPI DUP3 PUSH1 0x0 ADD DUP3 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE DUP3 PUSH1 0x0 ADD DUP1 SLOAD SWAP1 POP DUP4 PUSH1 0x1 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x1 SWAP1 POP PUSH2 0x1B33 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B61 DUP4 PUSH1 0x0 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SHL PUSH2 0x1C20 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 PUSH1 0x0 ADD DUP1 SLOAD SWAP1 POP GT PUSH2 0x1BCA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1D09 PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1BD9 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ ISZERO SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 ADD DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP2 EQ PUSH2 0x1CFC JUMPI PUSH1 0x0 PUSH1 0x1 DUP3 SUB SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP7 PUSH1 0x0 ADD DUP1 SLOAD SWAP1 POP SUB SWAP1 POP PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1C6B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1C88 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x1 DUP4 ADD DUP8 PUSH1 0x1 ADD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP7 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH2 0x1CC0 JUMPI INVALID JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP7 PUSH1 0x1 ADD PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x1D02 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID GASLIMIT PUSH15 0x756D657261626C655365743A20696E PUSH5 0x6578206F75 PUSH21 0x206F6620626F756E6473416363657373436F6E7472 PUSH16 0x6C3A2073656E646572206D7573742062 PUSH6 0x20616E206164 PUSH14 0x696E20746F206772616E7453656E PUSH5 0x6572206D75 PUSH20 0x7420626520616E2041646D696E206F7220526570 PUSH16 0x7274657220746F207375626D69745661 PUSH13 0x7565416363657373436F6E7472 PUSH16 0x6C3A2073656E646572206D7573742062 PUSH6 0x20616E206164 PUSH14 0x696E20746F207265766F6B654163 PUSH4 0x65737343 PUSH16 0x6E74726F6C3A2063616E206F6E6C7920 PUSH19 0x656E6F756E636520726F6C657320666F722073 PUSH6 0x6C66A2646970 PUSH7 0x7358221220B2F2 0xDA LOG2 PUSH23 0x5ACC3D02BD3C3216C1F2182395680941168BF64E1586F4 0xBF CALLCODE MSTORE 0x1F PUSH5 0x736F6C6343 STOP SMOD STOP STOP CALLER ", + "sourceMap": "7554:10208:5:-:0;;;8107:616;;;;;;;;;;8123:80;8136:66;8123:80;;:12;;;:80;;:::i;:::-;8222;8235:66;8222:80;;:12;;;:80;;:::i;:::-;8324;8337:66;8324:80;;:12;;;:80;;:::i;:::-;8423:42;1770:4:1;8434:18:5;;8454:10;8423;;;:42;;:::i;:::-;8467:80;8480:66;8467:80;;:12;;;:80;;:::i;:::-;8569;8582:66;8569:80;;:12;;;:80;;:::i;:::-;8668:48;8077:21;1770:4:1;8697:18:5;;8668:13;;;:48;;:::i;:::-;7554:10208;;7595:59;;:::o;6586:110:1:-;6664:25;6675:4;6681:7;6664:10;;;:25;;:::i;:::-;6586:110;;:::o;6821:196::-;6956:9;6932:6;:12;6939:4;6932:12;;;;;;;;;;;:22;;;6926:4;6909:57;;;;;;;;;;7001:9;6976:6;:12;6983:4;6976:12;;;;;;;;;;;:22;;:34;;;;6821:196;;:::o;7023:184::-;7096:33;7121:7;7096:6;:12;7103:4;7096:12;;;;;;;;;;;:20;;:24;;;;;;:33;;;;:::i;:::-;7092:109;;;7177:12;:10;;;:12;;:::i;:::-;7150:40;;7168:7;7150:40;;7162:4;7150:40;;;;;;;;;;7092:109;7023:184;;:::o;6429:141:3:-;6499:4;6522:41;6527:3;:10;;6555:5;6547:14;;6539:23;;6522:4;;;:41;;:::i;:::-;6515:48;;6429:141;;;;:::o;598:104:0:-;651:15;685:10;678:17;;598:104;:::o;1640:404:3:-;1703:4;1724:21;1734:3;1739:5;1724:9;;;:21;;:::i;:::-;1719:319;;1761:3;:11;;1778:5;1761:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1941:3;:11;;:18;;;;1919:3;:12;;:19;1932:5;1919:19;;;;;;;;;;;:40;;;;1980:4;1973:11;;;;1719:319;2022:5;2015:12;;1640:404;;;;;:::o;3805:127::-;3878:4;3924:1;3901:3;:12;;:19;3914:5;3901:19;;;;;;;;;;;;:24;;3894:31;;3805:127;;;;:::o;7554:10208:5:-;;;;;;;" }, "deployedBytecode": { "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106101775760003560e01c806377fbb663116100d8578063a217fddf1161008c578063d547741f11610066578063d547741f14610462578063dd8755f21461049b578063fb0ceb04146104ce57610177565b8063a217fddf1461041a578063a318370114610422578063ca15c8731461044557610177565b80639010d07c116100bd5780639010d07c1461037257806391d14854146103be57806393fa4915146103f757610177565b806377fbb663146103475780638bad0c0a1461036a57610177565b80633f60d7991161012f5780635de5c212116101145780635de5c212146102be57806362f55112146102f1578063704802751461031457610177565b80633f60d7991461029957806346eee1c4146102a157610177565b806324d7806c1161016057806324d7806c146101f25780632f2ff15d1461022557806336568abe1461026057610177565b8063044ad7be1461017c578063248a9ca3146101c3575b600080fd5b6101af6004803603602081101561019257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104f1565b604080519115158252519081900360200190f35b6101e0600480360360208110156101d957600080fd5b5035610523565b60408051918252519081900360200190f35b6101af6004803603602081101561020857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610538565b61025e6004803603604081101561023b57600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff16610544565b005b61025e6004803603604081101561027657600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff166105ca565b6101e061065f565b6101e0600480360360208110156102b757600080fd5b5035610683565b61025e600480360360208110156102d457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610695565b61025e6004803603604081101561030757600080fd5b5080359060200135610736565b61025e6004803603602081101561032a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661081f565b6101e06004803603604081101561035d57600080fd5b508035906020013561089e565b61025e6108f7565b6103956004803603604081101561038857600080fd5b5080359060200135610904565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101af600480360360408110156103d457600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff16610923565b6101e06004803603604081101561040d57600080fd5b508035906020013561093b565b6101e0610958565b6101e06004803603604081101561043857600080fd5b508035906020013561095d565b6101e06004803603602081101561045b57600080fd5b503561097a565b61025e6004803603604081101561047857600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff16610991565b61025e600480360360208110156104b157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610a04565b6101e0600480360360408110156104e457600080fd5b5080359060200135610aa2565b600061051d7f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a683610923565b92915050565b60009081526020819052604090206002015490565b600061051d8183610923565b60008281526020819052604090206002015461056790610562610af2565b610923565b6105bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180610e42602f913960400191505060405180910390fd5b6105c68282610af6565b5050565b6105d2610af2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180610ed3602f913960400191505060405180910390fd5b6105c68282610b79565b7f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a681565b60009081526002602052604090205490565b61069e33610538565b61070957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5265737472696374656420746f2061646d696e732e0000000000000000000000604482015290519081900360640190fd5b6107337f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a682610991565b50565b61073f336104f1565b8061074e575061074e33610538565b6107a3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180610e716032913960400191505060405180910390fd5b6000828152600160208181526040808420428086529083528185208690558685526002835281852080549485018155855293829020909201839055815185815290810192909252818101839052517fba11e319aee26e7bbac889432515ba301ec8f6d27bf6b94829c21a65c5f6ff259181900360600190a15050565b61082833610538565b61089357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5265737472696374656420746f2061646d696e732e0000000000000000000000604482015290519081900360640190fd5b610733600082610544565b6000828152600260205260408120548015806108ba5750828111155b156108c957600091505061051d565b60008481526002602052604090208054849081106108e357fe5b906000526020600020015491505092915050565b6109026000336105ca565b565b600082815260208190526040812061091c9083610bfc565b9392505050565b600082815260208190526040812061091c9083610c08565b600091825260016020908152604080842092845291905290205490565b600081565b600160209081526000928352604080842090915290825290205481565b600081815260208190526040812061051d90610c2a565b6000828152602081905260409020600201546109af90610562610af2565b610655576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180610ea36030913960400191505060405180910390fd5b610a0d33610538565b610a7857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5265737472696374656420746f2061646d696e732e0000000000000000000000604482015290519081900360640190fd5b6107337f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a682610544565b60026020528160005260406000208181548110610abb57fe5b90600052602060002001600091509150505481565b600061091c8373ffffffffffffffffffffffffffffffffffffffff8416610c35565b3390565b6000828152602081905260409020610b0e9082610ad0565b156105c657610b1b610af2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081905260409020610b919082610c7f565b156105c657610b9e610af2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b600061091c8383610ca1565b600061091c8373ffffffffffffffffffffffffffffffffffffffff8416610d1f565b600061051d82610d37565b6000610c418383610d1f565b610c775750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561051d565b50600061051d565b600061091c8373ffffffffffffffffffffffffffffffffffffffff8416610d3b565b81546000908210610cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610e206022913960400191505060405180910390fd5b826000018281548110610d0c57fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b60008181526001830160205260408120548015610e155783547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8083019190810190600090879083908110610d8c57fe5b9060005260206000200154905080876000018481548110610da957fe5b600091825260208083209091019290925582815260018981019092526040902090840190558654879080610dd957fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061051d565b600091505061051d56fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7453656e646572206d75737420626520616e2041646d696e206f72205265706f7274657220746f207375626d697456616c7565416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a2646970667358221220e811515895d413116d25b636bd764bf801b048dc8fbdceb8e01205253ae8ffbc64736f6c63430007000033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x177 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x77FBB663 GT PUSH2 0xD8 JUMPI DUP1 PUSH4 0xA217FDDF GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xD547741F GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0xDD8755F2 EQ PUSH2 0x49B JUMPI DUP1 PUSH4 0xFB0CEB04 EQ PUSH2 0x4CE JUMPI PUSH2 0x177 JUMP JUMPDEST DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x41A JUMPI DUP1 PUSH4 0xA3183701 EQ PUSH2 0x422 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x445 JUMPI PUSH2 0x177 JUMP JUMPDEST DUP1 PUSH4 0x9010D07C GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x372 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x3BE JUMPI DUP1 PUSH4 0x93FA4915 EQ PUSH2 0x3F7 JUMPI PUSH2 0x177 JUMP JUMPDEST DUP1 PUSH4 0x77FBB663 EQ PUSH2 0x347 JUMPI DUP1 PUSH4 0x8BAD0C0A EQ PUSH2 0x36A JUMPI PUSH2 0x177 JUMP JUMPDEST DUP1 PUSH4 0x3F60D799 GT PUSH2 0x12F JUMPI DUP1 PUSH4 0x5DE5C212 GT PUSH2 0x114 JUMPI DUP1 PUSH4 0x5DE5C212 EQ PUSH2 0x2BE JUMPI DUP1 PUSH4 0x62F55112 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x70480275 EQ PUSH2 0x314 JUMPI PUSH2 0x177 JUMP JUMPDEST DUP1 PUSH4 0x3F60D799 EQ PUSH2 0x299 JUMPI DUP1 PUSH4 0x46EEE1C4 EQ PUSH2 0x2A1 JUMPI PUSH2 0x177 JUMP JUMPDEST DUP1 PUSH4 0x24D7806C GT PUSH2 0x160 JUMPI DUP1 PUSH4 0x24D7806C EQ PUSH2 0x1F2 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x225 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x260 JUMPI PUSH2 0x177 JUMP JUMPDEST DUP1 PUSH4 0x44AD7BE EQ PUSH2 0x17C JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1C3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x192 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x523 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1AF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x208 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x538 JUMP JUMPDEST PUSH2 0x25E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x23B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x544 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x25E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x276 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x5CA JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x65F JUMP JUMPDEST PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x683 JUMP JUMPDEST PUSH2 0x25E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x695 JUMP JUMPDEST PUSH2 0x25E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x307 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x736 JUMP JUMPDEST PUSH2 0x25E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x32A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x81F JUMP JUMPDEST PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x89E JUMP JUMPDEST PUSH2 0x25E PUSH2 0x8F7 JUMP JUMPDEST PUSH2 0x395 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x388 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x904 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1AF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x923 JUMP JUMPDEST PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x40D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x93B JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x958 JUMP JUMPDEST PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x438 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x95D JUMP JUMPDEST PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x45B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x97A JUMP JUMPDEST PUSH2 0x25E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x478 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x991 JUMP JUMPDEST PUSH2 0x25E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xA04 JUMP JUMPDEST PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x4E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xAA2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51D PUSH32 0x176C2B761BFEB5DAB89F614B6C08152E31D9230394B3605EABF32249EA1C89A6 DUP4 PUSH2 0x923 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51D DUP2 DUP4 PUSH2 0x923 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x567 SWAP1 PUSH2 0x562 PUSH2 0xAF2 JUMP JUMPDEST PUSH2 0x923 JUMP JUMPDEST PUSH2 0x5BC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xE42 PUSH1 0x2F SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5C6 DUP3 DUP3 PUSH2 0xAF6 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x5D2 PUSH2 0xAF2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x655 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xED3 PUSH1 0x2F SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5C6 DUP3 DUP3 PUSH2 0xB79 JUMP JUMPDEST PUSH32 0x176C2B761BFEB5DAB89F614B6C08152E31D9230394B3605EABF32249EA1C89A6 DUP2 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x69E CALLER PUSH2 0x538 JUMP JUMPDEST PUSH2 0x709 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5265737472696374656420746F2061646D696E732E0000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x733 PUSH32 0x176C2B761BFEB5DAB89F614B6C08152E31D9230394B3605EABF32249EA1C89A6 DUP3 PUSH2 0x991 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x73F CALLER PUSH2 0x4F1 JUMP JUMPDEST DUP1 PUSH2 0x74E JUMPI POP PUSH2 0x74E CALLER PUSH2 0x538 JUMP JUMPDEST PUSH2 0x7A3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x32 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xE71 PUSH1 0x32 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 TIMESTAMP DUP1 DUP7 MSTORE SWAP1 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP7 SWAP1 SSTORE DUP7 DUP6 MSTORE PUSH1 0x2 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP1 SLOAD SWAP5 DUP6 ADD DUP2 SSTORE DUP6 MSTORE SWAP4 DUP3 SWAP1 KECCAK256 SWAP1 SWAP3 ADD DUP4 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP1 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP2 DUP2 ADD DUP4 SWAP1 MSTORE MLOAD PUSH32 0xBA11E319AEE26E7BBAC889432515BA301EC8F6D27BF6B94829C21A65C5F6FF25 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x828 CALLER PUSH2 0x538 JUMP JUMPDEST PUSH2 0x893 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5265737472696374656420746F2061646D696E732E0000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x733 PUSH1 0x0 DUP3 PUSH2 0x544 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO DUP1 PUSH2 0x8BA JUMPI POP DUP3 DUP2 GT ISZERO JUMPDEST ISZERO PUSH2 0x8C9 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x51D JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP5 SWAP1 DUP2 LT PUSH2 0x8E3 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x902 PUSH1 0x0 CALLER PUSH2 0x5CA JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x91C SWAP1 DUP4 PUSH2 0xBFC JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x91C SWAP1 DUP4 PUSH2 0xC08 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP3 DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x51D SWAP1 PUSH2 0xC2A JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x9AF SWAP1 PUSH2 0x562 PUSH2 0xAF2 JUMP JUMPDEST PUSH2 0x655 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x30 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xEA3 PUSH1 0x30 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA0D CALLER PUSH2 0x538 JUMP JUMPDEST PUSH2 0xA78 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5265737472696374656420746F2061646D696E732E0000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x733 PUSH32 0x176C2B761BFEB5DAB89F614B6C08152E31D9230394B3605EABF32249EA1C89A6 DUP3 PUSH2 0x544 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xABB JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91C DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH2 0xC35 JUMP JUMPDEST CALLER SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xB0E SWAP1 DUP3 PUSH2 0xAD0 JUMP JUMPDEST ISZERO PUSH2 0x5C6 JUMPI PUSH2 0xB1B PUSH2 0xAF2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xB91 SWAP1 DUP3 PUSH2 0xC7F JUMP JUMPDEST ISZERO PUSH2 0x5C6 JUMPI PUSH2 0xB9E PUSH2 0xAF2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91C DUP4 DUP4 PUSH2 0xCA1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91C DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH2 0xD1F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51D DUP3 PUSH2 0xD37 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC41 DUP4 DUP4 PUSH2 0xD1F JUMP JUMPDEST PUSH2 0xC77 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x51D JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x51D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91C DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH2 0xD3B JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 SWAP1 DUP3 LT PUSH2 0xCFD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xE20 PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xD0C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0xE15 JUMPI DUP4 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP4 ADD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x0 SWAP1 DUP8 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0xD8C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xDA9 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE DUP3 DUP2 MSTORE PUSH1 0x1 DUP10 DUP2 ADD SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP5 ADD SWAP1 SSTORE DUP7 SLOAD DUP8 SWAP1 DUP1 PUSH2 0xDD9 JUMPI INVALID JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP7 PUSH1 0x1 ADD PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x51D JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x51D JUMP INVALID GASLIMIT PUSH15 0x756D657261626C655365743A20696E PUSH5 0x6578206F75 PUSH21 0x206F6620626F756E6473416363657373436F6E7472 PUSH16 0x6C3A2073656E646572206D7573742062 PUSH6 0x20616E206164 PUSH14 0x696E20746F206772616E7453656E PUSH5 0x6572206D75 PUSH20 0x7420626520616E2041646D696E206F7220526570 PUSH16 0x7274657220746F207375626D69745661 PUSH13 0x7565416363657373436F6E7472 PUSH16 0x6C3A2073656E646572206D7573742062 PUSH6 0x20616E206164 PUSH14 0x696E20746F207265766F6B654163 PUSH4 0x65737343 PUSH16 0x6E74726F6C3A2063616E206F6E6C7920 PUSH19 0x656E6F756E636520726F6C657320666F722073 PUSH6 0x6C66A2646970 PUSH7 0x7358221220E811 MLOAD PC SWAP6 0xD4 SGT GT PUSH14 0x25B636BD764BF801B048DC8FBDCE 0xB8 0xE0 SLT SDIV 0x25 GASPRICE 0xE8 SELFDESTRUCT 0xBC PUSH5 0x736F6C6343 STOP SMOD STOP STOP CALLER ", - "sourceMap": "1837:4114:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4032:128;;;;;;;;;;;;;;;;-1:-1:-1;4032:128:4;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4280:112:1;;;;;;;;;;;;;;;;-1:-1:-1;4280:112:1;;:::i;:::-;;;;;;;;;;;;;;;;3810:129:4;;;;;;;;;;;;;;;;-1:-1:-1;3810:129:4;;;;:::i;4642:223:1:-;;;;;;;;;;;;;;;;-1:-1:-1;4642:223:1;;;;;;;;;:::i;:::-;;5816:205;;;;;;;;;;;;;;;;-1:-1:-1;5816:205:1;;;;;;;;;:::i;2259:61:4:-;;;:::i;5340:136::-;;;;;;;;;;;;;;;;-1:-1:-1;5340:136:4;;:::i;3426:118::-;;;;;;;;;;;;;;;;-1:-1:-1;3426:118:4;;;;:::i;4370:359::-;;;;;;;;;;;;;;;;-1:-1:-1;4370:359:4;;;;;;;:::i;2917:115::-;;;;;;;;;;;;;;;;-1:-1:-1;2917:115:4;;;;:::i;5692:256::-;;;;;;;;;;;;;;;;-1:-1:-1;5692:256:4;;;;;;;:::i;3615:101::-;;;:::i;3963:136:1:-;;;;;;;;;;;;;;;;-1:-1:-1;3963:136:1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2948:137;;;;;;;;;;;;;;;;-1:-1:-1;2948:137:1;;;;;;;;;:::i;4970:144:4:-;;;;;;;;;;;;;;;;-1:-1:-1;4970:144:4;;;;;;;:::i;1725:49:1:-;;;:::i;1996:61:4:-;;;;;;;;;;;;;;;;-1:-1:-1;1996:61:4;;;;;;;:::i;3253:125:1:-;;;;;;;;;;;;;;;;-1:-1:-1;3253:125:1;;:::i;5099:226::-;;;;;;;;;;;;;;;;-1:-1:-1;5099:226:1;;;;;;;;;:::i;3213:114:4:-;;;;;;;;;;;;;;;;-1:-1:-1;3213:114:4;;;;:::i;2201:47::-;;;;;;;;;;;;;;;;-1:-1:-1;2201:47:4;;;;;;;:::i;4032:128::-;4098:4;4122:31;2299:21;4145:7;4122;:31::i;:::-;4115:38;4032:128;-1:-1:-1;;4032:128:4:o;4280:112:1:-;4337:7;4363:12;;;;;;;;;;:22;;;;4280:112::o;3810:129:4:-;3873:4;3896:36;3873:4;3924:7;3896;:36::i;4642:223:1:-;4733:6;:12;;;;;;;;;;:22;;;4725:45;;4757:12;:10;:12::i;:::-;4725:7;:45::i;:::-;4717:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4833:25;4844:4;4850:7;4833:10;:25::i;:::-;4642:223;;:::o;5816:205::-;5913:12;:10;:12::i;:::-;5902:23;;:7;:23;;;5894:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5988:26;6000:4;6006:7;5988:11;:26::i;2259:61:4:-;2299:21;2259:61;:::o;5340:136::-;5417:4;5440:22;;;:10;:22;;;;;:29;;5340:136::o;3426:118::-;2579:19;2587:10;2579:7;:19::i;:::-;2571:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3503:34:::1;2299:21;3529:7;3503:10;:34::i;:::-;3426:118:::0;:::o;4370:359::-;4454:22;4465:10;4454;:22::i;:::-;:45;;;;4480:19;4488:10;4480:7;:19::i;:::-;4446:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4564:18;;;;:6;:18;;;;;;;;4583:15;4564:35;;;;;;;;;:44;;;4618:22;;;:10;:22;;;;;:44;;;;;;;;;;;;;;;;;;;4677:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;4370:359;;:::o;2917:115::-;2579:19;2587:10;2579:7;:19::i;:::-;2571:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2987:38:::1;1770:4:1;3017:7:4::0;2987:9:::1;:38::i;5692:256::-:0;5788:7;5818:22;;;:10;:22;;;;;:29;5860:8;;;:24;;;5879:5;5872:3;:12;;5860:24;5857:37;;;5893:1;5886:8;;;;;5857:37;5912:22;;;;:10;:22;;;;;:29;;5935:5;;5912:29;;;;;;;;;;;;;;5905:36;;;5692:256;;;;:::o;3615:101::-;3665:44;1770:4:1;3698:10:4;3665:12;:44::i;:::-;3615:101::o;3963:136:1:-;4036:7;4062:12;;;;;;;;;;:30;;4086:5;4062:23;:30::i;:::-;4055:37;3963:136;-1:-1:-1;;;3963:136:1:o;2948:137::-;3017:4;3040:12;;;;;;;;;;:38;;3070:7;3040:29;:38::i;4970:144:4:-;5052:7;5077:18;;;:6;:18;;;;;;;;:30;;;;;;;;;;4970:144::o;1725:49:1:-;1770:4;1725:49;:::o;1996:61:4:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;3253:125:1:-;3316:7;3342:12;;;;;;;;;;:29;;:27;:29::i;5099:226::-;5191:6;:12;;;;;;;;;;:22;;;5183:45;;5215:12;:10;:12::i;5183:45::-;5175:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3213:114:4;2579:19;2587:10;2579:7;:19::i;:::-;2571:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3287:33:::1;2299:21;3312:7;3287:9;:33::i;2201:47::-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6429:141:3:-;6499:4;6522:41;6527:3;6547:14;;;6522:4;:41::i;598:104:0:-;685:10;598:104;:::o;7023:184:1:-;7096:6;:12;;;;;;;;;;:33;;7121:7;7096:24;:33::i;:::-;7092:109;;;7177:12;:10;:12::i;:::-;7150:40;;7168:7;7150:40;;7162:4;7150:40;;;;;;;;;;7023:184;;:::o;7213:188::-;7287:6;:12;;;;;;;;;;:36;;7315:7;7287:27;:36::i;:::-;7283:112;;;7371:12;:10;:12::i;:::-;7344:40;;7362:7;7344:40;;7356:4;7344:40;;;;;;;;;;7213:188;;:::o;7650:147:3:-;7724:7;7766:22;7770:3;7782:5;7766:3;:22::i;6966:156::-;7046:4;7069:46;7079:3;7099:14;;;7069:9;:46::i;7203:115::-;7266:7;7292:19;7300:3;7292:7;:19::i;1640:404::-;1703:4;1724:21;1734:3;1739:5;1724:9;:21::i;:::-;1719:319;;-1:-1:-1;1761:23:3;;;;;;;;:11;:23;;;;;;;;;;;;;1941:18;;1919:19;;;:12;;;:19;;;;;;:40;;;;1973:11;;1719:319;-1:-1:-1;2022:5:3;2015:12;;6738:147;6811:4;6834:44;6842:3;6862:14;;;6834:7;:44::i;4452:201::-;4546:18;;4519:7;;4546:26;-1:-1:-1;4538:73:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4628:3;:11;;4640:5;4628:18;;;;;;;;;;;;;;;;4621:25;;4452:201;;;;:::o;3805:127::-;3878:4;3901:19;;;:12;;;;;:19;;;;;;:24;;;3805:127::o;4013:107::-;4095:18;;4013:107::o;2212:1512::-;2278:4;2415:19;;;:12;;;:19;;;;;;2449:15;;2445:1273;;2878:18;;2830:14;;;;;2878:22;;;;2806:21;;2878:3;;:22;;3160;;;;;;;;;;;;;;3140:42;;3303:9;3274:3;:11;;3286:13;3274:26;;;;;;;;;;;;;;;;;;;:38;;;;3378:23;;;3420:1;3378:12;;;:23;;;;;;3404:17;;;3378:43;;3527:17;;3378:3;;3527:17;;;;;;;;;;;;;;;;;;;;;;3619:3;:12;;:19;3632:5;3619:19;;;;;;;;;;;3612:26;;;3660:4;3653:11;;;;;;;;2445:1273;3702:5;3695:12;;;;" + "object": "608060405234801561001057600080fd5b50600436106101825760003560e01c80638bad0c0a116100d8578063a31837011161008c578063dd8755f211610066578063dd8755f21461069b578063de0ef188146106df578063fb0ceb041461070d57610182565b8063a3183701146105bf578063ca15c8731461060b578063d547741f1461064d57610182565b806391d14854116100bd57806391d14854146104f157806393fa491514610555578063a217fddf146105a157610182565b80638bad0c0a146104855780639010d07c1461048f57610182565b80633f60d7991161013a57806362f551121161011457806362f55112146103bd57806370480275146103f557806377fbb6631461043957610182565b80633f60d7991461031957806346eee1c4146103375780635de5c2121461037957610182565b806324d7806c1161016b57806324d7806c146102235780632f2ff15d1461027d57806336568abe146102cb57610182565b8063044ad7be14610187578063248a9ca3146101e1575b600080fd5b6101c96004803603602081101561019d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610759565b60405180821515815260200191505060405180910390f35b61020d600480360360208110156101f757600080fd5b8101908080359060200190929190505050610810565b6040518082815260200191505060405180910390f35b6102656004803603602081101561023957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061082f565b60405180821515815260200191505060405180910390f35b6102c96004803603604081101561029357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c9565b005b610317600480360360408110156102e157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610952565b005b6103216109eb565b6040518082815260200191505060405180910390f35b6103636004803603602081101561034d57600080fd5b8101908080359060200190929190505050610a0f565b6040518082815260200191505060405180910390f35b6103bb6004803603602081101561038f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ab3565b005b6103f3600480360360408110156103d357600080fd5b810190808035906020019092919080359060200190929190505050610ce7565b005b6104376004803603602081101561040b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fe7565b005b61046f6004803603604081101561044f57600080fd5b8101908080359060200190929190803590602001909291905050506111fe565b6040518082815260200191505060405180910390f35b61048d611424565b005b6104c5600480360360408110156104a557600080fd5b8101908080359060200190929190803590602001909291905050506114b7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61053d6004803603604081101561050757600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114e8565b60405180821515815260200191505060405180910390f35b61058b6004803603604081101561056b57600080fd5b810190808035906020019092919080359060200190929190505050611519565b6040518082815260200191505060405180910390f35b6105a96115cc565b6040518082815260200191505060405180910390f35b6105f5600480360360408110156105d557600080fd5b8101908080359060200190929190803590602001909291905050506115d3565b6040518082815260200191505060405180910390f35b6106376004803603602081101561062157600080fd5b81019080803590602001909291905050506115f8565b6040518082815260200191505060405180910390f35b6106996004803603604081101561066357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061161e565b005b6106dd600480360360208110156106b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116a7565b005b61070b600480360360208110156106f557600080fd5b81019080803590602001909291905050506118db565b005b6107436004803603604081101561072357600080fd5b8101908080359060200190929190803590602001909291905050506118de565b6040518082815260200191505060405180910390f35b60006107877ff54de96a6b0f1e302aee8d7f95829cefaa70b030610ecb0951f2e4bbaf8ce0c960001b6118db565b6107b37fdab20ba11bed5171be2c2d093a3957bd914953271a869801b87be44cf64523c260001b6118db565b6107df7ff5e03f50ce48fb20f632d63549ee11d9ec9348358f87d56206f2e23cc0d8a0e560001b6118db565b6108097f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a6836114e8565b9050919050565b6000806000838152602001908152602001600020600201549050919050565b600061085d7f8623039a08acd822dee121268547e346d7e7bea142de92a38c0f94b4669e58e860001b6118db565b6108897fcb806bb50a07d306fe4b316dfb44150591788ad097f80609103c5f7206acf0e360001b6118db565b6108b57f9a2a3cc0e1c51a161fc2f8ae5596c51c35ab179eeaad4b058be813e61897b4c860001b6118db565b6108c26000801b836114e8565b9050919050565b6108ef600080848152602001908152602001600020600201546108ea61193c565b6114e8565b610944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611d2b602f913960400191505060405180910390fd5b61094e8282611944565b5050565b61095a61193c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146109dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611dbc602f913960400191505060405180910390fd5b6109e782826119d7565b5050565b7f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a681565b6000610a3d7f503a16da38e71e7bace6fe1f99c69adf154700b332f7356a846e033dec9741da60001b6118db565b610a697f2ed8d5fe9135677c477f8f3ecd7a4256f04a4ff301bba1bd98f77b53b0f5aa5060001b6118db565b610a957f11aa2427fc89ed6e6ed31a082ab8c6ba00ecac83001d180ff9e562917cdc338760001b6118db565b60026000838152602001908152602001600020805490509050919050565b610adf7f0e77a5e54c196ea29dc309e2f68c4223daf1968de80adc5a2ac702bf5ab9c79e60001b6118db565b610b0b7fe9f980434a095784833a291a073cdb6a41ab9199099578db1d3341acd44a2de460001b6118db565b610b377f9595b610fd1b9c919129dea5ddfe638c65600694e2ce37d9422f767f67c136ec60001b6118db565b610b637f78d0f1e7604b8b03fc1f985b1f847a1c7ffd01321438d1e4bd201dc1078a72a860001b6118db565b610b6c3361082f565b610bde576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f5265737472696374656420746f2061646d696e732e000000000000000000000081525060200191505060405180910390fd5b610c0a7f429b3ecf8c1da568a2089c011fbeed3678bf23e259fd14668e6fbfef767fe46860001b6118db565b610c367f033b13fa1064ccc6c9ad4d7776ecef9aec9835a1d8f0c6150cd947abd1899cd560001b6118db565b610c627ff97011770cd3eebb1618366d789416ba95163a626f368ca4383dffc1952b3c7660001b6118db565b610c8e7f610617ce496b0c0d0459b71c9c95724872c5b0252c78f630ff2c583c044f22d760001b6118db565b610cba7fb934982a5d13e5de7749ddcb19a0d3e46082f0724fe020fb64b00bc5ba3d4a5f60001b6118db565b610ce47f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a68261161e565b50565b610d137fb68984996296ad029cf1c0a5f1a0dbe3b4c1cc9783e3496ab762570e9311a54e60001b6118db565b610d3f7fcd8329a6919154e0b467c3c10a069c8c734098c58a236f23f9cec2f183e0561e60001b6118db565b610d6b7f407a553c794813dffd15ec66138cbcb88cf43cf000721ba905f91c17106a220160001b6118db565b610d977f1494819d655fdf72b94a9ff2c059ce92bdf5a1d1e8793979f69782874fe8313060001b6118db565b610da033610759565b80610db05750610daf3361082f565b5b610e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611d5a6032913960400191505060405180910390fd5b610e317f8ca6475829765540af2c1b59ee2d814b5dd433cf52800d812f9e6774b55eb37660001b6118db565b610e5d7f920e320c5254fcf4049309d9897d4bc88721355ee56cfa7e51d84d1950d3bd0760001b6118db565b610e897fad4f78a587a01de431bcebb6a5c73627d8d338a654d65bc681f544b18ef87fe460001b6118db565b8060016000848152602001908152602001600020600042815260200190815260200160002081905550610ede7fdbf86b1ec5755caa9ebfe27e46b4413982ff59ff910f42a487b0eedff95e364b60001b6118db565b610f0a7f2d16d3e857355920d0623bdd93cc0d23ad3ccd45e0df5a75d7bbfbabe13741df60001b6118db565b60026000838152602001908152602001600020429080600181540180825580915050600190039060005260206000200160009091909190915055610f707ffac8d8cdacd09a6c65b89771ff88b2a5673371a4be79ab262af1669a31b618b460001b6118db565b610f9c7f3c48e8bd819e8b6df826dc24c7aa9fe3d831b9b618c0b7b721052ffb026aed7f60001b6118db565b7fba11e319aee26e7bbac889432515ba301ec8f6d27bf6b94829c21a65c5f6ff2582428360405180848152602001838152602001828152602001935050505060405180910390a15050565b6110137f0e77a5e54c196ea29dc309e2f68c4223daf1968de80adc5a2ac702bf5ab9c79e60001b6118db565b61103f7fe9f980434a095784833a291a073cdb6a41ab9199099578db1d3341acd44a2de460001b6118db565b61106b7f9595b610fd1b9c919129dea5ddfe638c65600694e2ce37d9422f767f67c136ec60001b6118db565b6110977f78d0f1e7604b8b03fc1f985b1f847a1c7ffd01321438d1e4bd201dc1078a72a860001b6118db565b6110a03361082f565b611112576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f5265737472696374656420746f2061646d696e732e000000000000000000000081525060200191505060405180910390fd5b61113e7f429b3ecf8c1da568a2089c011fbeed3678bf23e259fd14668e6fbfef767fe46860001b6118db565b61116a7f033b13fa1064ccc6c9ad4d7776ecef9aec9835a1d8f0c6150cd947abd1899cd560001b6118db565b6111967fe22d29e131054f3c994f0d6d0e56b945c3b27d7d46bba6051e5117dc2557a9ce60001b6118db565b6111c27f5d9d4e99a91272d9835f0344f013f5ecedd68addb9fe76318cc5ab6ccc528aa760001b6118db565b6111ee7f779753cdb8855d295ba63b5e4fe53b52bf48c517a4f99d1e2b4bd54a790b952b60001b6118db565b6111fb6000801b826108c9565b50565b600061122c7f277c50936358732bcb7ce0411a22cbe9ab2337b20bd35e5dd5e1da7a1f6e652e60001b6118db565b6112587fcc87f107edf8d44825dcab64e93c264d8e2e046b5bab84d3729ebbad781942c260001b6118db565b6112847f3ba42484ad8627222eb591cc7f5f41bc3e009db7b608b17adde0ed502e9c760a60001b6118db565b6000600260008581526020019081526020016000208054905090506112cb7ff813aad69bac4a813ed915bc4dbaa09cbf71a2af0d7c9a330736e2f36f0a0ed460001b6118db565b6112f77fc3cefdf26052bb70f9ddb00df44cc5beb13dc5e2968f244d0f51beada13720d560001b6118db565b60008114806113065750828111155b1561136d576113377f2e33720cf25f6b8e1092b5a1bb96fb16002cef3d8405d41a71c58af31be2ce8860001b6118db565b6113637f09f30554b2afe6c5ae770212b081f5de25ec9de1167a12c385bffb04989c9e2c60001b6118db565b600091505061141e565b6113997fd6e06438bb09af04503f235afee5e843e740b935e191b28eca427e01bdfaf85f60001b6118db565b6113c57fc902d63022b053c0c683c7861c39e35890eefaf3707eea062b6829cc7b18777760001b6118db565b6113f17f06691175a989b65eb9bd39d4bc024718fbdc0d256b780c67cf49916d878e4a4b60001b6118db565b60026000858152602001908152602001600020838154811061140f57fe5b90600052602060002001549150505b92915050565b6114507f476652241d4761bd624a0c2555256ff09d5fb8c6084d631fe985ef14595f3d6160001b6118db565b61147c7f622c26f9fef51842b1a83c52fb48b055910186a93cae8de00b07e43937bec61060001b6118db565b6114a87f0409301906a6a9c2144c18a65b7d89aedd2ff8a4801f344b8c4c9bd1820c5b9960001b6118db565b6114b56000801b33610952565b565b60006114e082600080868152602001908152602001600020600001611a6a90919063ffffffff16565b905092915050565b600061151182600080868152602001908152602001600020600001611a8490919063ffffffff16565b905092915050565b60006115477f3f18806e18d20dd0c20b1b0ace60256d681454dd013ca49ecfb200390d8ddf8860001b6118db565b6115737f6d00c549f3c0bded4cdae463341b651885e0fb498816f59bfd10568a1ddf965260001b6118db565b61159f7f8584091a725cc0c597289f1ede5eac9c8c2d5779c561d38d703684b79d22f7c160001b6118db565b60016000848152602001908152602001600020600083815260200190815260200160002054905092915050565b6000801b81565b6001602052816000526040600020602052806000526040600020600091509150505481565b6000611617600080848152602001908152602001600020600001611ab4565b9050919050565b6116446000808481526020019081526020016000206002015461163f61193c565b6114e8565b611699576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180611d8c6030913960400191505060405180910390fd5b6116a382826119d7565b5050565b6116d37f0e77a5e54c196ea29dc309e2f68c4223daf1968de80adc5a2ac702bf5ab9c79e60001b6118db565b6116ff7fe9f980434a095784833a291a073cdb6a41ab9199099578db1d3341acd44a2de460001b6118db565b61172b7f9595b610fd1b9c919129dea5ddfe638c65600694e2ce37d9422f767f67c136ec60001b6118db565b6117577f78d0f1e7604b8b03fc1f985b1f847a1c7ffd01321438d1e4bd201dc1078a72a860001b6118db565b6117603361082f565b6117d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f5265737472696374656420746f2061646d696e732e000000000000000000000081525060200191505060405180910390fd5b6117fe7f429b3ecf8c1da568a2089c011fbeed3678bf23e259fd14668e6fbfef767fe46860001b6118db565b61182a7f033b13fa1064ccc6c9ad4d7776ecef9aec9835a1d8f0c6150cd947abd1899cd560001b6118db565b6118567f5513e8eb426176372e83e140cada4fa2da0f8572dee369b0c6c23b216dd0336e60001b6118db565b6118827f5b1d0c6a7147f51924e51f4f33b18c5a033c2652cbf52b128f85a628c0f5a52760001b6118db565b6118ae7feb3f27b671e7dcbf9a96657edddce7d837b25ad448e7ca694624a31bbdf1dd1760001b6118db565b6118d87f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a6826108c9565b50565b50565b600260205281600052604060002081815481106118f757fe5b90600052602060002001600091509150505481565b6000611934836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611ac9565b905092915050565b600033905090565b61196b8160008085815260200190815260200160002060000161190c90919063ffffffff16565b156119d35761197861193c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6119fe81600080858152602001908152602001600020600001611b3990919063ffffffff16565b15611a6657611a0b61193c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000611a798360000183611b69565b60001c905092915050565b6000611aac836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611bec565b905092915050565b6000611ac282600001611c0f565b9050919050565b6000611ad58383611bec565b611b2e578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050611b33565b600090505b92915050565b6000611b61836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611c20565b905092915050565b600081836000018054905011611bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611d096022913960400191505060405180910390fd5b826000018281548110611bd957fe5b9060005260206000200154905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b600081600001805490509050919050565b60008083600101600084815260200190815260200160002054905060008114611cfc5760006001820390506000600186600001805490500390506000866000018281548110611c6b57fe5b9060005260206000200154905080876000018481548110611c8857fe5b9060005260206000200181905550600183018760010160008381526020019081526020016000208190555086600001805480611cc057fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050611d02565b60009150505b9291505056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7453656e646572206d75737420626520616e2041646d696e206f72205265706f7274657220746f207375626d697456616c7565416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a2646970667358221220b2f2daa2765acc3d02bd3c3216c1f2182395680941168bf64e1586f4bff2521f64736f6c63430007000033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x182 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8BAD0C0A GT PUSH2 0xD8 JUMPI DUP1 PUSH4 0xA3183701 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xDD8755F2 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xDD8755F2 EQ PUSH2 0x69B JUMPI DUP1 PUSH4 0xDE0EF188 EQ PUSH2 0x6DF JUMPI DUP1 PUSH4 0xFB0CEB04 EQ PUSH2 0x70D JUMPI PUSH2 0x182 JUMP JUMPDEST DUP1 PUSH4 0xA3183701 EQ PUSH2 0x5BF JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x60B JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x64D JUMPI PUSH2 0x182 JUMP JUMPDEST DUP1 PUSH4 0x91D14854 GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x4F1 JUMPI DUP1 PUSH4 0x93FA4915 EQ PUSH2 0x555 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x5A1 JUMPI PUSH2 0x182 JUMP JUMPDEST DUP1 PUSH4 0x8BAD0C0A EQ PUSH2 0x485 JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x48F JUMPI PUSH2 0x182 JUMP JUMPDEST DUP1 PUSH4 0x3F60D799 GT PUSH2 0x13A JUMPI DUP1 PUSH4 0x62F55112 GT PUSH2 0x114 JUMPI DUP1 PUSH4 0x62F55112 EQ PUSH2 0x3BD JUMPI DUP1 PUSH4 0x70480275 EQ PUSH2 0x3F5 JUMPI DUP1 PUSH4 0x77FBB663 EQ PUSH2 0x439 JUMPI PUSH2 0x182 JUMP JUMPDEST DUP1 PUSH4 0x3F60D799 EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0x46EEE1C4 EQ PUSH2 0x337 JUMPI DUP1 PUSH4 0x5DE5C212 EQ PUSH2 0x379 JUMPI PUSH2 0x182 JUMP JUMPDEST DUP1 PUSH4 0x24D7806C GT PUSH2 0x16B JUMPI DUP1 PUSH4 0x24D7806C EQ PUSH2 0x223 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x27D JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x2CB JUMPI PUSH2 0x182 JUMP JUMPDEST DUP1 PUSH4 0x44AD7BE EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1E1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C9 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x19D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x759 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x810 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x265 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x239 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x82F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C9 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x293 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x8C9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x317 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x952 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x321 PUSH2 0x9EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x363 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x34D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xA0F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3BB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x38F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xAB3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3F3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xCE7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x437 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xFE7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x46F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x44F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x48D PUSH2 0x1424 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4C5 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x4A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x14B7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x53D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x507 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x14E8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x58B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x56B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1519 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x5A9 PUSH2 0x15CC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x5F5 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x5D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x15D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x637 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x621 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x15F8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x699 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x663 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x161E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6DD PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x6B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x16A7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x70B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x6F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x18DB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x743 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x723 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x18DE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0x787 PUSH32 0xF54DE96A6B0F1E302AEE8D7F95829CEFAA70B030610ECB0951F2E4BBAF8CE0C9 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x7B3 PUSH32 0xDAB20BA11BED5171BE2C2D093A3957BD914953271A869801B87BE44CF64523C2 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x7DF PUSH32 0xF5E03F50CE48FB20F632D63549EE11D9EC9348358F87D56206F2E23CC0D8A0E5 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x809 PUSH32 0x176C2B761BFEB5DAB89F614B6C08152E31D9230394B3605EABF32249EA1C89A6 DUP4 PUSH2 0x14E8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x85D PUSH32 0x8623039A08ACD822DEE121268547E346D7E7BEA142DE92A38C0F94B4669E58E8 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x889 PUSH32 0xCB806BB50A07D306FE4B316DFB44150591788AD097F80609103C5F7206ACF0E3 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x8B5 PUSH32 0x9A2A3CC0E1C51A161FC2F8AE5596C51C35AB179EEAAD4B058BE813E61897B4C8 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x8C2 PUSH1 0x0 DUP1 SHL DUP4 PUSH2 0x14E8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8EF PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x8EA PUSH2 0x193C JUMP JUMPDEST PUSH2 0x14E8 JUMP JUMPDEST PUSH2 0x944 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1D2B PUSH1 0x2F SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x94E DUP3 DUP3 PUSH2 0x1944 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x95A PUSH2 0x193C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x9DD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1DBC PUSH1 0x2F SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x9E7 DUP3 DUP3 PUSH2 0x19D7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x176C2B761BFEB5DAB89F614B6C08152E31D9230394B3605EABF32249EA1C89A6 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA3D PUSH32 0x503A16DA38E71E7BACE6FE1F99C69ADF154700B332F7356A846E033DEC9741DA PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xA69 PUSH32 0x2ED8D5FE9135677C477F8F3ECD7A4256F04A4FF301BBA1BD98F77B53B0F5AA50 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xA95 PUSH32 0x11AA2427FC89ED6E6ED31A082AB8C6BA00ECAC83001D180FF9E562917CDC3387 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xADF PUSH32 0xE77A5E54C196EA29DC309E2F68C4223DAF1968DE80ADC5A2AC702BF5AB9C79E PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xB0B PUSH32 0xE9F980434A095784833A291A073CDB6A41AB9199099578DB1D3341ACD44A2DE4 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xB37 PUSH32 0x9595B610FD1B9C919129DEA5DDFE638C65600694E2CE37D9422F767F67C136EC PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xB63 PUSH32 0x78D0F1E7604B8B03FC1F985B1F847A1C7FFD01321438D1E4BD201DC1078A72A8 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xB6C CALLER PUSH2 0x82F JUMP JUMPDEST PUSH2 0xBDE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x5265737472696374656420746F2061646D696E732E0000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC0A PUSH32 0x429B3ECF8C1DA568A2089C011FBEED3678BF23E259FD14668E6FBFEF767FE468 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xC36 PUSH32 0x33B13FA1064CCC6C9AD4D7776ECEF9AEC9835A1D8F0C6150CD947ABD1899CD5 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xC62 PUSH32 0xF97011770CD3EEBB1618366D789416BA95163A626F368CA4383DFFC1952B3C76 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xC8E PUSH32 0x610617CE496B0C0D0459B71C9C95724872C5B0252C78F630FF2C583C044F22D7 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xCBA PUSH32 0xB934982A5D13E5DE7749DDCB19A0D3E46082F0724FE020FB64B00BC5BA3D4A5F PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xCE4 PUSH32 0x176C2B761BFEB5DAB89F614B6C08152E31D9230394B3605EABF32249EA1C89A6 DUP3 PUSH2 0x161E JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xD13 PUSH32 0xB68984996296AD029CF1C0A5F1A0DBE3B4C1CC9783E3496AB762570E9311A54E PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xD3F PUSH32 0xCD8329A6919154E0B467C3C10A069C8C734098C58A236F23F9CEC2F183E0561E PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xD6B PUSH32 0x407A553C794813DFFD15EC66138CBCB88CF43CF000721BA905F91C17106A2201 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xD97 PUSH32 0x1494819D655FDF72B94A9FF2C059CE92BDF5A1D1E8793979F69782874FE83130 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xDA0 CALLER PUSH2 0x759 JUMP JUMPDEST DUP1 PUSH2 0xDB0 JUMPI POP PUSH2 0xDAF CALLER PUSH2 0x82F JUMP JUMPDEST JUMPDEST PUSH2 0xE05 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x32 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1D5A PUSH1 0x32 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE31 PUSH32 0x8CA6475829765540AF2C1B59EE2D814B5DD433CF52800D812F9E6774B55EB376 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xE5D PUSH32 0x920E320C5254FCF4049309D9897D4BC88721355EE56CFA7E51D84D1950D3BD07 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xE89 PUSH32 0xAD4F78A587A01DE431BCEBB6A5C73627D8D338A654D65BC681F544B18EF87FE4 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 TIMESTAMP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xEDE PUSH32 0xDBF86B1EC5755CAA9EBFE27E46B4413982FF59FF910F42A487B0EEDFF95E364B PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xF0A PUSH32 0x2D16D3E857355920D0623BDD93CC0D23AD3CCD45E0DF5A75D7BBFBABE13741DF PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 TIMESTAMP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE PUSH2 0xF70 PUSH32 0xFAC8D8CDACD09A6C65B89771FF88B2A5673371A4BE79AB262AF1669A31B618B4 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0xF9C PUSH32 0x3C48E8BD819E8B6DF826DC24C7AA9FE3D831B9B618C0B7B721052FFB026AED7F PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH32 0xBA11E319AEE26E7BBAC889432515BA301EC8F6D27BF6B94829C21A65C5F6FF25 DUP3 TIMESTAMP DUP4 PUSH1 0x40 MLOAD DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x1013 PUSH32 0xE77A5E54C196EA29DC309E2F68C4223DAF1968DE80ADC5A2AC702BF5AB9C79E PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x103F PUSH32 0xE9F980434A095784833A291A073CDB6A41AB9199099578DB1D3341ACD44A2DE4 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x106B PUSH32 0x9595B610FD1B9C919129DEA5DDFE638C65600694E2CE37D9422F767F67C136EC PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x1097 PUSH32 0x78D0F1E7604B8B03FC1F985B1F847A1C7FFD01321438D1E4BD201DC1078A72A8 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x10A0 CALLER PUSH2 0x82F JUMP JUMPDEST PUSH2 0x1112 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x5265737472696374656420746F2061646D696E732E0000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x113E PUSH32 0x429B3ECF8C1DA568A2089C011FBEED3678BF23E259FD14668E6FBFEF767FE468 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x116A PUSH32 0x33B13FA1064CCC6C9AD4D7776ECEF9AEC9835A1D8F0C6150CD947ABD1899CD5 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x1196 PUSH32 0xE22D29E131054F3C994F0D6D0E56B945C3B27D7D46BBA6051E5117DC2557A9CE PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x11C2 PUSH32 0x5D9D4E99A91272D9835F0344F013F5ECEDD68ADDB9FE76318CC5AB6CCC528AA7 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x11EE PUSH32 0x779753CDB8855D295BA63B5E4FE53B52BF48C517A4F99D1E2B4BD54A790B952B PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x11FB PUSH1 0x0 DUP1 SHL DUP3 PUSH2 0x8C9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x122C PUSH32 0x277C50936358732BCB7CE0411A22CBE9AB2337B20BD35E5DD5E1DA7A1F6E652E PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x1258 PUSH32 0xCC87F107EDF8D44825DCAB64E93C264D8E2E046B5BAB84D3729EBBAD781942C2 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x1284 PUSH32 0x3BA42484AD8627222EB591CC7F5F41BC3E009DB7B608B17ADDE0ED502E9C760A PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD SWAP1 POP SWAP1 POP PUSH2 0x12CB PUSH32 0xF813AAD69BAC4A813ED915BC4DBAA09CBF71A2AF0D7C9A330736E2F36F0A0ED4 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x12F7 PUSH32 0xC3CEFDF26052BB70F9DDB00DF44CC5BEB13DC5E2968F244D0F51BEADA13720D5 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH1 0x0 DUP2 EQ DUP1 PUSH2 0x1306 JUMPI POP DUP3 DUP2 GT ISZERO JUMPDEST ISZERO PUSH2 0x136D JUMPI PUSH2 0x1337 PUSH32 0x2E33720CF25F6B8E1092B5A1BB96FB16002CEF3D8405D41A71C58AF31BE2CE88 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x1363 PUSH32 0x9F30554B2AFE6C5AE770212B081F5DE25EC9DE1167A12C385BFFB04989C9E2C PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x141E JUMP JUMPDEST PUSH2 0x1399 PUSH32 0xD6E06438BB09AF04503F235AFEE5E843E740B935E191B28ECA427E01BDFAF85F PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x13C5 PUSH32 0xC902D63022B053C0C683C7861C39E35890EEFAF3707EEA062B6829CC7B187777 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x13F1 PUSH32 0x6691175A989B65EB9BD39D4BC024718FBDC0D256B780C67CF49916D878E4A4B PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x140F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1450 PUSH32 0x476652241D4761BD624A0C2555256FF09D5FB8C6084D631FE985EF14595F3D61 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x147C PUSH32 0x622C26F9FEF51842B1A83C52FB48B055910186A93CAE8DE00B07E43937BEC610 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x14A8 PUSH32 0x409301906A6A9C2144C18A65B7D89AEDD2FF8A4801F344B8C4C9BD1820C5B99 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x14B5 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x952 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14E0 DUP3 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x1A6A SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1511 DUP3 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x1A84 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1547 PUSH32 0x3F18806E18D20DD0C20B1B0ACE60256D681454DD013CA49ECFB200390D8DDF88 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x1573 PUSH32 0x6D00C549F3C0BDED4CDAE463341B651885E0FB498816F59BFD10568A1DDF9652 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x159F PUSH32 0x8584091A725CC0C597289F1EDE5EAC9C8C2D5779C561D38D703684B79D22F7C1 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1617 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x1AB4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1644 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x163F PUSH2 0x193C JUMP JUMPDEST PUSH2 0x14E8 JUMP JUMPDEST PUSH2 0x1699 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x30 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1D8C PUSH1 0x30 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x16A3 DUP3 DUP3 PUSH2 0x19D7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x16D3 PUSH32 0xE77A5E54C196EA29DC309E2F68C4223DAF1968DE80ADC5A2AC702BF5AB9C79E PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x16FF PUSH32 0xE9F980434A095784833A291A073CDB6A41AB9199099578DB1D3341ACD44A2DE4 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x172B PUSH32 0x9595B610FD1B9C919129DEA5DDFE638C65600694E2CE37D9422F767F67C136EC PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x1757 PUSH32 0x78D0F1E7604B8B03FC1F985B1F847A1C7FFD01321438D1E4BD201DC1078A72A8 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x1760 CALLER PUSH2 0x82F JUMP JUMPDEST PUSH2 0x17D2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x5265737472696374656420746F2061646D696E732E0000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x17FE PUSH32 0x429B3ECF8C1DA568A2089C011FBEED3678BF23E259FD14668E6FBFEF767FE468 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x182A PUSH32 0x33B13FA1064CCC6C9AD4D7776ECEF9AEC9835A1D8F0C6150CD947ABD1899CD5 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x1856 PUSH32 0x5513E8EB426176372E83E140CADA4FA2DA0F8572DEE369B0C6C23B216DD0336E PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x1882 PUSH32 0x5B1D0C6A7147F51924E51F4F33B18C5A033C2652CBF52B128F85A628C0F5A527 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x18AE PUSH32 0xEB3F27B671E7DCBF9A96657EDDDCE7D837B25AD448E7CA694624A31BBDF1DD17 PUSH1 0x0 SHL PUSH2 0x18DB JUMP JUMPDEST PUSH2 0x18D8 PUSH32 0x176C2B761BFEB5DAB89F614B6C08152E31D9230394B3605EABF32249EA1C89A6 DUP3 PUSH2 0x8C9 JUMP JUMPDEST POP JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x18F7 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1934 DUP4 PUSH1 0x0 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SHL PUSH2 0x1AC9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x196B DUP2 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x190C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST ISZERO PUSH2 0x19D3 JUMPI PUSH2 0x1978 PUSH2 0x193C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x19FE DUP2 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x1B39 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST ISZERO PUSH2 0x1A66 JUMPI PUSH2 0x1A0B PUSH2 0x193C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A79 DUP4 PUSH1 0x0 ADD DUP4 PUSH2 0x1B69 JUMP JUMPDEST PUSH1 0x0 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AAC DUP4 PUSH1 0x0 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SHL PUSH2 0x1BEC JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AC2 DUP3 PUSH1 0x0 ADD PUSH2 0x1C0F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AD5 DUP4 DUP4 PUSH2 0x1BEC JUMP JUMPDEST PUSH2 0x1B2E JUMPI DUP3 PUSH1 0x0 ADD DUP3 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE DUP3 PUSH1 0x0 ADD DUP1 SLOAD SWAP1 POP DUP4 PUSH1 0x1 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x1 SWAP1 POP PUSH2 0x1B33 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B61 DUP4 PUSH1 0x0 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SHL PUSH2 0x1C20 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 PUSH1 0x0 ADD DUP1 SLOAD SWAP1 POP GT PUSH2 0x1BCA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1D09 PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1BD9 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ ISZERO SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 ADD DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP2 EQ PUSH2 0x1CFC JUMPI PUSH1 0x0 PUSH1 0x1 DUP3 SUB SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP7 PUSH1 0x0 ADD DUP1 SLOAD SWAP1 POP SUB SWAP1 POP PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1C6B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1C88 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x1 DUP4 ADD DUP8 PUSH1 0x1 ADD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP7 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH2 0x1CC0 JUMPI INVALID JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP7 PUSH1 0x1 ADD PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x1D02 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID GASLIMIT PUSH15 0x756D657261626C655365743A20696E PUSH5 0x6578206F75 PUSH21 0x206F6620626F756E6473416363657373436F6E7472 PUSH16 0x6C3A2073656E646572206D7573742062 PUSH6 0x20616E206164 PUSH14 0x696E20746F206772616E7453656E PUSH5 0x6572206D75 PUSH20 0x7420626520616E2041646D696E206F7220526570 PUSH16 0x7274657220746F207375626D69745661 PUSH13 0x7565416363657373436F6E7472 PUSH16 0x6C3A2073656E646572206D7573742062 PUSH6 0x20616E206164 PUSH14 0x696E20746F207265766F6B654163 PUSH4 0x65737343 PUSH16 0x6E74726F6C3A2063616E206F6E6C7920 PUSH19 0x656E6F756E636520726F6C657320666F722073 PUSH6 0x6C66A2646970 PUSH7 0x7358221220B2F2 0xDA LOG2 PUSH23 0x5ACC3D02BD3C3216C1F2182395680941168BF64E1586F4 0xBF CALLCODE MSTORE 0x1F PUSH5 0x736F6C6343 STOP SMOD STOP STOP CALLER ", + "sourceMap": "7554:10208:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12921:419;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4280:112:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12408:420:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4642:223:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5816:205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8037:61:5;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15882:427;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11442:409;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13550:1430;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10351:406;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16525:1234;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11922:392;;;:::i;:::-;;3963:136:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2948:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15221:435:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1725:49:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7774:61:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3253:125:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5099:226;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10938:405:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7595:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7979:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12921:419;12987:4;12995:80;13008:66;12995:80;;:12;:80::i;:::-;13094;13107:66;13094:80;;:12;:80::i;:::-;13196;13209:66;13196:80;;:12;:80::i;:::-;13302:31;8077:21;13325:7;13302;:31::i;:::-;13295:38;;12921:419;;;:::o;4280:112:1:-;4337:7;4363:6;:12;4370:4;4363:12;;;;;;;;;;;:22;;;4356:29;;4280:112;;;:::o;12408:420:5:-;12471:4;12478:80;12491:66;12478:80;;:12;:80::i;:::-;12577;12590:66;12577:80;;:12;:80::i;:::-;12679;12692:66;12679:80;;:12;:80::i;:::-;12785:36;1770:4:1;12793:18:5;;12813:7;12785;:36::i;:::-;12778:43;;12408:420;;;:::o;4642:223:1:-;4725:45;4733:6;:12;4740:4;4733:12;;;;;;;;;;;:22;;;4757:12;:10;:12::i;:::-;4725:7;:45::i;:::-;4717:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4833:25;4844:4;4850:7;4833:10;:25::i;:::-;4642:223;;:::o;5816:205::-;5913:12;:10;:12::i;:::-;5902:23;;:7;:23;;;5894:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5988:26;6000:4;6006:7;5988:11;:26::i;:::-;5816:205;;:::o;8037:61:5:-;8077:21;8037:61;:::o;15882:427::-;15959:4;15966:80;15979:66;15966:80;;:12;:80::i;:::-;16065;16078:66;16065:80;;:12;:80::i;:::-;16167;16180:66;16167:80;;:12;:80::i;:::-;16273:10;:22;16284:10;16273:22;;;;;;;;;;;:29;;;;16266:36;;15882:427;;;:::o;11442:409::-;8824:80;8837:66;8824:80;;:12;:80::i;:::-;8923;8936:66;8923:80;;:12;:80::i;:::-;9025;9038:66;9025:80;;:12;:80::i;:::-;9125;9138:66;9125:80;;:12;:80::i;:::-;9232:19;9240:10;9232:7;:19::i;:::-;9224:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9278:80;9291:66;9278:80;;:12;:80::i;:::-;9380;9393:66;9380:80;;:12;:80::i;:::-;11510::::1;11523:66;11510:80;;:12;:80::i;:::-;11609;11622:66;11609:80;;:12;:80::i;:::-;11711;11724:66;11711:80;;:12;:80::i;:::-;11810:34;8077:21;11836:7;11810:10;:34::i;:::-;11442:409:::0;:::o;13550:1430::-;13617:80;13630:66;13617:80;;:12;:80::i;:::-;13716;13729:66;13716:80;;:12;:80::i;:::-;13818;13831:66;13818:80;;:12;:80::i;:::-;13918;13931:66;13918:80;;:12;:80::i;:::-;14025:22;14036:10;14025;:22::i;:::-;:45;;;;14051:19;14059:10;14051:7;:19::i;:::-;14025:45;14017:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14126:80;14139:66;14126:80;;:12;:80::i;:::-;14228;14241:66;14228:80;;:12;:80::i;:::-;14330;14343:66;14330:80;;:12;:80::i;:::-;14467:6;14429;:18;14436:10;14429:18;;;;;;;;;;;:35;14448:15;14429:35;;;;;;;;;;;:44;;;;14475:80;14488:66;14475:80;;:12;:80::i;:::-;14577;14590:66;14577:80;;:12;:80::i;:::-;14676:10;:22;14687:10;14676:22;;;;;;;;;;;14704:15;14676:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14722:80;14735:66;14722:80;;:12;:80::i;:::-;14824;14837:66;14824:80;;:12;:80::i;:::-;14928:45;14937:10;14949:15;14966:6;14928:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13550:1430;;:::o;10351:406::-;8824:80;8837:66;8824:80;;:12;:80::i;:::-;8923;8936:66;8923:80;;:12;:80::i;:::-;9025;9038:66;9025:80;;:12;:80::i;:::-;9125;9138:66;9125:80;;:12;:80::i;:::-;9232:19;9240:10;9232:7;:19::i;:::-;9224:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9278:80;9291:66;9278:80;;:12;:80::i;:::-;9380;9393:66;9380:80;;:12;:80::i;:::-;10412::::1;10425:66;10412:80;;:12;:80::i;:::-;10511;10524:66;10511:80;;:12;:80::i;:::-;10613;10626:66;10613:80;;:12;:80::i;:::-;10712:38;1770:4:1;10722:18:5::0;::::1;10742:7;10712:9;:38::i;:::-;10351:406:::0;:::o;16525:1234::-;16621:7;16631:80;16644:66;16631:80;;:12;:80::i;:::-;16730;16743:66;16730:80;;:12;:80::i;:::-;16832;16845:66;16832:80;;:12;:80::i;:::-;16931:8;16942:10;:22;16953:10;16942:22;;;;;;;;;;;:29;;;;16931:40;;16973:80;16986:66;16973:80;;:12;:80::i;:::-;17075;17088:66;17075:80;;:12;:80::i;:::-;17184:1;17177:3;:8;:24;;;;17196:5;17189:3;:12;;17177:24;17174:339;;;17204:80;17217:66;17204:80;;:12;:80::i;:::-;17303;17316:66;17303:80;;:12;:80::i;:::-;17406:1;17399:8;;;;;17174:339;17416:80;17429:66;17416:80;;:12;:80::i;:::-;17515;17528:66;17515:80;;:12;:80::i;:::-;17617;17630:66;17617:80;;:12;:80::i;:::-;17723:10;:22;17734:10;17723:22;;;;;;;;;;;17746:5;17723:29;;;;;;;;;;;;;;;;17716:36;;;16525:1234;;;;;:::o;11922:392::-;11963:80;11976:66;11963:80;;:12;:80::i;:::-;12062;12075:66;12062:80;;:12;:80::i;:::-;12164;12177:66;12164:80;;:12;:80::i;:::-;12263:44;1770:4:1;12276:18:5;;12296:10;12263:12;:44::i;:::-;11922:392::o;3963:136:1:-;4036:7;4062:30;4086:5;4062:6;:12;4069:4;4062:12;;;;;;;;;;;:20;;:23;;:30;;;;:::i;:::-;4055:37;;3963:136;;;;:::o;2948:137::-;3017:4;3040:38;3070:7;3040:6;:12;3047:4;3040:12;;;;;;;;;;;:20;;:29;;:38;;;;:::i;:::-;3033:45;;2948:137;;;;:::o;15221:435:5:-;15303:7;15312:80;15325:66;15312:80;;:12;:80::i;:::-;15411;15424:66;15411:80;;:12;:80::i;:::-;15513;15526:66;15513:80;;:12;:80::i;:::-;15619:6;:18;15626:10;15619:18;;;;;;;;;;;:30;15638:10;15619:30;;;;;;;;;;;;15612:37;;15221:435;;;;:::o;1725:49:1:-;1770:4;1725:49;;;:::o;7774:61:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3253:125:1:-;3316:7;3342:29;:6;:12;3349:4;3342:12;;;;;;;;;;;:20;;:27;:29::i;:::-;3335:36;;3253:125;;;:::o;5099:226::-;5183:45;5191:6;:12;5198:4;5191:12;;;;;;;;;;;:22;;;5215:12;:10;:12::i;:::-;5183:7;:45::i;:::-;5175:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5292:26;5304:4;5310:7;5292:11;:26::i;:::-;5099:226;;:::o;10938:405:5:-;8824:80;8837:66;8824:80;;:12;:80::i;:::-;8923;8936:66;8923:80;;:12;:80::i;:::-;9025;9038:66;9025:80;;:12;:80::i;:::-;9125;9138:66;9125:80;;:12;:80::i;:::-;9232:19;9240:10;9232:7;:19::i;:::-;9224:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9278:80;9291:66;9278:80;;:12;:80::i;:::-;9380;9393:66;9380:80;;:12;:80::i;:::-;11003::::1;11016:66;11003:80;;:12;:80::i;:::-;11102;11115:66;11102:80;;:12;:80::i;:::-;11204;11217:66;11204:80;;:12;:80::i;:::-;11303:33;8077:21;11328:7;11303:9;:33::i;:::-;10938:405:::0;:::o;7595:59::-;;:::o;7979:47::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6429:141:3:-;6499:4;6522:41;6527:3;:10;;6555:5;6547:14;;6539:23;;6522:4;:41::i;:::-;6515:48;;6429:141;;;;:::o;598:104:0:-;651:15;685:10;678:17;;598:104;:::o;7023:184:1:-;7096:33;7121:7;7096:6;:12;7103:4;7096:12;;;;;;;;;;;:20;;:24;;:33;;;;:::i;:::-;7092:109;;;7177:12;:10;:12::i;:::-;7150:40;;7168:7;7150:40;;7162:4;7150:40;;;;;;;;;;7092:109;7023:184;;:::o;7213:188::-;7287:36;7315:7;7287:6;:12;7294:4;7287:12;;;;;;;;;;;:20;;:27;;:36;;;;:::i;:::-;7283:112;;;7371:12;:10;:12::i;:::-;7344:40;;7362:7;7344:40;;7356:4;7344:40;;;;;;;;;;7283:112;7213:188;;:::o;7650:147:3:-;7724:7;7766:22;7770:3;:10;;7782:5;7766:3;:22::i;:::-;7758:31;;7743:47;;7650:147;;;;:::o;6966:156::-;7046:4;7069:46;7079:3;:10;;7107:5;7099:14;;7091:23;;7069:9;:46::i;:::-;7062:53;;6966:156;;;;:::o;7203:115::-;7266:7;7292:19;7300:3;:10;;7292:7;:19::i;:::-;7285:26;;7203:115;;;:::o;1640:404::-;1703:4;1724:21;1734:3;1739:5;1724:9;:21::i;:::-;1719:319;;1761:3;:11;;1778:5;1761:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1941:3;:11;;:18;;;;1919:3;:12;;:19;1932:5;1919:19;;;;;;;;;;;:40;;;;1980:4;1973:11;;;;1719:319;2022:5;2015:12;;1640:404;;;;;:::o;6738:147::-;6811:4;6834:44;6842:3;:10;;6870:5;6862:14;;6854:23;;6834:7;:44::i;:::-;6827:51;;6738:147;;;;:::o;4452:201::-;4519:7;4567:5;4546:3;:11;;:18;;;;:26;4538:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4628:3;:11;;4640:5;4628:18;;;;;;;;;;;;;;;;4621:25;;4452:201;;;;:::o;3805:127::-;3878:4;3924:1;3901:3;:12;;:19;3914:5;3901:19;;;;;;;;;;;;:24;;3894:31;;3805:127;;;;:::o;4013:107::-;4069:7;4095:3;:11;;:18;;;;4088:25;;4013:107;;;:::o;2212:1512::-;2278:4;2394:18;2415:3;:12;;:19;2428:5;2415:19;;;;;;;;;;;;2394:40;;2463:1;2449:10;:15;2445:1273;;2806:21;2843:1;2830:10;:14;2806:38;;2858:17;2899:1;2878:3;:11;;:18;;;;:22;2858:42;;3140:17;3160:3;:11;;3172:9;3160:22;;;;;;;;;;;;;;;;3140:42;;3303:9;3274:3;:11;;3286:13;3274:26;;;;;;;;;;;;;;;:38;;;;3420:1;3404:13;:17;3378:3;:12;;:23;3391:9;3378:23;;;;;;;;;;;:43;;;;3527:3;:11;;:17;;;;;;;;;;;;;;;;;;;;;;;;3619:3;:12;;:19;3632:5;3619:19;;;;;;;;;;;3612:26;;;3660:4;3653:11;;;;;;;;2445:1273;3702:5;3695:12;;;2212:1512;;;;;:::o" }, "methodIdentifiers": { "DEFAULT_ADMIN_ROLE()": "a217fddf", "REPORTER_ROLE()": "3f60d799", "addAdmin(address)": "70480275", "addReporter(address)": "dd8755f2", + "c_0xf503494c(bytes32)": "de0ef188", "getNewValueCountbyRequestId(uint256)": "46eee1c4", "getRoleAdmin(bytes32)": "248a9ca3", "getRoleMember(bytes32,uint256)": "9010d07c", @@ -14445,18 +14560,15 @@ }, "id": 3 }, - "contracts/TellorAccess.sol": { + "contracts/Migrations.sol": { "ast": { - "absolutePath": "contracts/TellorAccess.sol", + "absolutePath": "contracts/Migrations.sol", "exportedSymbols": { - "SafeMath": [ - 1217 - ], - "TellorAccess": [ - 1480 + "Migrations": [ + 1104 ] }, - "id": 1481, + "id": 1105, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ @@ -14464,220 +14576,228 @@ "id": 1031, "literals": [ "solidity", - "0.7", + ">=", + "0.4", + ".22", + "<", + "0.8", ".0" ], "nodeType": "PragmaDirective", - "src": "32:22:4" - }, - { - "absolutePath": "@openzeppelin/contracts/access/AccessControl.sol", - "file": "@openzeppelin/contracts/access/AccessControl.sol", - "id": 1032, - "nodeType": "ImportDirective", - "scope": 1481, - "sourceUnit": 306, - "src": "56:58:4", - "symbolAliases": [], - "unitAlias": "" + "src": "32:32:4" }, { "abstract": false, "baseContracts": [], "contractDependencies": [], - "contractKind": "library", + "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1217, + "id": 1104, "linearizedBaseContracts": [ - 1217 + 1104 ], - "name": "SafeMath", + "name": "Migrations", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1056, + "id": 1036, "nodeType": "Block", - "src": "208:109:4", - "statements": [ + "src": "145:2:4", + "statements": [] + }, + "documentation": null, + "functionSelector": "9d3cf043", + "id": 1037, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "c_0xabb147e4", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1034, + "nodeType": "ParameterList", + "parameters": [ { - "assignments": [ - 1042 - ], - "declarations": [ - { - "constant": false, - "id": 1042, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1056, - "src": "218:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "218:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1046, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1045, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1043, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1034, - "src": "230:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 1044, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "234:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "230:5:4", + "constant": false, + "id": 1033, + "mutability": "mutable", + "name": "c__0xabb147e4", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1037, + "src": "110:21:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1032, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "110:7:4", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "nodeType": "VariableDeclarationStatement", - "src": "218:17:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1048, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1042, - "src": "253:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 1049, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1034, - "src": "258:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "253:6:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 1051, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "261:29:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", - "typeString": "literal_string \"SafeMath: addition overflow\"" - }, - "value": "SafeMath: addition overflow" - } - ], + "value": null, + "visibility": "internal" + } + ], + "src": "109:23:4" + }, + "returnParameters": { + "id": 1035, + "nodeType": "ParameterList", + "parameters": [], + "src": "145:0:4" + }, + "scope": 1104, + "src": "88:59:4", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "8da5cb5b", + "id": 1041, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1104, + "src": "151:33:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1038, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "151:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1039, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "174:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "174:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "445df0ac", + "id": 1043, + "mutability": "mutable", + "name": "last_completed_migration", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1104, + "src": "188:36:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1042, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "188:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 1078, + "nodeType": "Block", + "src": "251:705:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307864353034363531326434366533336136383435616366666164666431656461653334346663333264363531636531656436653334323530313239366665303630", + "id": 1046, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "265:66:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_96350401720526460324635357237946226177439520409572610718103751899867708907616_by_1", + "typeString": "int_const 9635...(69 digits omitted)...7616" + }, + "value": "0xd5046512d46e33a6845acffadfd1edae344fc32d651ce1ed6e342501296fe060" + } + ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", - "typeString": "literal_string \"SafeMath: addition overflow\"" + "typeIdentifier": "t_rational_96350401720526460324635357237946226177439520409572610718103751899867708907616_by_1", + "typeString": "int_const 9635...(69 digits omitted)...7616" } ], - "id": 1047, - "name": "require", + "id": 1045, + "name": "c_0xabb147e4", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "245:7:4", + "overloadedDeclarations": [], + "referencedDeclaration": 1037, + "src": "252:12:4", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" } }, - "id": 1052, + "id": 1047, "isConstant": false, "isLValue": false, "isPure": false, @@ -14685,235 +14805,59 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "245:46:4", + "src": "252:80:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1053, + "id": 1048, "nodeType": "ExpressionStatement", - "src": "245:46:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1054, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1042, - "src": "309:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1040, - "id": 1055, - "nodeType": "Return", - "src": "302:8:4" - } - ] - }, - "documentation": null, - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1037, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1034, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1057, - "src": "154:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1033, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "154:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" + "src": "252:80:4" }, - { - "constant": false, - "id": 1036, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1057, - "src": "165:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1035, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "165:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "153:22:4" - }, - "returnParameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1057, - "src": "199:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "199:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "198:9:4" - }, - "scope": 1217, - "src": "141:176:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1072, - "nodeType": "Block", - "src": "390:67:4", - "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1067, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "411:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1068, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "414:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 1069, + "hexValue": "307863303466346630326466396133306633353662353730376339396537333334613538306237396462613531333263666137373433663336333530653339306133", + "id": 1050, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "string", + "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "417:32:4", + "src": "364:66:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" + "typeIdentifier": "t_rational_86984193161534000346588863697194398170610205575745420583397751261968545845411_by_1", + "typeString": "int_const 8698...(69 digits omitted)...5411" }, - "value": "SafeMath: subtraction overflow" + "value": "0xc04f4f02df9a30f356b5707c99e7334a580b79dba5132cfa7743f36350e390a3" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" + "typeIdentifier": "t_rational_86984193161534000346588863697194398170610205575745420583397751261968545845411_by_1", + "typeString": "int_const 8698...(69 digits omitted)...5411" } ], - "id": 1066, - "name": "sub", + "id": 1049, + "name": "c_0xabb147e4", "nodeType": "Identifier", - "overloadedDeclarations": [ - 1073, - 1100 - ], - "referencedDeclaration": 1100, - "src": "407:3:4", + "overloadedDeclarations": [], + "referencedDeclaration": 1037, + "src": "351:12:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" } }, - "id": 1070, + "id": 1051, "isConstant": false, "isLValue": false, "isPure": false, @@ -14921,138 +14865,137 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "407:43:4", + "src": "351:80:4", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1065, - "id": 1071, - "nodeType": "Return", - "src": "400:50:4" - } - ] - }, - "documentation": null, - "id": 1073, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1062, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1073, - "src": "336:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1058, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "336:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" + "id": 1052, + "nodeType": "ExpressionStatement", + "src": "351:80:4" }, { - "constant": false, - "id": 1061, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1073, - "src": "347:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1060, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "347:7:4", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307863636635383439373735303264636134383733663065636361633432353733363939623862363235636532386433313763666639336336346566613133313564", + "id": 1054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "462:66:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_92705613755649485919703090083541148978594035551313701639956356986969455145309_by_1", + "typeString": "int_const 9270...(69 digits omitted)...5309" + }, + "value": "0xccf584977502dca4873f0eccac42573699b8b625ce28d317cff93c64efa1315d" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_92705613755649485919703090083541148978594035551313701639956356986969455145309_by_1", + "typeString": "int_const 9270...(69 digits omitted)...5309" + } + ], + "id": 1053, + "name": "c_0xabb147e4", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1037, + "src": "449:12:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "449:80:4", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" - } - ], - "src": "335:22:4" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [ + "id": 1056, + "nodeType": "ExpressionStatement", + "src": "449:80:4" + }, { - "constant": false, - "id": 1064, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1073, - "src": "381:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1063, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "381:7:4", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307835656263313136383335343734386161633938333338666263663738303936306231633764666636633537343436363264363637323530653339663566363333", + "id": 1058, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "562:66:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_42849695154138601520218594276284322424189668661672370719143702387700983526963_by_1", + "typeString": "int_const 4284...(69 digits omitted)...6963" + }, + "value": "0x5ebc1168354748aac98338fbcf780960b1c7dff6c5744662d667250e39f5f633" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_42849695154138601520218594276284322424189668661672370719143702387700983526963_by_1", + "typeString": "int_const 4284...(69 digits omitted)...6963" + } + ], + "id": 1057, + "name": "c_0xabb147e4", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1037, + "src": "549:12:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "549:80:4", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" - } - ], - "src": "380:9:4" - }, - "scope": 1217, - "src": "323:134:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1099, - "nodeType": "Block", - "src": "558:92:4", - "statements": [ + "id": 1060, + "nodeType": "ExpressionStatement", + "src": "549:80:4" + }, { "expression": { "argumentTypes": null, @@ -15060,43 +15003,59 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 1087, + "id": 1065, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1085, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1077, - "src": "576:1:4", + "expression": { + "argumentTypes": null, + "id": 1062, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "663:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "663:10:4", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, "nodeType": "BinaryOperation", - "operator": "<=", + "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1086, - "name": "a", + "id": 1064, + "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1075, - "src": "581:1:4", + "referencedDeclaration": 1041, + "src": "677:5:4", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "576:6:4", + "src": "663:19:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15104,16 +15063,21 @@ }, { "argumentTypes": null, - "id": 1088, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1079, - "src": "584:12:4", + "hexValue": "546869732066756e6374696f6e206973207265737472696374656420746f2074686520636f6e74726163742773206f776e6572", + "id": 1066, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "690:53:4", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } + "typeIdentifier": "t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1", + "typeString": "literal_string \"This function is restricted to the contract's owner\"" + }, + "value": "This function is restricted to the contract's owner" } ], "expression": { @@ -15123,11 +15087,11 @@ "typeString": "bool" }, { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" + "typeIdentifier": "t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1", + "typeString": "literal_string \"This function is restricted to the contract's owner\"" } ], - "id": 1084, + "id": 1061, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -15135,13 +15099,13 @@ -18 ], "referencedDeclaration": -18, - "src": "568:7:4", + "src": "648:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1089, + "id": 1067, "isConstant": false, "isLValue": false, "isPure": false, @@ -15149,436 +15113,224 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "568:29:4", + "src": "648:101:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1090, + "id": 1068, "nodeType": "ExpressionStatement", - "src": "568:29:4" + "src": "648:101:4" }, { - "assignments": [ - 1092 - ], - "declarations": [ - { - "constant": false, - "id": 1092, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1099, - "src": "607:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1091, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "607:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1096, - "initialValue": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1095, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1093, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1075, - "src": "619:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307864313961386630663535343532623538653334623763613038393238643866323035633864386565626366333635363531343438623832626135613738366462", + "id": 1070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "763:66:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_94806467164985336816397038914921011992364196326028202152813221561784754210523_by_1", + "typeString": "int_const 9480...(69 digits omitted)...0523" + }, + "value": "0xd19a8f0f55452b58e34b7ca08928d8f205c8d8eebcf365651448b82ba5a786db" } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 1094, - "name": "b", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_94806467164985336816397038914921011992364196326028202152813221561784754210523_by_1", + "typeString": "int_const 9480...(69 digits omitted)...0523" + } + ], + "id": 1069, + "name": "c_0xabb147e4", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1077, - "src": "623:1:4", + "referencedDeclaration": 1037, + "src": "750:12:4", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" } }, - "src": "619:5:4", + "id": 1071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "750:80:4", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "607:17:4" + "id": 1072, + "nodeType": "ExpressionStatement", + "src": "750:80:4" }, { "expression": { "argumentTypes": null, - "id": 1097, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "642:1:4", + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307861323934303363643534623632313466343931666363636631333261353930613633666133636435336533633362323733336266666664623332333662373930", + "id": 1074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "865:66:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_73536201077025619418985779021639534905121291366556832283730982856648721610640_by_1", + "typeString": "int_const 7353...(69 digits omitted)...0640" + }, + "value": "0xa29403cd54b6214f491fcccf132a590a63fa3cd53e3c3b2733bfffdb3236b790" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_73536201077025619418985779021639534905121291366556832283730982856648721610640_by_1", + "typeString": "int_const 7353...(69 digits omitted)...0640" + } + ], + "id": 1073, + "name": "c_0xabb147e4", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1037, + "src": "852:12:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "852:80:4", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "functionReturnParameters": 1083, - "id": 1098, - "nodeType": "Return", - "src": "635:8:4" + "id": 1076, + "nodeType": "ExpressionStatement", + "src": "852:80:4" + }, + { + "id": 1077, + "nodeType": "PlaceholderStatement", + "src": "950:1:4" } ] }, "documentation": null, - "id": 1100, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", + "id": 1079, + "name": "restricted", + "nodeType": "ModifierDefinition", "overrides": null, "parameters": { - "id": 1080, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1075, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1100, - "src": "476:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1074, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "476:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1077, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1100, - "src": "487:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1076, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "487:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1079, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1100, - "src": "498:26:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1078, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "498:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "475:50:4" - }, - "returnParameters": { - "id": 1083, + "id": 1044, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1082, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1100, - "src": "549:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1081, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "549:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "548:9:4" + "parameters": [], + "src": "248:2:4" }, - "scope": 1217, - "src": "463:187:4", - "stateMutability": "pure", + "src": "229:727:4", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1133, + "id": 1102, "nodeType": "Block", - "src": "724:392:4", + "src": "1016:338:4", "statements": [ { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1109, - "name": "a", + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307866343563653132303132623961626433616336643861363136663433373139646235353238623365373063373832323739363239376134336561386231633931", + "id": 1087, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1030:66:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_110528438741894933297997493928492235935456792704669124896904932174674084437137_by_1", + "typeString": "int_const 1105...(70 digits omitted)...7137" + }, + "value": "0xf45ce12012b9abd3ac6d8a616f43719db5528b3e70c7822796297a43ea8b1c91" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_110528438741894933297997493928492235935456792704669124896904932174674084437137_by_1", + "typeString": "int_const 1105...(70 digits omitted)...7137" + } + ], + "id": 1086, + "name": "c_0xabb147e4", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "956:1:4", + "referencedDeclaration": 1037, + "src": "1017:12:4", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1110, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "961:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "956:6:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1115, - "nodeType": "IfStatement", - "src": "952:45:4", - "trueBody": { - "id": 1114, - "nodeType": "Block", - "src": "964:33:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1112, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "985:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 1108, - "id": 1113, - "nodeType": "Return", - "src": "978:8:4" - } - ] - } - }, - { - "assignments": [ - 1117 - ], - "declarations": [ - { - "constant": false, - "id": 1117, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1133, - "src": "1007:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1116, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1007:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1121, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1120, + "id": 1088, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1118, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "1019:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 1119, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1104, - "src": "1023:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1019:5:4", + "names": [], + "nodeType": "FunctionCall", + "src": "1017:80:4", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "1007:17:4" + "id": 1089, + "nodeType": "ExpressionStatement", + "src": "1017:80:4" }, { "expression": { @@ -15586,126 +15338,102 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1127, + "hexValue": "307865633637636665393935383765636537323034343837393933653430373533376439623533393136376231336266346130343032366432353763623638616432", + "id": 1091, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1123, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "1042:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 1124, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "1046:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1042:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1126, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1104, - "src": "1051:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1042:10:4", + "nodeType": "Literal", + "src": "1129:66:4", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_rational_106929252472231848260459411673713239640492104465388257967295652693772502207186_by_1", + "typeString": "int_const 1069...(70 digits omitted)...7186" + }, + "value": "0xec67cfe99587ece7204487993e407537d9b539167b13bf4a04026d257cb68ad2" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_106929252472231848260459411673713239640492104465388257967295652693772502207186_by_1", + "typeString": "int_const 1069...(70 digits omitted)...7186" } - }, + ], + "id": 1090, + "name": "c_0xabb147e4", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1037, + "src": "1116:12:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1116:80:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1093, + "nodeType": "ExpressionStatement", + "src": "1116:80:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 1128, + "hexValue": "307837663135363030653835343032363064363933353761363030306363393966363731386132646433336332376535323633393562313065343337336233383337", + "id": 1095, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "string", + "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1054:35:4", + "src": "1227:66:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", - "typeString": "literal_string \"SafeMath: multiplication overflow\"" + "typeIdentifier": "t_rational_57481498517556646641228932668786924206880241740909424033263225802786470574135_by_1", + "typeString": "int_const 5748...(69 digits omitted)...4135" }, - "value": "SafeMath: multiplication overflow" + "value": "0x7f15600e8540260d69357a6000cc99f6718a2dd33c27e526395b10e4373b3837" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", - "typeString": "literal_string \"SafeMath: multiplication overflow\"" + "typeIdentifier": "t_rational_57481498517556646641228932668786924206880241740909424033263225802786470574135_by_1", + "typeString": "int_const 5748...(69 digits omitted)...4135" } ], - "id": 1122, - "name": "require", + "id": 1094, + "name": "c_0xabb147e4", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1034:7:4", + "overloadedDeclarations": [], + "referencedDeclaration": 1037, + "src": "1214:12:4", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" } }, - "id": 1129, + "id": 1096, "isConstant": false, "isLValue": false, "isPure": false, @@ -15713,87 +15441,107 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1034:56:4", + "src": "1214:80:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1130, + "id": 1097, "nodeType": "ExpressionStatement", - "src": "1034:56:4" + "src": "1214:80:4" }, { "expression": { "argumentTypes": null, - "id": 1131, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "1108:1:4", + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1098, + "name": "last_completed_migration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1043, + "src": "1313:24:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1099, + "name": "completed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1081, + "src": "1340:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1313:36:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1108, - "id": 1132, - "nodeType": "Return", - "src": "1101:8:4" + "id": 1101, + "nodeType": "ExpressionStatement", + "src": "1313:36:4" } ] }, "documentation": null, - "id": 1134, + "functionSelector": "fdacd576", + "id": 1103, "implemented": true, "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1102, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1134, - "src": "670:9:4", - "stateVariable": false, - "storageLocation": "default", + "modifiers": [ + { + "arguments": null, + "id": 1084, + "modifierName": { + "argumentTypes": null, + "id": 1083, + "name": "restricted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1079, + "src": "1005:10:4", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1101, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "670:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } }, + "nodeType": "ModifierInvocation", + "src": "1005:10:4" + } + ], + "name": "setCompleted", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1082, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 1104, + "id": 1081, "mutability": "mutable", - "name": "b", + "name": "completed", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1134, - "src": "681:9:4", + "scope": 1103, + "src": "982:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15801,10 +15549,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1103, - "name": "uint256", + "id": 1080, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "681:7:4", + "src": "982:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15814,54 +15562,147 @@ "visibility": "internal" } ], - "src": "669:22:4" + "src": "981:16:4" }, "returnParameters": { - "id": 1108, + "id": 1085, + "nodeType": "ParameterList", + "parameters": [], + "src": "1016:0:4" + }, + "scope": 1104, + "src": "960:394:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1105, + "src": "66:1290:4" + } + ], + "src": "32:1325:4" + }, + "id": 4 + }, + "contracts/TellorAccess.sol": { + "ast": { + "absolutePath": "contracts/TellorAccess.sol", + "exportedSymbols": { + "SafeMath": [ + 1531 + ], + "TellorAccess": [ + 2050 + ] + }, + "id": 2051, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1106, + "literals": [ + "solidity", + "0.7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "32:22:5" + }, + { + "absolutePath": "@openzeppelin/contracts/access/AccessControl.sol", + "file": "@openzeppelin/contracts/access/AccessControl.sol", + "id": 1107, + "nodeType": "ImportDirective", + "scope": 2051, + "sourceUnit": 306, + "src": "56:58:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 1531, + "linearizedBaseContracts": [ + 1531 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1112, + "nodeType": "Block", + "src": "193:2:5", + "statements": [] + }, + "documentation": null, + "functionSelector": "fa401a6a", + "id": 1113, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "c_0xcb92bccd", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1110, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1107, + "id": 1109, "mutability": "mutable", - "name": "", + "name": "c__0xcb92bccd", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1134, - "src": "715:7:4", + "scope": 1113, + "src": "158:21:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, "typeName": { - "id": 1106, - "name": "uint256", + "id": 1108, + "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "715:7:4", + "src": "158:7:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], - "src": "714:9:4" + "src": "157:23:5" + }, + "returnParameters": { + "id": 1111, + "nodeType": "ParameterList", + "parameters": [], + "src": "193:0:5" }, - "scope": 1217, - "src": "657:459:4", + "scope": 1531, + "src": "136:59:5", "stateMutability": "pure", "virtual": false, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 1149, + "id": 1173, "nodeType": "Block", - "src": "1189:63:4", + "src": "269:987:5", "statements": [ { "expression": { @@ -15869,79 +15710,162 @@ "arguments": [ { "argumentTypes": null, - "id": 1144, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1136, - "src": "1210:1:4", + "hexValue": "307832613432636531373936316137346466373935373464656531663138343666633961646233306136353061323561653264343866653565303765353063366664", + "id": 1123, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "283:66:5", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_rational_19115173942406501215525299546904357195696987973422500816307933849658212796157_by_1", + "typeString": "int_const 1911...(69 digits omitted)...6157" + }, + "value": "0x2a42ce17961a74df79574dee1f1846fc9adb30a650a25ae2d48fe5e07e50c6fd" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_19115173942406501215525299546904357195696987973422500816307933849658212796157_by_1", + "typeString": "int_const 1911...(69 digits omitted)...6157" } - }, + ], + "id": 1122, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "270:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "270:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1125, + "nodeType": "ExpressionStatement", + "src": "270:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { "argumentTypes": null, - "id": 1145, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1138, - "src": "1213:1:4", + "hexValue": "307866313062303266626238373166323332343132663937363866623433343533326563346131383766353235636639373534643663306538383535376633626438", + "id": 1127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "382:66:5", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_rational_109026852416143405226753699794754036340455408800948308951619104661668932565976_by_1", + "typeString": "int_const 1090...(70 digits omitted)...5976" + }, + "value": "0xf10b02fbb871f232412f9768fb434532ec4a187f525cf9754d6c0e88557f3bd8" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_109026852416143405226753699794754036340455408800948308951619104661668932565976_by_1", + "typeString": "int_const 1090...(70 digits omitted)...5976" } - }, + ], + "id": 1126, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "369:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "369:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1129, + "nodeType": "ExpressionStatement", + "src": "369:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 1146, + "hexValue": "307862313838306135336330326364383763326665353230396361363163653934653233373932663064383737386539393334333165303537646363326435326463", + "id": 1131, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "string", + "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1216:28:4", + "src": "484:66:5", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", - "typeString": "literal_string \"SafeMath: division by zero\"" + "typeIdentifier": "t_rational_80299736675425460718688753051720730562656453708994225411011107922799493993180_by_1", + "typeString": "int_const 8029...(69 digits omitted)...3180" }, - "value": "SafeMath: division by zero" + "value": "0xb1880a53c02cd87c2fe5209ca61ce94e23792f0d8778e993431e057dcc2d52dc" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", - "typeString": "literal_string \"SafeMath: division by zero\"" + "typeIdentifier": "t_rational_80299736675425460718688753051720730562656453708994225411011107922799493993180_by_1", + "typeString": "int_const 8029...(69 digits omitted)...3180" } ], - "id": 1143, - "name": "div", + "id": 1130, + "name": "c_0xcb92bccd", "nodeType": "Identifier", - "overloadedDeclarations": [ - 1150, - 1177 - ], - "referencedDeclaration": 1177, - "src": "1206:3:4", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "471:12:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" } }, - "id": 1147, + "id": 1132, "isConstant": false, "isLValue": false, "isPure": false, @@ -15949,264 +15873,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1206:39:4", + "src": "471:80:5", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "functionReturnParameters": 1142, - "id": 1148, - "nodeType": "Return", - "src": "1199:46:4" - } - ] - }, - "documentation": null, - "id": 1150, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1139, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1136, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1150, - "src": "1135:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1135, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1135:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1138, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1150, - "src": "1146:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1137, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1146:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1134:22:4" - }, - "returnParameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1150, - "src": "1180:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1140, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1180:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1179:9:4" - }, - "scope": 1217, - "src": "1122:130:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1176, - "nodeType": "Block", - "src": "1353:177:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1162, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "1371:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1163, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1375:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1371:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 1165, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "1378:12:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1161, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1363:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1363:28:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "1363:28:4" - }, + "id": 1133, + "nodeType": "ExpressionStatement", + "src": "471:80:5" + }, { "assignments": [ - 1169 + 1135 ], "declarations": [ { "constant": false, - "id": 1169, + "id": 1135, "mutability": "mutable", "name": "c", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1176, - "src": "1401:9:4", + "scope": 1173, + "src": "570:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16214,10 +15905,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1168, + "id": 1134, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1401:7:4", + "src": "570:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16227,301 +15918,329 @@ "visibility": "internal" } ], - "id": 1173, + "id": 1139, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1172, + "id": 1138, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1170, + "id": 1136, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1152, - "src": "1413:1:4", + "referencedDeclaration": 1115, + "src": "582:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "/", + "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 1171, + "id": 1137, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "1417:1:4", + "referencedDeclaration": 1117, + "src": "586:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1413:5:4", + "src": "582:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1401:17:4" + "src": "570:17:5" }, { "expression": { "argumentTypes": null, - "id": 1174, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1169, - "src": "1522:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1160, - "id": 1175, - "nodeType": "Return", - "src": "1515:8:4" - } - ] - }, - "documentation": null, - "id": 1177, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1152, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1177, - "src": "1271:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1151, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1271:7:4", + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307862366337393539306235353634396136303138626263383037353035663463393938343038613636383739643866636465626433303462363765313831623839", + "id": 1141, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "602:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_82673573269580394517733811281200390708997372957374368723726408266579195730825_by_1", + "typeString": "int_const 8267...(69 digits omitted)...0825" + }, + "value": "0xb6c79590b55649a6018bbc807505f4c998408a66879d8fcdebd304b67e181b89" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_82673573269580394517733811281200390708997372957374368723726408266579195730825_by_1", + "typeString": "int_const 8267...(69 digits omitted)...0825" + } + ], + "id": 1140, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "589:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "589:80:5", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" + "id": 1143, + "nodeType": "ExpressionStatement", + "src": "589:80:5" }, { - "constant": false, - "id": 1154, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1177, - "src": "1282:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1153, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1282:7:4", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307832383963323038663237363061313435663035643766383638663764323562363337643934653037656364666635666331653237653434643465613961303831", + "id": 1145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "704:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18368366800738484831418972252897913558054807397870012706615244469516949364865_by_1", + "typeString": "int_const 1836...(69 digits omitted)...4865" + }, + "value": "0x289c208f2760a145f05d7f868f7d25b637d94e07ecdff5fc1e27e44d4ea9a081" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_18368366800738484831418972252897913558054807397870012706615244469516949364865_by_1", + "typeString": "int_const 1836...(69 digits omitted)...4865" + } + ], + "id": 1144, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "691:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "691:80:5", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" + "id": 1147, + "nodeType": "ExpressionStatement", + "src": "691:80:5" }, { - "constant": false, - "id": 1156, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1177, - "src": "1293:26:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1155, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1293:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1270:50:4" - }, - "returnParameters": { - "id": 1160, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1159, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1177, - "src": "1344:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1158, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1344:7:4", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307837373364666363313931366237666635396533336634633836303832383731376463336532363264336664346530393939373861306439346635363332633463", + "id": 1149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "804:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_53934751111023784804427875674651386447075571958770540247938277336264227368012_by_1", + "typeString": "int_const 5393...(69 digits omitted)...8012" + }, + "value": "0x773dfcc1916b7ff59e33f4c860828717dc3e262d3fd4e099978a0d94f5632c4c" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_53934751111023784804427875674651386447075571958770540247938277336264227368012_by_1", + "typeString": "int_const 5393...(69 digits omitted)...8012" + } + ], + "id": 1148, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "791:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "791:80:5", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" - } - ], - "src": "1343:9:4" - }, - "scope": 1217, - "src": "1258:272:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1192, - "nodeType": "Block", - "src": "1603:61:4", - "statements": [ + "id": 1151, + "nodeType": "ExpressionStatement", + "src": "791:80:5" + }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1187, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1179, - "src": "1624:1:4", - "typeDescriptions": { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1188, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1181, - "src": "1627:1:4", + }, + "id": 1155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1153, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1135, + "src": "898:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 1154, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "903:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "898:6:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, { "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 1189, + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 1156, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1630:26:4", + "src": "906:29:5", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" }, - "value": "SafeMath: modulo by zero" + "value": "SafeMath: addition overflow" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" } ], - "id": 1186, - "name": "mod", + "id": 1152, + "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1193, - 1216 + -18, + -18 ], - "referencedDeclaration": 1216, - "src": "1620:3:4", + "referencedDeclaration": -18, + "src": "890:7:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "id": 1190, + "id": 1157, "isConstant": false, "isLValue": false, "isPure": false, @@ -16529,232 +16248,59 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1620:37:4", + "src": "890:46:5", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "functionReturnParameters": 1185, - "id": 1191, - "nodeType": "Return", - "src": "1613:44:4" - } - ] - }, - "documentation": null, - "id": 1193, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1182, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1179, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1193, - "src": "1549:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1178, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1549:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1181, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1193, - "src": "1560:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1180, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1560:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1548:22:4" - }, - "returnParameters": { - "id": 1185, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1184, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1193, - "src": "1594:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1183, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1594:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1593:9:4" - }, - "scope": 1217, - "src": "1536:128:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1215, - "nodeType": "Block", - "src": "1765:68:4", - "statements": [ + "id": 1158, + "nodeType": "ExpressionStatement", + "src": "890:46:5" + }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1207, + "hexValue": "307862393266653738393338396538343839643433336137646263623661343030356261616339323064663961333639353836326336643235363164316233626663", + "id": 1160, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1205, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "1783:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1206, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1788:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1783:6:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 1208, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "1791:12:4", + "nodeType": "Literal", + "src": "950:66:5", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } + "typeIdentifier": "t_rational_83762516802830366676869276451646715369019303220493936156670884476418952739836_by_1", + "typeString": "int_const 8376...(69 digits omitted)...9836" + }, + "value": "0xb92fe789389e8489d433a7dbcb6a4005baac920df9a3695862c6d2561d1b3bfc" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" + "typeIdentifier": "t_rational_83762516802830366676869276451646715369019303220493936156670884476418952739836_by_1", + "typeString": "int_const 8376...(69 digits omitted)...9836" } ], - "id": 1204, - "name": "require", + "id": 1159, + "name": "c_0xcb92bccd", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1775:7:4", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "937:12:5", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" } }, - "id": 1209, + "id": 1161, "isConstant": false, "isLValue": false, "isPure": false, @@ -16762,91 +16308,179 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1775:29:4", + "src": "937:80:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1210, + "id": 1162, "nodeType": "ExpressionStatement", - "src": "1775:29:4" + "src": "937:80:5" }, { "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307834356439663965626335656234663066646635316333643132376166303937393633343833666365383265366330626232626235333166313435643038336564", + "id": 1164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1053:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_31594717256573429727248550349568070441751553051941323138968441270912787973101_by_1", + "typeString": "int_const 3159...(69 digits omitted)...3101" + }, + "value": "0x45d9f9ebc5eb4f0fdf51c3d127af097963483fce82e6c0bb2bb531f145d083ed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_31594717256573429727248550349568070441751553051941323138968441270912787973101_by_1", + "typeString": "int_const 3159...(69 digits omitted)...3101" + } + ], + "id": 1163, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "1040:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } }, - "id": 1213, + "id": 1165, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1211, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "1821:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "names": [], + "nodeType": "FunctionCall", + "src": "1040:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1166, + "nodeType": "ExpressionStatement", + "src": "1040:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307830643962363966663666303032353065323764363734386563333432643136356431646331643939316435643361323934313439363363623535613630656165", + "id": 1168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1155:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6154659896465649673323181040824592168677748972038570698251071813568162041518_by_1", + "typeString": "int_const 6154...(68 digits omitted)...1518" + }, + "value": "0x0d9b69ff6f00250e27d6748ec342d165d1dc1d991d5d3a29414963cb55a60eae" } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 1212, - "name": "b", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_6154659896465649673323181040824592168677748972038570698251071813568162041518_by_1", + "typeString": "int_const 6154...(68 digits omitted)...1518" + } + ], + "id": 1167, + "name": "c_0xcb92bccd", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "1825:1:4", + "referencedDeclaration": 1113, + "src": "1142:12:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" } }, - "src": "1821:5:4", + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1142:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1170, + "nodeType": "ExpressionStatement", + "src": "1142:80:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 1171, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1135, + "src": "1248:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1203, - "id": 1214, + "functionReturnParameters": 1121, + "id": 1172, "nodeType": "Return", - "src": "1814:12:4" + "src": "1241:8:5" } ] }, "documentation": null, - "id": 1216, + "id": 1174, "implemented": true, "kind": "function", "modifiers": [], - "name": "mod", + "name": "add", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1200, + "id": 1118, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1195, + "id": 1115, "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1216, - "src": "1683:9:4", + "scope": 1174, + "src": "215:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16854,10 +16488,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1194, + "id": 1114, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1683:7:4", + "src": "215:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16868,13 +16502,13 @@ }, { "constant": false, - "id": 1197, + "id": 1117, "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1216, - "src": "1694:9:4", + "scope": 1174, + "src": "226:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16882,10 +16516,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1196, + "id": 1116, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1694:7:4", + "src": "226:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16893,62 +16527,34 @@ }, "value": null, "visibility": "internal" - }, + } + ], + "src": "214:22:5" + }, + "returnParameters": { + "id": 1121, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 1199, + "id": 1120, "mutability": "mutable", - "name": "errorMessage", + "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1216, - "src": "1705:26:4", + "scope": 1174, + "src": "260:7:5", "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1198, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1705:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1682:50:4" - }, - "returnParameters": { - "id": 1203, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1202, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1216, - "src": "1756:7:4", - "stateVariable": false, - "storageLocation": "default", + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { - "id": 1201, + "id": 1119, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1756:7:4", + "src": "260:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16958,469 +16564,279 @@ "visibility": "internal" } ], - "src": "1755:9:4" + "src": "259:9:5" }, - "scope": 1217, - "src": "1670:163:4", + "scope": 1531, + "src": "202:1054:5", "stateMutability": "pure", "virtual": false, "visibility": "internal" - } - ], - "scope": 1481, - "src": "117:1718:4" - }, - { - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1218, - "name": "AccessControl", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 305, - "src": "1862:13:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AccessControl_$305", - "typeString": "contract AccessControl" - } - }, - "id": 1219, - "nodeType": "InheritanceSpecifier", - "src": "1862:13:4" - } - ], - "contractDependencies": [ - 22, - 305 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1480, - "linearizedBaseContracts": [ - 1480, - 305, - 22 - ], - "name": "TellorAccess", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 1222, - "libraryName": { - "contractScope": null, - "id": 1220, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1217, - "src": "1889:8:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1217", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "1883:27:4", - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1902:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } }, { - "anonymous": false, - "documentation": null, - "id": 1230, - "name": "NewValue", - "nodeType": "EventDefinition", - "parameters": { - "id": 1229, - "nodeType": "ParameterList", - "parameters": [ + "body": { + "id": 1201, + "nodeType": "Block", + "src": "1329:358:5", + "statements": [ { - "constant": false, - "id": 1224, - "indexed": false, - "mutability": "mutable", - "name": "_requestId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1230, - "src": "1935:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1223, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1935:7:4", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307836336162383966353666356639343131663664386366383930353132376333393838323639356138303666613332353238306362636462363364353637343439", + "id": 1184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1343:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_45082055013985902976503638972331103978601645599299494480934692042182147601481_by_1", + "typeString": "int_const 4508...(69 digits omitted)...1481" + }, + "value": "0x63ab89f56f5f9411f6d8cf8905127c39882695a806fa325280cbcdb63d567449" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_45082055013985902976503638972331103978601645599299494480934692042182147601481_by_1", + "typeString": "int_const 4508...(69 digits omitted)...1481" + } + ], + "id": 1183, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "1330:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1330:80:5", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" + "id": 1186, + "nodeType": "ExpressionStatement", + "src": "1330:80:5" }, { - "constant": false, - "id": 1226, - "indexed": false, - "mutability": "mutable", - "name": "_time", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1230, - "src": "1955:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1955:7:4", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307864356262633938636165366134343438323263376234323261353834313464313664383666386364666163663733323234613138333263343339313630323036", + "id": 1188, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1442:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_96674428193125591243250070781345807706202963401284985124208245521935555232262_by_1", + "typeString": "int_const 9667...(69 digits omitted)...2262" + }, + "value": "0xd5bbc98cae6a444822c7b422a58414d16d86f8cdfacf73224a1832c439160206" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_96674428193125591243250070781345807706202963401284985124208245521935555232262_by_1", + "typeString": "int_const 9667...(69 digits omitted)...2262" + } + ], + "id": 1187, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "1429:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1429:80:5", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" + "id": 1190, + "nodeType": "ExpressionStatement", + "src": "1429:80:5" }, { - "constant": false, - "id": 1228, - "indexed": false, - "mutability": "mutable", - "name": "_value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1230, - "src": "1970:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1970:7:4", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307833326665393737373135386639316462363232333333653337396464653134386363663464353339656538323734333364613665343466636463323830373530", + "id": 1192, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1544:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_23065466957819667100510360184039759587128790773460989599385815774591000774480_by_1", + "typeString": "int_const 2306...(69 digits omitted)...4480" + }, + "value": "0x32fe9777158f91db622333e379dde148ccf4d539ee827433da6e44fcdc280750" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_23065466957819667100510360184039759587128790773460989599385815774591000774480_by_1", + "typeString": "int_const 2306...(69 digits omitted)...4480" + } + ], + "id": 1191, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "1531:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1531:80:5", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" - } - ], - "src": "1934:51:4" - }, - "src": "1920:66:4" - }, - { - "constant": false, - "functionSelector": "a3183701", - "id": 1236, - "mutability": "mutable", - "name": "values", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1480, - "src": "1996:61:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(uint256 => uint256))" - }, - "typeName": { - "id": 1235, - "keyType": { - "id": 1231, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2004:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "1996:47:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(uint256 => uint256))" - }, - "valueType": { - "id": 1234, - "keyType": { - "id": 1232, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2023:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "2015:27:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 1233, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2034:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "fb0ceb04", - "id": 1241, - "mutability": "mutable", - "name": "timestamps", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1480, - "src": "2201:47:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(uint256 => uint256[])" - }, - "typeName": { - "id": 1240, - "keyType": { - "id": 1237, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2209:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "2201:29:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(uint256 => uint256[])" - }, - "valueType": { - "baseType": { - "id": 1238, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2220:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "id": 1194, + "nodeType": "ExpressionStatement", + "src": "1531:80:5" }, - "id": 1239, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2220:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": true, - "functionSelector": "3f60d799", - "id": 1246, - "mutability": "constant", - "name": "REPORTER_ROLE", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1480, - "src": "2259:61:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1242, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2259:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "7265706f72746572", - "id": 1244, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2309:10:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a6", - "typeString": "literal_string \"reporter\"" - }, - "value": "reporter" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a6", - "typeString": "literal_string \"reporter\"" - } - ], - "id": 1243, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "2299:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1245, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2299:21:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "body": { - "id": 1260, - "nodeType": "Block", - "src": "2344:117:4", - "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1250, - "name": "DEFAULT_ADMIN_ROLE", + "id": 1196, + "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 48, - "src": "2365:18:4", + "referencedDeclaration": 1176, + "src": "1641:1:5", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1251, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2385:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1252, + "id": 1197, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1178, + "src": "1644:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 1198, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "string", "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2385:10:4", + "nodeType": "Literal", + "src": "1647:32:5", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" } ], - "id": 1249, - "name": "_setupRole", + "id": 1195, + "name": "sub", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 231, - "src": "2354:10:4", + "overloadedDeclarations": [ + 1202, + 1265 + ], + "referencedDeclaration": 1265, + "src": "1637:3:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", - "typeString": "function (bytes32,address)" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" } }, - "id": 1253, + "id": 1199, "isConstant": false, "isLValue": false, "isPure": false, @@ -17428,71 +16844,180 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2354:42:4", + "src": "1637:43:5", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 1254, - "nodeType": "ExpressionStatement", - "src": "2354:42:4" + "functionReturnParameters": 1182, + "id": 1200, + "nodeType": "Return", + "src": "1630:50:5" + } + ] + }, + "documentation": null, + "id": 1202, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1179, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1176, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1202, + "src": "1275:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1175, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1275:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" }, + { + "constant": false, + "id": 1178, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1202, + "src": "1286:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1177, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1286:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1274:22:5" + }, + "returnParameters": { + "id": 1182, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1181, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1202, + "src": "1320:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1180, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1320:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1319:9:5" + }, + "scope": 1531, + "src": "1262:425:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1264, + "nodeType": "Block", + "src": "1788:970:5", + "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1256, - "name": "REPORTER_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1246, - "src": "2420:13:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1257, - "name": "DEFAULT_ADMIN_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 48, - "src": "2435:18:4", + "hexValue": "307834666662383763353834343936376562336236316231343635303865376334666561623632666666656366363038653730643734343635656136303736663537", + "id": 1214, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1802:66:5", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } + "typeIdentifier": "t_rational_36177130712135149252619519586538604999335408051264981195670621729853723340631_by_1", + "typeString": "int_const 3617...(69 digits omitted)...0631" + }, + "value": "0x4ffb87c5844967eb3b61b146508e7c4feab62fffecf608e70d74465ea6076f57" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_rational_36177130712135149252619519586538604999335408051264981195670621729853723340631_by_1", + "typeString": "int_const 3617...(69 digits omitted)...0631" } ], - "id": 1255, - "name": "_setRoleAdmin", + "id": 1213, + "name": "c_0xcb92bccd", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 256, - "src": "2406:13:4", + "referencedDeclaration": 1113, + "src": "1789:12:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$", - "typeString": "function (bytes32,bytes32)" + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" } }, - "id": 1258, + "id": 1215, "isConstant": false, "isLValue": false, "isPure": false, @@ -17500,166 +17025,59 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2406:48:4", + "src": "1789:80:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1259, + "id": 1216, "nodeType": "ExpressionStatement", - "src": "2406:48:4" - } - ] - }, - "documentation": null, - "id": 1261, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1247, - "nodeType": "ParameterList", - "parameters": [], - "src": "2341:2:4" - }, - "returnParameters": { - "id": 1248, - "nodeType": "ParameterList", - "parameters": [], - "src": "2344:0:4" - }, - "scope": 1480, - "src": "2329:132:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1273, - "nodeType": "Block", - "src": "2561:81:4", - "statements": [ + "src": "1789:80:5" + }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1266, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2587:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2587:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1265, - "name": "isAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1354, - "src": "2579:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1268, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2579:19:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5265737472696374656420746f2061646d696e732e", - "id": 1269, + "hexValue": "307832343732356535386461323164366138303930626634316233653637333638653933393965353731313066656362303233383131333235346262353034313863", + "id": 1218, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "string", + "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2600:23:4", + "src": "1901:66:5", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_90ad9d83e31ab8b94f70b9ba6d8bed28fdb98b008d228f51e4f77de001834e6b", - "typeString": "literal_string \"Restricted to admins.\"" + "typeIdentifier": "t_rational_16485334273986230753124240378179165182661334451933639414456134799212405604748_by_1", + "typeString": "int_const 1648...(69 digits omitted)...4748" }, - "value": "Restricted to admins." + "value": "0x24725e58da21d6a8090bf41b3e67368e9399e57110fecb0238113254bb50418c" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_90ad9d83e31ab8b94f70b9ba6d8bed28fdb98b008d228f51e4f77de001834e6b", - "typeString": "literal_string \"Restricted to admins.\"" + "typeIdentifier": "t_rational_16485334273986230753124240378179165182661334451933639414456134799212405604748_by_1", + "typeString": "int_const 1648...(69 digits omitted)...4748" } ], - "id": 1264, - "name": "require", + "id": 1217, + "name": "c_0xcb92bccd", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2571:7:4", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "1888:12:5", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" } }, - "id": 1270, + "id": 1219, "isConstant": false, "isLValue": false, "isPure": false, @@ -17667,137 +17085,198 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2571:53:4", + "src": "1888:80:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1271, + "id": 1220, "nodeType": "ExpressionStatement", - "src": "2571:53:4" + "src": "1888:80:5" }, - { - "id": 1272, - "nodeType": "PlaceholderStatement", - "src": "2634:1:4" - } - ] - }, - "documentation": { - "id": 1262, - "nodeType": "StructuredDocumentation", - "src": "2467:68:4", - "text": " @dev Modifier to restrict only to the admin role." - }, - "id": 1274, - "name": "onlyAdmin", - "nodeType": "ModifierDefinition", - "overrides": null, - "parameters": { - "id": 1263, - "nodeType": "ParameterList", - "parameters": [], - "src": "2558:2:4" - }, - "src": "2540:102:4", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1286, - "nodeType": "Block", - "src": "2744:87:4", - "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1279, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2773:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2773:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1278, - "name": "isReporter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1368, - "src": "2762:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1281, + "hexValue": "307837636266653533306638393036326534643362313062313833356466366463353465363930333631336466666137366136313630633831363962393234333739", + "id": 1222, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "number", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2762:22:4", - "tryCall": false, + "nodeType": "Literal", + "src": "2003:66:5", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_rational_56425842833865404041744579486002034282178561832350620636390707051601205543801_by_1", + "typeString": "int_const 5642...(69 digits omitted)...3801" + }, + "value": "0x7cbfe530f89062e4d3b10b1835df6dc54e6903613dffa76a6160c8169b924379" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_56425842833865404041744579486002034282178561832350620636390707051601205543801_by_1", + "typeString": "int_const 5642...(69 digits omitted)...3801" } - }, + ], + "id": 1221, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "1990:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1990:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1224, + "nodeType": "ExpressionStatement", + "src": "1990:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { "argumentTypes": null, - "hexValue": "5265737472696374656420746f207265706f72746572732e", - "id": 1282, + "hexValue": "307861646331316463383361613936316439353336643933346333326431653330373136316264383738313735316365383764343835356361383163616564646333", + "id": 1226, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "string", + "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2786:26:4", + "src": "2103:66:5", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_db317e608952c4349d5eed2e584bcb1f25d99160ec9bbff7096ac7c46b2eb7f2", - "typeString": "literal_string \"Restricted to reporters.\"" + "typeIdentifier": "t_rational_78591329837218496442162607471331448233114408357315037260177827770585781820867_by_1", + "typeString": "int_const 7859...(69 digits omitted)...0867" }, - "value": "Restricted to reporters." + "value": "0xadc11dc83aa961d9536d934c32d1e307161bd8781751ce87d4855ca81caeddc3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_78591329837218496442162607471331448233114408357315037260177827770585781820867_by_1", + "typeString": "int_const 7859...(69 digits omitted)...0867" + } + ], + "id": 1225, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "2090:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2090:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1228, + "nodeType": "ExpressionStatement", + "src": "2090:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1230, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1206, + "src": "2197:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 1231, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1204, + "src": "2202:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2197:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 1233, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1208, + "src": "2205:12:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } } ], "expression": { @@ -17807,11 +17286,11 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_db317e608952c4349d5eed2e584bcb1f25d99160ec9bbff7096ac7c46b2eb7f2", - "typeString": "literal_string \"Restricted to reporters.\"" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } ], - "id": 1277, + "id": 1229, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -17819,13 +17298,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2754:7:4", + "src": "2189:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1283, + "id": 1234, "isConstant": false, "isLValue": false, "isPure": false, @@ -17833,104 +17312,59 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2754:59:4", + "src": "2189:29:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1284, + "id": 1235, "nodeType": "ExpressionStatement", - "src": "2754:59:4" + "src": "2189:29:5" }, - { - "id": 1285, - "nodeType": "PlaceholderStatement", - "src": "2823:1:4" - } - ] - }, - "documentation": { - "id": 1275, - "nodeType": "StructuredDocumentation", - "src": "2648:67:4", - "text": " @dev Restricted to members of the reporter role." - }, - "id": 1287, - "name": "onlyReporter", - "nodeType": "ModifierDefinition", - "overrides": null, - "parameters": { - "id": 1276, - "nodeType": "ParameterList", - "parameters": [], - "src": "2741:2:4" - }, - "src": "2720:111:4", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "2977:55:4", - "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1296, - "name": "DEFAULT_ADMIN_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 48, - "src": "2997:18:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1297, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1290, - "src": "3017:7:4", + "hexValue": "307865383561393162323833653931616337363133623363306531386335353666653936663665373537343062313037666665303733653338326637373639386631", + "id": 1237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2232:66:5", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_rational_105096602673130451957798217840596810894648226522847023734783185221367100774641_by_1", + "typeString": "int_const 1050...(70 digits omitted)...4641" + }, + "value": "0xe85a91b283e91ac7613b3c0e18c556fe96f6e75740b107ffe073e382f77698f1" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_rational_105096602673130451957798217840596810894648226522847023734783185221367100774641_by_1", + "typeString": "int_const 1050...(70 digits omitted)...4641" } ], - "id": 1295, - "name": "grantRole", + "id": 1236, + "name": "c_0xcb92bccd", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "2987:9:4", + "referencedDeclaration": 1113, + "src": "2219:12:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", - "typeString": "function (bytes32,address)" + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" } }, - "id": 1298, + "id": 1238, "isConstant": false, "isLValue": false, "isPure": false, @@ -17938,161 +17372,59 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2987:38:4", + "src": "2219:80:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1299, + "id": 1239, "nodeType": "ExpressionStatement", - "src": "2987:38:4" - } - ] - }, - "documentation": { - "id": 1288, - "nodeType": "StructuredDocumentation", - "src": "2837:75:4", - "text": "@dev Add an account to the admin role. Restricted to admins." - }, - "functionSelector": "70480275", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1293, - "modifierName": { - "argumentTypes": null, - "id": 1292, - "name": "onlyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1274, - "src": "2967:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } + "src": "2219:80:5" }, - "nodeType": "ModifierInvocation", - "src": "2967:9:4" - } - ], - "name": "addAdmin", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1291, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1290, - "mutability": "mutable", - "name": "account", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1301, - "src": "2935:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1289, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2935:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2934:17:4" - }, - "returnParameters": { - "id": 1294, - "nodeType": "ParameterList", - "parameters": [], - "src": "2977:0:4" - }, - "scope": 1480, - "src": "2917:115:4", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "body": { - "id": 1314, - "nodeType": "Block", - "src": "3277:50:4", - "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1310, - "name": "REPORTER_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1246, - "src": "3297:13:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1311, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1304, - "src": "3312:7:4", + "hexValue": "307838653961663936346333663430656664316333666533313236373765366164373065363562656435323832366633303764336339613464363766653933336534", + "id": 1241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2334:66:5", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_rational_64502240198271012640512190097572859318157590468345768238443727056385495086052_by_1", + "typeString": "int_const 6450...(69 digits omitted)...6052" + }, + "value": "0x8e9af964c3f40efd1c3fe312677e6ad70e65bed52826f307d3c9a4d67fe933e4" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_rational_64502240198271012640512190097572859318157590468345768238443727056385495086052_by_1", + "typeString": "int_const 6450...(69 digits omitted)...6052" } ], - "id": 1309, - "name": "grantRole", + "id": 1240, + "name": "c_0xcb92bccd", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "3287:9:4", + "referencedDeclaration": 1113, + "src": "2321:12:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", - "typeString": "function (bytes32,address)" + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" } }, - "id": 1312, + "id": 1242, "isConstant": false, "isLValue": false, "isPure": false, @@ -18100,161 +17432,59 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3287:33:4", + "src": "2321:80:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1313, + "id": 1243, "nodeType": "ExpressionStatement", - "src": "3287:33:4" - } - ] - }, - "documentation": { - "id": 1302, - "nodeType": "StructuredDocumentation", - "src": "3038:170:4", - "text": " @dev Add an account to the reporter role. Restricted to admins.\n @param account is the address of the reporter to give permissions to submit data" - }, - "functionSelector": "dd8755f2", - "id": 1315, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1307, - "modifierName": { - "argumentTypes": null, - "id": 1306, - "name": "onlyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1274, - "src": "3266:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } + "src": "2321:80:5" }, - "nodeType": "ModifierInvocation", - "src": "3266:9:4" - } - ], - "name": "addReporter", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1305, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1304, - "mutability": "mutable", - "name": "account", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1315, - "src": "3234:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1303, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3234:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3233:17:4" - }, - "returnParameters": { - "id": 1308, - "nodeType": "ParameterList", - "parameters": [], - "src": "3277:0:4" - }, - "scope": 1480, - "src": "3213:114:4", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "body": { - "id": 1328, - "nodeType": "Block", - "src": "3493:51:4", - "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1324, - "name": "REPORTER_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1246, - "src": "3514:13:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1325, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "3529:7:4", + "hexValue": "307833366333666539366334396362346130626364306662383036313437613531356163346538353765373331633730376266633962316161386638336235373863", + "id": 1245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2436:66:5", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_rational_24771186109397928894812968326343391074352294375190987036465518237775973537676_by_1", + "typeString": "int_const 2477...(69 digits omitted)...7676" + }, + "value": "0x36c3fe96c49cb4a0bcd0fb806147a515ac4e857e731c707bfc9b1aa8f83b578c" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_rational_24771186109397928894812968326343391074352294375190987036465518237775973537676_by_1", + "typeString": "int_const 2477...(69 digits omitted)...7676" } ], - "id": 1323, - "name": "revokeRole", + "id": 1244, + "name": "c_0xcb92bccd", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 195, - "src": "3503:10:4", + "referencedDeclaration": 1113, + "src": "2423:12:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", - "typeString": "function (bytes32,address)" + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" } }, - "id": 1326, + "id": 1246, "isConstant": false, "isLValue": false, "isPure": false, @@ -18262,177 +17492,142 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3503:34:4", + "src": "2423:80:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1327, + "id": 1247, "nodeType": "ExpressionStatement", - "src": "3503:34:4" - } - ] - }, - "documentation": { - "id": 1316, - "nodeType": "StructuredDocumentation", - "src": "3333:88:4", - "text": " @dev Remove an account from the reporter role. Restricted to admins." - }, - "functionSelector": "5de5c212", - "id": 1329, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1321, - "modifierName": { - "argumentTypes": null, - "id": 1320, - "name": "onlyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1274, - "src": "3482:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } + "src": "2423:80:5" }, - "nodeType": "ModifierInvocation", - "src": "3482:9:4" - } - ], - "name": "removeReporter", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1319, - "nodeType": "ParameterList", - "parameters": [ { - "constant": false, - "id": 1318, - "mutability": "mutable", - "name": "account", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1329, - "src": "3450:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1317, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3450:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3449:17:4" - }, - "returnParameters": { - "id": 1322, - "nodeType": "ParameterList", - "parameters": [], - "src": "3493:0:4" - }, - "scope": 1480, - "src": "3426:118:4", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "body": { - "id": 1339, - "nodeType": "Block", - "src": "3655:61:4", - "statements": [ + "assignments": [ + 1249 + ], + "declarations": [ + { + "constant": false, + "id": 1249, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1264, + "src": "2522:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1248, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2522:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1253, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1250, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1204, + "src": "2534:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 1251, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1206, + "src": "2538:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2534:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2522:17:5" + }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1334, - "name": "DEFAULT_ADMIN_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 48, - "src": "3678:18:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1335, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "3698:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1336, + "hexValue": "307832633261636364363539313761623936396665373838323134616165383738626161343731376665343336626261373836393564633764323530313436653234", + "id": 1255, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3698:10:4", + "nodeType": "Literal", + "src": "2555:66:5", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } + "typeIdentifier": "t_rational_19977386649450276617116174431163886987953050278747144681356606645470158417444_by_1", + "typeString": "int_const 1997...(69 digits omitted)...7444" + }, + "value": "0x2c2accd65917ab969fe788214aae878baa4717fe436bba78695dc7d250146e24" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_rational_19977386649450276617116174431163886987953050278747144681356606645470158417444_by_1", + "typeString": "int_const 1997...(69 digits omitted)...7444" } ], - "id": 1333, - "name": "renounceRole", + "id": 1254, + "name": "c_0xcb92bccd", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 217, - "src": "3665:12:4", + "referencedDeclaration": 1113, + "src": "2542:12:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", - "typeString": "function (bytes32,address)" + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" } }, - "id": 1337, + "id": 1256, "isConstant": false, "isLValue": false, "isPure": false, @@ -18440,111 +17635,59 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3665:44:4", + "src": "2542:80:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1338, + "id": 1257, "nodeType": "ExpressionStatement", - "src": "3665:44:4" - } - ] - }, - "documentation": { - "id": 1330, - "nodeType": "StructuredDocumentation", - "src": "3550:60:4", - "text": " @dev Remove oneself from the admin role." - }, - "functionSelector": "8bad0c0a", - "id": 1340, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "renounceAdmin", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1331, - "nodeType": "ParameterList", - "parameters": [], - "src": "3637:2:4" - }, - "returnParameters": { - "id": 1332, - "nodeType": "ParameterList", - "parameters": [], - "src": "3655:0:4" - }, - "scope": 1480, - "src": "3615:101:4", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "body": { - "id": 1353, - "nodeType": "Block", - "src": "3879:60:4", - "statements": [ + "src": "2542:80:5" + }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1349, - "name": "DEFAULT_ADMIN_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 48, - "src": "3904:18:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1350, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "3924:7:4", + "hexValue": "307862336561306264326334373537663336626161363463396161393139616236663032383235333363333862386265653834303665643762663465376139303962", + "id": 1259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2657:66:5", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_rational_81377523711050984849794138455641584465553134090595251690504323142658360512667_by_1", + "typeString": "int_const 8137...(69 digits omitted)...2667" + }, + "value": "0xb3ea0bd2c4757f36baa64c9aa919ab6f0282533c38b8bee8406ed7bf4e7a909b" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_rational_81377523711050984849794138455641584465553134090595251690504323142658360512667_by_1", + "typeString": "int_const 8137...(69 digits omitted)...2667" } ], - "id": 1348, - "name": "hasRole", + "id": 1258, + "name": "c_0xcb92bccd", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "3896:7:4", + "referencedDeclaration": 1113, + "src": "2644:12:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", - "typeString": "function (bytes32,address) view returns (bool)" + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" } }, - "id": 1351, + "id": 1260, "isConstant": false, "isLValue": false, "isPure": false, @@ -18552,288 +17695,183 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3896:36:4", + "src": "2644:80:5", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "functionReturnParameters": 1347, - "id": 1352, + "id": 1261, + "nodeType": "ExpressionStatement", + "src": "2644:80:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 1262, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1249, + "src": "2750:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1212, + "id": 1263, "nodeType": "Return", - "src": "3889:43:4" + "src": "2743:8:5" } ] }, - "documentation": { - "id": 1341, - "nodeType": "StructuredDocumentation", - "src": "3726:79:4", - "text": " @dev Return `true` if the account belongs to the admin role." - }, - "functionSelector": "24d7806c", - "id": 1354, + "documentation": null, + "id": 1265, "implemented": true, "kind": "function", "modifiers": [], - "name": "isAdmin", + "name": "sub", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1344, + "id": 1209, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1343, + "id": 1204, "mutability": "mutable", - "name": "account", + "name": "a", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1354, - "src": "3827:15:4", + "scope": 1265, + "src": "1706:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 1342, - "name": "address", + "id": 1203, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3827:7:4", - "stateMutability": "nonpayable", + "src": "1706:7:5", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" - } - ], - "src": "3826:17:4" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [ + }, { "constant": false, - "id": 1346, + "id": 1206, "mutability": "mutable", - "name": "", + "name": "b", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1354, - "src": "3873:4:4", + "scope": 1265, + "src": "1717:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 1345, - "name": "bool", + "id": 1205, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3873:4:4", + "src": "1717:7:5", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" - } - ], - "src": "3872:6:4" - }, - "scope": 1480, - "src": "3810:129:4", - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "body": { - "id": 1367, - "nodeType": "Block", - "src": "4105:55:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1363, - "name": "REPORTER_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1246, - "src": "4130:13:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1364, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1357, - "src": "4145:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1362, - "name": "hasRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "4122:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", - "typeString": "function (bytes32,address) view returns (bool)" - } - }, - "id": 1365, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4122:31:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1361, - "id": 1366, - "nodeType": "Return", - "src": "4115:38:4" - } - ] - }, - "documentation": { - "id": 1355, - "nodeType": "StructuredDocumentation", - "src": "3945:82:4", - "text": " @dev Return `true` if the account belongs to the reporter role." - }, - "functionSelector": "044ad7be", - "id": 1368, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isReporter", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1358, - "nodeType": "ParameterList", - "parameters": [ + }, { "constant": false, - "id": 1357, + "id": 1208, "mutability": "mutable", - "name": "account", + "name": "errorMessage", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1368, - "src": "4052:15:4", + "scope": 1265, + "src": "1728:26:5", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 1356, - "name": "address", + "id": 1207, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "4052:7:4", - "stateMutability": "nonpayable", + "src": "1728:6:5", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "value": null, "visibility": "internal" } ], - "src": "4051:17:4" + "src": "1705:50:5" }, "returnParameters": { - "id": 1361, + "id": 1212, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1360, + "id": 1211, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1368, - "src": "4098:4:4", + "scope": 1265, + "src": "1779:7:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 1359, - "name": "bool", + "id": 1210, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4098:4:4", + "src": "1779:7:5", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "4097:6:4" + "src": "1778:9:5" }, - "scope": 1480, - "src": "4032:128:4", - "stateMutability": "view", - "virtual": true, - "visibility": "public" + "scope": 1531, + "src": "1693:1065:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" }, { "body": { - "id": 1413, + "id": 1359, "nodeType": "Block", - "src": "4436:293:4", + "src": "2832:1856:5", "statements": [ { "expression": { @@ -18841,200 +17879,42 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1378, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "4465:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4465:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1377, - "name": "isReporter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1368, - "src": "4454:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1380, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4454:22:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1382, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "4488:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4488:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1381, - "name": "isAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1354, - "src": "4480:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4480:19:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4454:45:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "53656e646572206d75737420626520616e2041646d696e206f72205265706f7274657220746f207375626d697456616c7565", - "id": 1386, + "hexValue": "307864363332616664343966316330393534626563376637336464623837636235383038303436656664303233383965336563356564363361353436663363366163", + "id": 1275, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "string", + "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4501:52:4", + "src": "2846:66:5", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_258187097e1cb18d37ad7c661ecf1cc2099e70b24bee16cf3d498d95adf3346c", - "typeString": "literal_string \"Sender must be an Admin or Reporter to submitValue\"" + "typeIdentifier": "t_rational_96884505487933496014567697299676256550432157108648279600310511148920166663852_by_1", + "typeString": "int_const 9688...(69 digits omitted)...3852" }, - "value": "Sender must be an Admin or Reporter to submitValue" + "value": "0xd632afd49f1c0954bec7f73ddb87cb5808046efd02389e3ec5ed63a546f3c6ac" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_258187097e1cb18d37ad7c661ecf1cc2099e70b24bee16cf3d498d95adf3346c", - "typeString": "literal_string \"Sender must be an Admin or Reporter to submitValue\"" + "typeIdentifier": "t_rational_96884505487933496014567697299676256550432157108648279600310511148920166663852_by_1", + "typeString": "int_const 9688...(69 digits omitted)...3852" } ], - "id": 1376, - "name": "require", + "id": 1274, + "name": "c_0xcb92bccd", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4446:7:4", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "2833:12:5", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" } }, - "id": 1387, + "id": 1276, "isConstant": false, "isLValue": false, "isPure": false, @@ -19042,132 +17922,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4446:108:4", + "src": "2833:80:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1388, - "nodeType": "ExpressionStatement", - "src": "4446:108:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1389, - "name": "values", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1236, - "src": "4564:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(uint256 => uint256))" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1390, - "name": "_requestId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1371, - "src": "4571:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4564:18:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1394, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1391, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "4583:5:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4583:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4564:35:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1395, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1373, - "src": "4602:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4564:44:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1397, + "id": 1277, "nodeType": "ExpressionStatement", - "src": "4564:44:4" + "src": "2833:80:5" }, { "expression": { @@ -19175,96 +17939,42 @@ "arguments": [ { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1402, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "4646:5:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1403, + "hexValue": "307830303831363133613265336365323135646562343466616162386434636437393139366237326436643634636161343132633836383166303865656262343833", + "id": 1279, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4646:15:4", + "nodeType": "Literal", + "src": "3163:66:5", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_228594309298368248332016836170444902340599253739880552234746279494763132035_by_1", + "typeString": "int_const 2285...(67 digits omitted)...2035" + }, + "value": "0x0081613a2e3ce215deb44faab8d4cd79196b72d6d64caa412c8681f08eebb483" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_rational_228594309298368248332016836170444902340599253739880552234746279494763132035_by_1", + "typeString": "int_const 2285...(67 digits omitted)...2035" } ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1398, - "name": "timestamps", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "4618:10:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(uint256 => uint256[] storage ref)" - } - }, - "id": 1400, - "indexExpression": { - "argumentTypes": null, - "id": 1399, - "name": "_requestId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1371, - "src": "4629:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4618:22:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4618:27:4", + "id": 1278, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "3150:12:5", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" } }, - "id": 1404, + "id": 1280, "isConstant": false, "isLValue": false, "isPure": false, @@ -19272,104 +17982,59 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4618:44:4", + "src": "3150:80:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1405, + "id": 1281, "nodeType": "ExpressionStatement", - "src": "4618:44:4" + "src": "3150:80:5" }, { - "eventCall": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1407, - "name": "_requestId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1371, - "src": "4686:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1408, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "4698:5:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1409, + "hexValue": "307863383231653733313761303931366133653939376430383562316333613932613036373735376137623831333839616563663130316436656339653861313465", + "id": 1283, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4698:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1410, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1373, - "src": "4715:6:4", + "nodeType": "Literal", + "src": "3265:66:5", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_90522471307086298018507518599854456663714817195796214495519355886755079823694_by_1", + "typeString": "int_const 9052...(69 digits omitted)...3694" + }, + "value": "0xc821e7317a0916a3e997d085b1c3a92a067757a7b81389aecf101d6ec9e8a14e" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_rational_90522471307086298018507518599854456663714817195796214495519355886755079823694_by_1", + "typeString": "int_const 9052...(69 digits omitted)...3694" } ], - "id": 1406, - "name": "NewValue", + "id": 1282, + "name": "c_0xcb92bccd", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1230, - "src": "4677:8:4", + "referencedDeclaration": 1113, + "src": "3252:12:5", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256,uint256)" + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" } }, - "id": 1411, + "id": 1284, "isConstant": false, "isLValue": false, "isPure": false, @@ -19377,46 +18042,9611 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4677:45:4", + "src": "3252:80:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1412, - "nodeType": "EmitStatement", - "src": "4672:50:4" - } - ] - }, - "documentation": { - "id": 1369, - "nodeType": "StructuredDocumentation", - "src": "4166:199:4", - "text": " @dev A mock function to submit a value to be read withoun miners needed\n @param _requestId The tellorId to associate the value to\n @param _value the value for the requestId" - }, - "functionSelector": "62f55112", - "id": 1414, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "submitValue", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1374, - "nodeType": "ParameterList", - "parameters": [ + "id": 1285, + "nodeType": "ExpressionStatement", + "src": "3252:80:5" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1286, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1267, + "src": "3355:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3360:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3355:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1308, + "nodeType": "Block", + "src": "3690:99:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307866353438613834623233663430336563646334303930333464383538356435353363353437356235323438656531323563336562313132346266386334336437", + "id": 1305, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3705:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_110945022410732881968215495976927353139773873999206621907313444955817325118423_by_1", + "typeString": "int_const 1109...(70 digits omitted)...8423" + }, + "value": "0xf548a84b23f403ecdc409034d8585d553c5475b5248ee125c3eb1124bf8c43d7" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_110945022410732881968215495976927353139773873999206621907313444955817325118423_by_1", + "typeString": "int_const 1109...(70 digits omitted)...8423" + } + ], + "id": 1304, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "3692:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3692:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1307, + "nodeType": "ExpressionStatement", + "src": "3692:80:5" + } + ] + }, + "id": 1309, + "nodeType": "IfStatement", + "src": "3351:438:5", + "trueBody": { + "id": 1303, + "nodeType": "Block", + "src": "3363:322:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307838626638666133386262623063393732636335326430336565316432646632326331653538313731623732346536346136623435396432376661636639353138", + "id": 1290, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3377:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_63311390991248902756700221505405861763441734488817681665775206429465133421848_by_1", + "typeString": "int_const 6331...(69 digits omitted)...1848" + }, + "value": "0x8bf8fa38bbb0c972cc52d03ee1d2df22c1e58171b724e64a6b459d27facf9518" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_63311390991248902756700221505405861763441734488817681665775206429465133421848_by_1", + "typeString": "int_const 6331...(69 digits omitted)...1848" + } + ], + "id": 1289, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "3364:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3364:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1292, + "nodeType": "ExpressionStatement", + "src": "3364:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307833623439383131623231636466616132363039666165653538303363666236303638336232633537363163396566623731386131353466653766396463623035", + "id": 1294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3474:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_26816328958898875453277412320946100751466778004352024977854137675161093917445_by_1", + "typeString": "int_const 2681...(69 digits omitted)...7445" + }, + "value": "0x3b49811b21cdfaa2609faee5803cfb60683b2c5761c9efb718a154fe7f9dcb05" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_26816328958898875453277412320946100751466778004352024977854137675161093917445_by_1", + "typeString": "int_const 2681...(69 digits omitted)...7445" + } + ], + "id": 1293, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "3461:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3461:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1296, + "nodeType": "ExpressionStatement", + "src": "3461:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307864343937623130353437363537613435313236306537313533396666316138366338613664366636643730346264656464366364373830393264326365363263", + "id": 1298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3580:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_96158339557856043813007355002063767000255156588942678851158484860282793158188_by_1", + "typeString": "int_const 9615...(69 digits omitted)...8188" + }, + "value": "0xd497b10547657a451260e71539ff1a86c8a6d6f6d704bdedd6cd78092d2ce62c" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_96158339557856043813007355002063767000255156588942678851158484860282793158188_by_1", + "typeString": "int_const 9615...(69 digits omitted)...8188" + } + ], + "id": 1297, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "3567:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3567:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1300, + "nodeType": "ExpressionStatement", + "src": "3567:80:5" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1301, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3673:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 1273, + "id": 1302, + "nodeType": "Return", + "src": "3666:8:5" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307839663163376532333261336335613339356338386466646263633430383965333265303462623639626139313039646164633262633966663762383131303832", + "id": 1311, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3804:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_71968085210638923276823428954647568306742257242482822838758956043832261677186_by_1", + "typeString": "int_const 7196...(69 digits omitted)...7186" + }, + "value": "0x9f1c7e232a3c5a395c88dfdbcc4089e32e04bb69ba9109dadc2bc9ff7b811082" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_71968085210638923276823428954647568306742257242482822838758956043832261677186_by_1", + "typeString": "int_const 7196...(69 digits omitted)...7186" + } + ], + "id": 1310, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "3791:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3791:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1313, + "nodeType": "ExpressionStatement", + "src": "3791:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307832326638363965313564303036343538366661383731666437333765303661633930376138376338663439353630323530623133373262643139393635363663", + "id": 1315, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3906:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_15817545683044714010624356584551912021586425559975319134033313196656087684716_by_1", + "typeString": "int_const 1581...(69 digits omitted)...4716" + }, + "value": "0x22f869e15d0064586fa871fd737e06ac907a87c8f49560250b1372bd1996566c" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_15817545683044714010624356584551912021586425559975319134033313196656087684716_by_1", + "typeString": "int_const 1581...(69 digits omitted)...4716" + } + ], + "id": 1314, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "3893:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3893:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1317, + "nodeType": "ExpressionStatement", + "src": "3893:80:5" + }, + { + "assignments": [ + 1319 + ], + "declarations": [ + { + "constant": false, + "id": 1319, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1359, + "src": "3992:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1318, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3992:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1323, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1320, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1267, + "src": "4004:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 1321, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1269, + "src": "4008:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4004:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3992:17:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307862393933616632393431346334363064623564323836383164613635313764346630376466336665313937653263356266633764653465623862323334663232", + "id": 1325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4024:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_83938812424271882164121759186383272639192872530104083142684682384218704269090_by_1", + "typeString": "int_const 8393...(69 digits omitted)...9090" + }, + "value": "0xb993af29414c460db5d28681da6517d4f07df3fe197e2c5bfc7de4eb8b234f22" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_83938812424271882164121759186383272639192872530104083142684682384218704269090_by_1", + "typeString": "int_const 8393...(69 digits omitted)...9090" + } + ], + "id": 1324, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "4011:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4011:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1327, + "nodeType": "ExpressionStatement", + "src": "4011:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307836323536366537363634653466626239666361633066613533323633313533333761393965343832616539663066303863353939633638663364323735383262", + "id": 1329, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4126:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_44479370392728328234253504546281888664021913376275444723334386867283610261547_by_1", + "typeString": "int_const 4447...(69 digits omitted)...1547" + }, + "value": "0x62566e7664e4fbb9fcac0fa5326315337a99e482ae9f0f08c599c68f3d27582b" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_44479370392728328234253504546281888664021913376275444723334386867283610261547_by_1", + "typeString": "int_const 4447...(69 digits omitted)...1547" + } + ], + "id": 1328, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "4113:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4113:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1331, + "nodeType": "ExpressionStatement", + "src": "4113:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307838666361653465396434316362316535383139616661666330356239626362363133396565666230313365323563353337386636313937653038336463623534", + "id": 1333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4226:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_65039220356664979100907206521544235103759645126810453200313719846547507497812_by_1", + "typeString": "int_const 6503...(69 digits omitted)...7812" + }, + "value": "0x8fcae4e9d41cb1e5819afafc05b9bcb6139eefb013e25c5378f6197e083dcb54" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_65039220356664979100907206521544235103759645126810453200313719846547507497812_by_1", + "typeString": "int_const 6503...(69 digits omitted)...7812" + } + ], + "id": 1332, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "4213:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4213:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1335, + "nodeType": "ExpressionStatement", + "src": "4213:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1337, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1319, + "src": "4320:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 1338, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1267, + "src": "4324:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4320:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1340, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1269, + "src": "4329:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4320:10:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 1342, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4332:35:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 1336, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4312:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4312:56:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1344, + "nodeType": "ExpressionStatement", + "src": "4312:56:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307866373134353332663738303935353162343232663865313935633032303565383339623236313636346431613735313462316437333964326535373634373831", + "id": 1346, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4382:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_111757184666067956733996375100412179375393694773039213748019069206394771490689_by_1", + "typeString": "int_const 1117...(70 digits omitted)...0689" + }, + "value": "0xf714532f7809551b422f8e195c0205e839b261664d1a7514b1d739d2e5764781" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_111757184666067956733996375100412179375393694773039213748019069206394771490689_by_1", + "typeString": "int_const 1117...(70 digits omitted)...0689" + } + ], + "id": 1345, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "4369:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4369:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1348, + "nodeType": "ExpressionStatement", + "src": "4369:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307838333965326165626339663139626530353830373338643339353736333738323137306164386463353264333139656133306536336164633166383133643935", + "id": 1350, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4485:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_59532441230844076343643741506613112657799511329936889901483599150446786198933_by_1", + "typeString": "int_const 5953...(69 digits omitted)...8933" + }, + "value": "0x839e2aebc9f19be0580738d395763782170ad8dc52d319ea30e63adc1f813d95" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_59532441230844076343643741506613112657799511329936889901483599150446786198933_by_1", + "typeString": "int_const 5953...(69 digits omitted)...8933" + } + ], + "id": 1349, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "4472:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4472:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1352, + "nodeType": "ExpressionStatement", + "src": "4472:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307863663036333138313431396634383638376630666362623039353166383462626561666139373566376266623564366635393731616138663565313930316462", + "id": 1354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4587:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_93639702409439749619396764825512131010553931493633929274304753524413279306203_by_1", + "typeString": "int_const 9363...(69 digits omitted)...6203" + }, + "value": "0xcf063181419f48687f0fcbb0951f84bbeafa975f7bfb5d6f5971aa8f5e1901db" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_93639702409439749619396764825512131010553931493633929274304753524413279306203_by_1", + "typeString": "int_const 9363...(69 digits omitted)...6203" + } + ], + "id": 1353, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "4574:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4574:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1356, + "nodeType": "ExpressionStatement", + "src": "4574:80:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 1357, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1319, + "src": "4680:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1273, + "id": 1358, + "nodeType": "Return", + "src": "4673:8:5" + } + ] + }, + "documentation": null, + "id": 1360, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1267, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1360, + "src": "2778:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1266, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2778:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1269, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1360, + "src": "2789:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2789:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2777:22:5" + }, + "returnParameters": { + "id": 1273, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1272, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1360, + "src": "2823:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1271, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2823:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2822:9:5" + }, + "scope": 1531, + "src": "2765:1923:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1387, + "nodeType": "Block", + "src": "4761:354:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307866633030313832333862313638666536386139356536623034343866623961343839393539623561333039653765373261666663353563376637333330383261", + "id": 1370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4775:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_113983004443141276250147531203990125302498528538734433884458212739560223475754_by_1", + "typeString": "int_const 1139...(70 digits omitted)...5754" + }, + "value": "0xfc0018238b168fe68a95e6b0448fb9a489959b5a309e7e72affc55c7f733082a" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_113983004443141276250147531203990125302498528538734433884458212739560223475754_by_1", + "typeString": "int_const 1139...(70 digits omitted)...5754" + } + ], + "id": 1369, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "4762:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4762:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1372, + "nodeType": "ExpressionStatement", + "src": "4762:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307866653462356132653834303865626239303134363165373937633930633737663165313534343938343664373938353734323665356661376662353734306434", + "id": 1374, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4874:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_115020599481241691612313032647564293505723670050541216226477793922608398811348_by_1", + "typeString": "int_const 1150...(70 digits omitted)...1348" + }, + "value": "0xfe4b5a2e8408ebb901461e797c90c77f1e15449846d79857426e5fa7fb5740d4" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_115020599481241691612313032647564293505723670050541216226477793922608398811348_by_1", + "typeString": "int_const 1150...(70 digits omitted)...1348" + } + ], + "id": 1373, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "4861:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4861:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1376, + "nodeType": "ExpressionStatement", + "src": "4861:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307866303263323532333634376165643638623337303432333164613837303366356562336631373338323433363739616566333066303336346366393832366330", + "id": 1378, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4976:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_108633081249628945278620896214196448953295757257618741580434688761568486237888_by_1", + "typeString": "int_const 1086...(70 digits omitted)...7888" + }, + "value": "0xf02c2523647aed68b3704231da8703f5eb3f1738243679aef30f0364cf9826c0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_108633081249628945278620896214196448953295757257618741580434688761568486237888_by_1", + "typeString": "int_const 1086...(70 digits omitted)...7888" + } + ], + "id": 1377, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "4963:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4963:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1380, + "nodeType": "ExpressionStatement", + "src": "4963:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1382, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "5073:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1383, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1364, + "src": "5076:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 1384, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5079:28:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 1381, + "name": "div", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1388, + 1451 + ], + "referencedDeclaration": 1451, + "src": "5069:3:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 1385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5069:39:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1368, + "id": 1386, + "nodeType": "Return", + "src": "5062:46:5" + } + ] + }, + "documentation": null, + "id": 1388, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1365, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1362, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1388, + "src": "4707:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1361, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4707:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1364, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1388, + "src": "4718:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4718:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4706:22:5" + }, + "returnParameters": { + "id": 1368, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1367, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1388, + "src": "4752:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1366, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4752:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4751:9:5" + }, + "scope": 1531, + "src": "4694:421:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1450, + "nodeType": "Block", + "src": "5216:1055:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307833383361646230636539336137613761366333666134343936386163343837343532373463383735343032306437343837623436626330633961633234636465", + "id": 1400, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5230:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_25433508480951191769056151238226759330828137495772690254888497521700513139934_by_1", + "typeString": "int_const 2543...(69 digits omitted)...9934" + }, + "value": "0x383adb0ce93a7a7a6c3fa44968ac48745274c8754020d7487b46bc0c9ac24cde" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_25433508480951191769056151238226759330828137495772690254888497521700513139934_by_1", + "typeString": "int_const 2543...(69 digits omitted)...9934" + } + ], + "id": 1399, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "5217:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5217:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1402, + "nodeType": "ExpressionStatement", + "src": "5217:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307839646339663235396436326139623339633136353434396362393834666430653035646135666632323930353438393965313638646539306263653564663835", + "id": 1404, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5329:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_71369926132198812570558452340291786871369323116311946667766903032237263282053_by_1", + "typeString": "int_const 7136...(69 digits omitted)...2053" + }, + "value": "0x9dc9f259d62a9b39c165449cb984fd0e05da5ff229054899e168de90bce5df85" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_71369926132198812570558452340291786871369323116311946667766903032237263282053_by_1", + "typeString": "int_const 7136...(69 digits omitted)...2053" + } + ], + "id": 1403, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "5316:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5316:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1406, + "nodeType": "ExpressionStatement", + "src": "5316:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307839623261366438363264333265306538376466303431613961383138396533316661373565323233353134643339336533323533356466333563323135653262", + "id": 1408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5431:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_70183455014871619254895414380929573504933433132231933785364095850740388552235_by_1", + "typeString": "int_const 7018...(69 digits omitted)...2235" + }, + "value": "0x9b2a6d862d32e0e87df041a9a8189e31fa75e223514d393e32535df35c215e2b" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_70183455014871619254895414380929573504933433132231933785364095850740388552235_by_1", + "typeString": "int_const 7018...(69 digits omitted)...2235" + } + ], + "id": 1407, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "5418:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5418:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1410, + "nodeType": "ExpressionStatement", + "src": "5418:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307831303638663736333333353466376462613935373162663964343431343237646366336336383636396332623166363933303332383963613061623634343835", + "id": 1412, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5531:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_7422465077857472264753270782642761770419493650717137649395553471046209651845_by_1", + "typeString": "int_const 7422...(68 digits omitted)...1845" + }, + "value": "0x1068f7633354f7dba9571bf9d441427dcf3c68669c2b1f69303289ca0ab64485" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_7422465077857472264753270782642761770419493650717137649395553471046209651845_by_1", + "typeString": "int_const 7422...(68 digits omitted)...1845" + } + ], + "id": 1411, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "5518:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5518:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1414, + "nodeType": "ExpressionStatement", + "src": "5518:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1416, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1392, + "src": "5625:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1417, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5629:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5625:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 1419, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1394, + "src": "5632:12:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1415, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5617:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5617:28:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1421, + "nodeType": "ExpressionStatement", + "src": "5617:28:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307836646266616633386431363930333863363136386131636261643632383931616464663261353937396361313465646439316235666364633135663338643036", + "id": 1423, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5659:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_49640777622369878604096337111944265558879670460048691501038349905387031072006_by_1", + "typeString": "int_const 4964...(69 digits omitted)...2006" + }, + "value": "0x6dbfaf38d169038c6168a1cbad62891addf2a5979ca14edd91b5fcdc15f38d06" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_49640777622369878604096337111944265558879670460048691501038349905387031072006_by_1", + "typeString": "int_const 4964...(69 digits omitted)...2006" + } + ], + "id": 1422, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "5646:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5646:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1425, + "nodeType": "ExpressionStatement", + "src": "5646:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307837613863333132333931633439373639613665616137366138613664303736373134363762656532666362333963636230616134663564333436306636373566", + "id": 1427, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5761:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_55429865260747754601667866341738823154238491456250075242805744604052143957855_by_1", + "typeString": "int_const 5542...(69 digits omitted)...7855" + }, + "value": "0x7a8c312391c49769a6eaa76a8a6d07671467bee2fcb39ccb0aa4f5d3460f675f" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_55429865260747754601667866341738823154238491456250075242805744604052143957855_by_1", + "typeString": "int_const 5542...(69 digits omitted)...7855" + } + ], + "id": 1426, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "5748:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5748:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1429, + "nodeType": "ExpressionStatement", + "src": "5748:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307865373961356231363163396466656636373230373236373865376638366562616133656332623932346637643338376439383038613436373461336636636464", + "id": 1431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5863:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_104756991125760531449433124845386132442177869912226204999624397422534055652573_by_1", + "typeString": "int_const 1047...(70 digits omitted)...2573" + }, + "value": "0xe79a5b161c9dfef672072678e7f86ebaa3ec2b924f7d387d9808a4674a3f6cdd" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_104756991125760531449433124845386132442177869912226204999624397422534055652573_by_1", + "typeString": "int_const 1047...(70 digits omitted)...2573" + } + ], + "id": 1430, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "5850:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5850:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1433, + "nodeType": "ExpressionStatement", + "src": "5850:80:5" + }, + { + "assignments": [ + 1435 + ], + "declarations": [ + { + "constant": false, + "id": 1435, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1450, + "src": "5949:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1434, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5949:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1439, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1436, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1390, + "src": "5961:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 1437, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1392, + "src": "5965:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5961:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5949:17:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307832303965353733316132356339313730666662343039313937633566373839326562333162383934376236333065313730376237373538396330396163373333", + "id": 1441, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6068:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_14753774780967738191897680580692535947676655167107178336543804354263265232691_by_1", + "typeString": "int_const 1475...(69 digits omitted)...2691" + }, + "value": "0x209e5731a25c9170ffb409197c5f7892eb31b8947b630e1707b77589c09ac733" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_14753774780967738191897680580692535947676655167107178336543804354263265232691_by_1", + "typeString": "int_const 1475...(69 digits omitted)...2691" + } + ], + "id": 1440, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "6055:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6055:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1443, + "nodeType": "ExpressionStatement", + "src": "6055:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307835626132646564663537646463363566653838626136613338313538303437353131386465653136336338376533343736336362613561653164386366623765", + "id": 1445, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6170:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_41448236654581836160834376866972554191989122026836623917832648355587321297790_by_1", + "typeString": "int_const 4144...(69 digits omitted)...7790" + }, + "value": "0x5ba2dedf57ddc65fe88ba6a381580475118dee163c87e34763cba5ae1d8cfb7e" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_41448236654581836160834376866972554191989122026836623917832648355587321297790_by_1", + "typeString": "int_const 4144...(69 digits omitted)...7790" + } + ], + "id": 1444, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "6157:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6157:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1447, + "nodeType": "ExpressionStatement", + "src": "6157:80:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 1448, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1435, + "src": "6263:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1398, + "id": 1449, + "nodeType": "Return", + "src": "6256:8:5" + } + ] + }, + "documentation": null, + "id": 1451, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1395, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1390, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1451, + "src": "5134:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1389, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5134:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1392, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1451, + "src": "5145:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1391, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5145:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1394, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1451, + "src": "5156:26:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1393, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5156:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5133:50:5" + }, + "returnParameters": { + "id": 1398, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1397, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1451, + "src": "5207:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1396, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5207:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5206:9:5" + }, + "scope": 1531, + "src": "5121:1150:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1478, + "nodeType": "Block", + "src": "6344:352:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307837386434343564353565623462373565396333393235623539353938303761356264333036313563613261616333653531363938643262666266613035336262", + "id": 1461, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6358:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_54652595380665250520122242392373278855653691449876288193955749435346981508027_by_1", + "typeString": "int_const 5465...(69 digits omitted)...8027" + }, + "value": "0x78d445d55eb4b75e9c3925b5959807a5bd30615ca2aac3e51698d2bfbfa053bb" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_54652595380665250520122242392373278855653691449876288193955749435346981508027_by_1", + "typeString": "int_const 5465...(69 digits omitted)...8027" + } + ], + "id": 1460, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "6345:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6345:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1463, + "nodeType": "ExpressionStatement", + "src": "6345:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307833393238313339656661313734383165303030313130663839633137616638613062323065346132663166646632643936386365636666383230363038653836", + "id": 1465, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6457:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_25852641671027132397172092297367858118742437725381904395883732222380689362566_by_1", + "typeString": "int_const 2585...(69 digits omitted)...2566" + }, + "value": "0x3928139efa17481e000110f89c17af8a0b20e4a2f1fdf2d968cecff820608e86" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_25852641671027132397172092297367858118742437725381904395883732222380689362566_by_1", + "typeString": "int_const 2585...(69 digits omitted)...2566" + } + ], + "id": 1464, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "6444:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6444:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1467, + "nodeType": "ExpressionStatement", + "src": "6444:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307861323735323831396238643564323461666563346433323230306163356334303462333663323038306139343138636235653966313466393363633933346337", + "id": 1469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6559:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_73481679340386186896790865338662936908480881964817032208371465452139533907143_by_1", + "typeString": "int_const 7348...(69 digits omitted)...7143" + }, + "value": "0xa2752819b8d5d24afec4d32200ac5c404b36c2080a9418cb5e9f14f93cc934c7" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_73481679340386186896790865338662936908480881964817032208371465452139533907143_by_1", + "typeString": "int_const 7348...(69 digits omitted)...7143" + } + ], + "id": 1468, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "6546:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6546:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1471, + "nodeType": "ExpressionStatement", + "src": "6546:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1473, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1453, + "src": "6656:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1474, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1455, + "src": "6659:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 1475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6662:26:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 1472, + "name": "mod", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1479, + 1530 + ], + "referencedDeclaration": 1530, + "src": "6652:3:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6652:37:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1459, + "id": 1477, + "nodeType": "Return", + "src": "6645:44:5" + } + ] + }, + "documentation": null, + "id": 1479, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1456, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1453, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1479, + "src": "6290:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1452, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6290:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1455, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1479, + "src": "6301:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1454, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6301:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6289:22:5" + }, + "returnParameters": { + "id": 1459, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1458, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1479, + "src": "6335:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1457, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6335:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6334:9:5" + }, + "scope": 1531, + "src": "6277:419:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1529, + "nodeType": "Block", + "src": "6797:753:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307837393630653138636264336631353864356365613666386535643033626338313864316633353963386463303265313434376439373065653236643335346564", + "id": 1491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6811:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_54901028684044493621937643347457841101254405345257237739503085604373546620141_by_1", + "typeString": "int_const 5490...(69 digits omitted)...0141" + }, + "value": "0x7960e18cbd3f158d5cea6f8e5d03bc818d1f359c8dc02e1447d970ee26d354ed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_54901028684044493621937643347457841101254405345257237739503085604373546620141_by_1", + "typeString": "int_const 5490...(69 digits omitted)...0141" + } + ], + "id": 1490, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "6798:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6798:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1493, + "nodeType": "ExpressionStatement", + "src": "6798:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307863383434373365636364363535383034613361376465663930306236666665643739396230346234356363613131303161616237323364306533353535373830", + "id": 1495, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6910:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_90583515402066212393258755481521315631917376621578478817080810168809619281792_by_1", + "typeString": "int_const 9058...(69 digits omitted)...1792" + }, + "value": "0xc84473eccd655804a3a7def900b6ffed799b04b45cca1101aab723d0e3555780" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_90583515402066212393258755481521315631917376621578478817080810168809619281792_by_1", + "typeString": "int_const 9058...(69 digits omitted)...1792" + } + ], + "id": 1494, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "6897:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6897:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1497, + "nodeType": "ExpressionStatement", + "src": "6897:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307865333361636334366337303731626162356130666164373836353363393965313733303762636230326437626463656534633237653031323738383239643436", + "id": 1499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7012:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_102778903622569698565355917138780951459306384834010150672361846578809564994886_by_1", + "typeString": "int_const 1027...(70 digits omitted)...4886" + }, + "value": "0xe33acc46c7071bab5a0fad78653c99e17307bcb02d7bdcee4c27e01278829d46" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_102778903622569698565355917138780951459306384834010150672361846578809564994886_by_1", + "typeString": "int_const 1027...(70 digits omitted)...4886" + } + ], + "id": 1498, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "6999:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6999:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1501, + "nodeType": "ExpressionStatement", + "src": "6999:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307835333463393439663538653639366539653637643266316138636132633139346361303366613065393961623761656337373261386164333938636532653066", + "id": 1503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7112:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_37677272563787453212228422407632773683037367647546281165600332944561268469263_by_1", + "typeString": "int_const 3767...(69 digits omitted)...9263" + }, + "value": "0x534c949f58e696e9e67d2f1a8ca2c194ca03fa0e99ab7aec772a8ad398ce2e0f" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_37677272563787453212228422407632773683037367647546281165600332944561268469263_by_1", + "typeString": "int_const 3767...(69 digits omitted)...9263" + } + ], + "id": 1502, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "7099:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7099:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1505, + "nodeType": "ExpressionStatement", + "src": "7099:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1507, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1483, + "src": "7206:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7211:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7206:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 1510, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1485, + "src": "7214:12:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1506, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7198:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7198:29:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1512, + "nodeType": "ExpressionStatement", + "src": "7198:29:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307863343238623931633366613765333865613934323039376431613563326431343164623835616562353035303333616134346139663365313739613161323062", + "id": 1514, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7241:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_88725269789567750289695406344492763771373950452379713179841102008084741595659_by_1", + "typeString": "int_const 8872...(69 digits omitted)...5659" + }, + "value": "0xc428b91c3fa7e38ea942097d1a5c2d141db85aeb505033aa44a9f3e179a1a20b" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_88725269789567750289695406344492763771373950452379713179841102008084741595659_by_1", + "typeString": "int_const 8872...(69 digits omitted)...5659" + } + ], + "id": 1513, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "7228:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7228:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1516, + "nodeType": "ExpressionStatement", + "src": "7228:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307861666239376661333738323233353963613733643365306234656335643037343237646139333138336533336566323862663362323734353135373761646532", + "id": 1518, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7343:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_79482496137964516153468931855476865886744475118525162183388824506426918940130_by_1", + "typeString": "int_const 7948...(69 digits omitted)...0130" + }, + "value": "0xafb97fa37822359ca73d3e0b4ec5d07427da93183e33ef28bf3b27451577ade2" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_79482496137964516153468931855476865886744475118525162183388824506426918940130_by_1", + "typeString": "int_const 7948...(69 digits omitted)...0130" + } + ], + "id": 1517, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "7330:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1519, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7330:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1520, + "nodeType": "ExpressionStatement", + "src": "7330:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307866326138613539393332333931653435616437306230373932366265356339303562386365363466376363363135316530366465363939626338343131643463", + "id": 1522, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7445:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_109757682582341406739671031249690029019450884777740620171348290876366913609036_by_1", + "typeString": "int_const 1097...(70 digits omitted)...9036" + }, + "value": "0xf2a8a59932391e45ad70b07926be5c905b8ce64f7cc6151e06de699bc8411d4c" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_109757682582341406739671031249690029019450884777740620171348290876366913609036_by_1", + "typeString": "int_const 1097...(70 digits omitted)...9036" + } + ], + "id": 1521, + "name": "c_0xcb92bccd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "7432:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7432:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1524, + "nodeType": "ExpressionStatement", + "src": "7432:80:5" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1525, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "7538:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "id": 1526, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1483, + "src": "7542:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7538:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1489, + "id": 1528, + "nodeType": "Return", + "src": "7531:12:5" + } + ] + }, + "documentation": null, + "id": 1530, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1481, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1530, + "src": "6715:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1480, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6715:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1483, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1530, + "src": "6726:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1482, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6726:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1485, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1530, + "src": "6737:26:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1484, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6737:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6714:50:5" + }, + "returnParameters": { + "id": 1489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1488, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1530, + "src": "6788:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1487, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6788:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6787:9:5" + }, + "scope": 1531, + "src": "6702:848:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2051, + "src": "117:7435:5" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1532, + "name": "AccessControl", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 305, + "src": "7579:13:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AccessControl_$305", + "typeString": "contract AccessControl" + } + }, + "id": 1533, + "nodeType": "InheritanceSpecifier", + "src": "7579:13:5" + } + ], + "contractDependencies": [ + 22, + 305 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2050, + "linearizedBaseContracts": [ + 2050, + 305, + 22 + ], + "name": "TellorAccess", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1538, + "nodeType": "Block", + "src": "7652:2:5", + "statements": [] + }, + "documentation": null, + "functionSelector": "de0ef188", + "id": 1539, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "c_0xf503494c", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1535, + "mutability": "mutable", + "name": "c__0xf503494c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1539, + "src": "7617:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1534, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7617:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7616:23:5" + }, + "returnParameters": { + "id": 1537, + "nodeType": "ParameterList", + "parameters": [], + "src": "7652:0:5" + }, + "scope": 2050, + "src": "7595:59:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "id": 1542, + "libraryName": { + "contractScope": null, + "id": 1540, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1531, + "src": "7667:8:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$1531", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "7661:27:5", + "typeName": { + "id": 1541, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7680:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "anonymous": false, + "documentation": null, + "id": 1550, + "name": "NewValue", + "nodeType": "EventDefinition", + "parameters": { + "id": 1549, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1544, + "indexed": false, + "mutability": "mutable", + "name": "_requestId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1550, + "src": "7713:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1543, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7713:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1546, + "indexed": false, + "mutability": "mutable", + "name": "_time", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1550, + "src": "7733:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1545, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7733:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1548, + "indexed": false, + "mutability": "mutable", + "name": "_value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1550, + "src": "7748:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1547, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7748:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7712:51:5" + }, + "src": "7698:66:5" + }, + { + "constant": false, + "functionSelector": "a3183701", + "id": 1556, + "mutability": "mutable", + "name": "values", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2050, + "src": "7774:61:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + }, + "typeName": { + "id": 1555, + "keyType": { + "id": 1551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7782:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "7774:47:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + }, + "valueType": { + "id": 1554, + "keyType": { + "id": 1552, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7801:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "7793:27:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueType": { + "id": 1553, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7812:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "fb0ceb04", + "id": 1561, + "mutability": "mutable", + "name": "timestamps", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2050, + "src": "7979:47:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(uint256 => uint256[])" + }, + "typeName": { + "id": 1560, + "keyType": { + "id": 1557, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7987:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "7979:29:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(uint256 => uint256[])" + }, + "valueType": { + "baseType": { + "id": 1558, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7998:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1559, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7998:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "3f60d799", + "id": 1566, + "mutability": "constant", + "name": "REPORTER_ROLE", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2050, + "src": "8037:61:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1562, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8037:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7265706f72746572", + "id": 1564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8087:10:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a6", + "typeString": "literal_string \"reporter\"" + }, + "value": "reporter" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a6", + "typeString": "literal_string \"reporter\"" + } + ], + "id": 1563, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "8077:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8077:21:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "body": { + "id": 1600, + "nodeType": "Block", + "src": "8122:601:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307863366230386165653164363531373630323932616334303432656136353366323234326330316232376336393262663266373936623064643131383535366664", + "id": 1570, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8136:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_89869867963446547431226497839569399023205303929053756353295024081965223859965_by_1", + "typeString": "int_const 8986...(69 digits omitted)...9965" + }, + "value": "0xc6b08aee1d651760292ac4042ea653f2242c01b27c692bf2f796b0dd118556fd" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_89869867963446547431226497839569399023205303929053756353295024081965223859965_by_1", + "typeString": "int_const 8986...(69 digits omitted)...9965" + } + ], + "id": 1569, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "8123:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8123:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1572, + "nodeType": "ExpressionStatement", + "src": "8123:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307834653339633030656566626265653938643263646564353662623935663762366564303661346531346131653464323537653266316634336139303536363663", + "id": 1574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8235:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_35382438010171931785644517387989057582547807126577018021640523027683486295660_by_1", + "typeString": "int_const 3538...(69 digits omitted)...5660" + }, + "value": "0x4e39c00eefbbee98d2cded56bb95f7b6ed06a4e14a1e4d257e2f1f43a905666c" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_35382438010171931785644517387989057582547807126577018021640523027683486295660_by_1", + "typeString": "int_const 3538...(69 digits omitted)...5660" + } + ], + "id": 1573, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "8222:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8222:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1576, + "nodeType": "ExpressionStatement", + "src": "8222:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307861656338343161626662343935376164303132343837363134343631653663633831396636303661613864636136613832613261656235323733396564353966", + "id": 1578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8337:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_79056258316571006468836086841201713488556167726058922488035524521301649577375_by_1", + "typeString": "int_const 7905...(69 digits omitted)...7375" + }, + "value": "0xaec841abfb4957ad012487614461e6cc819f606aa8dca6a82a2aeb52739ed59f" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_79056258316571006468836086841201713488556167726058922488035524521301649577375_by_1", + "typeString": "int_const 7905...(69 digits omitted)...7375" + } + ], + "id": 1577, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "8324:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8324:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1580, + "nodeType": "ExpressionStatement", + "src": "8324:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1582, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 48, + "src": "8434:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1583, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8454:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8454:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1581, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "8423:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 1585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8423:42:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1586, + "nodeType": "ExpressionStatement", + "src": "8423:42:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307833663063656363323937383862633234623835333464666237623034643066326363653863653734366565633934623435323662353033316365646630613832", + "id": 1588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8480:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_28518545683849024611501061660273247528716651783942076705105729307466423798402_by_1", + "typeString": "int_const 2851...(69 digits omitted)...8402" + }, + "value": "0x3f0cecc29788bc24b8534dfb7b04d0f2cce8ce746eec94b4526b5031cedf0a82" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_28518545683849024611501061660273247528716651783942076705105729307466423798402_by_1", + "typeString": "int_const 2851...(69 digits omitted)...8402" + } + ], + "id": 1587, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "8467:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8467:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1590, + "nodeType": "ExpressionStatement", + "src": "8467:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307834303938643165313731363936346263323637646263333933623965663564313636623463636664333962313363333435366335363466343465326630646665", + "id": 1592, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8582:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_29218031606093487938734931376589599281224748138972481304203525858801927261694_by_1", + "typeString": "int_const 2921...(69 digits omitted)...1694" + }, + "value": "0x4098d1e1716964bc267dbc393b9ef5d166b4ccfd39b13c3456c564f44e2f0dfe" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_29218031606093487938734931376589599281224748138972481304203525858801927261694_by_1", + "typeString": "int_const 2921...(69 digits omitted)...1694" + } + ], + "id": 1591, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "8569:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8569:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1594, + "nodeType": "ExpressionStatement", + "src": "8569:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1596, + "name": "REPORTER_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "8682:13:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1597, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 48, + "src": "8697:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1595, + "name": "_setRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "8668:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$", + "typeString": "function (bytes32,bytes32)" + } + }, + "id": 1598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8668:48:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1599, + "nodeType": "ExpressionStatement", + "src": "8668:48:5" + } + ] + }, + "documentation": null, + "id": 1601, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1567, + "nodeType": "ParameterList", + "parameters": [], + "src": "8119:2:5" + }, + "returnParameters": { + "id": 1568, + "nodeType": "ParameterList", + "parameters": [], + "src": "8122:0:5" + }, + "scope": 2050, + "src": "8107:616:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1637, + "nodeType": "Block", + "src": "8823:667:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307830653737613565353463313936656132396463333039653266363863343232336461663139363864653830616463356132616337303262663561623963373965", + "id": 1605, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8837:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6543779650863560747205653494158687794786264341193638873657471209250877982622_by_1", + "typeString": "int_const 6543...(68 digits omitted)...2622" + }, + "value": "0x0e77a5e54c196ea29dc309e2f68c4223daf1968de80adc5a2ac702bf5ab9c79e" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_6543779650863560747205653494158687794786264341193638873657471209250877982622_by_1", + "typeString": "int_const 6543...(68 digits omitted)...2622" + } + ], + "id": 1604, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "8824:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8824:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1607, + "nodeType": "ExpressionStatement", + "src": "8824:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307865396639383034333461303935373834383333613239316130373363646236613431616239313939303939353738646231643333343161636434346132646534", + "id": 1609, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8936:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_105829723876676654684440593753827678322217244456375888522394338370154845056484_by_1", + "typeString": "int_const 1058...(70 digits omitted)...6484" + }, + "value": "0xe9f980434a095784833a291a073cdb6a41ab9199099578db1d3341acd44a2de4" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_105829723876676654684440593753827678322217244456375888522394338370154845056484_by_1", + "typeString": "int_const 1058...(70 digits omitted)...6484" + } + ], + "id": 1608, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "8923:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8923:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1611, + "nodeType": "ExpressionStatement", + "src": "8923:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307839353935623631306664316239633931393132396465613564646665363338633635363030363934653263653337643934323266373637663637633133366563", + "id": 1613, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9038:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_67659131227408302233733703422205770848342652592714631444941359934821212698348_by_1", + "typeString": "int_const 6765...(69 digits omitted)...8348" + }, + "value": "0x9595b610fd1b9c919129dea5ddfe638c65600694e2ce37d9422f767f67c136ec" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_67659131227408302233733703422205770848342652592714631444941359934821212698348_by_1", + "typeString": "int_const 6765...(69 digits omitted)...8348" + } + ], + "id": 1612, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "9025:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9025:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1615, + "nodeType": "ExpressionStatement", + "src": "9025:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307837386430663165373630346238623033666331663938356231663834376131633766666430313332313433386431653462643230316463313037386137326138", + "id": 1617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9138:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_54646715578224183783055557423329142079653767661835831670818303557241494205096_by_1", + "typeString": "int_const 5464...(69 digits omitted)...5096" + }, + "value": "0x78d0f1e7604b8b03fc1f985b1f847a1c7ffd01321438d1e4bd201dc1078a72a8" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_54646715578224183783055557423329142079653767661835831670818303557241494205096_by_1", + "typeString": "int_const 5464...(69 digits omitted)...5096" + } + ], + "id": 1616, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "9125:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9125:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1619, + "nodeType": "ExpressionStatement", + "src": "9125:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1622, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9240:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9240:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1621, + "name": "isAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1802, + "src": "9232:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9232:19:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5265737472696374656420746f2061646d696e732e", + "id": 1625, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9253:23:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_90ad9d83e31ab8b94f70b9ba6d8bed28fdb98b008d228f51e4f77de001834e6b", + "typeString": "literal_string \"Restricted to admins.\"" + }, + "value": "Restricted to admins." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_90ad9d83e31ab8b94f70b9ba6d8bed28fdb98b008d228f51e4f77de001834e6b", + "typeString": "literal_string \"Restricted to admins.\"" + } + ], + "id": 1620, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9224:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9224:53:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1627, + "nodeType": "ExpressionStatement", + "src": "9224:53:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307834323962336563663863316461353638613230383963303131666265656433363738626632336532353966643134363638653666626665663736376665343638", + "id": 1629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9291:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_30126942805274608862069585289094442536165399227522023819637913782920090215528_by_1", + "typeString": "int_const 3012...(69 digits omitted)...5528" + }, + "value": "0x429b3ecf8c1da568a2089c011fbeed3678bf23e259fd14668e6fbfef767fe468" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_30126942805274608862069585289094442536165399227522023819637913782920090215528_by_1", + "typeString": "int_const 3012...(69 digits omitted)...5528" + } + ], + "id": 1628, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "9278:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9278:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1631, + "nodeType": "ExpressionStatement", + "src": "9278:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307830333362313366613130363463636336633961643464373737366563656639616563393833356131643866306336313530636439343761626431383939636435", + "id": 1633, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9393:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1461320397465442992739519290207338763511989410271549002194369513606607379669_by_1", + "typeString": "int_const 1461...(68 digits omitted)...9669" + }, + "value": "0x033b13fa1064ccc6c9ad4d7776ecef9aec9835a1d8f0c6150cd947abd1899cd5" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1461320397465442992739519290207338763511989410271549002194369513606607379669_by_1", + "typeString": "int_const 1461...(68 digits omitted)...9669" + } + ], + "id": 1632, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "9380:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9380:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1635, + "nodeType": "ExpressionStatement", + "src": "9380:80:5" + }, + { + "id": 1636, + "nodeType": "PlaceholderStatement", + "src": "9482:1:5" + } + ] + }, + "documentation": { + "id": 1602, + "nodeType": "StructuredDocumentation", + "src": "8729:68:5", + "text": " @dev Modifier to restrict only to the admin role." + }, + "id": 1638, + "name": "onlyAdmin", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 1603, + "nodeType": "ParameterList", + "parameters": [], + "src": "8820:2:5" + }, + "src": "8802:688:5", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1674, + "nodeType": "Block", + "src": "9592:673:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307864623661393061353462363564313736346538656537396134336264643266376332613434333138393364363236626364383830633266313934343862356565", + "id": 1642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9606:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_99244797936407293171624423686880200743228692042960839294901884588993043543534_by_1", + "typeString": "int_const 9924...(69 digits omitted)...3534" + }, + "value": "0xdb6a90a54b65d1764e8ee79a43bdd2f7c2a4431893d626bcd880c2f19448b5ee" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_99244797936407293171624423686880200743228692042960839294901884588993043543534_by_1", + "typeString": "int_const 9924...(69 digits omitted)...3534" + } + ], + "id": 1641, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "9593:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9593:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1644, + "nodeType": "ExpressionStatement", + "src": "9593:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307832376363643930623736313638363062313637666563373732383936346562636135373734393964333735363335323337373130323066373731663836623739", + "id": 1646, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9705:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18002135883914962532046301564438467832008332876229464235555981904143944543097_by_1", + "typeString": "int_const 1800...(69 digits omitted)...3097" + }, + "value": "0x27ccd90b7616860b167fec7728964ebca577499d37563523771020f771f86b79" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_18002135883914962532046301564438467832008332876229464235555981904143944543097_by_1", + "typeString": "int_const 1800...(69 digits omitted)...3097" + } + ], + "id": 1645, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "9692:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9692:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1648, + "nodeType": "ExpressionStatement", + "src": "9692:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307832303864366539663533323336313731386662313134643765306462366137333133386562653332373336346637343235326134363430303566336162663630", + "id": 1650, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9807:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_14723900078283418616578870346255620295881006204468475878007519708069806915424_by_1", + "typeString": "int_const 1472...(69 digits omitted)...5424" + }, + "value": "0x208d6e9f532361718fb114d7e0db6a73138ebe327364f74252a464005f3abf60" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_14723900078283418616578870346255620295881006204468475878007519708069806915424_by_1", + "typeString": "int_const 1472...(69 digits omitted)...5424" + } + ], + "id": 1649, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "9794:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9794:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1652, + "nodeType": "ExpressionStatement", + "src": "9794:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307864306436393165353861353236353130383363653066626565393737653631356530646132343066663730643964613361373364623664323934383130396665", + "id": 1654, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9907:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_94460184718797045935521863840373999928748249277007259889073405088053646658046_by_1", + "typeString": "int_const 9446...(69 digits omitted)...8046" + }, + "value": "0xd0d691e58a52651083ce0fbee977e615e0da240ff70d9da3a73db6d2948109fe" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_94460184718797045935521863840373999928748249277007259889073405088053646658046_by_1", + "typeString": "int_const 9446...(69 digits omitted)...8046" + } + ], + "id": 1653, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "9894:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9894:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1656, + "nodeType": "ExpressionStatement", + "src": "9894:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1659, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10012:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10012:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1658, + "name": "isReporter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1828, + "src": "10001:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10001:22:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5265737472696374656420746f207265706f72746572732e", + "id": 1662, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10025:26:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_db317e608952c4349d5eed2e584bcb1f25d99160ec9bbff7096ac7c46b2eb7f2", + "typeString": "literal_string \"Restricted to reporters.\"" + }, + "value": "Restricted to reporters." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_db317e608952c4349d5eed2e584bcb1f25d99160ec9bbff7096ac7c46b2eb7f2", + "typeString": "literal_string \"Restricted to reporters.\"" + } + ], + "id": 1657, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9993:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9993:59:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1664, + "nodeType": "ExpressionStatement", + "src": "9993:59:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307833326365333532396636383634333961343030346464383261353834666139653366663362373963626438343930643737356338383766366235613165613163", + "id": 1666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10066:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_22979979848383916629845035284656724843804108608907054652728090961384774429212_by_1", + "typeString": "int_const 2297...(69 digits omitted)...9212" + }, + "value": "0x32ce3529f686439a4004dd82a584fa9e3ff3b79cbd8490d775c887f6b5a1ea1c" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_22979979848383916629845035284656724843804108608907054652728090961384774429212_by_1", + "typeString": "int_const 2297...(69 digits omitted)...9212" + } + ], + "id": 1665, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "10053:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10053:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1668, + "nodeType": "ExpressionStatement", + "src": "10053:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307864326133343566656263616131626266616166653066623862316532636530353733663436373662623131613335666330633736303465633739313832626331", + "id": 1670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10168:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_95274177362237889577105242903694966848860443173982896916206516440244382346177_by_1", + "typeString": "int_const 9527...(69 digits omitted)...6177" + }, + "value": "0xd2a345febcaa1bbfaafe0fb8b1e2ce0573f4676bb11a35fc0c7604ec79182bc1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_95274177362237889577105242903694966848860443173982896916206516440244382346177_by_1", + "typeString": "int_const 9527...(69 digits omitted)...6177" + } + ], + "id": 1669, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "10155:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10155:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1672, + "nodeType": "ExpressionStatement", + "src": "10155:80:5" + }, + { + "id": 1673, + "nodeType": "PlaceholderStatement", + "src": "10257:1:5" + } + ] + }, + "documentation": { + "id": 1639, + "nodeType": "StructuredDocumentation", + "src": "9496:67:5", + "text": " @dev Restricted to members of the reporter role." + }, + "id": 1675, + "name": "onlyReporter", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 1640, + "nodeType": "ParameterList", + "parameters": [], + "src": "9589:2:5" + }, + "src": "9568:697:5", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1700, + "nodeType": "Block", + "src": "10411:346:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307865323264323965313331303534663363393934663064366430653536623934356333623237643764343662626136303531653531313764633235353761396365", + "id": 1684, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10425:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_102302500940483936090158422258803472267722127433223830304824861847064050903502_by_1", + "typeString": "int_const 1023...(70 digits omitted)...3502" + }, + "value": "0xe22d29e131054f3c994f0d6d0e56b945c3b27d7d46bba6051e5117dc2557a9ce" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_102302500940483936090158422258803472267722127433223830304824861847064050903502_by_1", + "typeString": "int_const 1023...(70 digits omitted)...3502" + } + ], + "id": 1683, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "10412:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10412:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1686, + "nodeType": "ExpressionStatement", + "src": "10412:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307835643964346539396139313237326439383335663033343466303133663565636564643638616464623966653736333138636335616236636363353238616137", + "id": 1688, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10524:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_42343032386306236815270476252368355722840842827360213286371512524720410102439_by_1", + "typeString": "int_const 4234...(69 digits omitted)...2439" + }, + "value": "0x5d9d4e99a91272d9835f0344f013f5ecedd68addb9fe76318cc5ab6ccc528aa7" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_42343032386306236815270476252368355722840842827360213286371512524720410102439_by_1", + "typeString": "int_const 4234...(69 digits omitted)...2439" + } + ], + "id": 1687, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "10511:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10511:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1690, + "nodeType": "ExpressionStatement", + "src": "10511:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307837373937353363646238383535643239356261363362356534666535336235326266343863353137613466393964316532623462643534613739306239353262", + "id": 1692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10626:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_54092601279358411031260143028082442972118209839211791166567164915074468648235_by_1", + "typeString": "int_const 5409...(69 digits omitted)...8235" + }, + "value": "0x779753cdb8855d295ba63b5e4fe53b52bf48c517a4f99d1e2b4bd54a790b952b" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_54092601279358411031260143028082442972118209839211791166567164915074468648235_by_1", + "typeString": "int_const 5409...(69 digits omitted)...8235" + } + ], + "id": 1691, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "10613:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10613:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1694, + "nodeType": "ExpressionStatement", + "src": "10613:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1696, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 48, + "src": "10722:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1697, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1678, + "src": "10742:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1695, + "name": "grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "10712:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 1698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10712:38:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1699, + "nodeType": "ExpressionStatement", + "src": "10712:38:5" + } + ] + }, + "documentation": { + "id": 1676, + "nodeType": "StructuredDocumentation", + "src": "10271:75:5", + "text": "@dev Add an account to the admin role. Restricted to admins." + }, + "functionSelector": "70480275", + "id": 1701, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1681, + "modifierName": { + "argumentTypes": null, + "id": 1680, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1638, + "src": "10401:9:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "10401:9:5" + } + ], + "name": "addAdmin", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1679, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1678, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1701, + "src": "10369:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1677, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10369:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10368:17:5" + }, + "returnParameters": { + "id": 1682, + "nodeType": "ParameterList", + "parameters": [], + "src": "10411:0:5" + }, + "scope": 2050, + "src": "10351:406:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1726, + "nodeType": "Block", + "src": "11002:341:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307835353133653865623432363137363337326538336531343063616461346661326461306638353732646565333639623063366332336232313664643033333665", + "id": 1710, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11016:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_38481769771539059205903852757000053217430834848202784836444735696063404454766_by_1", + "typeString": "int_const 3848...(69 digits omitted)...4766" + }, + "value": "0x5513e8eb426176372e83e140cada4fa2da0f8572dee369b0c6c23b216dd0336e" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_38481769771539059205903852757000053217430834848202784836444735696063404454766_by_1", + "typeString": "int_const 3848...(69 digits omitted)...4766" + } + ], + "id": 1709, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "11003:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11003:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1712, + "nodeType": "ExpressionStatement", + "src": "11003:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307835623164306336613731343766353139323465353166346633336231386335613033336332363532636266353262313238663835613632386330663561353237", + "id": 1714, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11115:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_41211793476596213214356144986198171849363304038436453175643414062445123446055_by_1", + "typeString": "int_const 4121...(69 digits omitted)...6055" + }, + "value": "0x5b1d0c6a7147f51924e51f4f33b18c5a033c2652cbf52b128f85a628c0f5a527" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_41211793476596213214356144986198171849363304038436453175643414062445123446055_by_1", + "typeString": "int_const 4121...(69 digits omitted)...6055" + } + ], + "id": 1713, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "11102:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11102:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1716, + "nodeType": "ExpressionStatement", + "src": "11102:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307865623366323762363731653764636266396139363635376564646463653764383337623235616434343865376361363934363234613331626264663164643137", + "id": 1718, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11217:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_106405104868962129309717982287023310450458049369633692436283121660280557395223_by_1", + "typeString": "int_const 1064...(70 digits omitted)...5223" + }, + "value": "0xeb3f27b671e7dcbf9a96657edddce7d837b25ad448e7ca694624a31bbdf1dd17" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_106405104868962129309717982287023310450458049369633692436283121660280557395223_by_1", + "typeString": "int_const 1064...(70 digits omitted)...5223" + } + ], + "id": 1717, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "11204:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11204:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1720, + "nodeType": "ExpressionStatement", + "src": "11204:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1722, + "name": "REPORTER_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "11313:13:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1723, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1704, + "src": "11328:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1721, + "name": "grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "11303:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 1724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11303:33:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1725, + "nodeType": "ExpressionStatement", + "src": "11303:33:5" + } + ] + }, + "documentation": { + "id": 1702, + "nodeType": "StructuredDocumentation", + "src": "10763:170:5", + "text": " @dev Add an account to the reporter role. Restricted to admins.\n @param account is the address of the reporter to give permissions to submit data" + }, + "functionSelector": "dd8755f2", + "id": 1727, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1707, + "modifierName": { + "argumentTypes": null, + "id": 1706, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1638, + "src": "10991:9:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "10991:9:5" + } + ], + "name": "addReporter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1705, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1704, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1727, + "src": "10959:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1703, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10959:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10958:17:5" + }, + "returnParameters": { + "id": 1708, + "nodeType": "ParameterList", + "parameters": [], + "src": "11002:0:5" + }, + "scope": 2050, + "src": "10938:405:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1752, + "nodeType": "Block", + "src": "11509:342:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307866393730313137373063643365656262313631383336366437383934313662613935313633613632366633363863613433383364666663313935326233633736", + "id": 1736, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11523:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_112823906707760990071417262717244617617952357727332527391529049897987738385526_by_1", + "typeString": "int_const 1128...(70 digits omitted)...5526" + }, + "value": "0xf97011770cd3eebb1618366d789416ba95163a626f368ca4383dffc1952b3c76" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_112823906707760990071417262717244617617952357727332527391529049897987738385526_by_1", + "typeString": "int_const 1128...(70 digits omitted)...5526" + } + ], + "id": 1735, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "11510:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11510:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1738, + "nodeType": "ExpressionStatement", + "src": "11510:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307836313036313763653439366230633064303435396237316339633935373234383732633562303235326337386636333066663263353833633034346632326437", + "id": 1740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11622:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_43885111696612333497867395314034538517555422801553674211412524980736743121623_by_1", + "typeString": "int_const 4388...(69 digits omitted)...1623" + }, + "value": "0x610617ce496b0c0d0459b71c9c95724872c5b0252c78f630ff2c583c044f22d7" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_43885111696612333497867395314034538517555422801553674211412524980736743121623_by_1", + "typeString": "int_const 4388...(69 digits omitted)...1623" + } + ], + "id": 1739, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "11609:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11609:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1742, + "nodeType": "ExpressionStatement", + "src": "11609:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307862393334393832613564313365356465373734396464636231396130643365343630383266303732346665303230666236346230306263356261336434613566", + "id": 1744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11724:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_83770803242837458677302623723813424156643526374127677828328131656638323837535_by_1", + "typeString": "int_const 8377...(69 digits omitted)...7535" + }, + "value": "0xb934982a5d13e5de7749ddcb19a0d3e46082f0724fe020fb64b00bc5ba3d4a5f" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_83770803242837458677302623723813424156643526374127677828328131656638323837535_by_1", + "typeString": "int_const 8377...(69 digits omitted)...7535" + } + ], + "id": 1743, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "11711:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11711:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1746, + "nodeType": "ExpressionStatement", + "src": "11711:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1748, + "name": "REPORTER_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "11821:13:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1749, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1730, + "src": "11836:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1747, + "name": "revokeRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 195, + "src": "11810:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 1750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11810:34:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1751, + "nodeType": "ExpressionStatement", + "src": "11810:34:5" + } + ] + }, + "documentation": { + "id": 1728, + "nodeType": "StructuredDocumentation", + "src": "11349:88:5", + "text": " @dev Remove an account from the reporter role. Restricted to admins." + }, + "functionSelector": "5de5c212", + "id": 1753, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1733, + "modifierName": { + "argumentTypes": null, + "id": 1732, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1638, + "src": "11498:9:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "11498:9:5" + } + ], + "name": "removeReporter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1731, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1730, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1753, + "src": "11466:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1729, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11466:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11465:17:5" + }, + "returnParameters": { + "id": 1734, + "nodeType": "ParameterList", + "parameters": [], + "src": "11509:0:5" + }, + "scope": 2050, + "src": "11442:409:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1775, + "nodeType": "Block", + "src": "11962:352:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307834373636353232343164343736316264363234613063323535353235366666303964356662386336303834643633316665393835656631343539356633643631", + "id": 1758, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11976:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32294997566861246845830290252448487944278581975748247363307285651574583410017_by_1", + "typeString": "int_const 3229...(69 digits omitted)...0017" + }, + "value": "0x476652241d4761bd624a0c2555256ff09d5fb8c6084d631fe985ef14595f3d61" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_32294997566861246845830290252448487944278581975748247363307285651574583410017_by_1", + "typeString": "int_const 3229...(69 digits omitted)...0017" + } + ], + "id": 1757, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "11963:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11963:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1760, + "nodeType": "ExpressionStatement", + "src": "11963:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307836323263323666396665663531383432623161383363353266623438623035353931303138366139336361653864653030623037653433393337626563363130", + "id": 1762, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12075:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_44404669438248401356128031368975416090664415233550677500757049204609784923664_by_1", + "typeString": "int_const 4440...(69 digits omitted)...3664" + }, + "value": "0x622c26f9fef51842b1a83c52fb48b055910186a93cae8de00b07e43937bec610" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_44404669438248401356128031368975416090664415233550677500757049204609784923664_by_1", + "typeString": "int_const 4440...(69 digits omitted)...3664" + } + ], + "id": 1761, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "12062:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12062:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1764, + "nodeType": "ExpressionStatement", + "src": "12062:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307830343039333031393036613661396332313434633138613635623764383961656464326666386134383031663334346238633463396264313832306335623939", + "id": 1766, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12177:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1825484976439818618212414808027622174407567508673872555367834719899972557721_by_1", + "typeString": "int_const 1825...(68 digits omitted)...7721" + }, + "value": "0x0409301906a6a9c2144c18a65b7d89aedd2ff8a4801f344b8c4c9bd1820c5b99" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1825484976439818618212414808027622174407567508673872555367834719899972557721_by_1", + "typeString": "int_const 1825...(68 digits omitted)...7721" + } + ], + "id": 1765, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "12164:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12164:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1768, + "nodeType": "ExpressionStatement", + "src": "12164:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1770, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 48, + "src": "12276:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1771, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "12296:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12296:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1769, + "name": "renounceRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 217, + "src": "12263:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 1773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12263:44:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1774, + "nodeType": "ExpressionStatement", + "src": "12263:44:5" + } + ] + }, + "documentation": { + "id": 1754, + "nodeType": "StructuredDocumentation", + "src": "11857:60:5", + "text": " @dev Remove oneself from the admin role." + }, + "functionSelector": "8bad0c0a", + "id": 1776, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "renounceAdmin", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1755, + "nodeType": "ParameterList", + "parameters": [], + "src": "11944:2:5" + }, + "returnParameters": { + "id": 1756, + "nodeType": "ParameterList", + "parameters": [], + "src": "11962:0:5" + }, + "scope": 2050, + "src": "11922:392:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1801, + "nodeType": "Block", + "src": "12477:351:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307838363233303339613038616364383232646565313231323638353437653334366437653762656131343264653932613338633066393462343636396535386538", + "id": 1785, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12491:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_60671786215409368953268019142204517178673568841794019006524075084548663040232_by_1", + "typeString": "int_const 6067...(69 digits omitted)...0232" + }, + "value": "0x8623039a08acd822dee121268547e346d7e7bea142de92a38c0f94b4669e58e8" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_60671786215409368953268019142204517178673568841794019006524075084548663040232_by_1", + "typeString": "int_const 6067...(69 digits omitted)...0232" + } + ], + "id": 1784, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "12478:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12478:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1787, + "nodeType": "ExpressionStatement", + "src": "12478:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307863623830366262353061303764333036666534623331366466623434313530353931373838616430393766383036303931303363356637323036616366306533", + "id": 1789, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12590:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_92046408054360505036048621933872726090457130756032888937338454430039992496355_by_1", + "typeString": "int_const 9204...(69 digits omitted)...6355" + }, + "value": "0xcb806bb50a07d306fe4b316dfb44150591788ad097f80609103c5f7206acf0e3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_92046408054360505036048621933872726090457130756032888937338454430039992496355_by_1", + "typeString": "int_const 9204...(69 digits omitted)...6355" + } + ], + "id": 1788, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "12577:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12577:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1791, + "nodeType": "ExpressionStatement", + "src": "12577:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307839613261336363306531633531613136316663326638616535353936633531633335616231373965656161643462303538626538313365363138393762346338", + "id": 1793, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12692:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_69730805563410632122222123481908826865526572839247354826193839116730053932232_by_1", + "typeString": "int_const 6973...(69 digits omitted)...2232" + }, + "value": "0x9a2a3cc0e1c51a161fc2f8ae5596c51c35ab179eeaad4b058be813e61897b4c8" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_69730805563410632122222123481908826865526572839247354826193839116730053932232_by_1", + "typeString": "int_const 6973...(69 digits omitted)...2232" + } + ], + "id": 1792, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "12679:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12679:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1795, + "nodeType": "ExpressionStatement", + "src": "12679:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1797, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 48, + "src": "12793:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1798, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1779, + "src": "12813:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1796, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "12785:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 1799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12785:36:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1783, + "id": 1800, + "nodeType": "Return", + "src": "12778:43:5" + } + ] + }, + "documentation": { + "id": 1777, + "nodeType": "StructuredDocumentation", + "src": "12324:79:5", + "text": " @dev Return `true` if the account belongs to the admin role." + }, + "functionSelector": "24d7806c", + "id": 1802, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isAdmin", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1780, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1779, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1802, + "src": "12425:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12425:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12424:17:5" + }, + "returnParameters": { + "id": 1783, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1782, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1802, + "src": "12471:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1781, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12471:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12470:6:5" + }, + "scope": 2050, + "src": "12408:420:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1827, + "nodeType": "Block", + "src": "12994:346:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307866353464653936613662306631653330326165653864376639353832396365666161373062303330363130656362303935316632653462626166386365306339", + "id": 1811, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13008:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_110954306102815984025293094070036435668678269352627735705741627789694351499465_by_1", + "typeString": "int_const 1109...(70 digits omitted)...9465" + }, + "value": "0xf54de96a6b0f1e302aee8d7f95829cefaa70b030610ecb0951f2e4bbaf8ce0c9" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_110954306102815984025293094070036435668678269352627735705741627789694351499465_by_1", + "typeString": "int_const 1109...(70 digits omitted)...9465" + } + ], + "id": 1810, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "12995:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12995:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1813, + "nodeType": "ExpressionStatement", + "src": "12995:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307864616232306261313162656435313731626532633264303933613339353762643931343935333237316138363938303162383762653434636636343532336332", + "id": 1815, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13107:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_98918780031384912079534586833000124330666403534789900882016049748747667973058_by_1", + "typeString": "int_const 9891...(69 digits omitted)...3058" + }, + "value": "0xdab20ba11bed5171be2c2d093a3957bd914953271a869801b87be44cf64523c2" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_98918780031384912079534586833000124330666403534789900882016049748747667973058_by_1", + "typeString": "int_const 9891...(69 digits omitted)...3058" + } + ], + "id": 1814, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "13094:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13094:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1817, + "nodeType": "ExpressionStatement", + "src": "13094:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307866356530336635306365343866623230663633326436333534396565313164396563393334383335386638376435363230366632653233636330643861306535", + "id": 1819, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13209:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_111212858633950559132968568199406338320367822100370024828752744051241991577829_by_1", + "typeString": "int_const 1112...(70 digits omitted)...7829" + }, + "value": "0xf5e03f50ce48fb20f632d63549ee11d9ec9348358f87d56206f2e23cc0d8a0e5" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_111212858633950559132968568199406338320367822100370024828752744051241991577829_by_1", + "typeString": "int_const 1112...(70 digits omitted)...7829" + } + ], + "id": 1818, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "13196:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13196:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1821, + "nodeType": "ExpressionStatement", + "src": "13196:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1823, + "name": "REPORTER_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "13310:13:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1824, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1805, + "src": "13325:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1822, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "13302:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 1825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13302:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1809, + "id": 1826, + "nodeType": "Return", + "src": "13295:38:5" + } + ] + }, + "documentation": { + "id": 1803, + "nodeType": "StructuredDocumentation", + "src": "12834:82:5", + "text": " @dev Return `true` if the account belongs to the reporter role." + }, + "functionSelector": "044ad7be", + "id": 1828, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isReporter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1806, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1805, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1828, + "src": "12941:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12941:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12940:17:5" + }, + "returnParameters": { + "id": 1809, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1808, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1828, + "src": "12987:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1807, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12987:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12986:6:5" + }, + "scope": 2050, + "src": "12921:419:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1917, + "nodeType": "Block", + "src": "13616:1364:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307862363839383439393632393661643032396366316330613566316130646265336234633163633937383365333439366162373632353730653933313161353465", + "id": 1837, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13630:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_82563911655801326786668012845452029891530836215431572153547033356347148182862_by_1", + "typeString": "int_const 8256...(69 digits omitted)...2862" + }, + "value": "0xb68984996296ad029cf1c0a5f1a0dbe3b4c1cc9783e3496ab762570e9311a54e" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_82563911655801326786668012845452029891530836215431572153547033356347148182862_by_1", + "typeString": "int_const 8256...(69 digits omitted)...2862" + } + ], + "id": 1836, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "13617:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13617:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1839, + "nodeType": "ExpressionStatement", + "src": "13617:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307863643833323961363931393135346530623436376333633130613036396338633733343039386335386132333666323366396365633266313833653035363165", + "id": 1841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13729:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_92955878387337011349262073661353285095158925882018730193399905574590869427742_by_1", + "typeString": "int_const 9295...(69 digits omitted)...7742" + }, + "value": "0xcd8329a6919154e0b467c3c10a069c8c734098c58a236f23f9cec2f183e0561e" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_92955878387337011349262073661353285095158925882018730193399905574590869427742_by_1", + "typeString": "int_const 9295...(69 digits omitted)...7742" + } + ], + "id": 1840, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "13716:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13716:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1843, + "nodeType": "ExpressionStatement", + "src": "13716:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307834303761353533633739343831336466666431356563363631333863626362383863663433636630303037323162613930356639316331373130366132323031", + "id": 1845, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13831:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_29164165930040727282811599189873930156487204386753749007511890419768802025985_by_1", + "typeString": "int_const 2916...(69 digits omitted)...5985" + }, + "value": "0x407a553c794813dffd15ec66138cbcb88cf43cf000721ba905f91c17106a2201" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_29164165930040727282811599189873930156487204386753749007511890419768802025985_by_1", + "typeString": "int_const 2916...(69 digits omitted)...5985" + } + ], + "id": 1844, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "13818:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13818:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1847, + "nodeType": "ExpressionStatement", + "src": "13818:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307831343934383139643635356664663732623934613966663263303539636539326264663561316431653837393339373966363937383238373466653833313330", + "id": 1849, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13931:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_9308644905918872632701294605628958285954580923123023787245638550530545955120_by_1", + "typeString": "int_const 9308...(68 digits omitted)...5120" + }, + "value": "0x1494819d655fdf72b94a9ff2c059ce92bdf5a1d1e8793979f69782874fe83130" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_9308644905918872632701294605628958285954580923123023787245638550530545955120_by_1", + "typeString": "int_const 9308...(68 digits omitted)...5120" + } + ], + "id": 1848, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "13918:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13918:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1851, + "nodeType": "ExpressionStatement", + "src": "13918:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1854, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "14036:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14036:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1853, + "name": "isReporter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1828, + "src": "14025:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14025:22:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1858, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "14059:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14059:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1857, + "name": "isAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1802, + "src": "14051:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14051:19:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14025:45:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "53656e646572206d75737420626520616e2041646d696e206f72205265706f7274657220746f207375626d697456616c7565", + "id": 1862, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14072:52:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_258187097e1cb18d37ad7c661ecf1cc2099e70b24bee16cf3d498d95adf3346c", + "typeString": "literal_string \"Sender must be an Admin or Reporter to submitValue\"" + }, + "value": "Sender must be an Admin or Reporter to submitValue" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_258187097e1cb18d37ad7c661ecf1cc2099e70b24bee16cf3d498d95adf3346c", + "typeString": "literal_string \"Sender must be an Admin or Reporter to submitValue\"" + } + ], + "id": 1852, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14017:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14017:108:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1864, + "nodeType": "ExpressionStatement", + "src": "14017:108:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307838636136343735383239373635353430616632633162353965653264383134623564643433336366353238303064383132663965363737346235356562333736", + "id": 1866, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14139:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_63617587815242918348876725032386861637139288045457585123374732076350456116086_by_1", + "typeString": "int_const 6361...(69 digits omitted)...6086" + }, + "value": "0x8ca6475829765540af2c1b59ee2d814b5dd433cf52800d812f9e6774b55eb376" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_63617587815242918348876725032386861637139288045457585123374732076350456116086_by_1", + "typeString": "int_const 6361...(69 digits omitted)...6086" + } + ], + "id": 1865, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "14126:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14126:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1868, + "nodeType": "ExpressionStatement", + "src": "14126:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307839323065333230633532353466636634303439333039643938393764346263383837323133353565653536636661376535316438346431393530643362643037", + "id": 1870, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14241:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_66062757171571059609754117365216769658009959720845516606961905439513230163207_by_1", + "typeString": "int_const 6606...(69 digits omitted)...3207" + }, + "value": "0x920e320c5254fcf4049309d9897d4bc88721355ee56cfa7e51d84d1950d3bd07" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_66062757171571059609754117365216769658009959720845516606961905439513230163207_by_1", + "typeString": "int_const 6606...(69 digits omitted)...3207" + } + ], + "id": 1869, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "14228:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14228:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1872, + "nodeType": "ExpressionStatement", + "src": "14228:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307861643466373861353837613031646534333162636562623661356337333632376438643333386136353464363562633638316635343462313865663837666534", + "id": 1874, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14343:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_78390536395258420089282337648530622692555450708997988792221232137722803027940_by_1", + "typeString": "int_const 7839...(69 digits omitted)...7940" + }, + "value": "0xad4f78a587a01de431bcebb6a5c73627d8d338a654d65bc681f544b18ef87fe4" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_78390536395258420089282337648530622692555450708997988792221232137722803027940_by_1", + "typeString": "int_const 7839...(69 digits omitted)...7940" + } + ], + "id": 1873, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "14330:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14330:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1876, + "nodeType": "ExpressionStatement", + "src": "14330:80:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 1884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1877, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1556, + "src": "14429:6:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 1881, + "indexExpression": { + "argumentTypes": null, + "id": 1878, + "name": "_requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1831, + "src": "14436:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14429:18:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1882, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1879, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "14448:5:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 1880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14448:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14429:35:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1883, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1833, + "src": "14467:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14429:44:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1885, + "nodeType": "ExpressionStatement", + "src": "14429:44:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307864626638366231656335373535636161396562666532376534366234343133393832666635396666393130663432613438376230656564666639356533363462", + "id": 1887, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14488:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_99495431228252686348646403753806546203010948276621386597348163196627057522251_by_1", + "typeString": "int_const 9949...(69 digits omitted)...2251" + }, + "value": "0xdbf86b1ec5755caa9ebfe27e46b4413982ff59ff910f42a487b0eedff95e364b" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_99495431228252686348646403753806546203010948276621386597348163196627057522251_by_1", + "typeString": "int_const 9949...(69 digits omitted)...2251" + } + ], + "id": 1886, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "14475:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14475:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1889, + "nodeType": "ExpressionStatement", + "src": "14475:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307832643136643365383537333535393230643036323362646439336363306432336164336363643435653064663561373564376262666261626531333734316466", + "id": 1891, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14590:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_20394411354043027053969730748640781504018017027780265542378905011783613235679_by_1", + "typeString": "int_const 2039...(69 digits omitted)...5679" + }, + "value": "0x2d16d3e857355920d0623bdd93cc0d23ad3ccd45e0df5a75d7bbfbabe13741df" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_20394411354043027053969730748640781504018017027780265542378905011783613235679_by_1", + "typeString": "int_const 2039...(69 digits omitted)...5679" + } + ], + "id": 1890, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "14577:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14577:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1893, + "nodeType": "ExpressionStatement", + "src": "14577:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1898, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "14704:5:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 1899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14704:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1894, + "name": "timestamps", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "14676:10:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(uint256 => uint256[] storage ref)" + } + }, + "id": 1896, + "indexExpression": { + "argumentTypes": null, + "id": 1895, + "name": "_requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1831, + "src": "14687:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14676:22:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 1897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14676:27:5", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14676:44:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1901, + "nodeType": "ExpressionStatement", + "src": "14676:44:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307866616338643863646163643039613663363562383937373166663838623261353637333337316134626537396162323632616631363639613331623631386234", + "id": 1903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14735:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_113433077880971776039759478649372681417089447404865295175108814150671848052916_by_1", + "typeString": "int_const 1134...(70 digits omitted)...2916" + }, + "value": "0xfac8d8cdacd09a6c65b89771ff88b2a5673371a4be79ab262af1669a31b618b4" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_113433077880971776039759478649372681417089447404865295175108814150671848052916_by_1", + "typeString": "int_const 1134...(70 digits omitted)...2916" + } + ], + "id": 1902, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "14722:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14722:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1905, + "nodeType": "ExpressionStatement", + "src": "14722:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307833633438653862643831396538623664663832366463323463376161396665336438333162396236313863306237623732313035326666623032366165643766", + "id": 1907, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14837:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_27267590217892909586334023314975239812433287649889685483068613128862971915647_by_1", + "typeString": "int_const 2726...(69 digits omitted)...5647" + }, + "value": "0x3c48e8bd819e8b6df826dc24c7aa9fe3d831b9b618c0b7b721052ffb026aed7f" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_27267590217892909586334023314975239812433287649889685483068613128862971915647_by_1", + "typeString": "int_const 2726...(69 digits omitted)...5647" + } + ], + "id": 1906, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "14824:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14824:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1909, + "nodeType": "ExpressionStatement", + "src": "14824:80:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1911, + "name": "_requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1831, + "src": "14937:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1912, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "14949:5:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 1913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14949:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1914, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1833, + "src": "14966:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1910, + "name": "NewValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1550, + "src": "14928:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256,uint256)" + } + }, + "id": 1915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14928:45:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1916, + "nodeType": "EmitStatement", + "src": "14923:50:5" + } + ] + }, + "documentation": { + "id": 1829, + "nodeType": "StructuredDocumentation", + "src": "13346:199:5", + "text": " @dev A mock function to submit a value to be read withoun miners needed\n @param _requestId The tellorId to associate the value to\n @param _value the value for the requestId" + }, + "functionSelector": "62f55112", + "id": 1918, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "submitValue", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1834, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1831, + "mutability": "mutable", + "name": "_requestId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1918, + "src": "13571:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13571:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1833, + "mutability": "mutable", + "name": "_value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1918, + "src": "13590:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1832, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13590:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13570:35:5" + }, + "returnParameters": { + "id": 1835, + "nodeType": "ParameterList", + "parameters": [], + "src": "13616:0:5" + }, + "scope": 2050, + "src": "13550:1430:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1946, + "nodeType": "Block", + "src": "15311:345:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307833663138383036653138643230646430633230623162306163653630323536643638313435346464303133636134396563666232303033393064386464663838", + "id": 1929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15325:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_28539000182040892460058992286612594519063462455661031444694002306938066296712_by_1", + "typeString": "int_const 2853...(69 digits omitted)...6712" + }, + "value": "0x3f18806e18d20dd0c20b1b0ace60256d681454dd013ca49ecfb200390d8ddf88" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_28539000182040892460058992286612594519063462455661031444694002306938066296712_by_1", + "typeString": "int_const 2853...(69 digits omitted)...6712" + } + ], + "id": 1928, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "15312:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15312:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1931, + "nodeType": "ExpressionStatement", + "src": "15312:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307836643030633534396633633062646564346364616534363333343162363531383835653066623439383831366635396266643130353638613164646639363532", + "id": 1933, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15424:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_49303462133352637070813933891101232760158108828795311076703141358580552144466_by_1", + "typeString": "int_const 4930...(69 digits omitted)...4466" + }, + "value": "0x6d00c549f3c0bded4cdae463341b651885e0fb498816f59bfd10568a1ddf9652" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_49303462133352637070813933891101232760158108828795311076703141358580552144466_by_1", + "typeString": "int_const 4930...(69 digits omitted)...4466" + } + ], + "id": 1932, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "15411:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15411:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1935, + "nodeType": "ExpressionStatement", + "src": "15411:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307838353834303931613732356363306335393732383966316564653565616339633863326435373739633536316433386437303336383462373964323266376331", + "id": 1937, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15526:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_60390895502844668473581676769040696104926606887284509270620598647467486148545_by_1", + "typeString": "int_const 6039...(69 digits omitted)...8545" + }, + "value": "0x8584091a725cc0c597289f1ede5eac9c8c2d5779c561d38d703684b79d22f7c1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_60390895502844668473581676769040696104926606887284509270620598647467486148545_by_1", + "typeString": "int_const 6039...(69 digits omitted)...8545" + } + ], + "id": 1936, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "15513:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15513:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1939, + "nodeType": "ExpressionStatement", + "src": "15513:80:5" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1940, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1556, + "src": "15619:6:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + } + }, + "id": 1942, + "indexExpression": { + "argumentTypes": null, + "id": 1941, + "name": "_requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1921, + "src": "15626:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15619:18:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1944, + "indexExpression": { + "argumentTypes": null, + "id": 1943, + "name": "_timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1923, + "src": "15638:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15619:30:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1927, + "id": 1945, + "nodeType": "Return", + "src": "15612:37:5" + } + ] + }, + "documentation": { + "id": 1919, + "nodeType": "StructuredDocumentation", + "src": "14988:228:5", + "text": " @dev Retreive value from oracle based on requestId/timestamp\n @param _requestId being requested\n @param _timestamp to retreive data/value from\n @return uint value for requestId/timestamp submitted" + }, + "functionSelector": "93fa4915", + "id": 1947, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "retrieveData", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1924, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1921, + "mutability": "mutable", + "name": "_requestId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1947, + "src": "15243:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1920, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15243:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1923, + "mutability": "mutable", + "name": "_timestamp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1947, + "src": "15263:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1922, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15263:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15242:40:5" + }, + "returnParameters": { + "id": 1927, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1926, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1947, + "src": "15303:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1925, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15303:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15302:9:5" + }, + "scope": 2050, + "src": "15221:435:5", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1972, + "nodeType": "Block", + "src": "15965:344:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307835303361313664613338653731653762616365366665316639396336396164663135343730306233333266373335366138343665303333646563393734316461", + "id": 1956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15979:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_36287662738099025398313458629313973253266461820440995556725209782381205471706_by_1", + "typeString": "int_const 3628...(69 digits omitted)...1706" + }, + "value": "0x503a16da38e71e7bace6fe1f99c69adf154700b332f7356a846e033dec9741da" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_36287662738099025398313458629313973253266461820440995556725209782381205471706_by_1", + "typeString": "int_const 3628...(69 digits omitted)...1706" + } + ], + "id": 1955, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "15966:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1958, + "nodeType": "ExpressionStatement", + "src": "15966:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307832656438643566653931333536373763343737663866336563643761343235366630346134666633303162626131626439386637376235336230663561613530", + "id": 1960, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16078:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_21189506935912956248769739704750422082791222871188554419901459421139599469136_by_1", + "typeString": "int_const 2118...(69 digits omitted)...9136" + }, + "value": "0x2ed8d5fe9135677c477f8f3ecd7a4256f04a4ff301bba1bd98f77b53b0f5aa50" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_21189506935912956248769739704750422082791222871188554419901459421139599469136_by_1", + "typeString": "int_const 2118...(69 digits omitted)...9136" + } + ], + "id": 1959, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "16065:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16065:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1962, + "nodeType": "ExpressionStatement", + "src": "16065:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307831316161323432376663383965643665366564333161303832616238633662613030656361633833303031643138306666396535363239313763646333333837", + "id": 1964, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16180:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_7989931967829695986626725246193388767178859191052535266173171167167180977031_by_1", + "typeString": "int_const 7989...(68 digits omitted)...7031" + }, + "value": "0x11aa2427fc89ed6e6ed31a082ab8c6ba00ecac83001d180ff9e562917cdc3387" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_7989931967829695986626725246193388767178859191052535266173171167167180977031_by_1", + "typeString": "int_const 7989...(68 digits omitted)...7031" + } + ], + "id": 1963, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "16167:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16167:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1966, + "nodeType": "ExpressionStatement", + "src": "16167:80:5" + }, + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1967, + "name": "timestamps", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "16273:10:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(uint256 => uint256[] storage ref)" + } + }, + "id": 1969, + "indexExpression": { + "argumentTypes": null, + "id": 1968, + "name": "_requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1950, + "src": "16284:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16273:22:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 1970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16273:29:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1954, + "id": 1971, + "nodeType": "Return", + "src": "16266:36:5" + } + ] + }, + "documentation": { + "id": 1948, + "nodeType": "StructuredDocumentation", + "src": "15663:214:5", + "text": " @dev Counts the number of values that have been submited for the request\n @param _requestId the requestId to look up\n @return uint count of the number of values received for the requestId" + }, + "functionSelector": "46eee1c4", + "id": 1973, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getNewValueCountbyRequestId", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1951, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 1371, + "id": 1950, "mutability": "mutable", "name": "_requestId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1414, - "src": "4391:18:4", + "scope": 1973, + "src": "15919:18:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19424,10 +27654,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1370, + "id": 1949, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4391:7:4", + "src": "15919:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19435,16 +27665,23 @@ }, "value": null, "visibility": "internal" - }, + } + ], + "src": "15918:20:5" + }, + "returnParameters": { + "id": 1954, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 1373, + "id": 1953, "mutability": "mutable", - "name": "_value", + "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1414, - "src": "4410:14:4", + "scope": 1973, + "src": "15959:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19452,10 +27689,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1372, - "name": "uint256", + "id": 1952, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4410:7:4", + "src": "15959:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19465,53 +27702,261 @@ "visibility": "internal" } ], - "src": "4390:35:4" - }, - "returnParameters": { - "id": 1375, - "nodeType": "ParameterList", - "parameters": [], - "src": "4436:0:4" + "src": "15958:6:5" }, - "scope": 1480, - "src": "4370:359:4", - "stateMutability": "nonpayable", + "scope": 2050, + "src": "15882:427:5", + "stateMutability": "view", "virtual": false, - "visibility": "external" + "visibility": "public" }, { "body": { - "id": 1430, + "id": 2048, "nodeType": "Block", - "src": "5060:54:4", + "src": "16630:1129:5", "statements": [ { "expression": { "argumentTypes": null, - "baseExpression": { + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307832373763353039333633353837333262636237636530343131613232636265396162323333376232306264333565356464356531646137613166366536353265", + "id": 1984, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16644:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_17859846244062115167903214416230699474276617130326796818749975413982915093806_by_1", + "typeString": "int_const 1785...(69 digits omitted)...3806" + }, + "value": "0x277c50936358732bcb7ce0411a22cbe9ab2337b20bd35e5dd5e1da7a1f6e652e" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_17859846244062115167903214416230699474276617130326796818749975413982915093806_by_1", + "typeString": "int_const 1785...(69 digits omitted)...3806" + } + ], + "id": 1983, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "16631:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16631:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1986, + "nodeType": "ExpressionStatement", + "src": "16631:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307863633837663130376564663864343438323564636162363465393363323634643865326530343662356261623834643337323965626261643738313934326332", + "id": 1988, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16743:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_92512008999382003840326173356086883422590019011144462870976825096077972161218_by_1", + "typeString": "int_const 9251...(69 digits omitted)...1218" + }, + "value": "0xcc87f107edf8d44825dcab64e93c264d8e2e046b5bab84d3729ebbad781942c2" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_92512008999382003840326173356086883422590019011144462870976825096077972161218_by_1", + "typeString": "int_const 9251...(69 digits omitted)...1218" + } + ], + "id": 1987, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "16730:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16730:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1990, + "nodeType": "ExpressionStatement", + "src": "16730:80:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307833626134323438346164383632373232326562353931636337663566343162633365303039646237623630386231376164646530656435303265396337363061", + "id": 1992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16845:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_26976473024892030214739733217217433154115674181031484971639510635835341698570_by_1", + "typeString": "int_const 2697...(69 digits omitted)...8570" + }, + "value": "0x3ba42484ad8627222eb591cc7f5f41bc3e009db7b608b17adde0ed502e9c760a" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_26976473024892030214739733217217433154115674181031484971639510635835341698570_by_1", + "typeString": "int_const 2697...(69 digits omitted)...8570" + } + ], + "id": 1991, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "16832:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16832:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1994, + "nodeType": "ExpressionStatement", + "src": "16832:80:5" + }, + { + "assignments": [ + 1996 + ], + "declarations": [ + { + "constant": false, + "id": 1996, + "mutability": "mutable", + "name": "len", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2048, + "src": "16931:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1995, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "16931:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2001, + "initialValue": { + "argumentTypes": null, + "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1424, - "name": "values", + "id": 1997, + "name": "timestamps", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1236, - "src": "5077:6:4", + "referencedDeclaration": 1561, + "src": "16942:10:5", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(uint256 => uint256))" + "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(uint256 => uint256[] storage ref)" } }, - "id": 1426, + "id": 1999, "indexExpression": { "argumentTypes": null, - "id": 1425, + "id": 1998, "name": "_requestId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1417, - "src": "5084:10:4", + "referencedDeclaration": 1976, + "src": "16953:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19522,565 +27967,605 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5077:18:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1428, - "indexExpression": { - "argumentTypes": null, - "id": 1427, - "name": "_timestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "5096:10:4", + "src": "16942:22:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" } }, + "id": 2000, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5077:30:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1423, - "id": 1429, - "nodeType": "Return", - "src": "5070:37:4" - } - ] - }, - "documentation": { - "id": 1415, - "nodeType": "StructuredDocumentation", - "src": "4737:228:4", - "text": " @dev Retreive value from oracle based on requestId/timestamp\n @param _requestId being requested\n @param _timestamp to retreive data/value from\n @return uint value for requestId/timestamp submitted" - }, - "functionSelector": "93fa4915", - "id": 1431, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "retrieveData", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1420, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1417, - "mutability": "mutable", - "name": "_requestId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1431, - "src": "4992:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1416, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4992:7:4", + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16942:29:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, - "visibility": "internal" + "nodeType": "VariableDeclarationStatement", + "src": "16931:40:5" }, { - "constant": false, - "id": 1419, - "mutability": "mutable", - "name": "_timestamp", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1431, - "src": "5012:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1418, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5012:7:4", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307866383133616164363962616334613831336564393135626334646261613039636266373161326166306437633961333330373336653266333666306130656434", + "id": 2003, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16986:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_112208335625582676414220857354621328200555888061445435345437908752702156443348_by_1", + "typeString": "int_const 1122...(70 digits omitted)...3348" + }, + "value": "0xf813aad69bac4a813ed915bc4dbaa09cbf71a2af0d7c9a330736e2f36f0a0ed4" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_112208335625582676414220857354621328200555888061445435345437908752702156443348_by_1", + "typeString": "int_const 1122...(70 digits omitted)...3348" + } + ], + "id": 2002, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "16973:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 2004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16973:80:5", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" - } - ], - "src": "4991:40:4" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [ + "id": 2005, + "nodeType": "ExpressionStatement", + "src": "16973:80:5" + }, { - "constant": false, - "id": 1422, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1431, - "src": "5052:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1421, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5052:7:4", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307863336365666466323630353262623730663964646230306466343463633562656231336463356532393638663234346430663531626561646131333732306435", + "id": 2007, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17088:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_88566728645358138417968362965524330091698048638496336324442719757218883248341_by_1", + "typeString": "int_const 8856...(69 digits omitted)...8341" + }, + "value": "0xc3cefdf26052bb70f9ddb00df44cc5beb13dc5e2968f244d0f51beada13720d5" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_88566728645358138417968362965524330091698048638496336324442719757218883248341_by_1", + "typeString": "int_const 8856...(69 digits omitted)...8341" + } + ], + "id": 2006, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "17075:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 2008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17075:80:5", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" - } - ], - "src": "5051:9:4" - }, - "scope": 1480, - "src": "4970:144:4", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1444, - "nodeType": "Block", - "src": "5423:53:4", - "statements": [ + "id": 2009, + "nodeType": "ExpressionStatement", + "src": "17075:80:5" + }, { - "expression": { + "condition": { "argumentTypes": null, - "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2010, + "name": "len", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1996, + "src": "17177:3:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2011, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17184:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17177:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { "argumentTypes": null, - "baseExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 1439, - "name": "timestamps", + "id": 2013, + "name": "len", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "5440:10:4", + "referencedDeclaration": 1996, + "src": "17189:3:5", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(uint256 => uint256[] storage ref)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 1441, - "indexExpression": { + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { "argumentTypes": null, - "id": 1440, - "name": "_requestId", + "id": 2014, + "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1434, - "src": "5451:10:4", + "referencedDeclaration": 1978, + "src": "17196:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5440:22:4", + "src": "17189:12:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5440:29:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1438, - "id": 1443, - "nodeType": "Return", - "src": "5433:36:4" - } - ] - }, - "documentation": { - "id": 1432, - "nodeType": "StructuredDocumentation", - "src": "5121:214:4", - "text": " @dev Counts the number of values that have been submited for the request\n @param _requestId the requestId to look up\n @return uint count of the number of values received for the requestId" - }, - "functionSelector": "46eee1c4", - "id": 1445, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getNewValueCountbyRequestId", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1434, - "mutability": "mutable", - "name": "_requestId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1445, - "src": "5377:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1433, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5377:7:4", + "src": "17177:24:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "value": null, - "visibility": "internal" - } - ], - "src": "5376:20:4" - }, - "returnParameters": { - "id": 1438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1437, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1445, - "src": "5417:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1436, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5417:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "falseBody": { + "id": 2032, + "nodeType": "Block", + "src": "17414:99:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307864366530363433386262303961663034353033663233356166656535653834336537343062393335653139316232386563613432376530316264666166383566", + "id": 2029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17429:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_97191415043418439787040561510301522830845480476461260216947238233750164404319_by_1", + "typeString": "int_const 9719...(69 digits omitted)...4319" + }, + "value": "0xd6e06438bb09af04503f235afee5e843e740b935e191b28eca427e01bdfaf85f" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_97191415043418439787040561510301522830845480476461260216947238233750164404319_by_1", + "typeString": "int_const 9719...(69 digits omitted)...4319" + } + ], + "id": 2028, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "17416:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 2030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17416:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2031, + "nodeType": "ExpressionStatement", + "src": "17416:80:5" + } + ] }, - "value": null, - "visibility": "internal" - } - ], - "src": "5416:6:4" - }, - "scope": 1480, - "src": "5340:136:4", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1478, - "nodeType": "Block", - "src": "5797:151:4", - "statements": [ - { - "assignments": [ - 1456 - ], - "declarations": [ - { - "constant": false, - "id": 1456, - "mutability": "mutable", - "name": "len", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1478, - "src": "5807:8:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "id": 2033, + "nodeType": "IfStatement", + "src": "17174:339:5", + "trueBody": { + "id": 2027, + "nodeType": "Block", + "src": "17203:206:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307832653333373230636632356636623865313039326235613162623936666231363030326365663364383430356434316137316335386166333162653263653838", + "id": 2018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17217:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_20897287383261673747213875437509120601148056168293283017345539135228329774728_by_1", + "typeString": "int_const 2089...(69 digits omitted)...4728" + }, + "value": "0x2e33720cf25f6b8e1092b5a1bb96fb16002cef3d8405d41a71c58af31be2ce88" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_20897287383261673747213875437509120601148056168293283017345539135228329774728_by_1", + "typeString": "int_const 2089...(69 digits omitted)...4728" + } + ], + "id": 2017, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "17204:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 2019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17204:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2020, + "nodeType": "ExpressionStatement", + "src": "17204:80:5" }, - "typeName": { - "id": 1455, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5807:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307830396633303535346232616665366335616537373032313262303831663564653235656339646531313637613132633338356266666230343938396339653263", + "id": 2022, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17316:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4500196266175748458924408392673339116281796145059547552615209071752484003372_by_1", + "typeString": "int_const 4500...(68 digits omitted)...3372" + }, + "value": "0x09f30554b2afe6c5ae770212b081f5de25ec9de1167a12c385bffb04989c9e2c" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_4500196266175748458924408392673339116281796145059547552615209071752484003372_by_1", + "typeString": "int_const 4500...(68 digits omitted)...3372" + } + ], + "id": 2021, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "17303:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 2023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17303:80:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2024, + "nodeType": "ExpressionStatement", + "src": "17303:80:5" }, - "value": null, - "visibility": "internal" - } - ], - "id": 1461, - "initialValue": { + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2025, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17406:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 1982, + "id": 2026, + "nodeType": "Return", + "src": "17399:8:5" + } + ] + } + }, + { + "expression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1457, - "name": "timestamps", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "5818:10:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(uint256 => uint256[] storage ref)" - } - }, - "id": 1459, - "indexExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 1458, - "name": "_requestId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "5829:10:4", + "hexValue": "307863393032643633303232623035336330633638336337383631633339653335383930656566616633373037656561303632623638323963633762313837373737", + "id": 2035, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17528:66:5", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_rational_90919894530814908738760395910465710317294411525620258542728737116622832564087_by_1", + "typeString": "int_const 9091...(69 digits omitted)...4087" + }, + "value": "0xc902d63022b053c0c683c7861c39e35890eefaf3707eea062b6829cc7b187777" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_90919894530814908738760395910465710317294411525620258542728737116622832564087_by_1", + "typeString": "int_const 9091...(69 digits omitted)...4087" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5818:22:4", + ], + "id": 2034, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "17515:12:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" } }, - "id": 1460, + "id": 2036, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5818:29:4", + "names": [], + "nodeType": "FunctionCall", + "src": "17515:80:5", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "5807:40:4" + "id": 2037, + "nodeType": "ExpressionStatement", + "src": "17515:80:5" }, { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1462, - "name": "len", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1456, - "src": "5860:3:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { + "arguments": [ + { "argumentTypes": null, - "hexValue": "30", - "id": 1463, + "hexValue": "307830363639313137356139383962363565623962643339643462633032343731386662646330643235366237383063363763663439393136643837386534613462", + "id": 2039, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5867:1:4", + "src": "17630:66:5", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_rational_2899516535157413061455778728762737425356287662717006353639427055022108461643_by_1", + "typeString": "int_const 2899...(68 digits omitted)...1643" }, - "value": "0" - }, - "src": "5860:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "value": "0x06691175a989b65eb9bd39d4bc024718fbdc0d256b780c67cf49916d878e4a4b" } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1465, - "name": "len", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1456, - "src": "5872:3:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 1466, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1450, - "src": "5879:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_2899516535157413061455778728762737425356287662717006353639427055022108461643_by_1", + "typeString": "int_const 2899...(68 digits omitted)...1643" } - }, - "src": "5872:12:4", + ], + "id": 2038, + "name": "c_0xf503494c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "17617:12:5", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" } }, - "src": "5860:24:4", + "id": 2040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17617:80:5", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "falseBody": null, - "id": 1471, - "nodeType": "IfStatement", - "src": "5857:37:4", - "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1469, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5893:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 1454, - "id": 1470, - "nodeType": "Return", - "src": "5886:8:4" - } + "id": 2041, + "nodeType": "ExpressionStatement", + "src": "17617:80:5" }, { "expression": { @@ -20089,26 +28574,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1472, + "id": 2042, "name": "timestamps", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "5912:10:4", + "referencedDeclaration": 1561, + "src": "17723:10:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(uint256 => uint256[] storage ref)" } }, - "id": 1474, + "id": 2044, "indexExpression": { "argumentTypes": null, - "id": 1473, + "id": 2043, "name": "_requestId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "5923:10:4", + "referencedDeclaration": 1976, + "src": "17734:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20119,21 +28604,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5912:22:4", + "src": "17723:22:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 1476, + "id": 2046, "indexExpression": { "argumentTypes": null, - "id": 1475, + "id": 2045, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1450, - "src": "5935:5:4", + "referencedDeclaration": 1978, + "src": "17746:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20144,27 +28629,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5912:29:4", + "src": "17723:29:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1454, - "id": 1477, + "functionReturnParameters": 1982, + "id": 2047, "nodeType": "Return", - "src": "5905:36:4" + "src": "17716:36:5" } ] }, "documentation": { - "id": 1446, + "id": 1974, "nodeType": "StructuredDocumentation", - "src": "5482:205:4", + "src": "16315:205:5", "text": " @dev Gets the timestamp for the value based on their index\n @param _requestId is the requestId to look up\n @param index is the value index to look up\n @return uint timestamp" }, "functionSelector": "77fbb663", - "id": 1479, + "id": 2049, "implemented": true, "kind": "function", "modifiers": [], @@ -20172,18 +28657,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1451, + "id": 1979, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1448, + "id": 1976, "mutability": "mutable", "name": "_requestId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1479, - "src": "5733:18:4", + "scope": 2049, + "src": "16566:18:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20191,10 +28676,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1447, + "id": 1975, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5733:7:4", + "src": "16566:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20205,13 +28690,13 @@ }, { "constant": false, - "id": 1450, + "id": 1978, "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1479, - "src": "5753:13:4", + "scope": 2049, + "src": "16586:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20219,10 +28704,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1449, + "id": 1977, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5753:7:4", + "src": "16586:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20232,21 +28717,21 @@ "visibility": "internal" } ], - "src": "5732:35:4" + "src": "16565:35:5" }, "returnParameters": { - "id": 1454, + "id": 1982, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1453, + "id": 1981, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1479, - "src": "5788:7:4", + "scope": 2049, + "src": "16621:7:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20254,10 +28739,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1452, + "id": 1980, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5788:7:4", + "src": "16621:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20267,22 +28752,22 @@ "visibility": "internal" } ], - "src": "5787:9:4" + "src": "16620:9:5" }, - "scope": 1480, - "src": "5692:256:4", + "scope": 2050, + "src": "16525:1234:5", "stateMutability": "view", "virtual": false, "visibility": "public" } ], - "scope": 1481, - "src": "1837:4114:4" + "scope": 2051, + "src": "7554:10208:5" } ], - "src": "32:5919:4" + "src": "32:17730:5" }, - "id": 4 + "id": 5 } } } diff --git a/artifacts/build-info/dd8865807e7f6f63cfae90947e2c6a37.json b/artifacts/build-info/dd8865807e7f6f63cfae90947e2c6a37.json deleted file mode 100644 index 0d0e27d..0000000 --- a/artifacts/build-info/dd8865807e7f6f63cfae90947e2c6a37.json +++ /dev/null @@ -1,526 +0,0 @@ -{ - "id": "dd8865807e7f6f63cfae90947e2c6a37", - "_format": "hh-sol-build-info-1", - "solcVersion": "0.7.0", - "solcLongVersion": "0.7.0+commit.9e61f92b", - "input": { - "language": "Solidity", - "sources": { - "contracts/Migrations.sol": { - "content": "// SPDX-License-Identifier: MIT\npragma solidity >=0.4.22 <0.8.0;\n\ncontract Migrations {\n address public owner = msg.sender;\n uint public last_completed_migration;\n\n modifier restricted() {\n require(\n msg.sender == owner,\n \"This function is restricted to the contract's owner\"\n );\n _;\n }\n\n function setCompleted(uint completed) public restricted {\n last_completed_migration = completed;\n }\n}\n" - } - }, - "settings": { - "optimizer": { - "enabled": true, - "runs": 999999 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers" - ], - "": [ - "ast" - ] - } - } - } - }, - "output": { - "contracts": { - "contracts/Migrations.sol": { - "Migrations": { - "abi": [ - { - "inputs": [], - "name": "last_completed_migration", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "completed", - "type": "uint256" - } - ], - "name": "setCompleted", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6080604052600080546001600160a01b0319163317905534801561002257600080fd5b506101b0806100326000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063445df0ac146100465780638da5cb5b14610060578063fdacd57614610091575b600080fd5b61004e6100b0565b60408051918252519081900360200190f35b6100686100b6565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100ae600480360360208110156100a757600080fd5b50356100d2565b005b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff163314610142576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806101486033913960400191505060405180910390fd5b60015556fe546869732066756e6374696f6e206973207265737472696374656420746f2074686520636f6e74726163742773206f776e6572a26469706673582212209b7d72e80ab76b3bcdac13f8827f8373ddfbbadf4dd8e3c4f29bb68cdfc3c98c64736f6c63430007000033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B0 DUP1 PUSH2 0x32 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x445DF0AC EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x60 JUMPI DUP1 PUSH4 0xFDACD576 EQ PUSH2 0x91 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0xB0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x68 PUSH2 0xB6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xAE PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0xD2 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x142 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x33 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x148 PUSH1 0x33 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SSTORE JUMP INVALID SLOAD PUSH9 0x69732066756E637469 PUSH16 0x6E206973207265737472696374656420 PUSH21 0x6F2074686520636F6E74726163742773206F776E65 PUSH19 0xA26469706673582212209B7D72E80AB76B3BCD 0xAC SGT 0xF8 DUP3 PUSH32 0x8373DDFBBADF4DD8E3C4F29BB68CDFC3C98C64736F6C63430007000033000000 ", - "sourceMap": "66:352:0:-:0;;;90:33;;;-1:-1:-1;;;;;;90:33:0;113:10;90:33;;;66:352;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c8063445df0ac146100465780638da5cb5b14610060578063fdacd57614610091575b600080fd5b61004e6100b0565b60408051918252519081900360200190f35b6100686100b6565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100ae600480360360208110156100a757600080fd5b50356100d2565b005b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff163314610142576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806101486033913960400191505060405180910390fd5b60015556fe546869732066756e6374696f6e206973207265737472696374656420746f2074686520636f6e74726163742773206f776e6572a26469706673582212209b7d72e80ab76b3bcdac13f8827f8373ddfbbadf4dd8e3c4f29bb68cdfc3c98c64736f6c63430007000033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x445DF0AC EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x60 JUMPI DUP1 PUSH4 0xFDACD576 EQ PUSH2 0x91 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0xB0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x68 PUSH2 0xB6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xAE PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0xD2 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x142 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x33 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x148 PUSH1 0x33 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SSTORE JUMP INVALID SLOAD PUSH9 0x69732066756E637469 PUSH16 0x6E206973207265737472696374656420 PUSH21 0x6F2074686520636F6E74726163742773206F776E65 PUSH19 0xA26469706673582212209B7D72E80AB76B3BCD 0xAC SGT 0xF8 DUP3 PUSH32 0x8373DDFBBADF4DD8E3C4F29BB68CDFC3C98C64736F6C63430007000033000000 ", - "sourceMap": "66:352:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;127:36;;;:::i;:::-;;;;;;;;;;;;;;;;90:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;313:103;;;;;;;;;;;;;;;;-1:-1:-1;313:103:0;;:::i;:::-;;127:36;;;;:::o;90:33::-;;;;;;:::o;313:103::-;225:5;;;;211:10;:19;196:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;375:24:::1;:36:::0;313:103::o" - }, - "methodIdentifiers": { - "last_completed_migration()": "445df0ac", - "owner()": "8da5cb5b", - "setCompleted(uint256)": "fdacd576" - } - } - } - } - }, - "sources": { - "contracts/Migrations.sol": { - "ast": { - "absolutePath": "contracts/Migrations.sol", - "exportedSymbols": { - "Migrations": [ - 32 - ] - }, - "id": 33, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - ">=", - "0.4", - ".22", - "<", - "0.8", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "32:32:0" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 32, - "linearizedBaseContracts": [ - 32 - ], - "name": "Migrations", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "functionSelector": "8da5cb5b", - "id": 5, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 32, - "src": "90:33:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "90:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "113:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "113:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "445df0ac", - "id": 7, - "mutability": "mutable", - "name": "last_completed_migration", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 32, - "src": "127:36:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "127:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 18, - "nodeType": "Block", - "src": "190:119:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 13, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "211:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 11, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "211:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 12, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5, - "src": "225:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "211:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "546869732066756e6374696f6e206973207265737472696374656420746f2074686520636f6e74726163742773206f776e6572", - "id": 14, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "238:53:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1", - "typeString": "literal_string \"This function is restricted to the contract's owner\"" - }, - "value": "This function is restricted to the contract's owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1", - "typeString": "literal_string \"This function is restricted to the contract's owner\"" - } - ], - "id": 9, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "196:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 15, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "196:101:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16, - "nodeType": "ExpressionStatement", - "src": "196:101:0" - }, - { - "id": 17, - "nodeType": "PlaceholderStatement", - "src": "303:1:0" - } - ] - }, - "documentation": null, - "id": 19, - "name": "restricted", - "nodeType": "ModifierDefinition", - "overrides": null, - "parameters": { - "id": 8, - "nodeType": "ParameterList", - "parameters": [], - "src": "187:2:0" - }, - "src": "168:141:0", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 30, - "nodeType": "Block", - "src": "369:47:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 28, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 26, - "name": "last_completed_migration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "375:24:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 27, - "name": "completed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "402:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "375:36:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 29, - "nodeType": "ExpressionStatement", - "src": "375:36:0" - } - ] - }, - "documentation": null, - "functionSelector": "fdacd576", - "id": 31, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 24, - "modifierName": { - "argumentTypes": null, - "id": 23, - "name": "restricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "358:10:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "358:10:0" - } - ], - "name": "setCompleted", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 22, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21, - "mutability": "mutable", - "name": "completed", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31, - "src": "335:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "335:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "334:16:0" - }, - "returnParameters": { - "id": 25, - "nodeType": "ParameterList", - "parameters": [], - "src": "369:0:0" - }, - "scope": 32, - "src": "313:103:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 33, - "src": "66:352:0" - } - ], - "src": "32:387:0" - }, - "id": 0 - } - } - } -} diff --git a/artifacts/contracts/Migrations.sol/Migrations.dbg.json b/artifacts/contracts/Migrations.sol/Migrations.dbg.json index 326c3db..0e69452 100644 --- a/artifacts/contracts/Migrations.sol/Migrations.dbg.json +++ b/artifacts/contracts/Migrations.sol/Migrations.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/dd8865807e7f6f63cfae90947e2c6a37.json" + "buildInfo": "../../build-info/51f15aea59c742b9698a8d4a2653bdef.json" } diff --git a/artifacts/contracts/Migrations.sol/Migrations.json b/artifacts/contracts/Migrations.sol/Migrations.json index 25e961e..f236390 100644 --- a/artifacts/contracts/Migrations.sol/Migrations.json +++ b/artifacts/contracts/Migrations.sol/Migrations.json @@ -3,6 +3,19 @@ "contractName": "Migrations", "sourceName": "contracts/Migrations.sol", "abi": [ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "c__0xabb147e4", + "type": "bytes32" + } + ], + "name": "c_0xabb147e4", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [], "name": "last_completed_migration", @@ -43,8 +56,8 @@ "type": "function" } ], - "bytecode": "0x6080604052600080546001600160a01b0319163317905534801561002257600080fd5b506101b0806100326000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063445df0ac146100465780638da5cb5b14610060578063fdacd57614610091575b600080fd5b61004e6100b0565b60408051918252519081900360200190f35b6100686100b6565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100ae600480360360208110156100a757600080fd5b50356100d2565b005b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff163314610142576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806101486033913960400191505060405180910390fd5b60015556fe546869732066756e6374696f6e206973207265737472696374656420746f2074686520636f6e74726163742773206f776e6572a26469706673582212209b7d72e80ab76b3bcdac13f8827f8373ddfbbadf4dd8e3c4f29bb68cdfc3c98c64736f6c63430007000033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063445df0ac146100465780638da5cb5b14610060578063fdacd57614610091575b600080fd5b61004e6100b0565b60408051918252519081900360200190f35b6100686100b6565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100ae600480360360208110156100a757600080fd5b50356100d2565b005b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff163314610142576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806101486033913960400191505060405180910390fd5b60015556fe546869732066756e6374696f6e206973207265737472696374656420746f2074686520636f6e74726163742773206f776e6572a26469706673582212209b7d72e80ab76b3bcdac13f8827f8373ddfbbadf4dd8e3c4f29bb68cdfc3c98c64736f6c63430007000033", + "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561005057600080fd5b506103cf806100606000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063445df0ac146100515780638da5cb5b1461006f5780639d3cf043146100a3578063fdacd576146100d1575b600080fd5b6100596100ff565b6040518082815260200191505060405180910390f35b610077610105565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100cf600480360360208110156100b957600080fd5b8101908080359060200190929190505050610129565b005b6100fd600480360360208110156100e757600080fd5b810190808035906020019092919050505061012c565b005b60015481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b50565b6101587fd5046512d46e33a6845acffadfd1edae344fc32d651ce1ed6e342501296fe06060001b610129565b6101847fc04f4f02df9a30f356b5707c99e7334a580b79dba5132cfa7743f36350e390a360001b610129565b6101b07fccf584977502dca4873f0eccac42573699b8b625ce28d317cff93c64efa1315d60001b610129565b6101dc7f5ebc1168354748aac98338fbcf780960b1c7dff6c5744662d667250e39f5f63360001b610129565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610280576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806103676033913960400191505060405180910390fd5b6102ac7fd19a8f0f55452b58e34b7ca08928d8f205c8d8eebcf365651448b82ba5a786db60001b610129565b6102d87fa29403cd54b6214f491fcccf132a590a63fa3cd53e3c3b2733bfffdb3236b79060001b610129565b6103047ff45ce12012b9abd3ac6d8a616f43719db5528b3e70c7822796297a43ea8b1c9160001b610129565b6103307fec67cfe99587ece7204487993e407537d9b539167b13bf4a04026d257cb68ad260001b610129565b61035c7f7f15600e8540260d69357a6000cc99f6718a2dd33c27e526395b10e4373b383760001b610129565b806001819055505056fe546869732066756e6374696f6e206973207265737472696374656420746f2074686520636f6e74726163742773206f776e6572a264697066735822122075f73357b348e55ded006c27a1d006b3182a8d4b9c00cd1d10e310432908fc6164736f6c63430007000033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c8063445df0ac146100515780638da5cb5b1461006f5780639d3cf043146100a3578063fdacd576146100d1575b600080fd5b6100596100ff565b6040518082815260200191505060405180910390f35b610077610105565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100cf600480360360208110156100b957600080fd5b8101908080359060200190929190505050610129565b005b6100fd600480360360208110156100e757600080fd5b810190808035906020019092919050505061012c565b005b60015481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b50565b6101587fd5046512d46e33a6845acffadfd1edae344fc32d651ce1ed6e342501296fe06060001b610129565b6101847fc04f4f02df9a30f356b5707c99e7334a580b79dba5132cfa7743f36350e390a360001b610129565b6101b07fccf584977502dca4873f0eccac42573699b8b625ce28d317cff93c64efa1315d60001b610129565b6101dc7f5ebc1168354748aac98338fbcf780960b1c7dff6c5744662d667250e39f5f63360001b610129565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610280576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806103676033913960400191505060405180910390fd5b6102ac7fd19a8f0f55452b58e34b7ca08928d8f205c8d8eebcf365651448b82ba5a786db60001b610129565b6102d87fa29403cd54b6214f491fcccf132a590a63fa3cd53e3c3b2733bfffdb3236b79060001b610129565b6103047ff45ce12012b9abd3ac6d8a616f43719db5528b3e70c7822796297a43ea8b1c9160001b610129565b6103307fec67cfe99587ece7204487993e407537d9b539167b13bf4a04026d257cb68ad260001b610129565b61035c7f7f15600e8540260d69357a6000cc99f6718a2dd33c27e526395b10e4373b383760001b610129565b806001819055505056fe546869732066756e6374696f6e206973207265737472696374656420746f2074686520636f6e74726163742773206f776e6572a264697066735822122075f73357b348e55ded006c27a1d006b3182a8d4b9c00cd1d10e310432908fc6164736f6c63430007000033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/contracts/TellorAccess.sol/SafeMath.dbg.json b/artifacts/contracts/TellorAccess.sol/SafeMath.dbg.json index 1181432..0e69452 100644 --- a/artifacts/contracts/TellorAccess.sol/SafeMath.dbg.json +++ b/artifacts/contracts/TellorAccess.sol/SafeMath.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/be630f16223b3a0e91aff14d54f322b9.json" + "buildInfo": "../../build-info/51f15aea59c742b9698a8d4a2653bdef.json" } diff --git a/artifacts/contracts/TellorAccess.sol/SafeMath.json b/artifacts/contracts/TellorAccess.sol/SafeMath.json index ddf6e0b..5f80346 100644 --- a/artifacts/contracts/TellorAccess.sol/SafeMath.json +++ b/artifacts/contracts/TellorAccess.sol/SafeMath.json @@ -2,9 +2,23 @@ "_format": "hh-sol-artifact-1", "contractName": "SafeMath", "sourceName": "contracts/TellorAccess.sol", - "abi": [], - "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dbedd12e0278698c7e9c6ebf394e500f925e6c8c78a9051d00d47fb62102cf4064736f6c63430007000033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dbedd12e0278698c7e9c6ebf394e500f925e6c8c78a9051d00d47fb62102cf4064736f6c63430007000033", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "c__0xcb92bccd", + "type": "bytes32" + } + ], + "name": "c_0xcb92bccd", + "outputs": [], + "stateMutability": "pure", + "type": "function" + } + ], + "bytecode": "0x609c610024600b82828239805160001a607314601757fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060335760003560e01c8063fa401a6a146038575b600080fd5b606160048036036020811015604c57600080fd5b81019080803590602001909291905050506063565b005b5056fea26469706673582212205b0494540674642a74b9d9b9b088a62fac397c11ccc4cb049ddfe3792d3d5e6864736f6c63430007000033", + "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361060335760003560e01c8063fa401a6a146038575b600080fd5b606160048036036020811015604c57600080fd5b81019080803590602001909291905050506063565b005b5056fea26469706673582212205b0494540674642a74b9d9b9b088a62fac397c11ccc4cb049ddfe3792d3d5e6864736f6c63430007000033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/contracts/TellorAccess.sol/TellorAccess.dbg.json b/artifacts/contracts/TellorAccess.sol/TellorAccess.dbg.json index 1181432..0e69452 100644 --- a/artifacts/contracts/TellorAccess.sol/TellorAccess.dbg.json +++ b/artifacts/contracts/TellorAccess.sol/TellorAccess.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/be630f16223b3a0e91aff14d54f322b9.json" + "buildInfo": "../../build-info/51f15aea59c742b9698a8d4a2653bdef.json" } diff --git a/artifacts/contracts/TellorAccess.sol/TellorAccess.json b/artifacts/contracts/TellorAccess.sol/TellorAccess.json index 767b36e..b63e04b 100644 --- a/artifacts/contracts/TellorAccess.sol/TellorAccess.json +++ b/artifacts/contracts/TellorAccess.sol/TellorAccess.json @@ -160,6 +160,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "c__0xf503494c", + "type": "bytes32" + } + ], + "name": "c_0xf503494c", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { @@ -492,8 +505,8 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b506200001f60003362000052565b6200004c7f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a6600062000062565b620001b8565b6200005e8282620000b4565b5050565b600082815260208190526040808220600201549051839285917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a460009182526020829052604090912060020155565b600082815260208181526040909120620000d991839062000ad06200012d821b17901c565b156200005e57620000e96200014d565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600062000144836001600160a01b03841662000151565b90505b92915050565b3390565b60006200015f8383620001a0565b620001975750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000147565b50600062000147565b60009081526001919091016020526040902054151590565b610f3780620001c86000396000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c806377fbb663116100d8578063a217fddf1161008c578063d547741f11610066578063d547741f14610462578063dd8755f21461049b578063fb0ceb04146104ce57610177565b8063a217fddf1461041a578063a318370114610422578063ca15c8731461044557610177565b80639010d07c116100bd5780639010d07c1461037257806391d14854146103be57806393fa4915146103f757610177565b806377fbb663146103475780638bad0c0a1461036a57610177565b80633f60d7991161012f5780635de5c212116101145780635de5c212146102be57806362f55112146102f1578063704802751461031457610177565b80633f60d7991461029957806346eee1c4146102a157610177565b806324d7806c1161016057806324d7806c146101f25780632f2ff15d1461022557806336568abe1461026057610177565b8063044ad7be1461017c578063248a9ca3146101c3575b600080fd5b6101af6004803603602081101561019257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104f1565b604080519115158252519081900360200190f35b6101e0600480360360208110156101d957600080fd5b5035610523565b60408051918252519081900360200190f35b6101af6004803603602081101561020857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610538565b61025e6004803603604081101561023b57600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff16610544565b005b61025e6004803603604081101561027657600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff166105ca565b6101e061065f565b6101e0600480360360208110156102b757600080fd5b5035610683565b61025e600480360360208110156102d457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610695565b61025e6004803603604081101561030757600080fd5b5080359060200135610736565b61025e6004803603602081101561032a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661081f565b6101e06004803603604081101561035d57600080fd5b508035906020013561089e565b61025e6108f7565b6103956004803603604081101561038857600080fd5b5080359060200135610904565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101af600480360360408110156103d457600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff16610923565b6101e06004803603604081101561040d57600080fd5b508035906020013561093b565b6101e0610958565b6101e06004803603604081101561043857600080fd5b508035906020013561095d565b6101e06004803603602081101561045b57600080fd5b503561097a565b61025e6004803603604081101561047857600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff16610991565b61025e600480360360208110156104b157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610a04565b6101e0600480360360408110156104e457600080fd5b5080359060200135610aa2565b600061051d7f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a683610923565b92915050565b60009081526020819052604090206002015490565b600061051d8183610923565b60008281526020819052604090206002015461056790610562610af2565b610923565b6105bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180610e42602f913960400191505060405180910390fd5b6105c68282610af6565b5050565b6105d2610af2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180610ed3602f913960400191505060405180910390fd5b6105c68282610b79565b7f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a681565b60009081526002602052604090205490565b61069e33610538565b61070957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5265737472696374656420746f2061646d696e732e0000000000000000000000604482015290519081900360640190fd5b6107337f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a682610991565b50565b61073f336104f1565b8061074e575061074e33610538565b6107a3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180610e716032913960400191505060405180910390fd5b6000828152600160208181526040808420428086529083528185208690558685526002835281852080549485018155855293829020909201839055815185815290810192909252818101839052517fba11e319aee26e7bbac889432515ba301ec8f6d27bf6b94829c21a65c5f6ff259181900360600190a15050565b61082833610538565b61089357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5265737472696374656420746f2061646d696e732e0000000000000000000000604482015290519081900360640190fd5b610733600082610544565b6000828152600260205260408120548015806108ba5750828111155b156108c957600091505061051d565b60008481526002602052604090208054849081106108e357fe5b906000526020600020015491505092915050565b6109026000336105ca565b565b600082815260208190526040812061091c9083610bfc565b9392505050565b600082815260208190526040812061091c9083610c08565b600091825260016020908152604080842092845291905290205490565b600081565b600160209081526000928352604080842090915290825290205481565b600081815260208190526040812061051d90610c2a565b6000828152602081905260409020600201546109af90610562610af2565b610655576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180610ea36030913960400191505060405180910390fd5b610a0d33610538565b610a7857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5265737472696374656420746f2061646d696e732e0000000000000000000000604482015290519081900360640190fd5b6107337f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a682610544565b60026020528160005260406000208181548110610abb57fe5b90600052602060002001600091509150505481565b600061091c8373ffffffffffffffffffffffffffffffffffffffff8416610c35565b3390565b6000828152602081905260409020610b0e9082610ad0565b156105c657610b1b610af2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081905260409020610b919082610c7f565b156105c657610b9e610af2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b600061091c8383610ca1565b600061091c8373ffffffffffffffffffffffffffffffffffffffff8416610d1f565b600061051d82610d37565b6000610c418383610d1f565b610c775750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561051d565b50600061051d565b600061091c8373ffffffffffffffffffffffffffffffffffffffff8416610d3b565b81546000908210610cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610e206022913960400191505060405180910390fd5b826000018281548110610d0c57fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b60008181526001830160205260408120548015610e155783547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8083019190810190600090879083908110610d8c57fe5b9060005260206000200154905080876000018481548110610da957fe5b600091825260208083209091019290925582815260018981019092526040902090840190558654879080610dd957fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061051d565b600091505061051d56fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7453656e646572206d75737420626520616e2041646d696e206f72205265706f7274657220746f207375626d697456616c7565416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a2646970667358221220e811515895d413116d25b636bd764bf801b048dc8fbdceb8e01205253ae8ffbc64736f6c63430007000033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101775760003560e01c806377fbb663116100d8578063a217fddf1161008c578063d547741f11610066578063d547741f14610462578063dd8755f21461049b578063fb0ceb04146104ce57610177565b8063a217fddf1461041a578063a318370114610422578063ca15c8731461044557610177565b80639010d07c116100bd5780639010d07c1461037257806391d14854146103be57806393fa4915146103f757610177565b806377fbb663146103475780638bad0c0a1461036a57610177565b80633f60d7991161012f5780635de5c212116101145780635de5c212146102be57806362f55112146102f1578063704802751461031457610177565b80633f60d7991461029957806346eee1c4146102a157610177565b806324d7806c1161016057806324d7806c146101f25780632f2ff15d1461022557806336568abe1461026057610177565b8063044ad7be1461017c578063248a9ca3146101c3575b600080fd5b6101af6004803603602081101561019257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104f1565b604080519115158252519081900360200190f35b6101e0600480360360208110156101d957600080fd5b5035610523565b60408051918252519081900360200190f35b6101af6004803603602081101561020857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610538565b61025e6004803603604081101561023b57600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff16610544565b005b61025e6004803603604081101561027657600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff166105ca565b6101e061065f565b6101e0600480360360208110156102b757600080fd5b5035610683565b61025e600480360360208110156102d457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610695565b61025e6004803603604081101561030757600080fd5b5080359060200135610736565b61025e6004803603602081101561032a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661081f565b6101e06004803603604081101561035d57600080fd5b508035906020013561089e565b61025e6108f7565b6103956004803603604081101561038857600080fd5b5080359060200135610904565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101af600480360360408110156103d457600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff16610923565b6101e06004803603604081101561040d57600080fd5b508035906020013561093b565b6101e0610958565b6101e06004803603604081101561043857600080fd5b508035906020013561095d565b6101e06004803603602081101561045b57600080fd5b503561097a565b61025e6004803603604081101561047857600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff16610991565b61025e600480360360208110156104b157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610a04565b6101e0600480360360408110156104e457600080fd5b5080359060200135610aa2565b600061051d7f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a683610923565b92915050565b60009081526020819052604090206002015490565b600061051d8183610923565b60008281526020819052604090206002015461056790610562610af2565b610923565b6105bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180610e42602f913960400191505060405180910390fd5b6105c68282610af6565b5050565b6105d2610af2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180610ed3602f913960400191505060405180910390fd5b6105c68282610b79565b7f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a681565b60009081526002602052604090205490565b61069e33610538565b61070957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5265737472696374656420746f2061646d696e732e0000000000000000000000604482015290519081900360640190fd5b6107337f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a682610991565b50565b61073f336104f1565b8061074e575061074e33610538565b6107a3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180610e716032913960400191505060405180910390fd5b6000828152600160208181526040808420428086529083528185208690558685526002835281852080549485018155855293829020909201839055815185815290810192909252818101839052517fba11e319aee26e7bbac889432515ba301ec8f6d27bf6b94829c21a65c5f6ff259181900360600190a15050565b61082833610538565b61089357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5265737472696374656420746f2061646d696e732e0000000000000000000000604482015290519081900360640190fd5b610733600082610544565b6000828152600260205260408120548015806108ba5750828111155b156108c957600091505061051d565b60008481526002602052604090208054849081106108e357fe5b906000526020600020015491505092915050565b6109026000336105ca565b565b600082815260208190526040812061091c9083610bfc565b9392505050565b600082815260208190526040812061091c9083610c08565b600091825260016020908152604080842092845291905290205490565b600081565b600160209081526000928352604080842090915290825290205481565b600081815260208190526040812061051d90610c2a565b6000828152602081905260409020600201546109af90610562610af2565b610655576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180610ea36030913960400191505060405180910390fd5b610a0d33610538565b610a7857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5265737472696374656420746f2061646d696e732e0000000000000000000000604482015290519081900360640190fd5b6107337f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a682610544565b60026020528160005260406000208181548110610abb57fe5b90600052602060002001600091509150505481565b600061091c8373ffffffffffffffffffffffffffffffffffffffff8416610c35565b3390565b6000828152602081905260409020610b0e9082610ad0565b156105c657610b1b610af2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081905260409020610b919082610c7f565b156105c657610b9e610af2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b600061091c8383610ca1565b600061091c8373ffffffffffffffffffffffffffffffffffffffff8416610d1f565b600061051d82610d37565b6000610c418383610d1f565b610c775750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561051d565b50600061051d565b600061091c8373ffffffffffffffffffffffffffffffffffffffff8416610d3b565b81546000908210610cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610e206022913960400191505060405180910390fd5b826000018281548110610d0c57fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b60008181526001830160205260408120548015610e155783547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8083019190810190600090879083908110610d8c57fe5b9060005260206000200154905080876000018481548110610da957fe5b600091825260208083209091019290925582815260018981019092526040902090840190558654879080610dd957fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061051d565b600091505061051d56fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7453656e646572206d75737420626520616e2041646d696e206f72205265706f7274657220746f207375626d697456616c7565416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a2646970667358221220e811515895d413116d25b636bd764bf801b048dc8fbdceb8e01205253ae8ffbc64736f6c63430007000033", + "bytecode": "0x60806040523480156200001157600080fd5b50620000467fc6b08aee1d651760292ac4042ea653f2242c01b27c692bf2f796b0dd118556fd60001b6200016660201b60201c565b6200007a7f4e39c00eefbbee98d2cded56bb95f7b6ed06a4e14a1e4d257e2f1f43a905666c60001b6200016660201b60201c565b620000ae7faec841abfb4957ad012487614461e6cc819f606aa8dca6a82a2aeb52739ed59f60001b6200016660201b60201c565b620000c36000801b336200016960201b60201c565b620000f77f3f0cecc29788bc24b8534dfb7b04d0f2cce8ce746eec94b4526b5031cedf0a8260001b6200016660201b60201c565b6200012b7f4098d1e1716964bc267dbc393b9ef5d166b4ccfd39b13c3456c564f44e2f0dfe60001b6200016660201b60201c565b620001607f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a66000801b6200017f60201b60201c565b62000361565b50565b6200017b8282620001e160201b60201c565b5050565b8060008084815260200190815260200160002060020154837fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a480600080848152602001908152602001600020600201819055505050565b6200020f816000808581526020019081526020016000206000016200028460201b6200190c1790919060201c565b15620002805762000225620002bc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620002b4836000018373ffffffffffffffffffffffffffffffffffffffff1660001b620002c460201b60201c565b905092915050565b600033905090565b6000620002d883836200033e60201b60201c565b6200033357826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905062000338565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b611e2080620003716000396000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c80638bad0c0a116100d8578063a31837011161008c578063dd8755f211610066578063dd8755f21461069b578063de0ef188146106df578063fb0ceb041461070d57610182565b8063a3183701146105bf578063ca15c8731461060b578063d547741f1461064d57610182565b806391d14854116100bd57806391d14854146104f157806393fa491514610555578063a217fddf146105a157610182565b80638bad0c0a146104855780639010d07c1461048f57610182565b80633f60d7991161013a57806362f551121161011457806362f55112146103bd57806370480275146103f557806377fbb6631461043957610182565b80633f60d7991461031957806346eee1c4146103375780635de5c2121461037957610182565b806324d7806c1161016b57806324d7806c146102235780632f2ff15d1461027d57806336568abe146102cb57610182565b8063044ad7be14610187578063248a9ca3146101e1575b600080fd5b6101c96004803603602081101561019d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610759565b60405180821515815260200191505060405180910390f35b61020d600480360360208110156101f757600080fd5b8101908080359060200190929190505050610810565b6040518082815260200191505060405180910390f35b6102656004803603602081101561023957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061082f565b60405180821515815260200191505060405180910390f35b6102c96004803603604081101561029357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c9565b005b610317600480360360408110156102e157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610952565b005b6103216109eb565b6040518082815260200191505060405180910390f35b6103636004803603602081101561034d57600080fd5b8101908080359060200190929190505050610a0f565b6040518082815260200191505060405180910390f35b6103bb6004803603602081101561038f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ab3565b005b6103f3600480360360408110156103d357600080fd5b810190808035906020019092919080359060200190929190505050610ce7565b005b6104376004803603602081101561040b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fe7565b005b61046f6004803603604081101561044f57600080fd5b8101908080359060200190929190803590602001909291905050506111fe565b6040518082815260200191505060405180910390f35b61048d611424565b005b6104c5600480360360408110156104a557600080fd5b8101908080359060200190929190803590602001909291905050506114b7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61053d6004803603604081101561050757600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114e8565b60405180821515815260200191505060405180910390f35b61058b6004803603604081101561056b57600080fd5b810190808035906020019092919080359060200190929190505050611519565b6040518082815260200191505060405180910390f35b6105a96115cc565b6040518082815260200191505060405180910390f35b6105f5600480360360408110156105d557600080fd5b8101908080359060200190929190803590602001909291905050506115d3565b6040518082815260200191505060405180910390f35b6106376004803603602081101561062157600080fd5b81019080803590602001909291905050506115f8565b6040518082815260200191505060405180910390f35b6106996004803603604081101561066357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061161e565b005b6106dd600480360360208110156106b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116a7565b005b61070b600480360360208110156106f557600080fd5b81019080803590602001909291905050506118db565b005b6107436004803603604081101561072357600080fd5b8101908080359060200190929190803590602001909291905050506118de565b6040518082815260200191505060405180910390f35b60006107877ff54de96a6b0f1e302aee8d7f95829cefaa70b030610ecb0951f2e4bbaf8ce0c960001b6118db565b6107b37fdab20ba11bed5171be2c2d093a3957bd914953271a869801b87be44cf64523c260001b6118db565b6107df7ff5e03f50ce48fb20f632d63549ee11d9ec9348358f87d56206f2e23cc0d8a0e560001b6118db565b6108097f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a6836114e8565b9050919050565b6000806000838152602001908152602001600020600201549050919050565b600061085d7f8623039a08acd822dee121268547e346d7e7bea142de92a38c0f94b4669e58e860001b6118db565b6108897fcb806bb50a07d306fe4b316dfb44150591788ad097f80609103c5f7206acf0e360001b6118db565b6108b57f9a2a3cc0e1c51a161fc2f8ae5596c51c35ab179eeaad4b058be813e61897b4c860001b6118db565b6108c26000801b836114e8565b9050919050565b6108ef600080848152602001908152602001600020600201546108ea61193c565b6114e8565b610944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611d2b602f913960400191505060405180910390fd5b61094e8282611944565b5050565b61095a61193c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146109dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611dbc602f913960400191505060405180910390fd5b6109e782826119d7565b5050565b7f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a681565b6000610a3d7f503a16da38e71e7bace6fe1f99c69adf154700b332f7356a846e033dec9741da60001b6118db565b610a697f2ed8d5fe9135677c477f8f3ecd7a4256f04a4ff301bba1bd98f77b53b0f5aa5060001b6118db565b610a957f11aa2427fc89ed6e6ed31a082ab8c6ba00ecac83001d180ff9e562917cdc338760001b6118db565b60026000838152602001908152602001600020805490509050919050565b610adf7f0e77a5e54c196ea29dc309e2f68c4223daf1968de80adc5a2ac702bf5ab9c79e60001b6118db565b610b0b7fe9f980434a095784833a291a073cdb6a41ab9199099578db1d3341acd44a2de460001b6118db565b610b377f9595b610fd1b9c919129dea5ddfe638c65600694e2ce37d9422f767f67c136ec60001b6118db565b610b637f78d0f1e7604b8b03fc1f985b1f847a1c7ffd01321438d1e4bd201dc1078a72a860001b6118db565b610b6c3361082f565b610bde576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f5265737472696374656420746f2061646d696e732e000000000000000000000081525060200191505060405180910390fd5b610c0a7f429b3ecf8c1da568a2089c011fbeed3678bf23e259fd14668e6fbfef767fe46860001b6118db565b610c367f033b13fa1064ccc6c9ad4d7776ecef9aec9835a1d8f0c6150cd947abd1899cd560001b6118db565b610c627ff97011770cd3eebb1618366d789416ba95163a626f368ca4383dffc1952b3c7660001b6118db565b610c8e7f610617ce496b0c0d0459b71c9c95724872c5b0252c78f630ff2c583c044f22d760001b6118db565b610cba7fb934982a5d13e5de7749ddcb19a0d3e46082f0724fe020fb64b00bc5ba3d4a5f60001b6118db565b610ce47f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a68261161e565b50565b610d137fb68984996296ad029cf1c0a5f1a0dbe3b4c1cc9783e3496ab762570e9311a54e60001b6118db565b610d3f7fcd8329a6919154e0b467c3c10a069c8c734098c58a236f23f9cec2f183e0561e60001b6118db565b610d6b7f407a553c794813dffd15ec66138cbcb88cf43cf000721ba905f91c17106a220160001b6118db565b610d977f1494819d655fdf72b94a9ff2c059ce92bdf5a1d1e8793979f69782874fe8313060001b6118db565b610da033610759565b80610db05750610daf3361082f565b5b610e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611d5a6032913960400191505060405180910390fd5b610e317f8ca6475829765540af2c1b59ee2d814b5dd433cf52800d812f9e6774b55eb37660001b6118db565b610e5d7f920e320c5254fcf4049309d9897d4bc88721355ee56cfa7e51d84d1950d3bd0760001b6118db565b610e897fad4f78a587a01de431bcebb6a5c73627d8d338a654d65bc681f544b18ef87fe460001b6118db565b8060016000848152602001908152602001600020600042815260200190815260200160002081905550610ede7fdbf86b1ec5755caa9ebfe27e46b4413982ff59ff910f42a487b0eedff95e364b60001b6118db565b610f0a7f2d16d3e857355920d0623bdd93cc0d23ad3ccd45e0df5a75d7bbfbabe13741df60001b6118db565b60026000838152602001908152602001600020429080600181540180825580915050600190039060005260206000200160009091909190915055610f707ffac8d8cdacd09a6c65b89771ff88b2a5673371a4be79ab262af1669a31b618b460001b6118db565b610f9c7f3c48e8bd819e8b6df826dc24c7aa9fe3d831b9b618c0b7b721052ffb026aed7f60001b6118db565b7fba11e319aee26e7bbac889432515ba301ec8f6d27bf6b94829c21a65c5f6ff2582428360405180848152602001838152602001828152602001935050505060405180910390a15050565b6110137f0e77a5e54c196ea29dc309e2f68c4223daf1968de80adc5a2ac702bf5ab9c79e60001b6118db565b61103f7fe9f980434a095784833a291a073cdb6a41ab9199099578db1d3341acd44a2de460001b6118db565b61106b7f9595b610fd1b9c919129dea5ddfe638c65600694e2ce37d9422f767f67c136ec60001b6118db565b6110977f78d0f1e7604b8b03fc1f985b1f847a1c7ffd01321438d1e4bd201dc1078a72a860001b6118db565b6110a03361082f565b611112576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f5265737472696374656420746f2061646d696e732e000000000000000000000081525060200191505060405180910390fd5b61113e7f429b3ecf8c1da568a2089c011fbeed3678bf23e259fd14668e6fbfef767fe46860001b6118db565b61116a7f033b13fa1064ccc6c9ad4d7776ecef9aec9835a1d8f0c6150cd947abd1899cd560001b6118db565b6111967fe22d29e131054f3c994f0d6d0e56b945c3b27d7d46bba6051e5117dc2557a9ce60001b6118db565b6111c27f5d9d4e99a91272d9835f0344f013f5ecedd68addb9fe76318cc5ab6ccc528aa760001b6118db565b6111ee7f779753cdb8855d295ba63b5e4fe53b52bf48c517a4f99d1e2b4bd54a790b952b60001b6118db565b6111fb6000801b826108c9565b50565b600061122c7f277c50936358732bcb7ce0411a22cbe9ab2337b20bd35e5dd5e1da7a1f6e652e60001b6118db565b6112587fcc87f107edf8d44825dcab64e93c264d8e2e046b5bab84d3729ebbad781942c260001b6118db565b6112847f3ba42484ad8627222eb591cc7f5f41bc3e009db7b608b17adde0ed502e9c760a60001b6118db565b6000600260008581526020019081526020016000208054905090506112cb7ff813aad69bac4a813ed915bc4dbaa09cbf71a2af0d7c9a330736e2f36f0a0ed460001b6118db565b6112f77fc3cefdf26052bb70f9ddb00df44cc5beb13dc5e2968f244d0f51beada13720d560001b6118db565b60008114806113065750828111155b1561136d576113377f2e33720cf25f6b8e1092b5a1bb96fb16002cef3d8405d41a71c58af31be2ce8860001b6118db565b6113637f09f30554b2afe6c5ae770212b081f5de25ec9de1167a12c385bffb04989c9e2c60001b6118db565b600091505061141e565b6113997fd6e06438bb09af04503f235afee5e843e740b935e191b28eca427e01bdfaf85f60001b6118db565b6113c57fc902d63022b053c0c683c7861c39e35890eefaf3707eea062b6829cc7b18777760001b6118db565b6113f17f06691175a989b65eb9bd39d4bc024718fbdc0d256b780c67cf49916d878e4a4b60001b6118db565b60026000858152602001908152602001600020838154811061140f57fe5b90600052602060002001549150505b92915050565b6114507f476652241d4761bd624a0c2555256ff09d5fb8c6084d631fe985ef14595f3d6160001b6118db565b61147c7f622c26f9fef51842b1a83c52fb48b055910186a93cae8de00b07e43937bec61060001b6118db565b6114a87f0409301906a6a9c2144c18a65b7d89aedd2ff8a4801f344b8c4c9bd1820c5b9960001b6118db565b6114b56000801b33610952565b565b60006114e082600080868152602001908152602001600020600001611a6a90919063ffffffff16565b905092915050565b600061151182600080868152602001908152602001600020600001611a8490919063ffffffff16565b905092915050565b60006115477f3f18806e18d20dd0c20b1b0ace60256d681454dd013ca49ecfb200390d8ddf8860001b6118db565b6115737f6d00c549f3c0bded4cdae463341b651885e0fb498816f59bfd10568a1ddf965260001b6118db565b61159f7f8584091a725cc0c597289f1ede5eac9c8c2d5779c561d38d703684b79d22f7c160001b6118db565b60016000848152602001908152602001600020600083815260200190815260200160002054905092915050565b6000801b81565b6001602052816000526040600020602052806000526040600020600091509150505481565b6000611617600080848152602001908152602001600020600001611ab4565b9050919050565b6116446000808481526020019081526020016000206002015461163f61193c565b6114e8565b611699576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180611d8c6030913960400191505060405180910390fd5b6116a382826119d7565b5050565b6116d37f0e77a5e54c196ea29dc309e2f68c4223daf1968de80adc5a2ac702bf5ab9c79e60001b6118db565b6116ff7fe9f980434a095784833a291a073cdb6a41ab9199099578db1d3341acd44a2de460001b6118db565b61172b7f9595b610fd1b9c919129dea5ddfe638c65600694e2ce37d9422f767f67c136ec60001b6118db565b6117577f78d0f1e7604b8b03fc1f985b1f847a1c7ffd01321438d1e4bd201dc1078a72a860001b6118db565b6117603361082f565b6117d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f5265737472696374656420746f2061646d696e732e000000000000000000000081525060200191505060405180910390fd5b6117fe7f429b3ecf8c1da568a2089c011fbeed3678bf23e259fd14668e6fbfef767fe46860001b6118db565b61182a7f033b13fa1064ccc6c9ad4d7776ecef9aec9835a1d8f0c6150cd947abd1899cd560001b6118db565b6118567f5513e8eb426176372e83e140cada4fa2da0f8572dee369b0c6c23b216dd0336e60001b6118db565b6118827f5b1d0c6a7147f51924e51f4f33b18c5a033c2652cbf52b128f85a628c0f5a52760001b6118db565b6118ae7feb3f27b671e7dcbf9a96657edddce7d837b25ad448e7ca694624a31bbdf1dd1760001b6118db565b6118d87f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a6826108c9565b50565b50565b600260205281600052604060002081815481106118f757fe5b90600052602060002001600091509150505481565b6000611934836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611ac9565b905092915050565b600033905090565b61196b8160008085815260200190815260200160002060000161190c90919063ffffffff16565b156119d35761197861193c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6119fe81600080858152602001908152602001600020600001611b3990919063ffffffff16565b15611a6657611a0b61193c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000611a798360000183611b69565b60001c905092915050565b6000611aac836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611bec565b905092915050565b6000611ac282600001611c0f565b9050919050565b6000611ad58383611bec565b611b2e578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050611b33565b600090505b92915050565b6000611b61836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611c20565b905092915050565b600081836000018054905011611bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611d096022913960400191505060405180910390fd5b826000018281548110611bd957fe5b9060005260206000200154905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b600081600001805490509050919050565b60008083600101600084815260200190815260200160002054905060008114611cfc5760006001820390506000600186600001805490500390506000866000018281548110611c6b57fe5b9060005260206000200154905080876000018481548110611c8857fe5b9060005260206000200181905550600183018760010160008381526020019081526020016000208190555086600001805480611cc057fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050611d02565b60009150505b9291505056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7453656e646572206d75737420626520616e2041646d696e206f72205265706f7274657220746f207375626d697456616c7565416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a2646970667358221220b2f2daa2765acc3d02bd3c3216c1f2182395680941168bf64e1586f4bff2521f64736f6c63430007000033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101825760003560e01c80638bad0c0a116100d8578063a31837011161008c578063dd8755f211610066578063dd8755f21461069b578063de0ef188146106df578063fb0ceb041461070d57610182565b8063a3183701146105bf578063ca15c8731461060b578063d547741f1461064d57610182565b806391d14854116100bd57806391d14854146104f157806393fa491514610555578063a217fddf146105a157610182565b80638bad0c0a146104855780639010d07c1461048f57610182565b80633f60d7991161013a57806362f551121161011457806362f55112146103bd57806370480275146103f557806377fbb6631461043957610182565b80633f60d7991461031957806346eee1c4146103375780635de5c2121461037957610182565b806324d7806c1161016b57806324d7806c146102235780632f2ff15d1461027d57806336568abe146102cb57610182565b8063044ad7be14610187578063248a9ca3146101e1575b600080fd5b6101c96004803603602081101561019d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610759565b60405180821515815260200191505060405180910390f35b61020d600480360360208110156101f757600080fd5b8101908080359060200190929190505050610810565b6040518082815260200191505060405180910390f35b6102656004803603602081101561023957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061082f565b60405180821515815260200191505060405180910390f35b6102c96004803603604081101561029357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c9565b005b610317600480360360408110156102e157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610952565b005b6103216109eb565b6040518082815260200191505060405180910390f35b6103636004803603602081101561034d57600080fd5b8101908080359060200190929190505050610a0f565b6040518082815260200191505060405180910390f35b6103bb6004803603602081101561038f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ab3565b005b6103f3600480360360408110156103d357600080fd5b810190808035906020019092919080359060200190929190505050610ce7565b005b6104376004803603602081101561040b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fe7565b005b61046f6004803603604081101561044f57600080fd5b8101908080359060200190929190803590602001909291905050506111fe565b6040518082815260200191505060405180910390f35b61048d611424565b005b6104c5600480360360408110156104a557600080fd5b8101908080359060200190929190803590602001909291905050506114b7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61053d6004803603604081101561050757600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114e8565b60405180821515815260200191505060405180910390f35b61058b6004803603604081101561056b57600080fd5b810190808035906020019092919080359060200190929190505050611519565b6040518082815260200191505060405180910390f35b6105a96115cc565b6040518082815260200191505060405180910390f35b6105f5600480360360408110156105d557600080fd5b8101908080359060200190929190803590602001909291905050506115d3565b6040518082815260200191505060405180910390f35b6106376004803603602081101561062157600080fd5b81019080803590602001909291905050506115f8565b6040518082815260200191505060405180910390f35b6106996004803603604081101561066357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061161e565b005b6106dd600480360360208110156106b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116a7565b005b61070b600480360360208110156106f557600080fd5b81019080803590602001909291905050506118db565b005b6107436004803603604081101561072357600080fd5b8101908080359060200190929190803590602001909291905050506118de565b6040518082815260200191505060405180910390f35b60006107877ff54de96a6b0f1e302aee8d7f95829cefaa70b030610ecb0951f2e4bbaf8ce0c960001b6118db565b6107b37fdab20ba11bed5171be2c2d093a3957bd914953271a869801b87be44cf64523c260001b6118db565b6107df7ff5e03f50ce48fb20f632d63549ee11d9ec9348358f87d56206f2e23cc0d8a0e560001b6118db565b6108097f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a6836114e8565b9050919050565b6000806000838152602001908152602001600020600201549050919050565b600061085d7f8623039a08acd822dee121268547e346d7e7bea142de92a38c0f94b4669e58e860001b6118db565b6108897fcb806bb50a07d306fe4b316dfb44150591788ad097f80609103c5f7206acf0e360001b6118db565b6108b57f9a2a3cc0e1c51a161fc2f8ae5596c51c35ab179eeaad4b058be813e61897b4c860001b6118db565b6108c26000801b836114e8565b9050919050565b6108ef600080848152602001908152602001600020600201546108ea61193c565b6114e8565b610944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611d2b602f913960400191505060405180910390fd5b61094e8282611944565b5050565b61095a61193c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146109dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611dbc602f913960400191505060405180910390fd5b6109e782826119d7565b5050565b7f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a681565b6000610a3d7f503a16da38e71e7bace6fe1f99c69adf154700b332f7356a846e033dec9741da60001b6118db565b610a697f2ed8d5fe9135677c477f8f3ecd7a4256f04a4ff301bba1bd98f77b53b0f5aa5060001b6118db565b610a957f11aa2427fc89ed6e6ed31a082ab8c6ba00ecac83001d180ff9e562917cdc338760001b6118db565b60026000838152602001908152602001600020805490509050919050565b610adf7f0e77a5e54c196ea29dc309e2f68c4223daf1968de80adc5a2ac702bf5ab9c79e60001b6118db565b610b0b7fe9f980434a095784833a291a073cdb6a41ab9199099578db1d3341acd44a2de460001b6118db565b610b377f9595b610fd1b9c919129dea5ddfe638c65600694e2ce37d9422f767f67c136ec60001b6118db565b610b637f78d0f1e7604b8b03fc1f985b1f847a1c7ffd01321438d1e4bd201dc1078a72a860001b6118db565b610b6c3361082f565b610bde576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f5265737472696374656420746f2061646d696e732e000000000000000000000081525060200191505060405180910390fd5b610c0a7f429b3ecf8c1da568a2089c011fbeed3678bf23e259fd14668e6fbfef767fe46860001b6118db565b610c367f033b13fa1064ccc6c9ad4d7776ecef9aec9835a1d8f0c6150cd947abd1899cd560001b6118db565b610c627ff97011770cd3eebb1618366d789416ba95163a626f368ca4383dffc1952b3c7660001b6118db565b610c8e7f610617ce496b0c0d0459b71c9c95724872c5b0252c78f630ff2c583c044f22d760001b6118db565b610cba7fb934982a5d13e5de7749ddcb19a0d3e46082f0724fe020fb64b00bc5ba3d4a5f60001b6118db565b610ce47f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a68261161e565b50565b610d137fb68984996296ad029cf1c0a5f1a0dbe3b4c1cc9783e3496ab762570e9311a54e60001b6118db565b610d3f7fcd8329a6919154e0b467c3c10a069c8c734098c58a236f23f9cec2f183e0561e60001b6118db565b610d6b7f407a553c794813dffd15ec66138cbcb88cf43cf000721ba905f91c17106a220160001b6118db565b610d977f1494819d655fdf72b94a9ff2c059ce92bdf5a1d1e8793979f69782874fe8313060001b6118db565b610da033610759565b80610db05750610daf3361082f565b5b610e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611d5a6032913960400191505060405180910390fd5b610e317f8ca6475829765540af2c1b59ee2d814b5dd433cf52800d812f9e6774b55eb37660001b6118db565b610e5d7f920e320c5254fcf4049309d9897d4bc88721355ee56cfa7e51d84d1950d3bd0760001b6118db565b610e897fad4f78a587a01de431bcebb6a5c73627d8d338a654d65bc681f544b18ef87fe460001b6118db565b8060016000848152602001908152602001600020600042815260200190815260200160002081905550610ede7fdbf86b1ec5755caa9ebfe27e46b4413982ff59ff910f42a487b0eedff95e364b60001b6118db565b610f0a7f2d16d3e857355920d0623bdd93cc0d23ad3ccd45e0df5a75d7bbfbabe13741df60001b6118db565b60026000838152602001908152602001600020429080600181540180825580915050600190039060005260206000200160009091909190915055610f707ffac8d8cdacd09a6c65b89771ff88b2a5673371a4be79ab262af1669a31b618b460001b6118db565b610f9c7f3c48e8bd819e8b6df826dc24c7aa9fe3d831b9b618c0b7b721052ffb026aed7f60001b6118db565b7fba11e319aee26e7bbac889432515ba301ec8f6d27bf6b94829c21a65c5f6ff2582428360405180848152602001838152602001828152602001935050505060405180910390a15050565b6110137f0e77a5e54c196ea29dc309e2f68c4223daf1968de80adc5a2ac702bf5ab9c79e60001b6118db565b61103f7fe9f980434a095784833a291a073cdb6a41ab9199099578db1d3341acd44a2de460001b6118db565b61106b7f9595b610fd1b9c919129dea5ddfe638c65600694e2ce37d9422f767f67c136ec60001b6118db565b6110977f78d0f1e7604b8b03fc1f985b1f847a1c7ffd01321438d1e4bd201dc1078a72a860001b6118db565b6110a03361082f565b611112576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f5265737472696374656420746f2061646d696e732e000000000000000000000081525060200191505060405180910390fd5b61113e7f429b3ecf8c1da568a2089c011fbeed3678bf23e259fd14668e6fbfef767fe46860001b6118db565b61116a7f033b13fa1064ccc6c9ad4d7776ecef9aec9835a1d8f0c6150cd947abd1899cd560001b6118db565b6111967fe22d29e131054f3c994f0d6d0e56b945c3b27d7d46bba6051e5117dc2557a9ce60001b6118db565b6111c27f5d9d4e99a91272d9835f0344f013f5ecedd68addb9fe76318cc5ab6ccc528aa760001b6118db565b6111ee7f779753cdb8855d295ba63b5e4fe53b52bf48c517a4f99d1e2b4bd54a790b952b60001b6118db565b6111fb6000801b826108c9565b50565b600061122c7f277c50936358732bcb7ce0411a22cbe9ab2337b20bd35e5dd5e1da7a1f6e652e60001b6118db565b6112587fcc87f107edf8d44825dcab64e93c264d8e2e046b5bab84d3729ebbad781942c260001b6118db565b6112847f3ba42484ad8627222eb591cc7f5f41bc3e009db7b608b17adde0ed502e9c760a60001b6118db565b6000600260008581526020019081526020016000208054905090506112cb7ff813aad69bac4a813ed915bc4dbaa09cbf71a2af0d7c9a330736e2f36f0a0ed460001b6118db565b6112f77fc3cefdf26052bb70f9ddb00df44cc5beb13dc5e2968f244d0f51beada13720d560001b6118db565b60008114806113065750828111155b1561136d576113377f2e33720cf25f6b8e1092b5a1bb96fb16002cef3d8405d41a71c58af31be2ce8860001b6118db565b6113637f09f30554b2afe6c5ae770212b081f5de25ec9de1167a12c385bffb04989c9e2c60001b6118db565b600091505061141e565b6113997fd6e06438bb09af04503f235afee5e843e740b935e191b28eca427e01bdfaf85f60001b6118db565b6113c57fc902d63022b053c0c683c7861c39e35890eefaf3707eea062b6829cc7b18777760001b6118db565b6113f17f06691175a989b65eb9bd39d4bc024718fbdc0d256b780c67cf49916d878e4a4b60001b6118db565b60026000858152602001908152602001600020838154811061140f57fe5b90600052602060002001549150505b92915050565b6114507f476652241d4761bd624a0c2555256ff09d5fb8c6084d631fe985ef14595f3d6160001b6118db565b61147c7f622c26f9fef51842b1a83c52fb48b055910186a93cae8de00b07e43937bec61060001b6118db565b6114a87f0409301906a6a9c2144c18a65b7d89aedd2ff8a4801f344b8c4c9bd1820c5b9960001b6118db565b6114b56000801b33610952565b565b60006114e082600080868152602001908152602001600020600001611a6a90919063ffffffff16565b905092915050565b600061151182600080868152602001908152602001600020600001611a8490919063ffffffff16565b905092915050565b60006115477f3f18806e18d20dd0c20b1b0ace60256d681454dd013ca49ecfb200390d8ddf8860001b6118db565b6115737f6d00c549f3c0bded4cdae463341b651885e0fb498816f59bfd10568a1ddf965260001b6118db565b61159f7f8584091a725cc0c597289f1ede5eac9c8c2d5779c561d38d703684b79d22f7c160001b6118db565b60016000848152602001908152602001600020600083815260200190815260200160002054905092915050565b6000801b81565b6001602052816000526040600020602052806000526040600020600091509150505481565b6000611617600080848152602001908152602001600020600001611ab4565b9050919050565b6116446000808481526020019081526020016000206002015461163f61193c565b6114e8565b611699576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180611d8c6030913960400191505060405180910390fd5b6116a382826119d7565b5050565b6116d37f0e77a5e54c196ea29dc309e2f68c4223daf1968de80adc5a2ac702bf5ab9c79e60001b6118db565b6116ff7fe9f980434a095784833a291a073cdb6a41ab9199099578db1d3341acd44a2de460001b6118db565b61172b7f9595b610fd1b9c919129dea5ddfe638c65600694e2ce37d9422f767f67c136ec60001b6118db565b6117577f78d0f1e7604b8b03fc1f985b1f847a1c7ffd01321438d1e4bd201dc1078a72a860001b6118db565b6117603361082f565b6117d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f5265737472696374656420746f2061646d696e732e000000000000000000000081525060200191505060405180910390fd5b6117fe7f429b3ecf8c1da568a2089c011fbeed3678bf23e259fd14668e6fbfef767fe46860001b6118db565b61182a7f033b13fa1064ccc6c9ad4d7776ecef9aec9835a1d8f0c6150cd947abd1899cd560001b6118db565b6118567f5513e8eb426176372e83e140cada4fa2da0f8572dee369b0c6c23b216dd0336e60001b6118db565b6118827f5b1d0c6a7147f51924e51f4f33b18c5a033c2652cbf52b128f85a628c0f5a52760001b6118db565b6118ae7feb3f27b671e7dcbf9a96657edddce7d837b25ad448e7ca694624a31bbdf1dd1760001b6118db565b6118d87f176c2b761bfeb5dab89f614b6c08152e31d9230394b3605eabf32249ea1c89a6826108c9565b50565b50565b600260205281600052604060002081815481106118f757fe5b90600052602060002001600091509150505481565b6000611934836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611ac9565b905092915050565b600033905090565b61196b8160008085815260200190815260200160002060000161190c90919063ffffffff16565b156119d35761197861193c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6119fe81600080858152602001908152602001600020600001611b3990919063ffffffff16565b15611a6657611a0b61193c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000611a798360000183611b69565b60001c905092915050565b6000611aac836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611bec565b905092915050565b6000611ac282600001611c0f565b9050919050565b6000611ad58383611bec565b611b2e578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050611b33565b600090505b92915050565b6000611b61836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611c20565b905092915050565b600081836000018054905011611bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611d096022913960400191505060405180910390fd5b826000018281548110611bd957fe5b9060005260206000200154905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b600081600001805490509050919050565b60008083600101600084815260200190815260200160002054905060008114611cfc5760006001820390506000600186600001805490500390506000866000018281548110611c6b57fe5b9060005260206000200154905080876000018481548110611c8857fe5b9060005260206000200181905550600183018760010160008381526020019081526020016000208190555086600001805480611cc057fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050611d02565b60009150505b9291505056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7453656e646572206d75737420626520616e2041646d696e206f72205265706f7274657220746f207375626d697456616c7565416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a2646970667358221220b2f2daa2765acc3d02bd3c3216c1f2182395680941168bf64e1586f4bff2521f64736f6c63430007000033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/cache/solidity-files-cache.json b/cache/solidity-files-cache.json index 48f8279..0c176e8 100644 --- a/cache/solidity-files-cache.json +++ b/cache/solidity-files-cache.json @@ -220,7 +220,7 @@ "version": "0.7.0", "settings": { "optimizer": { - "enabled": true, + "enabled": false, "runs": 999999 }, "outputSelection": { @@ -235,6 +235,9 @@ "ast" ] } + }, + "metadata": { + "useLiteralContent": false } } }, @@ -254,7 +257,7 @@ "version": "0.7.0", "settings": { "optimizer": { - "enabled": true, + "enabled": false, "runs": 999999 }, "outputSelection": { @@ -269,6 +272,9 @@ "ast" ] } + }, + "metadata": { + "useLiteralContent": false } } }, @@ -291,7 +297,7 @@ "version": "0.7.0", "settings": { "optimizer": { - "enabled": true, + "enabled": false, "runs": 999999 }, "outputSelection": { @@ -306,6 +312,9 @@ "ast" ] } + }, + "metadata": { + "useLiteralContent": false } } }, @@ -329,7 +338,7 @@ "version": "0.7.0", "settings": { "optimizer": { - "enabled": true, + "enabled": false, "runs": 999999 }, "outputSelection": { @@ -344,6 +353,9 @@ "ast" ] } + }, + "metadata": { + "useLiteralContent": false } } }, @@ -363,7 +375,7 @@ "version": "0.7.0", "settings": { "optimizer": { - "enabled": true, + "enabled": false, "runs": 999999 }, "outputSelection": { @@ -378,6 +390,9 @@ "ast" ] } + }, + "metadata": { + "useLiteralContent": false } } }, @@ -397,7 +412,7 @@ "version": "0.7.0", "settings": { "optimizer": { - "enabled": true, + "enabled": false, "runs": 999999 }, "outputSelection": { @@ -412,6 +427,9 @@ "ast" ] } + }, + "metadata": { + "useLiteralContent": false } } }, diff --git a/coverage.json b/coverage.json new file mode 100644 index 0000000..2ac16cd --- /dev/null +++ b/coverage.json @@ -0,0 +1 @@ +{"contracts/Migrations.sol":{"l":{"9":0,"13":0,"17":0},"path":"/home/brenda/projects/bsc/tellorAccess/contracts/Migrations.sol","s":{"1":0,"2":0},"b":{"1":[0,0]},"f":{"1":0,"2":0},"fnMap":{"1":{"name":"restricted","line":8,"loc":{"start":{"line":8,"column":2},"end":{"line":14,"column":2}}},"2":{"name":"setCompleted","line":16,"loc":{"start":{"line":16,"column":2},"end":{"line":18,"column":2}}}},"statementMap":{"1":{"start":{"line":9,"column":4},"end":{"line":9,"column":201}},"2":{"start":{"line":17,"column":4},"end":{"line":17,"column":39}}},"branchMap":{"1":{"line":9,"type":"if","locations":[{"start":{"line":9,"column":4},"end":{"line":9,"column":4}},{"start":{"line":9,"column":4},"end":{"line":9,"column":4}}]}}},"contracts/TellorAccess.sol":{"l":{"10":0,"11":0,"13":0,"17":0,"21":0,"22":0,"24":0,"32":0,"33":0,"36":0,"37":0,"39":0,"43":0,"47":0,"48":0,"51":0,"55":0,"59":0,"60":0,"79":4,"80":4,"87":4,"88":2,"95":0,"96":0,"103":0,"111":2,"118":0,"125":0,"132":11,"139":9,"148":9,"149":3,"150":3,"151":3,"162":1,"172":0,"182":1,"183":1,"184":1},"path":"/home/brenda/projects/bsc/tellorAccess/contracts/TellorAccess.sol","s":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":4,"21":4,"22":4,"23":0,"24":0,"25":2,"26":0,"27":0,"28":11,"29":9,"30":9,"31":3,"32":3,"33":3,"34":1,"35":0,"36":1,"37":1,"38":0,"39":1},"b":{"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[2,2],"8":[0,0],"9":[3,6],"10":[0,1]},"f":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":4,"10":4,"11":0,"12":0,"13":2,"14":0,"15":0,"16":11,"17":9,"18":9,"19":1,"20":0,"21":1},"fnMap":{"1":{"name":"add","line":9,"loc":{"start":{"line":9,"column":4},"end":{"line":14,"column":4}}},"2":{"name":"sub","line":16,"loc":{"start":{"line":16,"column":4},"end":{"line":18,"column":4}}},"3":{"name":"sub","line":20,"loc":{"start":{"line":20,"column":4},"end":{"line":25,"column":4}}},"4":{"name":"mul","line":28,"loc":{"start":{"line":28,"column":4},"end":{"line":40,"column":4}}},"5":{"name":"div","line":42,"loc":{"start":{"line":42,"column":4},"end":{"line":44,"column":4}}},"6":{"name":"div","line":46,"loc":{"start":{"line":46,"column":4},"end":{"line":52,"column":4}}},"7":{"name":"mod","line":54,"loc":{"start":{"line":54,"column":4},"end":{"line":56,"column":4}}},"8":{"name":"mod","line":58,"loc":{"start":{"line":58,"column":4},"end":{"line":61,"column":4}}},"9":{"name":"constructor","line":78,"loc":{"start":{"line":78,"column":4},"end":{"line":81,"column":4}}},"10":{"name":"onlyAdmin","line":86,"loc":{"start":{"line":86,"column":4},"end":{"line":89,"column":4}}},"11":{"name":"onlyReporter","line":94,"loc":{"start":{"line":94,"column":4},"end":{"line":97,"column":4}}},"12":{"name":"addAdmin","line":102,"loc":{"start":{"line":102,"column":4},"end":{"line":104,"column":4}}},"13":{"name":"addReporter","line":110,"loc":{"start":{"line":110,"column":4},"end":{"line":112,"column":4}}},"14":{"name":"removeReporter","line":117,"loc":{"start":{"line":117,"column":4},"end":{"line":119,"column":4}}},"15":{"name":"renounceAdmin","line":124,"loc":{"start":{"line":124,"column":4},"end":{"line":126,"column":4}}},"16":{"name":"isAdmin","line":131,"loc":{"start":{"line":131,"column":4},"end":{"line":133,"column":4}}},"17":{"name":"isReporter","line":138,"loc":{"start":{"line":138,"column":4},"end":{"line":140,"column":4}}},"18":{"name":"submitValue","line":147,"loc":{"start":{"line":147,"column":4},"end":{"line":152,"column":4}}},"19":{"name":"retrieveData","line":161,"loc":{"start":{"line":161,"column":4},"end":{"line":163,"column":4}}},"20":{"name":"getNewValueCountbyRequestId","line":171,"loc":{"start":{"line":171,"column":4},"end":{"line":173,"column":4}}},"21":{"name":"getTimestampbyRequestIDandIndex","line":181,"loc":{"start":{"line":181,"column":4},"end":{"line":185,"column":4}}}},"statementMap":{"1":{"start":{"line":10,"column":8},"end":{"line":10,"column":25}},"2":{"start":{"line":11,"column":8},"end":{"line":11,"column":53}},"3":{"start":{"line":13,"column":8},"end":{"line":13,"column":16}},"4":{"start":{"line":17,"column":8},"end":{"line":17,"column":58}},"5":{"start":{"line":21,"column":8},"end":{"line":21,"column":36}},"6":{"start":{"line":22,"column":8},"end":{"line":22,"column":25}},"7":{"start":{"line":24,"column":8},"end":{"line":24,"column":16}},"8":{"start":{"line":32,"column":8},"end":{"line":32,"column":961}},"9":{"start":{"line":33,"column":12},"end":{"line":33,"column":20}},"10":{"start":{"line":36,"column":8},"end":{"line":36,"column":25}},"11":{"start":{"line":37,"column":8},"end":{"line":37,"column":63}},"12":{"start":{"line":39,"column":8},"end":{"line":39,"column":16}},"13":{"start":{"line":43,"column":8},"end":{"line":43,"column":54}},"14":{"start":{"line":47,"column":8},"end":{"line":47,"column":35}},"15":{"start":{"line":48,"column":8},"end":{"line":48,"column":25}},"16":{"start":{"line":51,"column":8},"end":{"line":51,"column":16}},"17":{"start":{"line":55,"column":8},"end":{"line":55,"column":52}},"18":{"start":{"line":59,"column":8},"end":{"line":59,"column":36}},"19":{"start":{"line":60,"column":8},"end":{"line":60,"column":20}},"20":{"start":{"line":79,"column":8},"end":{"line":79,"column":49}},"21":{"start":{"line":80,"column":8},"end":{"line":80,"column":55}},"22":{"start":{"line":87,"column":8},"end":{"line":87,"column":60}},"23":{"start":{"line":95,"column":8},"end":{"line":95,"column":66}},"24":{"start":{"line":103,"column":8},"end":{"line":103,"column":45}},"25":{"start":{"line":111,"column":8},"end":{"line":111,"column":40}},"26":{"start":{"line":118,"column":8},"end":{"line":118,"column":41}},"27":{"start":{"line":125,"column":8},"end":{"line":125,"column":51}},"28":{"start":{"line":132,"column":8},"end":{"line":132,"column":51}},"29":{"start":{"line":139,"column":8},"end":{"line":139,"column":46}},"30":{"start":{"line":148,"column":8},"end":{"line":148,"column":115}},"31":{"start":{"line":149,"column":8},"end":{"line":149,"column":51}},"32":{"start":{"line":150,"column":8},"end":{"line":150,"column":51}},"33":{"start":{"line":151,"column":8},"end":{"line":151,"column":58}},"34":{"start":{"line":162,"column":8},"end":{"line":162,"column":45}},"35":{"start":{"line":172,"column":8},"end":{"line":172,"column":44}},"36":{"start":{"line":182,"column":8},"end":{"line":182,"column":48}},"37":{"start":{"line":183,"column":8},"end":{"line":183,"column":45}},"38":{"start":{"line":183,"column":37},"end":{"line":183,"column":45}},"39":{"start":{"line":184,"column":8},"end":{"line":184,"column":44}}},"branchMap":{"1":{"line":11,"type":"if","locations":[{"start":{"line":11,"column":8},"end":{"line":11,"column":8}},{"start":{"line":11,"column":8},"end":{"line":11,"column":8}}]},"2":{"line":21,"type":"if","locations":[{"start":{"line":21,"column":8},"end":{"line":21,"column":8}},{"start":{"line":21,"column":8},"end":{"line":21,"column":8}}]},"3":{"line":32,"type":"if","locations":[{"start":{"line":32,"column":8},"end":{"line":32,"column":8}},{"start":{"line":32,"column":8},"end":{"line":32,"column":8}}]},"4":{"line":37,"type":"if","locations":[{"start":{"line":37,"column":8},"end":{"line":37,"column":8}},{"start":{"line":37,"column":8},"end":{"line":37,"column":8}}]},"5":{"line":47,"type":"if","locations":[{"start":{"line":47,"column":8},"end":{"line":47,"column":8}},{"start":{"line":47,"column":8},"end":{"line":47,"column":8}}]},"6":{"line":59,"type":"if","locations":[{"start":{"line":59,"column":8},"end":{"line":59,"column":8}},{"start":{"line":59,"column":8},"end":{"line":59,"column":8}}]},"7":{"line":87,"type":"if","locations":[{"start":{"line":87,"column":8},"end":{"line":87,"column":8}},{"start":{"line":87,"column":8},"end":{"line":87,"column":8}}]},"8":{"line":95,"type":"if","locations":[{"start":{"line":95,"column":8},"end":{"line":95,"column":8}},{"start":{"line":95,"column":8},"end":{"line":95,"column":8}}]},"9":{"line":148,"type":"if","locations":[{"start":{"line":148,"column":8},"end":{"line":148,"column":8}},{"start":{"line":148,"column":8},"end":{"line":148,"column":8}}]},"10":{"line":183,"type":"if","locations":[{"start":{"line":183,"column":8},"end":{"line":183,"column":8}},{"start":{"line":183,"column":8},"end":{"line":183,"column":8}}]}}}} \ No newline at end of file diff --git a/coverage/base.css b/coverage/base.css new file mode 100644 index 0000000..29737bc --- /dev/null +++ b/coverage/base.css @@ -0,0 +1,213 @@ +body, html { + margin:0; padding: 0; + height: 100%; +} +body { + font-family: Helvetica Neue, Helvetica, Arial; + font-size: 14px; + color:#333; +} +.small { font-size: 12px; } +*, *:after, *:before { + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; + } +h1 { font-size: 20px; margin: 0;} +h2 { font-size: 14px; } +pre { + font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; + margin: 0; + padding: 0; + -moz-tab-size: 2; + -o-tab-size: 2; + tab-size: 2; +} +a { color:#0074D9; text-decoration:none; } +a:hover { text-decoration:underline; } +.strong { font-weight: bold; } +.space-top1 { padding: 10px 0 0 0; } +.pad2y { padding: 20px 0; } +.pad1y { padding: 10px 0; } +.pad2x { padding: 0 20px; } +.pad2 { padding: 20px; } +.pad1 { padding: 10px; } +.space-left2 { padding-left:55px; } +.space-right2 { padding-right:20px; } +.center { text-align:center; } +.clearfix { display:block; } +.clearfix:after { + content:''; + display:block; + height:0; + clear:both; + visibility:hidden; + } +.fl { float: left; } +@media only screen and (max-width:640px) { + .col3 { width:100%; max-width:100%; } + .hide-mobile { display:none!important; } +} + +.quiet { + color: #7f7f7f; + color: rgba(0,0,0,0.5); +} +.quiet a { opacity: 0.7; } + +.fraction { + font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; + font-size: 10px; + color: #555; + background: #E8E8E8; + padding: 4px 5px; + border-radius: 3px; + vertical-align: middle; +} + +div.path a:link, div.path a:visited { color: #333; } +table.coverage { + border-collapse: collapse; + margin: 10px 0 0 0; + padding: 0; +} + +table.coverage td { + margin: 0; + padding: 0; + vertical-align: top; +} +table.coverage td.line-count { + text-align: right; + padding: 0 5px 0 20px; +} +table.coverage td.line-coverage { + text-align: right; + padding-right: 10px; + min-width:20px; +} + +table.coverage td span.cline-any { + display: inline-block; + padding: 0 5px; + width: 100%; +} +.missing-if-branch { + display: inline-block; + margin-right: 5px; + border-radius: 3px; + position: relative; + padding: 0 4px; + background: #333; + color: yellow; +} + +.skip-if-branch { + display: none; + margin-right: 10px; + position: relative; + padding: 0 4px; + background: #ccc; + color: white; +} +.missing-if-branch .typ, .skip-if-branch .typ { + color: inherit !important; +} +.coverage-summary { + border-collapse: collapse; + width: 100%; +} +.coverage-summary tr { border-bottom: 1px solid #bbb; } +.keyline-all { border: 1px solid #ddd; } +.coverage-summary td, .coverage-summary th { padding: 10px; } +.coverage-summary tbody { border: 1px solid #bbb; } +.coverage-summary td { border-right: 1px solid #bbb; } +.coverage-summary td:last-child { border-right: none; } +.coverage-summary th { + text-align: left; + font-weight: normal; + white-space: nowrap; +} +.coverage-summary th.file { border-right: none !important; } +.coverage-summary th.pct { } +.coverage-summary th.pic, +.coverage-summary th.abs, +.coverage-summary td.pct, +.coverage-summary td.abs { text-align: right; } +.coverage-summary td.file { white-space: nowrap; } +.coverage-summary td.pic { min-width: 120px !important; } +.coverage-summary tfoot td { } + +.coverage-summary .sorter { + height: 10px; + width: 7px; + display: inline-block; + margin-left: 0.5em; + background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; +} +.coverage-summary .sorted .sorter { + background-position: 0 -20px; +} +.coverage-summary .sorted-desc .sorter { + background-position: 0 -10px; +} +.status-line { height: 10px; } +/* dark red */ +.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } +.low .chart { border:1px solid #C21F39 } +/* medium red */ +.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } +/* light red */ +.low, .cline-no { background:#FCE1E5 } +/* light green */ +.high, .cline-yes { background:rgb(230,245,208) } +/* medium green */ +.cstat-yes { background:rgb(161,215,106) } +/* dark green */ +.status-line.high, .high .cover-fill { background:rgb(77,146,33) } +.high .chart { border:1px solid rgb(77,146,33) } +/* dark yellow (gold) */ +.medium .chart { border:1px solid #f9cd0b; } +.status-line.medium, .medium .cover-fill { background: #f9cd0b; } +/* light yellow */ +.medium { background: #fff4c2; } +/* light gray */ +span.cline-neutral { background: #eaeaea; } + +.cbranch-no { background: yellow !important; color: #111; } + +.cstat-skip { background: #ddd; color: #111; } +.fstat-skip { background: #ddd; color: #111 !important; } +.cbranch-skip { background: #ddd !important; color: #111; } + + +.cover-fill, .cover-empty { + display:inline-block; + height: 12px; +} +.chart { + line-height: 0; +} +.cover-empty { + background: white; +} +.cover-full { + border-right: none !important; +} +pre.prettyprint { + border: none !important; + padding: 0 !important; + margin: 0 !important; +} +.com { color: #999 !important; } +.ignore-none { color: #999; font-weight: normal; } + +.wrapper { + min-height: 100%; + height: auto !important; + height: 100%; + margin: 0 auto -48px; +} +.footer, .push { + height: 48px; +} diff --git a/coverage/contracts/Migrations.sol.html b/coverage/contracts/Migrations.sol.html new file mode 100644 index 0000000..6c5be50 --- /dev/null +++ b/coverage/contracts/Migrations.sol.html @@ -0,0 +1,122 @@ + + + + Code coverage report for contracts/Migrations.sol + + + + + + + +
+
+

+ all files / contracts/ Migrations.sol +

+
+
+ 0% + Statements + 0/2 +
+
+ 0% + Branches + 0/2 +
+
+ 0% + Functions + 0/2 +
+
+ 0% + Lines + 0/3 +
+
+
+
+

+
+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
// SPDX-License-Identifier: MIT
+pragma solidity >=0.4.22 <0.8.0;
+ 
+contract Migrations {
+  address public owner = msg.sender;
+  uint public last_completed_migration;
+ 
+  modifier restricted() {
+    require(
+      msg.sender == owner,
+      "This function is restricted to the contract's owner"
+    );
+    _;
+  }
+ 
+  function setCompleted(uint completed) public restricted {
+    last_completed_migration = completed;
+  }
+}
+ 
+
+
+ + + + + + + diff --git a/coverage/contracts/TellorAccess.sol.html b/coverage/contracts/TellorAccess.sol.html new file mode 100644 index 0000000..e071bdb --- /dev/null +++ b/coverage/contracts/TellorAccess.sol.html @@ -0,0 +1,623 @@ + + + + Code coverage report for contracts/TellorAccess.sol + + + + + + + +
+
+

+ all files / contracts/ TellorAccess.sol +

+
+
+ 35.9% + Statements + 14/39 +
+
+ 25% + Branches + 5/20 +
+
+ 38.1% + Functions + 8/21 +
+
+ 37.5% + Lines + 15/40 +
+
+
+
+

+
+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +4× +4× +  +  +  +  +  +  +4× +2× +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2× +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +11× +  +  +  +  +  +  +9× +  +  +  +  +  +  +  +  +9× +3× +3× +3× +  +  +  +  +  +  +  +  +  +  +1× +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1× +1× +1× +  +  + 
// SPDX-License-Identifier: MIT
+pragma solidity 0.7.0;
+ 
+import "@openzeppelin/contracts/access/AccessControl.sol";
+ 
+ 
+library SafeMath {
+ 
+    function add(uint256 a, uint256 b) internal pure returns (uint256) {
+        uint256 c = a + b;
+        require(c >= a, "SafeMath: addition overflow");
+ 
+        return c;
+    }
+ 
+    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
+        return sub(a, b, "SafeMath: subtraction overflow");
+    }
+ 
+    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
+        require(b <= a, errorMessage);
+        uint256 c = a - b;
+ 
+        return c;
+    }
+ 
+ 
+    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
+        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
+        // benefit is lost if 'b' is also tested.
+        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
+        if (a == 0) {
+            return 0;
+        }
+ 
+        uint256 c = a * b;
+        require(c / a == b, "SafeMath: multiplication overflow");
+ 
+        return c;
+    }
+ 
+    function div(uint256 a, uint256 b) internal pure returns (uint256) {
+        return div(a, b, "SafeMath: division by zero");
+    }
+ 
+    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
+        require(b > 0, errorMessage);
+        uint256 c = a / b;
+        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
+ 
+        return c;
+    }
+ 
+    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
+        return mod(a, b, "SafeMath: modulo by zero");
+    }
+ 
+    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
+        require(b != 0, errorMessage);
+        return a % b;
+    }
+}
+ 
+contract TellorAccess is AccessControl {
+ 
+    using SafeMath for uint256;
+    
+    event NewValue(uint256 _requestId, uint256 _time, uint256 _value);
+    
+    mapping(uint256 => mapping(uint256 => uint256)) public values; //requestId -> timestamp -> value
+//    mapping(uint256 => mapping(uint256 => bool)) public isDisputed; //requestId -> timestamp -> value
+    mapping(uint256 => uint256[]) public timestamps;
+    
+    bytes32 public constant REPORTER_ROLE = keccak256("reporter");
+ 
+ 
+ 
+    constructor () {
+        _setupRole(DEFAULT_ADMIN_ROLE, msg.sender);
+        _setRoleAdmin(REPORTER_ROLE, DEFAULT_ADMIN_ROLE);
+    }
+ 
+    /**
+     * @dev Modifier to restrict only to the admin role.
+     */
+    modifier onlyAdmin() {
+        require(isAdmin(msg.sender), "Restricted to admins.");
+        _;
+    }
+ 
+    /**
+     * @dev Restricted to members of the reporter role.
+     */
+    modifier onlyReporter() {
+        require(isReporter(msg.sender), "Restricted to reporters.");
+        _;
+    }
+ 
+    /**
+    @dev Add an account to the admin role. Restricted to admins.
+    */
+    function addAdmin(address account) public virtual onlyAdmin {
+        grantRole(DEFAULT_ADMIN_ROLE, account);
+    }
+ 
+    /**
+     * @dev Add an account to the reporter role. Restricted to admins.
+     * @param account is the address of the reporter to give permissions to submit data
+     */
+    function addReporter(address account) public virtual onlyAdmin  {
+        grantRole(REPORTER_ROLE, account);
+    }
+ 
+    /** 
+     * @dev Remove an account from the reporter role. Restricted to admins.
+     */
+    function removeReporter(address account) public virtual onlyAdmin  {
+        revokeRole(REPORTER_ROLE, account);
+    }
+ 
+    /** 
+     * @dev Remove oneself from the admin role.
+     */
+    function renounceAdmin() public virtual {
+        renounceRole(DEFAULT_ADMIN_ROLE, msg.sender);
+    }
+    
+    /**
+     * @dev Return `true` if the account belongs to the admin role.
+     */
+    function isAdmin(address account) public virtual view returns (bool) {
+        return hasRole(DEFAULT_ADMIN_ROLE, account);
+    }
+ 
+    /**
+     * @dev Return `true` if the account belongs to the reporter role.
+     */
+    function isReporter(address account) public virtual view returns (bool)  {
+        return hasRole(REPORTER_ROLE, account);
+    }
+ 
+    /**
+    * @dev A mock function to submit a value to be read withoun miners needed
+    * @param _requestId The tellorId to associate the value to
+    * @param _value the value for the requestId
+    */
+    function submitValue(uint256 _requestId,uint256 _value)  external {
+        require(isReporter(msg.sender) || isAdmin(msg.sender), "Sender must be an Admin or Reporter to submitValue");
+        values[_requestId][block.timestamp] = _value;
+        timestamps[_requestId].push(block.timestamp);
+        emit NewValue(_requestId, block.timestamp, _value);
+    }
+ 
+ 
+     /**
+    * @dev Retreive value from oracle based on requestId/timestamp
+    * @param _requestId being requested
+    * @param _timestamp to retreive data/value from
+    * @return uint value for requestId/timestamp submitted
+    */
+    function retrieveData(uint256 _requestId, uint256 _timestamp) public view returns(uint256){
+        return values[_requestId][_timestamp];
+    }
+ 
+ 
+    /**
+    * @dev Counts the number of values that have been submited for the request
+    * @param _requestId the requestId to look up
+    * @return uint count of the number of values received for the requestId
+    */
+    function getNewValueCountbyRequestId(uint256 _requestId) public view returns(uint) {
+        return timestamps[_requestId].length;
+    }
+ 
+    /**
+    * @dev Gets the timestamp for the value based on their index
+    * @param _requestId is the requestId to look up
+    * @param index is the value index to look up
+    * @return uint timestamp
+    */
+    function getTimestampbyRequestIDandIndex(uint256 _requestId, uint256 index) public view returns(uint256) {
+        uint len = timestamps[_requestId].length;
+        Iif(len == 0 || len <= index) return 0; 
+        return timestamps[_requestId][index];
+    }
+ 
+}
+
+
+ + + + + + + diff --git a/coverage/contracts/index.html b/coverage/contracts/index.html new file mode 100644 index 0000000..2bcc145 --- /dev/null +++ b/coverage/contracts/index.html @@ -0,0 +1,106 @@ + + + + Code coverage report for contracts/ + + + + + + + +
+
+

+ all files contracts/ +

+
+
+ 34.15% + Statements + 14/41 +
+
+ 22.73% + Branches + 5/22 +
+
+ 34.78% + Functions + 8/23 +
+
+ 34.88% + Lines + 15/43 +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
Migrations.sol
0%0/20%0/20%0/20%0/3
TellorAccess.sol
35.9%14/3925%5/2038.1%8/2137.5%15/40
+
+
+ + + + + + + diff --git a/coverage/coverage-final.json b/coverage/coverage-final.json new file mode 100644 index 0000000..1062735 --- /dev/null +++ b/coverage/coverage-final.json @@ -0,0 +1,3 @@ +{ +"contracts/Migrations.sol":{"l":{"9":0,"13":0,"17":0},"path":"/home/brenda/projects/bsc/tellorAccess/contracts/Migrations.sol","s":{"1":0,"2":0},"b":{"1":[0,0]},"f":{"1":0,"2":0},"fnMap":{"1":{"name":"restricted","line":8,"loc":{"start":{"line":8,"column":2},"end":{"line":14,"column":2}}},"2":{"name":"setCompleted","line":16,"loc":{"start":{"line":16,"column":2},"end":{"line":18,"column":2}}}},"statementMap":{"1":{"start":{"line":9,"column":4},"end":{"line":9,"column":201}},"2":{"start":{"line":17,"column":4},"end":{"line":17,"column":39}}},"branchMap":{"1":{"line":9,"type":"if","locations":[{"start":{"line":9,"column":4},"end":{"line":9,"column":4}},{"start":{"line":9,"column":4},"end":{"line":9,"column":4}}]}}}, +"contracts/TellorAccess.sol":{"l":{"10":0,"11":0,"13":0,"17":0,"21":0,"22":0,"24":0,"32":0,"33":0,"36":0,"37":0,"39":0,"43":0,"47":0,"48":0,"51":0,"55":0,"59":0,"60":0,"79":4,"80":4,"87":4,"88":2,"95":0,"96":0,"103":0,"111":2,"118":0,"125":0,"132":11,"139":9,"148":9,"149":3,"150":3,"151":3,"162":1,"172":0,"182":1,"183":1,"184":1},"path":"/home/brenda/projects/bsc/tellorAccess/contracts/TellorAccess.sol","s":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":4,"21":4,"22":4,"23":0,"24":0,"25":2,"26":0,"27":0,"28":11,"29":9,"30":9,"31":3,"32":3,"33":3,"34":1,"35":0,"36":1,"37":1,"38":0,"39":1},"b":{"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[2,2],"8":[0,0],"9":[3,6],"10":[0,1]},"f":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":4,"10":4,"11":0,"12":0,"13":2,"14":0,"15":0,"16":11,"17":9,"18":9,"19":1,"20":0,"21":1},"fnMap":{"1":{"name":"add","line":9,"loc":{"start":{"line":9,"column":4},"end":{"line":14,"column":4}}},"2":{"name":"sub","line":16,"loc":{"start":{"line":16,"column":4},"end":{"line":18,"column":4}}},"3":{"name":"sub","line":20,"loc":{"start":{"line":20,"column":4},"end":{"line":25,"column":4}}},"4":{"name":"mul","line":28,"loc":{"start":{"line":28,"column":4},"end":{"line":40,"column":4}}},"5":{"name":"div","line":42,"loc":{"start":{"line":42,"column":4},"end":{"line":44,"column":4}}},"6":{"name":"div","line":46,"loc":{"start":{"line":46,"column":4},"end":{"line":52,"column":4}}},"7":{"name":"mod","line":54,"loc":{"start":{"line":54,"column":4},"end":{"line":56,"column":4}}},"8":{"name":"mod","line":58,"loc":{"start":{"line":58,"column":4},"end":{"line":61,"column":4}}},"9":{"name":"constructor","line":78,"loc":{"start":{"line":78,"column":4},"end":{"line":81,"column":4}}},"10":{"name":"onlyAdmin","line":86,"loc":{"start":{"line":86,"column":4},"end":{"line":89,"column":4}}},"11":{"name":"onlyReporter","line":94,"loc":{"start":{"line":94,"column":4},"end":{"line":97,"column":4}}},"12":{"name":"addAdmin","line":102,"loc":{"start":{"line":102,"column":4},"end":{"line":104,"column":4}}},"13":{"name":"addReporter","line":110,"loc":{"start":{"line":110,"column":4},"end":{"line":112,"column":4}}},"14":{"name":"removeReporter","line":117,"loc":{"start":{"line":117,"column":4},"end":{"line":119,"column":4}}},"15":{"name":"renounceAdmin","line":124,"loc":{"start":{"line":124,"column":4},"end":{"line":126,"column":4}}},"16":{"name":"isAdmin","line":131,"loc":{"start":{"line":131,"column":4},"end":{"line":133,"column":4}}},"17":{"name":"isReporter","line":138,"loc":{"start":{"line":138,"column":4},"end":{"line":140,"column":4}}},"18":{"name":"submitValue","line":147,"loc":{"start":{"line":147,"column":4},"end":{"line":152,"column":4}}},"19":{"name":"retrieveData","line":161,"loc":{"start":{"line":161,"column":4},"end":{"line":163,"column":4}}},"20":{"name":"getNewValueCountbyRequestId","line":171,"loc":{"start":{"line":171,"column":4},"end":{"line":173,"column":4}}},"21":{"name":"getTimestampbyRequestIDandIndex","line":181,"loc":{"start":{"line":181,"column":4},"end":{"line":185,"column":4}}}},"statementMap":{"1":{"start":{"line":10,"column":8},"end":{"line":10,"column":25}},"2":{"start":{"line":11,"column":8},"end":{"line":11,"column":53}},"3":{"start":{"line":13,"column":8},"end":{"line":13,"column":16}},"4":{"start":{"line":17,"column":8},"end":{"line":17,"column":58}},"5":{"start":{"line":21,"column":8},"end":{"line":21,"column":36}},"6":{"start":{"line":22,"column":8},"end":{"line":22,"column":25}},"7":{"start":{"line":24,"column":8},"end":{"line":24,"column":16}},"8":{"start":{"line":32,"column":8},"end":{"line":32,"column":961}},"9":{"start":{"line":33,"column":12},"end":{"line":33,"column":20}},"10":{"start":{"line":36,"column":8},"end":{"line":36,"column":25}},"11":{"start":{"line":37,"column":8},"end":{"line":37,"column":63}},"12":{"start":{"line":39,"column":8},"end":{"line":39,"column":16}},"13":{"start":{"line":43,"column":8},"end":{"line":43,"column":54}},"14":{"start":{"line":47,"column":8},"end":{"line":47,"column":35}},"15":{"start":{"line":48,"column":8},"end":{"line":48,"column":25}},"16":{"start":{"line":51,"column":8},"end":{"line":51,"column":16}},"17":{"start":{"line":55,"column":8},"end":{"line":55,"column":52}},"18":{"start":{"line":59,"column":8},"end":{"line":59,"column":36}},"19":{"start":{"line":60,"column":8},"end":{"line":60,"column":20}},"20":{"start":{"line":79,"column":8},"end":{"line":79,"column":49}},"21":{"start":{"line":80,"column":8},"end":{"line":80,"column":55}},"22":{"start":{"line":87,"column":8},"end":{"line":87,"column":60}},"23":{"start":{"line":95,"column":8},"end":{"line":95,"column":66}},"24":{"start":{"line":103,"column":8},"end":{"line":103,"column":45}},"25":{"start":{"line":111,"column":8},"end":{"line":111,"column":40}},"26":{"start":{"line":118,"column":8},"end":{"line":118,"column":41}},"27":{"start":{"line":125,"column":8},"end":{"line":125,"column":51}},"28":{"start":{"line":132,"column":8},"end":{"line":132,"column":51}},"29":{"start":{"line":139,"column":8},"end":{"line":139,"column":46}},"30":{"start":{"line":148,"column":8},"end":{"line":148,"column":115}},"31":{"start":{"line":149,"column":8},"end":{"line":149,"column":51}},"32":{"start":{"line":150,"column":8},"end":{"line":150,"column":51}},"33":{"start":{"line":151,"column":8},"end":{"line":151,"column":58}},"34":{"start":{"line":162,"column":8},"end":{"line":162,"column":45}},"35":{"start":{"line":172,"column":8},"end":{"line":172,"column":44}},"36":{"start":{"line":182,"column":8},"end":{"line":182,"column":48}},"37":{"start":{"line":183,"column":8},"end":{"line":183,"column":45}},"38":{"start":{"line":183,"column":37},"end":{"line":183,"column":45}},"39":{"start":{"line":184,"column":8},"end":{"line":184,"column":44}}},"branchMap":{"1":{"line":11,"type":"if","locations":[{"start":{"line":11,"column":8},"end":{"line":11,"column":8}},{"start":{"line":11,"column":8},"end":{"line":11,"column":8}}]},"2":{"line":21,"type":"if","locations":[{"start":{"line":21,"column":8},"end":{"line":21,"column":8}},{"start":{"line":21,"column":8},"end":{"line":21,"column":8}}]},"3":{"line":32,"type":"if","locations":[{"start":{"line":32,"column":8},"end":{"line":32,"column":8}},{"start":{"line":32,"column":8},"end":{"line":32,"column":8}}]},"4":{"line":37,"type":"if","locations":[{"start":{"line":37,"column":8},"end":{"line":37,"column":8}},{"start":{"line":37,"column":8},"end":{"line":37,"column":8}}]},"5":{"line":47,"type":"if","locations":[{"start":{"line":47,"column":8},"end":{"line":47,"column":8}},{"start":{"line":47,"column":8},"end":{"line":47,"column":8}}]},"6":{"line":59,"type":"if","locations":[{"start":{"line":59,"column":8},"end":{"line":59,"column":8}},{"start":{"line":59,"column":8},"end":{"line":59,"column":8}}]},"7":{"line":87,"type":"if","locations":[{"start":{"line":87,"column":8},"end":{"line":87,"column":8}},{"start":{"line":87,"column":8},"end":{"line":87,"column":8}}]},"8":{"line":95,"type":"if","locations":[{"start":{"line":95,"column":8},"end":{"line":95,"column":8}},{"start":{"line":95,"column":8},"end":{"line":95,"column":8}}]},"9":{"line":148,"type":"if","locations":[{"start":{"line":148,"column":8},"end":{"line":148,"column":8}},{"start":{"line":148,"column":8},"end":{"line":148,"column":8}}]},"10":{"line":183,"type":"if","locations":[{"start":{"line":183,"column":8},"end":{"line":183,"column":8}},{"start":{"line":183,"column":8},"end":{"line":183,"column":8}}]}}}} diff --git a/coverage/index.html b/coverage/index.html new file mode 100644 index 0000000..5985baf --- /dev/null +++ b/coverage/index.html @@ -0,0 +1,93 @@ + + + + Code coverage report for All files + + + + + + + +
+
+

+ / +

+
+
+ 34.15% + Statements + 14/41 +
+
+ 22.73% + Branches + 5/22 +
+
+ 34.78% + Functions + 8/23 +
+
+ 34.88% + Lines + 15/43 +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
contracts/
34.15%14/4122.73%5/2234.78%8/2334.88%15/43
+
+
+ + + + + + + diff --git a/coverage/lcov-report/base.css b/coverage/lcov-report/base.css new file mode 100644 index 0000000..29737bc --- /dev/null +++ b/coverage/lcov-report/base.css @@ -0,0 +1,213 @@ +body, html { + margin:0; padding: 0; + height: 100%; +} +body { + font-family: Helvetica Neue, Helvetica, Arial; + font-size: 14px; + color:#333; +} +.small { font-size: 12px; } +*, *:after, *:before { + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; + } +h1 { font-size: 20px; margin: 0;} +h2 { font-size: 14px; } +pre { + font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; + margin: 0; + padding: 0; + -moz-tab-size: 2; + -o-tab-size: 2; + tab-size: 2; +} +a { color:#0074D9; text-decoration:none; } +a:hover { text-decoration:underline; } +.strong { font-weight: bold; } +.space-top1 { padding: 10px 0 0 0; } +.pad2y { padding: 20px 0; } +.pad1y { padding: 10px 0; } +.pad2x { padding: 0 20px; } +.pad2 { padding: 20px; } +.pad1 { padding: 10px; } +.space-left2 { padding-left:55px; } +.space-right2 { padding-right:20px; } +.center { text-align:center; } +.clearfix { display:block; } +.clearfix:after { + content:''; + display:block; + height:0; + clear:both; + visibility:hidden; + } +.fl { float: left; } +@media only screen and (max-width:640px) { + .col3 { width:100%; max-width:100%; } + .hide-mobile { display:none!important; } +} + +.quiet { + color: #7f7f7f; + color: rgba(0,0,0,0.5); +} +.quiet a { opacity: 0.7; } + +.fraction { + font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; + font-size: 10px; + color: #555; + background: #E8E8E8; + padding: 4px 5px; + border-radius: 3px; + vertical-align: middle; +} + +div.path a:link, div.path a:visited { color: #333; } +table.coverage { + border-collapse: collapse; + margin: 10px 0 0 0; + padding: 0; +} + +table.coverage td { + margin: 0; + padding: 0; + vertical-align: top; +} +table.coverage td.line-count { + text-align: right; + padding: 0 5px 0 20px; +} +table.coverage td.line-coverage { + text-align: right; + padding-right: 10px; + min-width:20px; +} + +table.coverage td span.cline-any { + display: inline-block; + padding: 0 5px; + width: 100%; +} +.missing-if-branch { + display: inline-block; + margin-right: 5px; + border-radius: 3px; + position: relative; + padding: 0 4px; + background: #333; + color: yellow; +} + +.skip-if-branch { + display: none; + margin-right: 10px; + position: relative; + padding: 0 4px; + background: #ccc; + color: white; +} +.missing-if-branch .typ, .skip-if-branch .typ { + color: inherit !important; +} +.coverage-summary { + border-collapse: collapse; + width: 100%; +} +.coverage-summary tr { border-bottom: 1px solid #bbb; } +.keyline-all { border: 1px solid #ddd; } +.coverage-summary td, .coverage-summary th { padding: 10px; } +.coverage-summary tbody { border: 1px solid #bbb; } +.coverage-summary td { border-right: 1px solid #bbb; } +.coverage-summary td:last-child { border-right: none; } +.coverage-summary th { + text-align: left; + font-weight: normal; + white-space: nowrap; +} +.coverage-summary th.file { border-right: none !important; } +.coverage-summary th.pct { } +.coverage-summary th.pic, +.coverage-summary th.abs, +.coverage-summary td.pct, +.coverage-summary td.abs { text-align: right; } +.coverage-summary td.file { white-space: nowrap; } +.coverage-summary td.pic { min-width: 120px !important; } +.coverage-summary tfoot td { } + +.coverage-summary .sorter { + height: 10px; + width: 7px; + display: inline-block; + margin-left: 0.5em; + background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; +} +.coverage-summary .sorted .sorter { + background-position: 0 -20px; +} +.coverage-summary .sorted-desc .sorter { + background-position: 0 -10px; +} +.status-line { height: 10px; } +/* dark red */ +.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } +.low .chart { border:1px solid #C21F39 } +/* medium red */ +.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } +/* light red */ +.low, .cline-no { background:#FCE1E5 } +/* light green */ +.high, .cline-yes { background:rgb(230,245,208) } +/* medium green */ +.cstat-yes { background:rgb(161,215,106) } +/* dark green */ +.status-line.high, .high .cover-fill { background:rgb(77,146,33) } +.high .chart { border:1px solid rgb(77,146,33) } +/* dark yellow (gold) */ +.medium .chart { border:1px solid #f9cd0b; } +.status-line.medium, .medium .cover-fill { background: #f9cd0b; } +/* light yellow */ +.medium { background: #fff4c2; } +/* light gray */ +span.cline-neutral { background: #eaeaea; } + +.cbranch-no { background: yellow !important; color: #111; } + +.cstat-skip { background: #ddd; color: #111; } +.fstat-skip { background: #ddd; color: #111 !important; } +.cbranch-skip { background: #ddd !important; color: #111; } + + +.cover-fill, .cover-empty { + display:inline-block; + height: 12px; +} +.chart { + line-height: 0; +} +.cover-empty { + background: white; +} +.cover-full { + border-right: none !important; +} +pre.prettyprint { + border: none !important; + padding: 0 !important; + margin: 0 !important; +} +.com { color: #999 !important; } +.ignore-none { color: #999; font-weight: normal; } + +.wrapper { + min-height: 100%; + height: auto !important; + height: 100%; + margin: 0 auto -48px; +} +.footer, .push { + height: 48px; +} diff --git a/coverage/lcov-report/contracts/Migrations.sol.html b/coverage/lcov-report/contracts/Migrations.sol.html new file mode 100644 index 0000000..6c5be50 --- /dev/null +++ b/coverage/lcov-report/contracts/Migrations.sol.html @@ -0,0 +1,122 @@ + + + + Code coverage report for contracts/Migrations.sol + + + + + + + +
+
+

+ all files / contracts/ Migrations.sol +

+
+
+ 0% + Statements + 0/2 +
+
+ 0% + Branches + 0/2 +
+
+ 0% + Functions + 0/2 +
+
+ 0% + Lines + 0/3 +
+
+
+
+

+
+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
// SPDX-License-Identifier: MIT
+pragma solidity >=0.4.22 <0.8.0;
+ 
+contract Migrations {
+  address public owner = msg.sender;
+  uint public last_completed_migration;
+ 
+  modifier restricted() {
+    require(
+      msg.sender == owner,
+      "This function is restricted to the contract's owner"
+    );
+    _;
+  }
+ 
+  function setCompleted(uint completed) public restricted {
+    last_completed_migration = completed;
+  }
+}
+ 
+
+
+ + + + + + + diff --git a/coverage/lcov-report/contracts/TellorAccess.sol.html b/coverage/lcov-report/contracts/TellorAccess.sol.html new file mode 100644 index 0000000..e071bdb --- /dev/null +++ b/coverage/lcov-report/contracts/TellorAccess.sol.html @@ -0,0 +1,623 @@ + + + + Code coverage report for contracts/TellorAccess.sol + + + + + + + +
+
+

+ all files / contracts/ TellorAccess.sol +

+
+
+ 35.9% + Statements + 14/39 +
+
+ 25% + Branches + 5/20 +
+
+ 38.1% + Functions + 8/21 +
+
+ 37.5% + Lines + 15/40 +
+
+
+
+

+
+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +4× +4× +  +  +  +  +  +  +4× +2× +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2× +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +11× +  +  +  +  +  +  +9× +  +  +  +  +  +  +  +  +9× +3× +3× +3× +  +  +  +  +  +  +  +  +  +  +1× +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1× +1× +1× +  +  + 
// SPDX-License-Identifier: MIT
+pragma solidity 0.7.0;
+ 
+import "@openzeppelin/contracts/access/AccessControl.sol";
+ 
+ 
+library SafeMath {
+ 
+    function add(uint256 a, uint256 b) internal pure returns (uint256) {
+        uint256 c = a + b;
+        require(c >= a, "SafeMath: addition overflow");
+ 
+        return c;
+    }
+ 
+    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
+        return sub(a, b, "SafeMath: subtraction overflow");
+    }
+ 
+    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
+        require(b <= a, errorMessage);
+        uint256 c = a - b;
+ 
+        return c;
+    }
+ 
+ 
+    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
+        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
+        // benefit is lost if 'b' is also tested.
+        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
+        if (a == 0) {
+            return 0;
+        }
+ 
+        uint256 c = a * b;
+        require(c / a == b, "SafeMath: multiplication overflow");
+ 
+        return c;
+    }
+ 
+    function div(uint256 a, uint256 b) internal pure returns (uint256) {
+        return div(a, b, "SafeMath: division by zero");
+    }
+ 
+    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
+        require(b > 0, errorMessage);
+        uint256 c = a / b;
+        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
+ 
+        return c;
+    }
+ 
+    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
+        return mod(a, b, "SafeMath: modulo by zero");
+    }
+ 
+    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
+        require(b != 0, errorMessage);
+        return a % b;
+    }
+}
+ 
+contract TellorAccess is AccessControl {
+ 
+    using SafeMath for uint256;
+    
+    event NewValue(uint256 _requestId, uint256 _time, uint256 _value);
+    
+    mapping(uint256 => mapping(uint256 => uint256)) public values; //requestId -> timestamp -> value
+//    mapping(uint256 => mapping(uint256 => bool)) public isDisputed; //requestId -> timestamp -> value
+    mapping(uint256 => uint256[]) public timestamps;
+    
+    bytes32 public constant REPORTER_ROLE = keccak256("reporter");
+ 
+ 
+ 
+    constructor () {
+        _setupRole(DEFAULT_ADMIN_ROLE, msg.sender);
+        _setRoleAdmin(REPORTER_ROLE, DEFAULT_ADMIN_ROLE);
+    }
+ 
+    /**
+     * @dev Modifier to restrict only to the admin role.
+     */
+    modifier onlyAdmin() {
+        require(isAdmin(msg.sender), "Restricted to admins.");
+        _;
+    }
+ 
+    /**
+     * @dev Restricted to members of the reporter role.
+     */
+    modifier onlyReporter() {
+        require(isReporter(msg.sender), "Restricted to reporters.");
+        _;
+    }
+ 
+    /**
+    @dev Add an account to the admin role. Restricted to admins.
+    */
+    function addAdmin(address account) public virtual onlyAdmin {
+        grantRole(DEFAULT_ADMIN_ROLE, account);
+    }
+ 
+    /**
+     * @dev Add an account to the reporter role. Restricted to admins.
+     * @param account is the address of the reporter to give permissions to submit data
+     */
+    function addReporter(address account) public virtual onlyAdmin  {
+        grantRole(REPORTER_ROLE, account);
+    }
+ 
+    /** 
+     * @dev Remove an account from the reporter role. Restricted to admins.
+     */
+    function removeReporter(address account) public virtual onlyAdmin  {
+        revokeRole(REPORTER_ROLE, account);
+    }
+ 
+    /** 
+     * @dev Remove oneself from the admin role.
+     */
+    function renounceAdmin() public virtual {
+        renounceRole(DEFAULT_ADMIN_ROLE, msg.sender);
+    }
+    
+    /**
+     * @dev Return `true` if the account belongs to the admin role.
+     */
+    function isAdmin(address account) public virtual view returns (bool) {
+        return hasRole(DEFAULT_ADMIN_ROLE, account);
+    }
+ 
+    /**
+     * @dev Return `true` if the account belongs to the reporter role.
+     */
+    function isReporter(address account) public virtual view returns (bool)  {
+        return hasRole(REPORTER_ROLE, account);
+    }
+ 
+    /**
+    * @dev A mock function to submit a value to be read withoun miners needed
+    * @param _requestId The tellorId to associate the value to
+    * @param _value the value for the requestId
+    */
+    function submitValue(uint256 _requestId,uint256 _value)  external {
+        require(isReporter(msg.sender) || isAdmin(msg.sender), "Sender must be an Admin or Reporter to submitValue");
+        values[_requestId][block.timestamp] = _value;
+        timestamps[_requestId].push(block.timestamp);
+        emit NewValue(_requestId, block.timestamp, _value);
+    }
+ 
+ 
+     /**
+    * @dev Retreive value from oracle based on requestId/timestamp
+    * @param _requestId being requested
+    * @param _timestamp to retreive data/value from
+    * @return uint value for requestId/timestamp submitted
+    */
+    function retrieveData(uint256 _requestId, uint256 _timestamp) public view returns(uint256){
+        return values[_requestId][_timestamp];
+    }
+ 
+ 
+    /**
+    * @dev Counts the number of values that have been submited for the request
+    * @param _requestId the requestId to look up
+    * @return uint count of the number of values received for the requestId
+    */
+    function getNewValueCountbyRequestId(uint256 _requestId) public view returns(uint) {
+        return timestamps[_requestId].length;
+    }
+ 
+    /**
+    * @dev Gets the timestamp for the value based on their index
+    * @param _requestId is the requestId to look up
+    * @param index is the value index to look up
+    * @return uint timestamp
+    */
+    function getTimestampbyRequestIDandIndex(uint256 _requestId, uint256 index) public view returns(uint256) {
+        uint len = timestamps[_requestId].length;
+        Iif(len == 0 || len <= index) return 0; 
+        return timestamps[_requestId][index];
+    }
+ 
+}
+
+
+ + + + + + + diff --git a/coverage/lcov-report/contracts/index.html b/coverage/lcov-report/contracts/index.html new file mode 100644 index 0000000..2bcc145 --- /dev/null +++ b/coverage/lcov-report/contracts/index.html @@ -0,0 +1,106 @@ + + + + Code coverage report for contracts/ + + + + + + + +
+
+

+ all files contracts/ +

+
+
+ 34.15% + Statements + 14/41 +
+
+ 22.73% + Branches + 5/22 +
+
+ 34.78% + Functions + 8/23 +
+
+ 34.88% + Lines + 15/43 +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
Migrations.sol
0%0/20%0/20%0/20%0/3
TellorAccess.sol
35.9%14/3925%5/2038.1%8/2137.5%15/40
+
+
+ + + + + + + diff --git a/coverage/lcov-report/index.html b/coverage/lcov-report/index.html new file mode 100644 index 0000000..5985baf --- /dev/null +++ b/coverage/lcov-report/index.html @@ -0,0 +1,93 @@ + + + + Code coverage report for All files + + + + + + + +
+
+

+ / +

+
+
+ 34.15% + Statements + 14/41 +
+
+ 22.73% + Branches + 5/22 +
+
+ 34.78% + Functions + 8/23 +
+
+ 34.88% + Lines + 15/43 +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
contracts/
34.15%14/4122.73%5/2234.78%8/2334.88%15/43
+
+
+ + + + + + + diff --git a/coverage/lcov-report/prettify.css b/coverage/lcov-report/prettify.css new file mode 100644 index 0000000..b317a7c --- /dev/null +++ b/coverage/lcov-report/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/coverage/lcov-report/prettify.js b/coverage/lcov-report/prettify.js new file mode 100644 index 0000000..ef51e03 --- /dev/null +++ b/coverage/lcov-report/prettify.js @@ -0,0 +1 @@ +window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/coverage/lcov-report/sort-arrow-sprite.png b/coverage/lcov-report/sort-arrow-sprite.png new file mode 100644 index 0000000..03f704a Binary files /dev/null and b/coverage/lcov-report/sort-arrow-sprite.png differ diff --git a/coverage/lcov-report/sorter.js b/coverage/lcov-report/sorter.js new file mode 100644 index 0000000..6c5034e --- /dev/null +++ b/coverage/lcov-report/sorter.js @@ -0,0 +1,158 @@ +var addSorting = (function () { + "use strict"; + var cols, + currentSort = { + index: 0, + desc: false + }; + + // returns the summary table element + function getTable() { return document.querySelector('.coverage-summary'); } + // returns the thead element of the summary table + function getTableHeader() { return getTable().querySelector('thead tr'); } + // returns the tbody element of the summary table + function getTableBody() { return getTable().querySelector('tbody'); } + // returns the th element for nth column + function getNthColumn(n) { return getTableHeader().querySelectorAll('th')[n]; } + + // loads all columns + function loadColumns() { + var colNodes = getTableHeader().querySelectorAll('th'), + colNode, + cols = [], + col, + i; + + for (i = 0; i < colNodes.length; i += 1) { + colNode = colNodes[i]; + col = { + key: colNode.getAttribute('data-col'), + sortable: !colNode.getAttribute('data-nosort'), + type: colNode.getAttribute('data-type') || 'string' + }; + cols.push(col); + if (col.sortable) { + col.defaultDescSort = col.type === 'number'; + colNode.innerHTML = colNode.innerHTML + ''; + } + } + return cols; + } + // attaches a data attribute to every tr element with an object + // of data values keyed by column name + function loadRowData(tableRow) { + var tableCols = tableRow.querySelectorAll('td'), + colNode, + col, + data = {}, + i, + val; + for (i = 0; i < tableCols.length; i += 1) { + colNode = tableCols[i]; + col = cols[i]; + val = colNode.getAttribute('data-value'); + if (col.type === 'number') { + val = Number(val); + } + data[col.key] = val; + } + return data; + } + // loads all row data + function loadData() { + var rows = getTableBody().querySelectorAll('tr'), + i; + + for (i = 0; i < rows.length; i += 1) { + rows[i].data = loadRowData(rows[i]); + } + } + // sorts the table using the data for the ith column + function sortByIndex(index, desc) { + var key = cols[index].key, + sorter = function (a, b) { + a = a.data[key]; + b = b.data[key]; + return a < b ? -1 : a > b ? 1 : 0; + }, + finalSorter = sorter, + tableBody = document.querySelector('.coverage-summary tbody'), + rowNodes = tableBody.querySelectorAll('tr'), + rows = [], + i; + + if (desc) { + finalSorter = function (a, b) { + return -1 * sorter(a, b); + }; + } + + for (i = 0; i < rowNodes.length; i += 1) { + rows.push(rowNodes[i]); + tableBody.removeChild(rowNodes[i]); + } + + rows.sort(finalSorter); + + for (i = 0; i < rows.length; i += 1) { + tableBody.appendChild(rows[i]); + } + } + // removes sort indicators for current column being sorted + function removeSortIndicators() { + var col = getNthColumn(currentSort.index), + cls = col.className; + + cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); + col.className = cls; + } + // adds sort indicators for current column being sorted + function addSortIndicators() { + getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted'; + } + // adds event listeners for all sorter widgets + function enableUI() { + var i, + el, + ithSorter = function ithSorter(i) { + var col = cols[i]; + + return function () { + var desc = col.defaultDescSort; + + if (currentSort.index === i) { + desc = !currentSort.desc; + } + sortByIndex(i, desc); + removeSortIndicators(); + currentSort.index = i; + currentSort.desc = desc; + addSortIndicators(); + }; + }; + for (i =0 ; i < cols.length; i += 1) { + if (cols[i].sortable) { + // add the click event handler on the th so users + // dont have to click on those tiny arrows + el = getNthColumn(i).querySelector('.sorter').parentElement; + if (el.addEventListener) { + el.addEventListener('click', ithSorter(i)); + } else { + el.attachEvent('onclick', ithSorter(i)); + } + } + } + } + // adds sorting functionality to the UI + return function () { + if (!getTable()) { + return; + } + cols = loadColumns(); + loadData(cols); + addSortIndicators(); + enableUI(); + }; +})(); + +window.addEventListener('load', addSorting); diff --git a/coverage/lcov.info b/coverage/lcov.info new file mode 100644 index 0000000..6fc7d8c --- /dev/null +++ b/coverage/lcov.info @@ -0,0 +1,129 @@ +TN: +SF:/home/brenda/projects/bsc/tellorAccess/contracts/Migrations.sol +FN:8,restricted +FN:16,setCompleted +FNF:2 +FNH:0 +FNDA:0,restricted +FNDA:0,setCompleted +DA:9,0 +DA:13,0 +DA:17,0 +LF:3 +LH:0 +BRDA:9,1,0,0 +BRDA:9,1,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:/home/brenda/projects/bsc/tellorAccess/contracts/TellorAccess.sol +FN:9,add +FN:16,sub +FN:20,sub +FN:28,mul +FN:42,div +FN:46,div +FN:54,mod +FN:58,mod +FN:78,constructor +FN:86,onlyAdmin +FN:94,onlyReporter +FN:102,addAdmin +FN:110,addReporter +FN:117,removeReporter +FN:124,renounceAdmin +FN:131,isAdmin +FN:138,isReporter +FN:147,submitValue +FN:161,retrieveData +FN:171,getNewValueCountbyRequestId +FN:181,getTimestampbyRequestIDandIndex +FNF:21 +FNH:8 +FNDA:0,add +FNDA:0,sub +FNDA:0,sub +FNDA:0,mul +FNDA:0,div +FNDA:0,div +FNDA:0,mod +FNDA:0,mod +FNDA:4,constructor +FNDA:4,onlyAdmin +FNDA:0,onlyReporter +FNDA:0,addAdmin +FNDA:2,addReporter +FNDA:0,removeReporter +FNDA:0,renounceAdmin +FNDA:11,isAdmin +FNDA:9,isReporter +FNDA:9,submitValue +FNDA:1,retrieveData +FNDA:0,getNewValueCountbyRequestId +FNDA:1,getTimestampbyRequestIDandIndex +DA:10,0 +DA:11,0 +DA:13,0 +DA:17,0 +DA:21,0 +DA:22,0 +DA:24,0 +DA:32,0 +DA:33,0 +DA:36,0 +DA:37,0 +DA:39,0 +DA:43,0 +DA:47,0 +DA:48,0 +DA:51,0 +DA:55,0 +DA:59,0 +DA:60,0 +DA:79,4 +DA:80,4 +DA:87,4 +DA:88,2 +DA:95,0 +DA:96,0 +DA:103,0 +DA:111,2 +DA:118,0 +DA:125,0 +DA:132,11 +DA:139,9 +DA:148,9 +DA:149,3 +DA:150,3 +DA:151,3 +DA:162,1 +DA:172,0 +DA:182,1 +DA:183,1 +DA:184,1 +LF:40 +LH:15 +BRDA:11,1,0,0 +BRDA:11,1,1,0 +BRDA:21,2,0,0 +BRDA:21,2,1,0 +BRDA:32,3,0,0 +BRDA:32,3,1,0 +BRDA:37,4,0,0 +BRDA:37,4,1,0 +BRDA:47,5,0,0 +BRDA:47,5,1,0 +BRDA:59,6,0,0 +BRDA:59,6,1,0 +BRDA:87,7,0,2 +BRDA:87,7,1,2 +BRDA:95,8,0,0 +BRDA:95,8,1,0 +BRDA:148,9,0,3 +BRDA:148,9,1,6 +BRDA:183,10,0,0 +BRDA:183,10,1,1 +BRF:20 +BRH:5 +end_of_record diff --git a/coverage/prettify.css b/coverage/prettify.css new file mode 100644 index 0000000..b317a7c --- /dev/null +++ b/coverage/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/coverage/prettify.js b/coverage/prettify.js new file mode 100644 index 0000000..ef51e03 --- /dev/null +++ b/coverage/prettify.js @@ -0,0 +1 @@ +window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/coverage/sort-arrow-sprite.png b/coverage/sort-arrow-sprite.png new file mode 100644 index 0000000..03f704a Binary files /dev/null and b/coverage/sort-arrow-sprite.png differ diff --git a/coverage/sorter.js b/coverage/sorter.js new file mode 100644 index 0000000..6c5034e --- /dev/null +++ b/coverage/sorter.js @@ -0,0 +1,158 @@ +var addSorting = (function () { + "use strict"; + var cols, + currentSort = { + index: 0, + desc: false + }; + + // returns the summary table element + function getTable() { return document.querySelector('.coverage-summary'); } + // returns the thead element of the summary table + function getTableHeader() { return getTable().querySelector('thead tr'); } + // returns the tbody element of the summary table + function getTableBody() { return getTable().querySelector('tbody'); } + // returns the th element for nth column + function getNthColumn(n) { return getTableHeader().querySelectorAll('th')[n]; } + + // loads all columns + function loadColumns() { + var colNodes = getTableHeader().querySelectorAll('th'), + colNode, + cols = [], + col, + i; + + for (i = 0; i < colNodes.length; i += 1) { + colNode = colNodes[i]; + col = { + key: colNode.getAttribute('data-col'), + sortable: !colNode.getAttribute('data-nosort'), + type: colNode.getAttribute('data-type') || 'string' + }; + cols.push(col); + if (col.sortable) { + col.defaultDescSort = col.type === 'number'; + colNode.innerHTML = colNode.innerHTML + ''; + } + } + return cols; + } + // attaches a data attribute to every tr element with an object + // of data values keyed by column name + function loadRowData(tableRow) { + var tableCols = tableRow.querySelectorAll('td'), + colNode, + col, + data = {}, + i, + val; + for (i = 0; i < tableCols.length; i += 1) { + colNode = tableCols[i]; + col = cols[i]; + val = colNode.getAttribute('data-value'); + if (col.type === 'number') { + val = Number(val); + } + data[col.key] = val; + } + return data; + } + // loads all row data + function loadData() { + var rows = getTableBody().querySelectorAll('tr'), + i; + + for (i = 0; i < rows.length; i += 1) { + rows[i].data = loadRowData(rows[i]); + } + } + // sorts the table using the data for the ith column + function sortByIndex(index, desc) { + var key = cols[index].key, + sorter = function (a, b) { + a = a.data[key]; + b = b.data[key]; + return a < b ? -1 : a > b ? 1 : 0; + }, + finalSorter = sorter, + tableBody = document.querySelector('.coverage-summary tbody'), + rowNodes = tableBody.querySelectorAll('tr'), + rows = [], + i; + + if (desc) { + finalSorter = function (a, b) { + return -1 * sorter(a, b); + }; + } + + for (i = 0; i < rowNodes.length; i += 1) { + rows.push(rowNodes[i]); + tableBody.removeChild(rowNodes[i]); + } + + rows.sort(finalSorter); + + for (i = 0; i < rows.length; i += 1) { + tableBody.appendChild(rows[i]); + } + } + // removes sort indicators for current column being sorted + function removeSortIndicators() { + var col = getNthColumn(currentSort.index), + cls = col.className; + + cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); + col.className = cls; + } + // adds sort indicators for current column being sorted + function addSortIndicators() { + getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted'; + } + // adds event listeners for all sorter widgets + function enableUI() { + var i, + el, + ithSorter = function ithSorter(i) { + var col = cols[i]; + + return function () { + var desc = col.defaultDescSort; + + if (currentSort.index === i) { + desc = !currentSort.desc; + } + sortByIndex(i, desc); + removeSortIndicators(); + currentSort.index = i; + currentSort.desc = desc; + addSortIndicators(); + }; + }; + for (i =0 ; i < cols.length; i += 1) { + if (cols[i].sortable) { + // add the click event handler on the th so users + // dont have to click on those tiny arrows + el = getNthColumn(i).querySelector('.sorter').parentElement; + if (el.addEventListener) { + el.addEventListener('click', ithSorter(i)); + } else { + el.attachEvent('onclick', ithSorter(i)); + } + } + } + } + // adds sorting functionality to the UI + return function () { + if (!getTable()) { + return; + } + cols = loadColumns(); + loadData(cols); + addSortIndicators(); + enableUI(); + }; +})(); + +window.addEventListener('load', addSorting); diff --git a/hardhat.config.js b/hardhat.config.js index 32c45ad..a631377 100644 --- a/hardhat.config.js +++ b/hardhat.config.js @@ -80,38 +80,38 @@ module.exports = { }, networks: { - hardhat: { - accounts: { - mnemonic: - "nick lucian brenda kevin sam fiscal patch fly damp ocean produce wish", - count: 40, - }, - allowUnlimitedContractSize: true, - }, - rinkeby: { - url: `${process.env.NODE_URL_RINKEBY}`, - accounts: [process.env.RINKEBY_ETH_PK], - gas: 10000000 , - gasPrice: 190000000000 - }, + // hardhat: { + // accounts: { + // mnemonic: + // "nick lucian brenda kevin sam fiscal patch fly damp ocean produce wish", + // count: 40, + // }, + // allowUnlimitedContractSize: true, + // }, + // rinkeby: { + // url: `${process.env.NODE_URL_RINKEBY}`, + // accounts: [process.env.RINKEBY_ETH_PK], + // gas: 10000000 , + // gasPrice: 190000000000 + // }, // mainnet: { // url: `${process.env.NODE_URL_MAINNET}`, // accounts: [process.env.ETH_PK], // gas: 12000000 , // gasPrice: 190000000000 // } , - bsc_testnet: { - url: "https://data-seed-prebsc-1-s1.binance.org:8545", - chainId: 97, - gasPrice: 20000000000, - accounts: [process.env.BSC_PK] - }, - bsc: { - url: "https://bsc-dataseed.binance.org/", - chainId: 56, - gasPrice: 20000000000, - accounts: [process.env.BSC_PK] - } + // bsc_testnet: { + // url: "https://data-seed-prebsc-1-s1.binance.org:8545", + // chainId: 97, + // gasPrice: 20000000000, + // accounts: [process.env.BSC_PK] + // }, + // bsc: { + // url: "https://bsc-dataseed.binance.org/", + // chainId: 56, + // gasPrice: 20000000000, + // accounts: [process.env.BSC_PK] + // } }, etherscan: { // Your API key for Etherscan diff --git a/test/AccessTest.js b/test/AccessTest.js index e574e9a..a14be97 100644 --- a/test/AccessTest.js +++ b/test/AccessTest.js @@ -6,14 +6,9 @@ contract("TellorAccess Tests", function(accounts) { beforeEach("Setup contract for each test", async function() { //Could use the getV25(accounts, true), since you're upgrading in the first line of tests. I added full tips to getV25 in testLib already - master = await Tellor.new("Tellor","TRBP"); - }); - it("Get Symbol and decimals", async function() { - let symbol = await master.symbol() - assert.equal(symbol, "TRBP", "the Symbol should be TT"); - data3 = await master.decimals(); - assert(data3 - 0 == 18); + master = await Tellor.new(); }); + it("Owner should be able to add data", async function() { //console.log(accounts[0],accounts[1]) await helper.expectThrow( @@ -30,27 +25,10 @@ contract("TellorAccess Tests", function(accounts) { master.submitValue(1,200, { from: accounts[1] }) }); - it("Owner should be able to dispute data", async function() { - master.submitValue(1,200, { from: accounts[0] }) - time = await master.getTimestampbyRequestIDandIndex(1,0); - await helper.expectThrow( - master.disputeValue(1,time, { from: accounts[2] }) - ); - master.disputeValue(1,time, { from: accounts[0] }) - }); - - it("Reporter should be able to dispute data", async function() { - await master.addReporter(accounts[1]) - master.submitValue(1,200, { from: accounts[1] }) - time = await master.getTimestampbyRequestIDandIndex(1,0); - await helper.expectThrow( - master.disputeValue(1,time, { from: accounts[2] }) - ); - master.disputeValue(1,time, { from: accounts[1] }) - }); - it("Anyone can retreive data", async function() { + + it("Anyone can retrieve data", async function() { await master.addReporter(accounts[1]) await helper.expectThrow( master.submitValue(1,200, { from: accounts[2] }) @@ -60,13 +38,7 @@ contract("TellorAccess Tests", function(accounts) { value = await master.retrieveData(1,time, { from: accounts[2] }); assert(value == 200, "value not correct or retreived.") }); - it("Anyone with TRB can tip data", async function() { - await master.addReporter(accounts[1]) - await master.faucet(accounts[3] ) - res = await master.addTip(web3.utils.toWei("100", "ether") ,1,{ from: accounts[3] } ) - //console.log(res.logs["1"].data, res[2]) - //check event log ? - }); + //////ExpectTrow not working it("Only admin should be able to add a reporter", async function() { @@ -76,11 +48,6 @@ contract("TellorAccess Tests", function(accounts) { ) }); - it("Can't tip without having TRB", async function() { - //this fails as expected but expectThrow doesn't work - await helper.expectThrow( - master.addTip(web3.utils.toWei("100", "ether") ,1,{ from: accounts[3] } ) - ) - }); + }) \ No newline at end of file