UNPKG

@gooddollar/goodprotocol

Version:
524 lines (523 loc) 41.6 kB
{ "_format": "hh-sol-artifact-1", "contractName": "InvitesFuseV2", "sourceName": "contracts/invite/InvitesFuseV2.sol", "abi": [ { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "inviter", "type": "address" }, { "indexed": true, "internalType": "address", "name": "invitee", "type": "address" } ], "name": "InviteeJoined", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "inviter", "type": "address" }, { "indexed": true, "internalType": "address", "name": "invitee", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "bountyPaid", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "inviterLevel", "type": "uint256" }, { "indexed": false, "internalType": "bool", "name": "earnedLevel", "type": "bool" } ], "name": "InviterBounty", "type": "event" }, { "inputs": [], "name": "active", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "avatar", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_invitee", "type": "address" } ], "name": "bountyFor", "outputs": [ { "internalType": "uint256", "name": "bounty", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_invitee", "type": "address" } ], "name": "canCollectBountyFor", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "codeToUser", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "collectBounties", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "end", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_inviter", "type": "address" } ], "name": "getInvitees", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_inviter", "type": "address" } ], "name": "getPendingBounties", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_inviter", "type": "address" } ], "name": "getPendingInvitees", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "goodDollar", "outputs": [ { "internalType": "contract cERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "identity", "outputs": [ { "internalType": "contract IIdentityV2", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "_avatar", "type": "address" }, { "internalType": "address", "name": "_identity", "type": "address" }, { "internalType": "address", "name": "_gd", "type": "address" }, { "internalType": "uint256", "name": "level0Bounty", "type": "uint256" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "_myCode", "type": "bytes32" }, { "internalType": "bytes32", "name": "_inviterCode", "type": "bytes32" } ], "name": "join", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "levelExpirationEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "levels", "outputs": [ { "internalType": "uint256", "name": "toNext", "type": "uint256" }, { "internalType": "uint256", "name": "bounty", "type": "uint256" }, { "internalType": "uint256", "name": "daysToComplete", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_active", "type": "bool" } ], "name": "setActive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IIdentityV2", "name": "_identity", "type": "address" } ], "name": "setIdentity", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_lvl", "type": "uint256" }, { "internalType": "uint256", "name": "_toNext", "type": "uint256" }, { "internalType": "uint256", "name": "_bounty", "type": "uint256" }, { "internalType": "uint256", "name": "_daysToComplete", "type": "uint256" } ], "name": "setLevel", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_isEnabled", "type": "bool" } ], "name": "setLevelExpirationEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "stats", "outputs": [ { "internalType": "uint256", "name": "totalApprovedInvites", "type": "uint256" }, { "internalType": "uint256", "name": "totalBountiesPaid", "type": "uint256" }, { "internalType": "uint256", "name": "totalInvited", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "users", "outputs": [ { "internalType": "address", "name": "invitedBy", "type": "address" }, { "internalType": "bytes32", "name": "inviteCode", "type": "bytes32" }, { "internalType": "bool", "name": "bountyPaid", "type": "bool" }, { "internalType": "uint256", "name": "level", "type": "uint256" }, { "internalType": "uint256", "name": "levelStarted", "type": "uint256" }, { "internalType": "uint256", "name": "totalApprovedInvites", "type": "uint256" }, { "internalType": "uint256", "name": "totalEarned", "type": "uint256" }, { "internalType": "uint256", "name": "joinedAt", "type": "uint256" }, { "internalType": "uint256", "name": "bountyAtJoin", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "version", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b50611de3806100206000396000f3fe608060405234801561001057600080fd5b50600436106101285760003560e01c806302fb0c5e1461012d578063119e5bf31461015657806321132aad146101765780632c159a1a1461018b57806341155d5e1461019e57806354fd4d50146101bf5780635aef7de6146101e45780635b419a65146101f75780635d5bf1781461020a5780636d619ef81461021d5780638da5cb5b14610230578063a1df6fd314610243578063a87430ba14610250578063acec338a1461030b578063af6346b01461031e578063b2596a6714610326578063b6567cd514610370578063b9fb2d1814610383578063ba6f568014610396578063cf756fdf146103bf578063d80528ae146103d2578063e951a3aa146103e4578063e9881a5e14610404578063efbe1c1c14610417575b600080fd5b60075461014190600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b600754610169906001600160a01b031681565b60405161014d91906118d3565b6101896101843660046118f8565b61041f565b005b600654610169906001600160a01b031681565b6101b16101ac366004611931565b61047a565b60405190815260200161014d565b604080518082018252600381526219171960e91b6020820152905161014d9190611972565b600354610169906001600160a01b031681565b6101896102053660046119a5565b610547565b610189610218366004611931565b61083d565b61014161022b366004611931565b61089e565b600554610169906001600160a01b031681565b6010546101419060ff1681565b6102b761025e366004611931565b6002602081905260009182526040909120805460018201549282015460058301546006840154600785015460088601546009870154600a909701546001600160a01b03909616979660ff90951695939492939192909189565b604080516001600160a01b03909a168a5260208a0198909852951515968801969096526060870193909352608086019190915260a085015260c084015260e08301919091526101008201526101200161014d565b6101896103193660046118f8565b610a88565b610189610ae5565b6103556103343660046119c7565b60046020526000908152604090208054600182015460029092015490919083565b6040805193845260208401929092529082015260600161014d565b6101b161037e366004611931565b610ce9565b6101896103913660046119e0565b610d7b565b6101696103a43660046119c7565b6001602052600090815260409020546001600160a01b031681565b6101896103cd366004611a12565b610dda565b600854600954600a5461035592919083565b6103f76103f2366004611931565b610f76565b60405161014d9190611a63565b6103f7610412366004611931565b611161565b6101896111da565b6005546001600160a01b031633148061044257506003546001600160a01b031633145b6104675760405162461bcd60e51b815260040161045e90611ab0565b60405180910390fd5b6010805460ff1916911515919091179055565b6001600160a01b0381166000908152600260209081526040808320600401805482518185028101850190935280835284938301828280156104e457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116104c6575b505050505090506000805b825181101561053f5761051a83828151811061050d5761050d611afc565b602002602001015161089e565b1561052d578161052981611b28565b9250505b8061053781611b28565b9150506104ef565b509392505050565b600754600160a01b900460ff166105705760405162461bcd60e51b815260040161045e90611b41565b6000828152600160205260409020546001600160a01b031615806105aa57506000828152600160205260409020546001600160a01b031633145b806105bd57506001600160a01b03821633145b6106065760405162461bcd60e51b815260206004820152601a602482015279696e7669746520636f646520616c726561647920696e2075736560301b604482015260640161045e565b8082036106255760405162461bcd60e51b815260040161045e90611b65565b336000908152600260209081526040808320848452600192839052922054908201546001600160a01b0390911690158061067a575081546001600160a01b031615801561067a57506001600160a01b03811615155b6106bc5760405162461bcd60e51b81526020600482015260136024820152721d5cd95c88185b1c9958591e481a9bda5b9959606a1b604482015260640161045e565b60018201546000036106fd5760018083018590554260068401819055600984015560008581526020919091526040902080546001600160a01b031916331790555b6001600160a01b038116156107e657336001600160a01b038216036107345760405162461bcd60e51b815260040161045e90611b65565b81546001600160a01b0382166001600160a01b0319918216811784556000908152600260209081526040822060038101805460018181018355918552838520018054861633908117909155600490920180548083018255908552928420909201805490941617909255600a80549091906107af908490611b8a565b90915550506001600160a01b03811660009081526002602090815260408083206005015483526004909152902060010154600a8301555b6107ef3361089e565b15610801576107ff336001611368565b505b60405133906001600160a01b038316907fd8c638d8979e2ba5dba1f0d66246ee4b1c54b838f0e0a2b601365345eb23b05190600090a350505050565b6005546001600160a01b031633148061086057506003546001600160a01b031633145b61087c5760405162461bcd60e51b815260040161045e90611ab0565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0380821660009081526002602081815260408084205490941680845284842060050154845260049091529282200154601054919291839060ff16151560011480156108f05750600082115b801561093b57506001600160a01b03808416600090815260026020526040808220600601549288168252902060090154620151809161092e91611b9d565b6109389190611bb0565b82105b90506001600160a01b0383161580159061097257506001600160a01b0385166000908152600260208190526040909120015460ff16155b80156109ea5750600654604051633af32abf60e01b81526001600160a01b0390911690633af32abf906109a99088906004016118d3565b602060405180830381865afa1580156109c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ea9190611bd2565b8015610a625750600654604051633af32abf60e01b81526001600160a01b0390911690633af32abf90610a219086906004016118d3565b602060405180830381865afa158015610a3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a629190611bd2565b8015610a75575046610a738661180b565b145b8015610a7f575080155b95945050505050565b6005546001600160a01b0316331480610aab57506003546001600160a01b031633145b610ac75760405162461bcd60e51b815260040161045e90611ab0565b60078054911515600160a01b0260ff60a01b19909216919091179055565b600754600160a01b900460ff16610b0e5760405162461bcd60e51b815260040161045e90611b41565b33600090815260026020526040812060040180549091905b8015610c67576201d4c05a10610c6757600083610b44600184611b9d565b81548110610b5457610b54611afc565b6000918252602090912001546001600160a01b03169050610b748161089e565b15610c54576203a9805a1015610b8a5750610c67565b610b95816000611368565b610b9f9084611b8a565b84549093508490610bb290600190611b9d565b81548110610bc257610bc2611afc565b6000918252602090912001546001600160a01b031684610be3600185611b9d565b81548110610bf357610bf3611afc565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480610c3157610c31611bef565b600082815260209020810160001990810180546001600160a01b03191690550190555b5080610c5f81611c05565b915050610b26565b508015610ce55760075460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90610ca09033908590600401611c1c565b6020604051808303816000875af1158015610cbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce39190611bd2565b505b5050565b600754600090600160a01b900460ff16610d155760405162461bcd60e51b815260040161045e90611b41565b610d1e8261089e565b610d6a5760405162461bcd60e51b815260206004820181905260248201527f75736572206e6f7420656c6c6967626c6520666f7220626f756e747920796574604482015260640161045e565b610d75826001611368565b92915050565b6005546001600160a01b0316331480610d9e57506003546001600160a01b031633145b610dba5760405162461bcd60e51b815260040161045e90611ab0565b600093845260046020526040909320918255600282019290925560010155565b600054610100900460ff1615808015610dfa5750600054600160ff909116105b80610e145750303b158015610e14575060005460ff166001145b610e775760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161045e565b6000805460ff191660011790558015610e9a576000805461ff0019166101001790555b600680546001600160a01b038681166001600160a01b0319928316179092556003805488841690831617905560058054339216919091179055600780546000805260046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ed8590559185166001600160a81b031990921691909117600160a01b1790556010805460ff191690558015610f6f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6001600160a01b0381166000908152600260209081526040808320600401805482518185028101850190935280835260609493830182828015610fe257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610fc4575b5050505050905060008060005b835181101561105c576002600085838151811061100e5761100e611afc565b6020908102919091018101516001600160a01b031682528101919091526040016000206002015460ff1661104a578161104681611b28565b9250505b8061105481611b28565b915050610fef565b506000816001600160401b0381111561107757611077611c35565b6040519080825280602002602001820160405280156110a0578160200160208202803683370190505b50905060005b845181101561115757600260008683815181106110c5576110c5611afc565b6020908102919091018101516001600160a01b031682528101919091526040016000206002015460ff166111455784818151811061110557611105611afc565b602002602001015182858151811061111f5761111f611afc565b6001600160a01b03909216602092830291909101909101528361114181611b28565b9450505b8061114f81611b28565b9150506110a6565b5095945050505050565b6001600160a01b0381166000908152600260209081526040918290206003018054835181840281018401909452808452606093928301828280156111ce57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111b0575b50505050509050919050565b6005546001600160a01b03163314806111fd57506003546001600160a01b031633145b6112195760405162461bcd60e51b815260040161045e90611ab0565b600754600160a01b900460ff166112425760405162461bcd60e51b815260040161045e90611b41565b6007546040516370a0823160e01b81526000916001600160a01b0316906370a08231906112739030906004016118d3565b602060405180830381865afa158015611290573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b49190611c4b565b60075460405163a9059cbb60e01b81529192506001600160a01b03169063a9059cbb906112e79033908590600401611c1c565b6020604051808303816000875af1158015611306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132a9190611bd2565b5060405133904780156108fc02916000818181858888f19350505050158015611357573d6000803e3d6000fd5b50506007805460ff60a01b19169055565b6001600160a01b038281166000908152600260208181526040808420805460099091015495168085528185206005908101548652600484528286208351608081018552815481526001820154958101959095529485015484840152825160a081019384905295969195919487949390926060850192909160038501919082845b8154815260200190600101908083116113e857505050919092525050506001600160a01b0387166000908152600260205260408120600a01549192508190036114d2576007546040805163313ce56760e01b815290516000926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015611475573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114999190611c64565b6114a490600a611d6b565b905063649afa8084116114c2576114bd816101f4611d7a565b6114ce565b6114ce816103e8611d7a565b9150505b808260200151116114e357806114e9565b81602001515b9050600080836040015111801561151a57506001600160a01b03851660009081526002602052604090206006015484115b801561155d57506001600160a01b038516600090815260026020526040902060060154620151809061154c9086611b9d565b6115569190611bb0565b8360400151105b6001600160a01b03808a166000908152600260208190526040808320909101805460ff1916600190811790915592891682528120600701805493945091926115a6908490611b8a565b90915550506001600160a01b038516600090815260026020526040812060080180548492906115d6908490611b8a565b909155505060088054600191906000906115f1908490611b8a565b90915550506009805483919060009061160b908490611b8a565b909155505082516000901580159061163f575083516001600160a01b03871660009081526002602052604090206007015410155b8015611649575081155b156116a2576001600160a01b038616600090815260026020526040812060050180546001929061167a908490611b8a565b9091555050506001600160a01b03851660009081526002602052604090204260069091015560015b871561171f5760075460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906116da9089908790600401611c1c565b6020604051808303816000875af11580156116f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171d9190611bd2565b505b6007546001600160a01b031663a9059cbb8a61173c600287611bb0565b6040518363ffffffff1660e01b8152600401611759929190611c1c565b6020604051808303816000875af1158015611778573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179c9190611bd2565b506001600160a01b0386811660008181526002602090815260409182902060050154825188815291820152841515818301529051928c16927f6081787cd1bd02ab1576c52f03e8710d792d460e7881c3155d77d23893f3768b9181900360600190a35090979650505050505050565b600654604051600091829182916001600160a01b0316906118309086906024016118d3565b60408051601f198184030181529181526020820180516001600160e01b031663a061922d60e01b179052516118659190611d91565b600060405180830381855afa9150503d80600081146118a0576040519150601f19603f3d011682016040523d82523d6000602084013e6118a5565b606091505b5090925090508115156000036118bf57465b949350505050565b808060200190518101906118b79190611c4b565b6001600160a01b0391909116815260200190565b80151581146118f557600080fd5b50565b60006020828403121561190a57600080fd5b8135611915816118e7565b9392505050565b6001600160a01b03811681146118f557600080fd5b60006020828403121561194357600080fd5b81356119158161191c565b60005b83811015611969578181015183820152602001611951565b50506000910152565b602081526000825180602084015261199181604085016020870161194e565b601f01601f19169190910160400192915050565b600080604083850312156119b857600080fd5b50508035926020909101359150565b6000602082840312156119d957600080fd5b5035919050565b600080600080608085870312156119f657600080fd5b5050823594602084013594506040840135936060013592509050565b60008060008060808587031215611a2857600080fd5b8435611a338161191c565b93506020850135611a438161191c565b92506040850135611a538161191c565b9396929550929360600135925050565b6020808252825182820181905260009190848201906040850190845b81811015611aa45783516001600160a01b031683529284019291840191600101611a7f565b50909695505050505050565b6020808252602c908201527f4f6e6c79206f776e6572206f72206176617461722063616e20706572666f726d60408201526b103a3434b99030b1ba34b7b760a11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611b3a57611b3a611b12565b5060010190565b6020808252600a90820152696e6f742061637469766560b01b604082015260600190565b6020808252600b908201526a73656c6620696e7669746560a81b604082015260600190565b80820180821115610d7557610d75611b12565b81810381811115610d7557610d75611b12565b600082611bcd57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611be457600080fd5b8151611915816118e7565b634e487b7160e01b600052603160045260246000fd5b600081611c1457611c14611b12565b506000190190565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052604160045260246000fd5b600060208284031215611c5d57600080fd5b5051919050565b600060208284031215611c7657600080fd5b815160ff8116811461191557600080fd5b600181815b80851115611cc2578160001904821115611ca857611ca8611b12565b80851615611cb557918102915b93841c9390800290611c8c565b509250929050565b600082611cd957506001610d75565b81611ce657506000610d75565b8160018114611cfc5760028114611d0657611d22565b6001915050610d75565b60ff841115611d1757611d17611b12565b50506001821b610d75565b5060208310610133831016604e8410600b8410161715611d45575081810a610d75565b611d4f8383611c87565b8060001904821115611d6357611d63611b12565b029392505050565b600061191560ff841683611cca565b8082028115828204841417610d7557610d75611b12565b60008251611da381846020870161194e565b919091019291505056fea2646970667358221220f8a537cef8a114d7a92ea3722d0fd02fdda57bc86c870fa08ec6815857a162b164736f6c63430008130033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101285760003560e01c806302fb0c5e1461012d578063119e5bf31461015657806321132aad146101765780632c159a1a1461018b57806341155d5e1461019e57806354fd4d50146101bf5780635aef7de6146101e45780635b419a65146101f75780635d5bf1781461020a5780636d619ef81461021d5780638da5cb5b14610230578063a1df6fd314610243578063a87430ba14610250578063acec338a1461030b578063af6346b01461031e578063b2596a6714610326578063b6567cd514610370578063b9fb2d1814610383578063ba6f568014610396578063cf756fdf146103bf578063d80528ae146103d2578063e951a3aa146103e4578063e9881a5e14610404578063efbe1c1c14610417575b600080fd5b60075461014190600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b600754610169906001600160a01b031681565b60405161014d91906118d3565b6101896101843660046118f8565b61041f565b005b600654610169906001600160a01b031681565b6101b16101ac366004611931565b61047a565b60405190815260200161014d565b604080518082018252600381526219171960e91b6020820152905161014d9190611972565b600354610169906001600160a01b031681565b6101896102053660046119a5565b610547565b610189610218366004611931565b61083d565b61014161022b366004611931565b61089e565b600554610169906001600160a01b031681565b6010546101419060ff1681565b6102b761025e366004611931565b6002602081905260009182526040909120805460018201549282015460058301546006840154600785015460088601546009870154600a909701546001600160a01b03909616979660ff90951695939492939192909189565b604080516001600160a01b03909a168a5260208a0198909852951515968801969096526060870193909352608086019190915260a085015260c084015260e08301919091526101008201526101200161014d565b6101896103193660046118f8565b610a88565b610189610ae5565b6103556103343660046119c7565b60046020526000908152604090208054600182015460029092015490919083565b6040805193845260208401929092529082015260600161014d565b6101b161037e366004611931565b610ce9565b6101896103913660046119e0565b610d7b565b6101696103a43660046119c7565b6001602052600090815260409020546001600160a01b031681565b6101896103cd366004611a12565b610dda565b600854600954600a5461035592919083565b6103f76103f2366004611931565b610f76565b60405161014d9190611a63565b6103f7610412366004611931565b611161565b6101896111da565b6005546001600160a01b031633148061044257506003546001600160a01b031633145b6104675760405162461bcd60e51b815260040161045e90611ab0565b60405180910390fd5b6010805460ff1916911515919091179055565b6001600160a01b0381166000908152600260209081526040808320600401805482518185028101850190935280835284938301828280156104e457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116104c6575b505050505090506000805b825181101561053f5761051a83828151811061050d5761050d611afc565b602002602001015161089e565b1561052d578161052981611b28565b9250505b8061053781611b28565b9150506104ef565b509392505050565b600754600160a01b900460ff166105705760405162461bcd60e51b815260040161045e90611b41565b6000828152600160205260409020546001600160a01b031615806105aa57506000828152600160205260409020546001600160a01b031633145b806105bd57506001600160a01b03821633145b6106065760405162461bcd60e51b815260206004820152601a602482015279696e7669746520636f646520616c726561647920696e2075736560301b604482015260640161045e565b8082036106255760405162461bcd60e51b815260040161045e90611b65565b336000908152600260209081526040808320848452600192839052922054908201546001600160a01b0390911690158061067a575081546001600160a01b031615801561067a57506001600160a01b03811615155b6106bc5760405162461bcd60e51b81526020600482015260136024820152721d5cd95c88185b1c9958591e481a9bda5b9959606a1b604482015260640161045e565b60018201546000036106fd5760018083018590554260068401819055600984015560008581526020919091526040902080546001600160a01b031916331790555b6001600160a01b038116156107e657336001600160a01b038216036107345760405162461bcd60e51b815260040161045e90611b65565b81546001600160a01b0382166001600160a01b0319918216811784556000908152600260209081526040822060038101805460018181018355918552838520018054861633908117909155600490920180548083018255908552928420909201805490941617909255600a80549091906107af908490611b8a565b90915550506001600160a01b03811660009081526002602090815260408083206005015483526004909152902060010154600a8301555b6107ef3361089e565b15610801576107ff336001611368565b505b60405133906001600160a01b038316907fd8c638d8979e2ba5dba1f0d66246ee4b1c54b838f0e0a2b601365345eb23b05190600090a350505050565b6005546001600160a01b031633148061086057506003546001600160a01b031633145b61087c5760405162461bcd60e51b815260040161045e90611ab0565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0380821660009081526002602081815260408084205490941680845284842060050154845260049091529282200154601054919291839060ff16151560011480156108f05750600082115b801561093b57506001600160a01b03808416600090815260026020526040808220600601549288168252902060090154620151809161092e91611b9d565b6109389190611bb0565b82105b90506001600160a01b0383161580159061097257506001600160a01b0385166000908152600260208190526040909120015460ff16155b80156109ea5750600654604051633af32abf60e01b81526001600160a01b0390911690633af32abf906109a99088906004016118d3565b602060405180830381865afa1580156109c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ea9190611bd2565b8015610a625750600654604051633af32abf60e01b81526001600160a01b0390911690633af32abf90610a219086906004016118d3565b602060405180830381865afa158015610a3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a629190611bd2565b8015610a75575046610a738661180b565b145b8015610a7f575080155b95945050505050565b6005546001600160a01b0316331480610aab57506003546001600160a01b031633145b610ac75760405162461bcd60e51b815260040161045e90611ab0565b60078054911515600160a01b0260ff60a01b19909216919091179055565b600754600160a01b900460ff16610b0e5760405162461bcd60e51b815260040161045e90611b41565b33600090815260026020526040812060040180549091905b8015610c67576201d4c05a10610c6757600083610b44600184611b9d565b81548110610b5457610b54611afc565b6000918252602090912001546001600160a01b03169050610b748161089e565b15610c54576203a9805a1015610b8a5750610c67565b610b95816000611368565b610b9f9084611b8a565b84549093508490610bb290600190611b9d565b81548110610bc257610bc2611afc565b6000918252602090912001546001600160a01b031684610be3600185611b9d565b81548110610bf357610bf3611afc565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480610c3157610c31611bef565b600082815260209020810160001990810180546001600160a01b03191690550190555b5080610c5f81611c05565b915050610b26565b508015610ce55760075460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90610ca09033908590600401611c1c565b6020604051808303816000875af1158015610cbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce39190611bd2565b505b5050565b600754600090600160a01b900460ff16610d155760405162461bcd60e51b815260040161045e90611b41565b610d1e8261089e565b610d6a5760405162461bcd60e51b815260206004820181905260248201527f75736572206e6f7420656c6c6967626c6520666f7220626f756e747920796574604482015260640161045e565b610d75826001611368565b92915050565b6005546001600160a01b0316331480610d9e57506003546001600160a01b031633145b610dba5760405162461bcd60e51b815260040161045e90611ab0565b600093845260046020526040909320918255600282019290925560010155565b600054610100900460ff1615808015610dfa5750600054600160ff909116105b80610e145750303b158015610e14575060005460ff166001145b610e775760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161045e565b6000805460ff191660011790558015610e9a576000805461ff0019166101001790555b600680546001600160a01b038681166001600160a01b0319928316179092556003805488841690831617905560058054339216919091179055600780546000805260046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ed8590559185166001600160a81b031990921691909117600160a01b1790556010805460ff191690558015610f6f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6001600160a01b0381166000908152600260209081526040808320600401805482518185028101850190935280835260609493830182828015610fe257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610fc4575b5050505050905060008060005b835181101561105c576002600085838151811061100e5761100e611afc565b6020908102919091018101516001600160a01b031682528101919091526040016000206002015460ff1661104a578161104681611b28565b9250505b8061105481611b28565b915050610fef565b506000816001600160401b0381111561107757611077611c35565b6040519080825280602002602001820160405280156110a0578160200160208202803683370190505b50905060005b845181101561115757600260008683815181106110c5576110c5611afc565b6020908102919091018101516001600160a01b031682528101919091526040016000206002015460ff166111455784818151811061110557611105611afc565b602002602001015182858151811061111f5761111f611afc565b6001600160a01b03909216602092830291909101909101528361114181611b28565b9450505b8061114f81611b28565b9150506110a6565b5095945050505050565b6001600160a01b0381166000908152600260209081526040918290206003018054835181840281018401909452808452606093928301828280156111ce57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111b0575b50505050509050919050565b6005546001600160a01b03163314806111fd57506003546001600160a01b031633145b6112195760405162461bcd60e51b815260040161045e90611ab0565b600754600160a01b900460ff166112425760405162461bcd60e51b815260040161045e90611b41565b6007546040516370a0823160e01b81526000916001600160a01b0316906370a08231906112739030906004016118d3565b602060405180830381865afa158015611290573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b49190611c4b565b60075460405163a9059cbb60e01b81529192506001600160a01b03169063a9059cbb906112e79033908590600401611c1c565b6020604051808303816000875af1158015611306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132a9190611bd2565b5060405133904780156108fc02916000818181858888f19350505050158015611357573d6000803e3d6000fd5b50506007805460ff60a01b19169055565b6001600160a01b038281166000908152600260208181526040808420805460099091015495168085528185206005908101548652600484528286208351608081018552815481526001820154958101959095529485015484840152825160a081019384905295969195919487949390926060850192909160038501919082845b8154815260200190600101908083116113e857505050919092525050506001600160a01b0387166000908152600260205260408120600a01549192508190036114d2576007546040805163313ce56760e01b815290516000926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015611475573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114999190611c64565b6114a490600a611d6b565b905063649afa8084116114c2576114bd816101f4611d7a565b6114ce565b6114ce816103e8611d7a565b9150505b808260200151116114e357806114e9565b81602001515b9050600080836040015111801561151a57506001600160a01b03851660009081526002602052604090206006015484115b801561155d57506001600160a01b038516600090815260026020526040902060060154620151809061154c9086611b9d565b6115569190611bb0565b8360400151105b6001600160a01b03808a166000908152600260208190526040808320909101805460ff1916600190811790915592891682528120600701805493945091926115a6908490611b8a565b90915550506001600160a01b038516600090815260026020526040812060080180548492906115d6908490611b8a565b909155505060088054600191906000906115f1908490611b8a565b90915550506009805483919060009061160b908490611b8a565b909155505082516000901580159061163f575083516001600160a01b03871660009081526002602052604090206007015410155b8015611649575081155b156116a2576001600160a01b038616600090815260026020526040812060050180546001929061167a908490611b8a565b9091555050506001600160a01b03851660009081526002602052604090204260069091015560015b871561171f5760075460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906116da9089908790600401611c1c565b6020604051808303816000875af11580156116f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171d9190611bd2565b505b6007546001600160a01b031663a9059cbb8a61173c600287611bb0565b6040518363ffffffff1660e01b8152600401611759929190611c1c565b6020604051808303816000875af1158015611778573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179c9190611bd2565b506001600160a01b0386811660008181526002602090815260409182902060050154825188815291820152841515818301529051928c16927f6081787cd1bd02ab1576c52f03e8710d792d460e7881c3155d77d23893f3768b9181900360600190a35090979650505050505050565b600654604051600091829182916001600160a01b0316906118309086906024016118d3565b60408051601f198184030181529181526020820180516001600160e01b031663a061922d60e01b179052516118659190611d91565b600060405180830381855afa9150503d80600081146118a0576040519150601f19603f3d011682016040523d82523d6000602084013e6118a5565b606091505b5090925090508115156000036118bf57465b949350505050565b808060200190518101906118b79190611c4b565b6001600160a01b0391909116815260200190565b80151581146118f557600080fd5b50565b60006020828403121561190a57600080fd5b8135611915816118e7565b9392505050565b6001600160a01b03811681146118f557600080fd5b60006020828403121561194357600080fd5b81356119158161191c565b60005b83811015611969578181015183820152602001611951565b50506000910152565b602081526000825180602084015261199181604085016020870161194e565b601f01601f19169190910160400192915050565b600080604083850312156119b857600080fd5b50508035926020909101359150565b6000602082840312156119d957600080fd5b5035919050565b600080600080608085870312156119f657600080fd5b5050823594602084013594506040840135936060013592509050565b60008060008060808587031215611a2857600080fd5b8435611a338161191c565b93506020850135611a438161191c565b92506040850135611a538161191c565b9396929550929360600135925050565b6020808252825182820181905260009190848201906040850190845b81811015611aa45783516001600160a01b031683529284019291840191600101611a7f565b50909695505050505050565b6020808252602c908201527f4f6e6c79206f776e6572206f72206176617461722063616e20706572666f726d60408201526b103a3434b99030b1ba34b7b760a11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611b3a57611b3a611b12565b5060010190565b6020808252600a90820152696e6f742061637469766560b01b604082015260600190565b6020808252600b908201526a73656c6620696e7669746560a81b604082015260600190565b80820180821115610d7557610d75611b12565b81810381811115610d7557610d75611b12565b600082611bcd57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611be457600080fd5b8151611915816118e7565b634e487b7160e01b600052603160045260246000fd5b600081611c1457611c14611b12565b506000190190565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052604160045260246000fd5b600060208284031215611c5d57600080fd5b5051919050565b600060208284031215611c7657600080fd5b815160ff8116811461191557600080fd5b600181815b80851115611cc2578160001904821115611ca857611ca8611b12565b80851615611cb557918102915b93841c9390800290611c8c565b509250929050565b600082611cd957506001610d75565b81611ce657506000610d75565b8160018114611cfc5760028114611d0657611d22565b6001915050610d75565b60ff841115611d1757611d17611b12565b50506001821b610d75565b5060208310610133831016604e8410600b8410161715611d45575081810a610d75565b611d4f8383611c87565b8060001904821115611d6357611d63611b12565b029392505050565b600061191560ff841683611cca565b8082028115828204841417610d7557610d75611b12565b60008251611da381846020870161194e565b919091019291505056fea2646970667358221220f8a537cef8a114d7a92ea3722d0fd02fdda57bc86c870fa08ec6815857a162b164736f6c63430008130033", "linkReferences": {}, "deployedLinkReferences": {} }