UNPKG

@q-dev/gdk-sdk

Version:

Typescript Library to interact with GDK Contracts

549 lines 62.8 kB
{ "_format": "hh-sol-artifact-1", "contractName": "DAOMemberStorage", "sourceName": "contracts/DAO/DAOMemberStorage.sol", "abi": [ { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "previousAdmin", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "AdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "beacon", "type": "address" } ], "name": "BeaconUpgraded", "type": "event" }, { "anonymous": false, "inputs": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "member", "type": "address" }, { "indexed": false, "internalType": "string", "name": "group", "type": "string" } ], "name": "MemberAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "member", "type": "address" }, { "indexed": false, "internalType": "string", "name": "group", "type": "string" } ], "name": "MemberRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "inputs": [], "name": "CANDIDATE_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DAO_MEMBER_STORAGE_RESOURCE", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "targetPanel_", "type": "string" }, { "internalType": "string", "name": "resource_", "type": "string" }, { "internalType": "address[]", "name": "initMembers_", "type": "address[]" } ], "name": "__DAOMemberStorage_init", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "__EIP712Domain_init", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "member_", "type": "address" } ], "name": "addMember", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account_", "type": "address" }, { "internalType": "string", "name": "permission_", "type": "string" } ], "name": "checkPermission", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "candidate_", "type": "address" }, { "internalType": "bytes32", "name": "nonce_", "type": "bytes32" } ], "name": "getCandidateHash", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getGroup", "outputs": [ { "internalType": "string[]", "name": "", "type": "string[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getInjector", "outputs": [ { "internalType": "address", "name": "injector_", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getMembers", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getMembersCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getMessage", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getResource", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "implementation", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "member_", "type": "address" } ], "name": "isMember", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "permissionManager", "outputs": [ { "internalType": "contract PermissionManager", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proxiableUUID", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "member_", "type": "address" } ], "name": "removeMember", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "members_", "type": "address[]" } ], "name": "removeMembers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "registryAddress_", "type": "address" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "setDependencies", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "injector_", "type": "address" } ], "name": "setInjector", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "signer_", "type": "address" }, { "internalType": "bytes", "name": "signature_", "type": "bytes" }, { "internalType": "bytes32", "name": "nonce_", "type": "bytes32" } ], "name": "submitSignature", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "targetPanel", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" } ], "name": "upgradeTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "upgradeToAndCall", "outputs": [], "stateMutability": "payable", "type": "function" } ], "bytecode": "0x60a080604052346100315730608052613200908161003782396080518181816112690152818161132d01526117b40152f35b600080fdfe60406080815260048036101561001457600080fd5b600091823560e01c806301febdaa14611b6357806301ffc9a714611ade57806309772f8f14611ac057806309914cba14611aa25780630b1ca49a14611a755780632301cb1914611a455780633659cfe61461178e5780633e3b5b19146117585780633f8ad44b1461171d57806346ee84b0146116ad5780634b79c074146116745780634f1ef2861461131657806352d1902d146112545780635c60da1b1461121e578063691304511461118657806384b0196e14610faf5780638cb941cc14610f7a5780639eab525314610ec1578063a230c52414610e87578063bb65dc83146108ee578063c8219c6114610ab2578063ca6d56dc146109c1578063cc7a204914610998578063ce6d41de1461097a578063d8ad4e1c14610927578063e9ff965f146108ee5763f06879571461014957600080fd5b346108ea5760603660031901126108ea576001600160401b0382358181116108e6576101789036908501611dfb565b60249182358181116108e2576101919036908701611dfb565b916044358281116108de576101a99036908801612156565b9387549660ff8860081c1615958680976108d1575b80156108ba575b1561086157600198878a60ff198316178c55610850575b508551156107f55783518581116105a157806101f9600254611e42565b95601f96878111610796575b506020908d888411600114610729579261071e575b5050600019600383901b1c1916908a1b176002555b85518581116105a1579089916102458354611e42565b8681116106c8575b506020868211600114610658578c908261064d575b50600019600383901b1c191690831b1782555b8a825b61061a575b50506003548851631082599b60e31b81526001600160a01b039792508b916020908290869082908c165afa9081156106105782916105e1575b50838a518099819363054fd4d560e41b8352165afa9586156105d7578a966105b3575b5080518581116105a157806000805160206130f4833981519152926102fe8454611e42565b878111610543575b506020908d8884116001146104d857926104cd575b5050600019600383901b1c1916908a1b1790555b84519384116104bc5750508190600080516020613114833981519152936103568554611e42565b82811161045f575b5060209183116001146103f45788926103e9575b5050600019600383901b1c191690851b1790555b8360008051602061313483398151915255836000805160206131b4833981519152556103b0578280f35b825461ff0019168355519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a138808280f35b015190503880610372565b8489528793506000805160206131d48339815191529190601f1984168a5b8181106104475750841161042e575b505050811b019055610386565b015160001960f88460031b161c19169055388080610421565b8284015185558a969094019360209384019301610412565b909192508489526000805160206131d48339815191528380860160051c820192602087106104b3575b9186958b929594930160051c01915b8281106104a557505061035e565b8b81558695508a9101610497565b92508192610488565b634e487b7160e01b89526041905287fd5b01519050388061031b565b91908d9450601f198416868452600080516020613154833981519152935b81811061052b57508411610512575b505050811b01905561032f565b015160001960f88460031b161c19169055388080610505565b8284015185558f9690940193602093840193016104f6565b909150838d526000805160206131548339815191528780850160051c82019260208610610598575b859493910160051c909101908d908f5b83821061058a57505050610306565b81558594508e91018f61057b565b9250819261056b565b634e487b7160e01b8b5260418352838bfd5b6105d09196503d808c833e6105c88183611dbf565b81019061250c565b94386102d9565b88513d8c823e3d90fd5b610603915060203d602011610609575b6105fb8183611dbf565b8101906122af565b386102b6565b503d6105f1565b8a513d84823e3d90fd5b81518110156106485782906106416001600160a01b0361063a83866124f8565b5116612a55565b0182610278565b61027d565b905088015138610262565b838d52601f19821693929190600080516020613194833981519152908e5b8b8782106106b157505082859695949510610698575b5050811b018255610275565b8a015160001960f88460031b161c19169055388061068c565b82015183558e959092019160209182019101610676565b9091928c526000805160206131948339815191528680840160051c82019260208510610715575b908d95949392910160051c01905b81811061070a575061024d565b8d81558c94016106fd565b925081926106ef565b01519050388061021a565b91908d9450601f198416600284526000805160206130b4833981519152935b81811061077e57508411610765575b505050811b0160025561022f565b015160001960f88460031b161c19169055388080610757565b8284015185558f969094019360209384019301610748565b90915060028d526000805160206130b48339815191528780850160051c820192602086106107ec575b859493910160051c909101908d908f5b8382106107de57505050610205565b81558594508e91018f6107cf565b925081926107bf565b506030608492602089519362461bcd60e51b85528401528201527f5b5147444b2d3030343030355d2d546865207265736f75726365206e616d652060448201526f31b0b73737ba1031329032b6b83a3c9760811b6064820152fd5b61ffff1916610101178a55386101dc565b50602e608492602089519362461bcd60e51b85528401528201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152fd5b50303b1580156101c55750600160ff8a16146101c5565b50600160ff8a16106101be565b8780fd5b8680fd5b8480fd5b8280fd5b83823461092357816003193601126109235761091f9061090c611ff4565b9051918291602083526020830190612131565b0390f35b5080fd5b5090346108ea57816003193601126108ea57610941611d0f565b92602435906001600160401b03821161097757509261096861096e92602095369101611dfb565b9061266d565b90519015158152f35b80fd5b83823461092357816003193601126109235761091f9061090c61256a565b83823461092357816003193601126109235760035490516001600160a01b039091168152602090f35b5090346108ea5760203660031901126108ea576109dc611d0f565b916109ed6109e861226b565b6127bd565b6001600160a01b038316328114908115610a93575b5015610a155783610a1284612a55565b80f35b90602060a492519162461bcd60e51b8352820152604c60248201527f5b5147444b2d3030343030315d2d5468652063616e6469646174652073686f7560448201527f6c6420626520746865206f6e652077686f20696e69746961746573207468652060648201526b3a3930b739b0b1ba34b7b71760a11b6084820152fd5b90508452600660205280842043855260205260ff818520541638610a02565b50919034610923578160031936011261092357610acd611f30565b51610e25576003548351631082599b60e31b8152602092916001600160a01b039190849082908590829086165afa908115610e1b579085918291610dfe575b508387518094819363054fd4d560e41b8352165afa948515610df557508394610dd9575b50610b39611ff4565b8051916001600160401b0392838111610dc6576000805160206130f48339815191529080610b678354611e42565b94601f95868111610d6e575b508790868311600114610cff578992610cf4575b50508160011b916000199060031b1c19161790555b8551928311610ce1575060008051602061311483398151915292610bc08454611e42565b828111610c95575b5080918311600114610c255750839482939492610c1a575b50508160011b916000199060031b1c19161790555b8060008051602061313483398151915255806000805160206131b48339815191525580f35b015190503880610be0565b838552601f198316956000805160206131d4833981519152929186905b888210610c7d57505083600195969710610c64575b505050811b019055610bf5565b015160001960f88460031b161c19169055388080610c57565b80600185968294968601518155019501930190610c42565b8486526000805160206131d48339815191528380860160051c820192848710610cd8575b0160051c01905b818110610ccd5750610bc8565b868155600101610cc0565b92508192610cb9565b634e487b7160e01b855260419052602484fd5b015190503880610b87565b848a526000805160206131548339815191529250601f1984168a5b8a828210610d58575050908460019594939210610d3f575b505050811b019055610b9c565b015160001960f88460031b161c19169055388080610d32565b6001859682939686015181550195019301610d1a565b9091508389526000805160206131548339815191528680850160051c8201928a8610610dbd575b9085949392910160051c01905b818110610daf5750610b73565b8a8155849350600101610da2565b92508192610d95565b634e487b7160e01b865260418252602486fd5b610dee9194503d8085833e6105c88183611dbf565b9238610b30565b513d85823e3d90fd5b610e159150853d8711610609576105fb8183611dbf565b38610b0c565b86513d87823e3d90fd5b608490602084519162461bcd60e51b8352820152603660248201527f5b5147444b2d3030343030325d2d54686520646f6d61696e2068617320616c7260448201527532b0b23c903132b2b71034b734ba34b0b634bd32b21760511b6064820152fd5b8382346109235760203660031901126109235760209181906001600160a01b03610eaf611d0f565b16815260058452205415159051908152f35b5091346109775780600319360112610977579190815192838254808652602080960190819484527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90845b818110610f665750505081610f22910382611dbf565b83519485948186019282875251809352850193925b828110610f4657505050500390f35b83516001600160a01b031685528695509381019392810192600101610f37565b825484529288019260019283019201610f0c565b833461097757602036600319011261097757610f94611d0f565b610f9c6129db565b6000805160206130d48339815191525580f35b5091903461092357816003193601126109235760008051602061313483398151915254158061116f575b156111345750610fe7611f30565b908251908093600080516020613114833981519152908382549661100a88611e42565b808352602094600199866001821691826000146111125750506001146110c1575b50506110799291611040919896980388611dbf565b80519661104c88611d53565b84885261106c825197600f60f81b895260e0868a015260e0890190612131565b9187830390880152612131565b904660608601523060808601528260a086015284820360c08601528080875193848152019601925b8281106110ae5785870386f35b83518752958101959281019284016110a1565b8652859392508691508490896000805160206131d48339815191525b8287106110f85750939492935050908201018161104061102b565b80548a8801850152929095019488935086928b91016110dd565b60ff19168682015292151560051b85019092019250839150611040905061102b565b606490602084519162461bcd60e51b835282015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152fd5b506000805160206131b48339815191525415610fd9565b50346108ea5761119536612229565b509161119f6129db565b81516309a06df560e41b81526001600160a01b03939091602091839190829087165afa918215610df5575083916111ff575b50166bffffffffffffffffffffffff60a01b6003541617600355336000805160206130d48339815191525580f35b611218915060203d602011610609576105fb8183611dbf565b386111d1565b8382346109235781600319360112610923576000805160206131748339815191525490516001600160a01b039091168152602090f35b509134610977578060031936011261097757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036112ae57602082516000805160206131748339815191528152f35b6020608492519162461bcd60e51b8352820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152fd5b5061132036612229565b90916001600160a01b03917f0000000000000000000000000000000000000000000000000000000000000000831661135a30821415612413565b611377600080516020613174833981519152918583541614612474565b83600354169383518095631082599b60e31b8252818960209889935afa90811561164d57829187918b91611657575b5089875180948193633441847f60e21b8352165afa90811561164d579082918a91611630575b501633036115dc577f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561140d575050505050610a129150612b4d565b8592939495169084516352d1902d60e01b815286818981865afa8991816115a9575b5061148e57855162461bcd60e51b8152808901889052602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b969192949593960361155457509085916114a784612b4d565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a284511580159061154c575b6114e3575b505050505080f35b611541948291660819985a5b195960ca1b86519661150088611d6e565b602788527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c8389015287015281519101845af461153b612b1d565b91613016565b5038808083816114db565b5060016114d6565b845162461bcd60e51b8152908101839052602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608490fd5b9091508781813d83116115d5575b6115c18183611dbf565b810103126115d15751903861142f565b8980fd5b503d6115b7565b835162461bcd60e51b8152808801869052602860248201527f5b5147444b2d3030363030355d2d4e6f7420617574686f72697a656420746f206044820152673ab833b930b2329760c11b6064820152608490fd5b6116479150873d8911610609576105fb8183611dbf565b386113cc565b85513d8b823e3d90fd5b61166e9150823d8411610609576105fb8183611dbf565b386113a6565b83823461092357816003193601126109235761091f9061169a611695611e7c565b61292b565b90519182916020835260208301906121cc565b505034610923576020366003190112610923578035906001600160401b0382116108ea576116dd91369101612156565b906116e96109e861228d565b805b8251811015611719576001906117136001600160a01b0361170c83876124f8565b5116612871565b016116eb565b5080f35b838234610923578160031936011261092357602090517f3c1c9ce4ba64dd9295f57f2c12ee370bbfecde21f2138f7c9b8fb63b1cd304d58152f35b8382346109235781600319360112610923576000805160206130d48339815191525490516001600160a01b039091168152602090f35b50346108ea57602080600319360112611a41576117a9611d0f565b916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166117e130821415612413565b6117fe600080516020613174833981519152918383541614612474565b85848360035416855192838092631082599b60e31b82525afa908115611a1a57839186918a91611a24575b5088865180948193633441847f60e21b8352165afa908115611a1a5790839189916119fd575b501633036119a95782519161186383611d53565b8783527f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561189f575050505050610a129150612b4d565b8592939495169084516352d1902d60e01b815286818981865afa89918161197a575b5061192057855162461bcd60e51b8152808901889052602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b9691929495939603611554575090859161193984612b4d565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2845115801590611973576114e357505050505080f35b50816114d6565b9091508781813d83116119a2575b6119928183611dbf565b810103126115d1575190386118c1565b503d611988565b825162461bcd60e51b8152808701859052602860248201527f5b5147444b2d3030363030355d2d4e6f7420617574686f72697a656420746f206044820152673ab833b930b2329760c11b6064820152608490fd5b611a149150863d8811610609576105fb8183611dbf565b3861184f565b84513d8a823e3d90fd5b611a3b9150823d8411610609576105fb8183611dbf565b38611829565b8380fd5b838234610923578060031936011261092357602090611a6e611a65611d0f565b602435906122ce565b9051908152f35b833461097757602036600319011261097757610a12611a92611d0f565b611a9d6109e861228d565b612871565b83823461092357816003193601126109235761091f9061090c611e7c565b5090346108ea57826003193601126108ea5760209250549051908152f35b5090346108ea5760203660031901126108ea57359063ffffffff60e01b82168092036108ea576020925062ff5ed560e11b8214918215611b52575b8215611b41575b8215611b30575b50519015158152f35b6301ffc9a760e01b14915038611b27565b6363c8929f60e01b81149250611b20565b631598391760e01b81149250611b19565b5090346108ea5760603660031901126108ea57611b7e611d0f565b906024356001600160401b0381116108e657611b9d9036908301611dfb565b611ba86109e861226b565b611bb4604435846122ce565b611bbe8282612ae5565b6005819492941015611cfc57908791159384611ce6575b508315611c53575b50505015611c1057506001600160a01b031682526006602090815281832043845290528120805460ff1916600117905580f35b606490602084519162461bcd60e51b8352820152602060248201527f5b5147444b2d3030343030345d2d496e76616c6964207369676e61747572652e6044820152fd5b819293508651611c9481611c866020820194630b135d3f60e11b9889875260248401528b60448401526064830190612131565b03601f198101835282611dbf565b5190865afa90611ca2612b1d565b82611cd8575b82611cb8575b5050388581611bdd565b909150602081805181010312611cd45760200151143880611cae565b8580fd5b915060208251101591611ca8565b6001600160a01b03878116911614935038611bd5565b634e487b7160e01b885260218552602488fd5b600435906001600160a01b0382168203611d2557565b600080fd5b6001600160401b038111611d3d57604052565b634e487b7160e01b600052604160045260246000fd5b602081019081106001600160401b03821117611d3d57604052565b606081019081106001600160401b03821117611d3d57604052565b604081019081106001600160401b03821117611d3d57604052565b60c081019081106001600160401b03821117611d3d57604052565b90601f801991011681019081106001600160401b03821117611d3d57604052565b6001600160401b038111611d3d57601f01601f191660200190565b81601f82011215611d2557803590611e1282611de0565b92611e206040519485611dbf565b82845260208383010111611d2557816000926020809301838601378301015290565b90600182811c92168015611e72575b6020831014611e5c57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611e51565b6040519060008260025491611e9083611e42565b80835292602090600190818116908115611f0c5750600114611ebd575b5050611ebb92500383611dbf565b565b91509260026000526000805160206130b4833981519152936000925b828410611ef45750611ebb9450505081016020013880611ead565b85548885018301529485019487945092810192611ed9565b91505060209250611ebb94915060ff191682840152151560051b8201013880611ead565b604051906000826000805160206130f483398151915291825492611f5384611e42565b80845293602091600191828116908115611fce5750600114611f7f575b505050611ebb92500383611dbf565b60009081526000805160206131548339815191529590935091905b828410611fb65750611ebb945050508101602001388080611f70565b85548885018301529485019487945092810192611f9a565b9250505060209250611ebb94915060ff191682840152151560051b820101388080611f70565b6040519060008260019160015461200a81611e42565b8084529360209160018116908115611f0c5750600114612032575050611ebb92500383611dbf565b9150926001600052600080516020613194833981519152936000925b8284106120695750611ebb9450505081016020013880611ead565b8554888501830152948501948794509281019261204e565b604051906000826002549161209583611e42565b80835292602090600190818116908115611f0c57506001146120bf575050611ebb92500383611dbf565b91509260026000526000805160206130b4833981519152936000925b8284106120f65750611ebb9450505081016020013880611ead565b855488850183015294850194879450928101926120db565b60005b8381106121215750506000910152565b8181015183820152602001612111565b9060209161214a8151809281855285808601910161210e565b601f01601f1916010190565b81601f82011215611d25578035916020916001600160401b038411611d3d578360051b906040519461218a85840187611dbf565b85528380860192820101928311611d25578301905b8282106121ad575050505090565b81356001600160a01b0381168103611d2557815290830190830161219f565b90808251908181526020809101926020808460051b8301019501936000915b8483106121fb5750505050505090565b9091929394958480612219600193601f198682030187528a51612131565b98019301930191949392906121eb565b906040600319830112611d25576004356001600160a01b0381168103611d255791602435906001600160401b038211611d255761226891600401611dfb565b90565b6040519061227882611d89565b600682526543524541544560d01b6020830152565b6040519061229a82611d89565b600682526544454c45544560d01b6020830152565b90816020910312611d2557516001600160a01b0381168103611d255790565b60035460408051631082599b60e31b8152949390926020926001600160a01b03929084908890600490829087165afa92831561240857604296976000946123e9575b5061231961256a565b8581519101209086519381878601967f3c1c9ce4ba64dd9295f57f2c12ee370bbfecde21f2138f7c9b8fb63b1cd304d588521688860152166060840152608083015260a082015260a0815261236d81611da4565b51902090612379612e0f565b90612382612f25565b8451918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f84528583015260608201524660808201523060a082015260a081526123cd81611da4565b51902091519161190160f01b8352600283015260228201522090565b612401919450853d8711610609576105fb8183611dbf565b9238612310565b85513d6000823e3d90fd5b1561241a57565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608490fd5b1561247b57565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608490fd5b8051156124e25760200190565b634e487b7160e01b600052603260045260246000fd5b80518210156124e25760209160051b010190565b602081830312611d25578051906001600160401b038211611d25570181601f82011215611d2557805161253e81611de0565b9261254c6040519485611dbf565b81845260208284010111611d2557612268916020808501910161210e565b604051908160207f492061636365707420746f206265636f6d652061206d656d626572206f6620006020830152603f600091600254916125a983611e42565b9260019081811690811561264357506001146125ee575b50505050611ebb91816d1032bc3832b93a103830b732b61760911b600e935203601119810185520183611dbf565b90919294935060026000526000805160206130b48339815191526000905b86821061262d57505050505080603f611ebb93600e930101918193386125c0565b805489830185015288955090840190820161260c565b915050600e9450603f9250611ebb9593915060ff19168284015280151502820101918193386125c0565b600354604051633ca8e36d60e11b81526001600160a01b0392831660048201526060602482015260018054919493909216928492600092906126ae82611e42565b918260648701526084906001811690816000146127935750600114612746575b505050826126ec602095938293600319848303016044850152612131565b03915afa90811561273a57600091612702575090565b6020813d602011612732575b8161271b60209383611dbf565b810103126109235751908115158203610977575090565b3d915061270e565b6040513d6000823e3d90fd5b600160009081529394506000805160206131948339815191525b83851061277b5750505050820160840190826126ec816126ce565b80548986018301528896506020909401938201612760565b60ff191660848089019190915293151560051b870190930194508592506126ec91508290506126ce565b6127c7903361266d565b156127ce57565b60405162461bcd60e51b815260206004820152604d60248201527f5b5147444b2d3030343030305d2d5468652073656e646572206973206e6f742060448201527f616c6c6f77656420746f20706572666f726d2074686520616374696f6e2c206160648201526c31b1b2b9b9903232b734b2b21760991b608482015260a490fd5b6001600160a01b039091168152604060208201819052612268929101906121cc565b6001600160a01b038181169161288683612ca3565b50612892611695612081565b9160035416803b15611d2557826000916128c393836040518096819582946303fa423b60e21b84526004840161284f565b03925af1801561273a577f969f49cd69e4049f144b7dd012d53b6ef9064eca8bca1f4b30162ab52e04f5c192612917926129029261291c575b506124d5565b51604051918291602083526020830190612131565b0390a2565b61292590611d2a565b386128fc565b60405160209160208201908282106001600160401b03831117611d3d576035836129959284604052742220a7a2bc3832b93a2b37ba34b733a3b937bab81d60591b604083015261298581518092602060558601910161210e565b8101036015810184520182611dbf565b8152604051916129a483611d89565b6001835260005b8181106129cc575050516129be826124d5565b526129c8816124d5565b5090565b606084820183015281016129ab565b6000805160206130d4833981519152546001600160a01b03168015908115612a4b575b5015612a0657565b60405162461bcd60e51b815260206004820152601a60248201527f446570656e64616e743a206e6f7420616e20696e6a6563746f720000000000006044820152606490fd5b90503314386129fe565b6001600160a01b0381811691612a6a83612da4565b50612a76611695612081565b9160035416803b15611d255782600091612aa7938360405180968195829463a4fc6c2360e01b84526004840161284f565b03925af1801561273a577f5660dfedd5f2d238aa153a2c488e927eb29ea0e780d70089f0e90c7409a2079c92612917926129029261291c57506124d5565b906041815114600014612b1357612b0f916020820151906060604084015193015160001a90612bdd565b9091565b5050600090600290565b3d15612b48573d90612b2e82611de0565b91612b3c6040519384611dbf565b82523d6000602084013e565b606090565b803b15612b825760008051602061317483398151915280546001600160a01b0319166001600160a01b03909216919091179055565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311612c605791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa15612c535781516001600160a01b03811615612c4d579190565b50600190565b50604051903d90823e3d90fd5b50505050600090600390565b6004548110156124e25760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b6000818152600560205260408120549091908015612d9f5760001990808201818111612d8b5760045490838201918211612d7757808203612d2c575b5050506004548015612d1857810190612cf782612c6c565b909182549160031b1b19169055600455815260056020526040812055600190565b634e487b7160e01b84526031600452602484fd5b612d61612d3b612d4a93612c6c565b90549060031b1c928392612c6c565b819391549060031b91821b91600019901b19161790565b9055845260056020526040842055388080612cdf565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b600081815260056020526040812054612e0a5760045468010000000000000000811015612df6579082612de2612d4a84600160409601600455612c6c565b905560045492815260056020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b6040516000906000805160206130f48339815191529181835491612e3283611e42565b928383526020906020840196600191600181169081600014612f015750600114612eb2575b505050612e6692500382611dbf565b51908115612e72572090565b5050600080516020613134833981519152548015612e8d5790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b60009081526000805160206131548339815191529590935091905b828410612ee95750612e66945050508101602001388080612e57565b85548785018301529485019486945092810192612ecd565b9250505060209250612e6694915060ff19168652151560051b820101388080612e57565b6040516000906000805160206131148339815191529181835491612f4883611e42565b928383526020906020840196600191600181169081600014612ff25750600114612fa3575b505050612f7c92500382611dbf565b51908115612f88572090565b50506000805160206131b4833981519152548015612e8d5790565b60009081526000805160206131d48339815191529590935091905b828410612fda5750612f7c945050508101602001388080612f6d565b85548785018301529485019486945092810192612fbe565b9250505060209250612f7c94915060ff19168652151560051b820101388080612f6d565b91929015613078575081511561302a575090565b3b156130335790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b82519091501561308b5750805190602001fd5b60405162461bcd60e51b8152602060048201529081906130af906024830190612131565b0390fdfe405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace3d1f25f1ac447e55e7fec744471c4dab1c6a2b6ffb897825f9ea3d2e8c9be583a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10042ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75a164736f6c6343000818000a", "deployedBytecode": "0x60406080815260048036101561001457600080fd5b600091823560e01c806301febdaa14611b6357806301ffc9a714611ade57806309772f8f14611ac057806309914cba14611aa25780630b1ca49a14611a755780632301cb1914611a455780633659cfe61461178e5780633e3b5b19146117585780633f8ad44b1461171d57806346ee84b0146116ad5780634b79c074146116745780634f1ef2861461131657806352d1902d146112545780635c60da1b1461121e578063691304511461118657806384b0196e14610faf5780638cb941cc14610f7a5780639eab525314610ec1578063a230c52414610e87578063bb65dc83146108ee578063c8219c6114610ab2578063ca6d56dc146109c1578063cc7a204914610998578063ce6d41de1461097a578063d8ad4e1c14610927578063e9ff965f146108ee5763f06879571461014957600080fd5b346108ea5760603660031901126108ea576001600160401b0382358181116108e6576101789036908501611dfb565b60249182358181116108e2576101919036908701611dfb565b916044358281116108de576101a99036908801612156565b9387549660ff8860081c1615958680976108d1575b80156108ba575b1561086157600198878a60ff198316178c55610850575b508551156107f55783518581116105a157806101f9600254611e42565b95601f96878111610796575b506020908d888411600114610729579261071e575b5050600019600383901b1c1916908a1b176002555b85518581116105a1579089916102458354611e42565b8681116106c8575b506020868211600114610658578c908261064d575b50600019600383901b1c191690831b1782555b8a825b61061a575b50506003548851631082599b60e31b81526001600160a01b039792508b916020908290869082908c165afa9081156106105782916105e1575b50838a518099819363054fd4d560e41b8352165afa9586156105d7578a966105b3575b5080518581116105a157806000805160206130f4833981519152926102fe8454611e42565b878111610543575b506020908d8884116001146104d857926104cd575b5050600019600383901b1c1916908a1b1790555b84519384116104bc5750508190600080516020613114833981519152936103568554611e42565b82811161045f575b5060209183116001146103f45788926103e9575b5050600019600383901b1c191690851b1790555b8360008051602061313483398151915255836000805160206131b4833981519152556103b0578280f35b825461ff0019168355519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a138808280f35b015190503880610372565b8489528793506000805160206131d48339815191529190601f1984168a5b8181106104475750841161042e575b505050811b019055610386565b015160001960f88460031b161c19169055388080610421565b8284015185558a969094019360209384019301610412565b909192508489526000805160206131d48339815191528380860160051c820192602087106104b3575b9186958b929594930160051c01915b8281106104a557505061035e565b8b81558695508a9101610497565b92508192610488565b634e487b7160e01b89526041905287fd5b01519050388061031b565b91908d9450601f198416868452600080516020613154833981519152935b81811061052b57508411610512575b505050811b01905561032f565b015160001960f88460031b161c19169055388080610505565b8284015185558f9690940193602093840193016104f6565b909150838d526000805160206131548339815191528780850160051c82019260208610610598575b859493910160051c909101908d908f5b83821061058a57505050610306565b81558594508e91018f61057b565b9250819261056b565b634e487b7160e01b8b5260418352838bfd5b6105d09196503d808c833e6105c88183611dbf565b81019061250c565b94386102d9565b88513d8c823e3d90fd5b610603915060203d602011610609575b6105fb8183611dbf565b8101906122af565b386102b6565b503d6105f1565b8a513d84823e3d90fd5b81518110156106485782906106416001600160a01b0361063a83866124f8565b5116612a55565b0182610278565b61027d565b905088015138610262565b838d52601f19821693929190600080516020613194833981519152908e5b8b8782106106b157505082859695949510610698575b5050811b018255610275565b8a015160001960f88460031b161c19169055388061068c565b82015183558e959092019160209182019101610676565b9091928c526000805160206131948339815191528680840160051c82019260208510610715575b908d95949392910160051c01905b81811061070a575061024d565b8d81558c94016106fd565b925081926106ef565b01519050388061021a565b91908d9450601f198416600284526000805160206130b4833981519152935b81811061077e57508411610765575b505050811b0160025561022f565b015160001960f88460031b161c19169055388080610757565b8284015185558f969094019360209384019301610748565b90915060028d526000805160206130b48339815191528780850160051c820192602086106107ec575b859493910160051c909101908d908f5b8382106107de57505050610205565b81558594508e91018f6107cf565b925081926107bf565b506030608492602089519362461bcd60e51b85528401528201527f5b5147444b2d3030343030355d2d546865207265736f75726365206e616d652060448201526f31b0b73737ba1031329032b6b83a3c9760811b6064820152fd5b61ffff1916610101178a55386101dc565b50602e608492602089519362461bcd60e51b85528401528201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152fd5b50303b1580156101c55750600160ff8a16146101c5565b50600160ff8a16106101be565b8780fd5b8680fd5b8480fd5b8280fd5b83823461092357816003193601126109235761091f9061090c611ff4565b9051918291602083526020830190612131565b0390f35b5080fd5b5090346108ea57816003193601126108ea57610941611d0f565b92602435906001600160401b03821161097757509261096861096e92602095369101611dfb565b9061266d565b90519015158152f35b80fd5b83823461092357816003193601126109235761091f9061090c61256a565b83823461092357816003193601126109235760035490516001600160a01b039091168152602090f35b5090346108ea5760203660031901126108ea576109dc611d0f565b916109ed6109e861226b565b6127bd565b6001600160a01b038316328114908115610a93575b5015610a155783610a1284612a55565b80f35b90602060a492519162461bcd60e51b8352820152604c60248201527f5b5147444b2d3030343030315d2d5468652063616e6469646174652073686f7560448201527f6c6420626520746865206f6e652077686f20696e69746961746573207468652060648201526b3a3930b739b0b1ba34b7b71760a11b6084820152fd5b90508452600660205280842043855260205260ff818520541638610a02565b50919034610923578160031936011261092357610acd611f30565b51610e25576003548351631082599b60e31b8152602092916001600160a01b039190849082908590829086165afa908115610e1b579085918291610dfe575b508387518094819363054fd4d560e41b8352165afa948515610df557508394610dd9575b50610b39611ff4565b8051916001600160401b0392838111610dc6576000805160206130f48339815191529080610b678354611e42565b94601f95868111610d6e575b508790868311600114610cff578992610cf4575b50508160011b916000199060031b1c19161790555b8551928311610ce1575060008051602061311483398151915292610bc08454611e42565b828111610c95575b5080918311600114610c255750839482939492610c1a575b50508160011b916000199060031b1c19161790555b8060008051602061313483398151915255806000805160206131b48339815191525580f35b015190503880610be0565b838552601f198316956000805160206131d4833981519152929186905b888210610c7d57505083600195969710610c64575b505050811b019055610bf5565b015160001960f88460031b161c19169055388080610c57565b80600185968294968601518155019501930190610c42565b8486526000805160206131d48339815191528380860160051c820192848710610cd8575b0160051c01905b818110610ccd5750610bc8565b868155600101610cc0565b92508192610cb9565b634e487b7160e01b855260419052602484fd5b015190503880610b87565b848a526000805160206131548339815191529250601f1984168a5b8a828210610d58575050908460019594939210610d3f575b505050811b019055610b9c565b015160001960f88460031b161c19169055388080610d32565b6001859682939686015181550195019301610d1a565b9091508389526000805160206131548339815191528680850160051c8201928a8610610dbd575b9085949392910160051c01905b818110610daf5750610b73565b8a8155849350600101610da2565b92508192610d95565b634e487b7160e01b865260418252602486fd5b610dee9194503d8085833e6105c88183611dbf565b9238610b30565b513d85823e3d90fd5b610e159150853d8711610609576105fb8183611dbf565b38610b0c565b86513d87823e3d90fd5b608490602084519162461bcd60e51b8352820152603660248201527f5b5147444b2d3030343030325d2d54686520646f6d61696e2068617320616c7260448201527532b0b23c903132b2b71034b734ba34b0b634bd32b21760511b6064820152fd5b8382346109235760203660031901126109235760209181906001600160a01b03610eaf611d0f565b16815260058452205415159051908152f35b5091346109775780600319360112610977579190815192838254808652602080960190819484527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90845b818110610f665750505081610f22910382611dbf565b83519485948186019282875251809352850193925b828110610f4657505050500390f35b83516001600160a01b031685528695509381019392810192600101610f37565b825484529288019260019283019201610f0c565b833461097757602036600319011261097757610f94611d0f565b610f9c6129db565b6000805160206130d48339815191525580f35b5091903461092357816003193601126109235760008051602061313483398151915254158061116f575b156111345750610fe7611f30565b908251908093600080516020613114833981519152908382549661100a88611e42565b808352602094600199866001821691826000146111125750506001146110c1575b50506110799291611040919896980388611dbf565b80519661104c88611d53565b84885261106c825197600f60f81b895260e0868a015260e0890190612131565b9187830390880152612131565b904660608601523060808601528260a086015284820360c08601528080875193848152019601925b8281106110ae5785870386f35b83518752958101959281019284016110a1565b8652859392508691508490896000805160206131d48339815191525b8287106110f85750939492935050908201018161104061102b565b80548a8801850152929095019488935086928b91016110dd565b60ff19168682015292151560051b85019092019250839150611040905061102b565b606490602084519162461bcd60e51b835282015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152fd5b506000805160206131b48339815191525415610fd9565b50346108ea5761119536612229565b509161119f6129db565b81516309a06df560e41b81526001600160a01b03939091602091839190829087165afa918215610df5575083916111ff575b50166bffffffffffffffffffffffff60a01b6003541617600355336000805160206130d48339815191525580f35b611218915060203d602011610609576105fb8183611dbf565b386111d1565b8382346109235781600319360112610923576000805160206131748339815191525490516001600160a01b039091168152602090f35b509134610977578060031936011261097757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036112ae57602082516000805160206131748339815191528152f35b6020608492519162461bcd60e51b8352820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152fd5b5061132036612229565b90916001600160a01b03917f0000000000000000000000000000000000000000000000000000000000000000831661135a30821415612413565b611377600080516020613174833981519152918583541614612474565b83600354169383518095631082599b60e31b8252818960209889935afa90811561164d57829187918b91611657575b5089875180948193633441847f60e21b8352165afa90811561164d579082918a91611630575b501633036115dc577f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561140d575050505050610a129150612b4d565b8592939495169084516352d1902d60e01b815286818981865afa8991816115a9575b5061148e57855162461bcd60e51b8152808901889052602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b969192949593960361155457509085916114a784612b4d565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a284511580159061154c575b6114e3575b505050505080f35b611541948291660819985a5b195960ca1b86519661150088611d6e565b602788527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c8389015287015281519101845af461153b612b1d565b91613016565b5038808083816114db565b5060016114d6565b845162461bcd60e51b8152908101839052602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608490fd5b9091508781813d83116115d5575b6115c18183611dbf565b810103126115d15751903861142f565b8980fd5b503d6115b7565b835162461bcd60e51b8152808801869052602860248201527f5b5147444b2d3030363030355d2d4e6f7420617574686f72697a656420746f206044820152673ab833b930b2329760c11b6064820152608490fd5b6116479150873d8911610609576105fb8183611dbf565b386113cc565b85513d8b823e3d90fd5b61166e9150823d8411610609576105fb8183611dbf565b386113a6565b83823461092357816003193601126109235761091f9061169a611695611e7c565b61292b565b90519182916020835260208301906121cc565b505034610923576020366003190112610923578035906001600160401b0382116108ea576116dd91369101612156565b906116e96109e861228d565b805b8251811015611719576001906117136001600160a01b0361170c83876124f8565b5116612871565b016116eb565b5080f35b838234610923578160031936011261092357602090517f3c1c9ce4ba64dd9295f57f2c12ee370bbfecde21f2138f7c9b8fb63b1cd304d58152f35b8382346109235781600319360112610923576000805160206130d48339815191525490516001600160a01b039091168152602090f35b50346108ea57602080600319360112611a41576117a9611d0f565b916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166117e130821415612413565b6117fe600080516020613174833981519152918383541614612474565b85848360035416855192838092631082599b60e31b82525afa908115611a1a57839186918a91611a24575b5088865180948193633441847f60e21b8352165afa908115611a1a5790839189916119fd575b501633036119a95782519161186383611d53565b8783527f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561189f575050505050610a129150612b4d565b8592939495169084516352d1902d60e01b815286818981865afa89918161197a575b5061192057855162461bcd60e51b8152808901889052602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b96919294959396036115