dgf-prototype/backend/contractArtifacts/Rollup.json

289 lines
40 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "Rollup",
"sourceName": "contracts/Rollup.sol",
"abi": [
{
"inputs": [
{
"internalType": "contract DAO",
"name": "dao",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "dao",
"type": "address"
},
{
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "InvalidSender",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "stakeIndex",
"type": "uint256"
}
],
"name": "AvailabilityStaked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "postId",
"type": "string"
},
{
"indexed": false,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "BatchItemAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "batchWorker",
"type": "address"
}
],
"name": "BatchWorkerAssigned",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
}
],
"name": "acceptAvailability",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "author",
"type": "address"
},
{
"internalType": "uint256",
"name": "stakeAmount",
"type": "uint256"
},
{
"internalType": "string",
"name": "postId",
"type": "string"
}
],
"name": "addItem",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "batchWorker",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "stakeIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
}
],
"name": "extendAvailability",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "itemCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "items",
"outputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "worker",
"type": "address"
},
{
"internalType": "uint256",
"name": "stakeAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "fee",
"type": "uint256"
},
{
"internalType": "string",
"name": "postId",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "stakeCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "stakes",
"outputs": [
{
"internalType": "address",
"name": "worker",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "endTime",
"type": "uint256"
},
{
"internalType": "bool",
"name": "assigned",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "batchPostId",
"type": "string"
},
{
"internalType": "uint256",
"name": "batchSize",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "poolDuration",
"type": "uint256"
}
],
"name": "submitBatch",
"outputs": [
{
"internalType": "uint256",
"name": "poolIndex",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60a06040523480156200001157600080fd5b50604051620022dc380380620022dc8339818101604052810190620000379190620000f4565b80808073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505050505062000126565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000a8826200007b565b9050919050565b6000620000bc826200009b565b9050919050565b620000ce81620000af565b8114620000da57600080fd5b50565b600081519050620000ee81620000c3565b92915050565b6000602082840312156200010d576200010c62000076565b5b60006200011d84828501620000dd565b91505092915050565b608051612177620001656000396000818161023a015281816102c80152818161031b015281816108ff015281816109e80152610b2a01526121776000f3fe6080604052600436106100865760003560e01c8063bfb231d211610059578063bfb231d214610133578063c4a9e11614610174578063d5a44f861461019f578063da553ec2146101df578063f85c5a8a1461021c57610086565b8063216ed6ad1461008b57806324364a6b146100b45780636bfb0d01146100df578063b5b20c001461010a575b600080fd5b34801561009757600080fd5b506100b260048036038101906100ad91906111ee565b610238565b005b3480156100c057600080fd5b506100c961048a565b6040516100d69190611250565b60405180910390f35b3480156100eb57600080fd5b506100f46104b0565b604051610101919061127a565b60405180910390f35b34801561011657600080fd5b50610131600480360381019061012c9190611295565b6104b6565b005b34801561013f57600080fd5b5061015a600480360381019061015591906112d5565b61062a565b60405161016b959493929190611392565b60405180910390f35b34801561018057600080fd5b50610189610728565b604051610196919061127a565b60405180910390f35b3480156101ab57600080fd5b506101c660048036038101906101c191906112d5565b61072e565b6040516101d69493929190611407565b60405180910390f35b3480156101eb57600080fd5b50610206600480360381019061020191906114b1565b61078b565b604051610213919061127a565b60405180910390f35b61023660048036038101906102319190611525565b610e59565b005b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102bd9061160b565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610378577f0000000000000000000000000000000000000000000000000000000000000000336040517fe1130dba00000000000000000000000000000000000000000000000000000000815260040161036f92919061162b565b60405180910390fd5b600082116103bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b2906116a0565b60405180910390fd5b6000600160008154809291906103d0906116ef565b91905055905060008060008381526020019081526020016000209050848160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083816001018190555082426104449190611737565b81600201819055507fa85b1153cd317f9d39e14d8dbfb592ffb46123e9fc61b21b3f70d7d90a81a7e98260405161047b919061127a565b60405180910390a15050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b600080600084815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461055e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610555906117dd565b60405180910390fd5b8060030160009054906101000a900460ff16156105b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a79061186f565b60405180910390fd5b80600201544211156105d55781426105c89190611737565b81600201819055506105ee565b8181600201546105e59190611737565b81600201819055505b7fa85b1153cd317f9d39e14d8dbfb592ffb46123e9fc61b21b3f70d7d90a81a7e98360405161061d919061127a565b60405180910390a1505050565b60026020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154908060040180546106a5906118be565b80601f01602080910402602001604051908101604052809291908181526020018280546106d1906118be565b801561071e5780601f106106f35761010080835404028352916020019161071e565b820191906000526020600020905b81548152906001019060200180831161070157829003601f168201915b5050505050905085565b60015481565b60006020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030160009054906101000a900460ff16905084565b60006003548311156107d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c99061193b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108b957600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108af906119cd565b60405180910390fd5b5b600080600090505b6003548110156108fc576002600082815260200190815260200160002060030154826108ed9190611737565b915080806001019150506108c1565b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639fbe7c7382888887604051806040016040528060018152602001600381525060405180604001604052806001815260200160028152506064600160006040518a63ffffffff1660e01b8152600401610994989796959493929190611b50565b60206040518083038185885af11580156109b2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109d79190611bf3565b915060005b600354811015610ad1577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663975762b3846002600085815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008681526020019081526020016000206002015460016040518563ffffffff1660e01b8152600401610a929493929190611c20565b600060405180830381600087803b158015610aac57600080fd5b505af1158015610ac0573d6000803e3d6000fd5b5050505080806001019150506109dc565b50600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf4577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663975762b383600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008060055481526020019081526020016000206001015460016040518563ffffffff1660e01b8152600401610bc19493929190611c20565b600060405180830381600087803b158015610bdb57600080fd5b505af1158015610bef573d6000803e3d6000fd5b505050505b600354841015610d685760005b84600354610c0f9190611c65565b811015610d4e57600260008287610c269190611737565b8152602001908152602001600020600260008381526020019081526020016000206000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600282015481600201556003820154816003015560048201816004019081610d3d9190611e80565b509050508080600101915050610c01565b5083600354610d5d9190611c65565b600381905550610d71565b60006003819055505b610d79610f98565b600581905550600080600554815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f672ebfecd081c72b12452a84f8b6d051a1f32cda55cdf8992251279a5408b5a5600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610e489190611250565b60405180910390a150949350505050565b60006002600060036000815480929190610e72906116ef565b9190505581526020019081526020016000209050338160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550848160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508381600201819055503481600301819055508282826004019182610f31929190611f73565b507fc7fbf71176968d8b22516670c4d61aa2b56569c556dd3c5cd76a7a253c93b44a83838360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610f8993929190612043565b60405180910390a15050505050565b6000610fa2610fdb565b90506000806000838152602001908152602001600020905060018160030160006101000a81548160ff0219169083151502179055505090565b60008060005b60015481101561105f5760008082815260200190815260200160002060030160009054906101000a900460ff166110525760008082815260200190815260200160002060020154421161105257600080828152602001908152602001600020600101548261104f9190611737565b91505b8080600101915050610fe1565b50600081116110a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109a906120c1565b60405180910390fd5b600081446110b19190612110565b9050600080600090505b6001548110156111495760008082815260200190815260200160002060030160009054906101000a900460ff1661113c5760008082815260200190815260200160002060020154421161113c5760008082815260200190815260200160002060010154826111299190611737565b91508282111561113b57809450611149565b5b80806001019150506110bb565b5050505090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006111858261115a565b9050919050565b6111958161117a565b81146111a057600080fd5b50565b6000813590506111b28161118c565b92915050565b6000819050919050565b6111cb816111b8565b81146111d657600080fd5b50565b6000813590506111e8816111c2565b92915050565b60008060006060848603121561120757611206611150565b5b6000611215868287016111a3565b9350506020611226868287016111d9565b9250506040611237868287016111d9565b9150509250925092565b61124a8161117a565b82525050565b60006020820190506112656000830184611241565b92915050565b611274816111b8565b82525050565b600060208201905061128f600083018461126b565b92915050565b600080604083850312156112ac576112ab611150565b5b60006112ba858286016111d9565b92505060206112cb858286016111d9565b9150509250929050565b6000602082840312156112eb576112ea611150565b5b60006112f9848285016111d9565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561133c578082015181840152602081019050611321565b60008484015250505050565b6000601f19601f8301169050919050565b600061136482611302565b61136e818561130d565b935061137e81856020860161131e565b61138781611348565b840191505092915050565b600060a0820190506113a76000830188611241565b6113b46020830187611241565b6113c1604083018661126b565b6113ce606083018561126b565b81810360808301526113e08184611359565b90509695505050505050565b60008115159050919050565b611401816113ec565b82525050565b600060808201905061141c6000830187611241565b611429602083018661126b565b611436604083018561126b565b61144360608301846113f8565b95945050505050565b600080fd5b600080fd5b600080fd5b60008083601f8401126114715761147061144c565b5b8235905067ffffffffffffffff81111561148e5761148d611451565b5b6020830191508360018202830111156114aa576114a9611456565b5b9250929050565b600080600080606085870312156114cb576114ca611150565b5b600085013567ffffffffffffffff8111156114e9576114e8611155565b5b6114f58782880161145b565b94509450506020611508878288016111d9565b9250506040611519878288016111d9565b91505092959194509250565b6000806000806060858703121561153f5761153e611150565b5b600061154d878288016111a3565b945050602061155e878288016111d9565b935050604085013567ffffffffffffffff81111561157f5761157e611155565b5b61158b8782880161145b565b925092505092959194509250565b7f616363657074417661696c6162696c697479206d757374206f6e6c792062652060008201527f63616c6c65642062792044414f20636f6e747261637400000000000000000000602082015250565b60006115f560368361130d565b915061160082611599565b604082019050919050565b60006020820190508181036000830152611624816115e8565b9050919050565b60006040820190506116406000830185611241565b61164d6020830184611241565b9392505050565b7f4e6f207374616b652070726f7669646564000000000000000000000000000000600082015250565b600061168a60118361130d565b915061169582611654565b602082019050919050565b600060208201905081810360008301526116b98161167d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006116fa826111b8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361172c5761172b6116c0565b5b600182019050919050565b6000611742826111b8565b915061174d836111b8565b9250828201905080821115611765576117646116c0565b5b92915050565b7f576f726b65722063616e206f6e6c7920657874656e64207468656972206f776e60008201527f20617661696c6162696c697479207374616b6500000000000000000000000000602082015250565b60006117c760338361130d565b91506117d28261176b565b604082019050919050565b600060208201905081810360008301526117f6816117ba565b9050919050565b7f5374616b652068617320616c7265616479206265656e2061737369676e65642060008201527f776f726b00000000000000000000000000000000000000000000000000000000602082015250565b600061185960248361130d565b9150611864826117fd565b604082019050919050565b600060208201905081810360008301526118888161184c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806118d657607f821691505b6020821081036118e9576118e861188f565b5b50919050565b7f42617463682073697a6520746f6f206c61726765000000000000000000000000600082015250565b600061192560148361130d565b9150611930826118ef565b602082019050919050565b6000602082019050818103600083015261195481611918565b9050919050565b7f426174636820726573756c74206d757374206265207375626d6974746564206260008201527f792063757272656e7420626174636820776f726b657200000000000000000000602082015250565b60006119b760368361130d565b91506119c28261195b565b604082019050919050565b600060208201905081810360008301526119e6816119aa565b9050919050565b82818337600083830152505050565b6000611a08838561130d565b9350611a158385846119ed565b611a1e83611348565b840190509392505050565b600060029050919050565b600081905092915050565b6000819050919050565b611a52816111b8565b82525050565b6000611a648383611a49565b60208301905092915050565b6000602082019050919050565b611a8681611a29565b611a908184611a34565b9250611a9b82611a3f565b8060005b83811015611acc578151611ab38782611a58565b9650611abe83611a70565b925050600181019050611a9f565b505050505050565b6000819050919050565b6000819050919050565b6000611b03611afe611af984611ad4565b611ade565b6111b8565b9050919050565b611b1381611ae8565b82525050565b600082825260208201905092915050565b50565b6000611b3a600083611b19565b9150611b4582611b2a565b600082019050919050565b6000610140820190508181036000830152611b6c818a8c6119fc565b9050611b7b602083018961126b565b611b886040830188611a7d565b611b956080830187611a7d565b611ba260c0830186611b0a565b611baf60e08301856113f8565b611bbd6101008301846113f8565b818103610120830152611bcf81611b2d565b90509998505050505050505050565b600081519050611bed816111c2565b92915050565b600060208284031215611c0957611c08611150565b5b6000611c1784828501611bde565b91505092915050565b6000608082019050611c35600083018761126b565b611c426020830186611241565b611c4f604083018561126b565b611c5c60608301846113f8565b95945050505050565b6000611c70826111b8565b9150611c7b836111b8565b9250828203905081811115611c9357611c926116c0565b5b92915050565b600081549050611ca8816118be565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302611d407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611d03565b611d4a8683611d03565b95508019841693508086168417925050509392505050565b6000611d7d611d78611d73846111b8565b611ade565b6111b8565b9050919050565b6000819050919050565b611d9783611d62565b611dab611da382611d84565b848454611d10565b825550505050565b600090565b611dc0611db3565b611dcb818484611d8e565b505050565b5b81811015611def57611de4600082611db8565b600181019050611dd1565b5050565b601f821115611e3457611e0581611cde565b611e0e84611cf3565b81016020851015611e1d578190505b611e31611e2985611cf3565b830182611dd0565b50505b505050565b600082821c905092915050565b6000611e5760001984600802611e39565b1980831691505092915050565b6000611e708383611e46565b9150826002028217905092915050565b818103611e8e575050611f66565b611e9782611c99565b67ffffffffffffffff811115611eb057611eaf611caf565b5b611eba82546118be565b611ec5828285611df3565b6000601f831160018114611ef45760008415611ee2578287015490505b611eec8582611e64565b865550611f5f565b601f198416611f0287611cde565b9650611f0d86611cde565b60005b82811015611f3557848901548255600182019150600185019450602081019050611f10565b86831015611f525784890154611f4e601f891682611e46565b8355505b6001600288020188555050505b5050505050505b565b600082905092915050565b611f7d8383611f68565b67ffffffffffffffff811115611f9657611f95611caf565b5b611fa082546118be565b611fab828285611df3565b6000601f831160018114611fda5760008415611fc8578287013590505b611fd28582611e64565b86555061203a565b601f198416611fe886611cde565b60005b8281101561201057848901358255600182019150602085019450602081019050611feb565b8683101561202d5784890135612029601f891682611e46565b8355505b6001600288020188555050505b50505050505050565b6000604082019050818103600083015261205e8185876119fc565b905061206d6020830184611241565b949350505050565b7f4e6f20617661696c61626c6520776f726b6572207374616b6573000000000000600082015250565b60006120ab601a8361130d565b91506120b682612075565b602082019050919050565b600060208201905081810360008301526120da8161209e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061211b826111b8565b9150612126836111b8565b925082612136576121356120e1565b5b82820690509291505056fea2646970667358221220079cd1523e9ba6c72550190aae8fe13a1f0f68c17e10e7095c4be244a13f422064736f6c63430008180033",
"deployedBytecode": "0x6080604052600436106100865760003560e01c8063bfb231d211610059578063bfb231d214610133578063c4a9e11614610174578063d5a44f861461019f578063da553ec2146101df578063f85c5a8a1461021c57610086565b8063216ed6ad1461008b57806324364a6b146100b45780636bfb0d01146100df578063b5b20c001461010a575b600080fd5b34801561009757600080fd5b506100b260048036038101906100ad91906111ee565b610238565b005b3480156100c057600080fd5b506100c961048a565b6040516100d69190611250565b60405180910390f35b3480156100eb57600080fd5b506100f46104b0565b604051610101919061127a565b60405180910390f35b34801561011657600080fd5b50610131600480360381019061012c9190611295565b6104b6565b005b34801561013f57600080fd5b5061015a600480360381019061015591906112d5565b61062a565b60405161016b959493929190611392565b60405180910390f35b34801561018057600080fd5b50610189610728565b604051610196919061127a565b60405180910390f35b3480156101ab57600080fd5b506101c660048036038101906101c191906112d5565b61072e565b6040516101d69493929190611407565b60405180910390f35b3480156101eb57600080fd5b50610206600480360381019061020191906114b1565b61078b565b604051610213919061127a565b60405180910390f35b61023660048036038101906102319190611525565b610e59565b005b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102bd9061160b565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610378577f0000000000000000000000000000000000000000000000000000000000000000336040517fe1130dba00000000000000000000000000000000000000000000000000000000815260040161036f92919061162b565b60405180910390fd5b600082116103bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b2906116a0565b60405180910390fd5b6000600160008154809291906103d0906116ef565b91905055905060008060008381526020019081526020016000209050848160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083816001018190555082426104449190611737565b81600201819055507fa85b1153cd317f9d39e14d8dbfb592ffb46123e9fc61b21b3f70d7d90a81a7e98260405161047b919061127a565b60405180910390a15050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b600080600084815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461055e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610555906117dd565b60405180910390fd5b8060030160009054906101000a900460ff16156105b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a79061186f565b60405180910390fd5b80600201544211156105d55781426105c89190611737565b81600201819055506105ee565b8181600201546105e59190611737565b81600201819055505b7fa85b1153cd317f9d39e14d8dbfb592ffb46123e9fc61b21b3f70d7d90a81a7e98360405161061d919061127a565b60405180910390a1505050565b60026020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154908060040180546106a5906118be565b80601f01602080910402602001604051908101604052809291908181526020018280546106d1906118be565b801561071e5780601f106106f35761010080835404028352916020019161071e565b820191906000526020600020905b81548152906001019060200180831161070157829003601f168201915b5050505050905085565b60015481565b60006020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030160009054906101000a900460ff16905084565b60006003548311156107d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c99061193b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108b957600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108af906119cd565b60405180910390fd5b5b600080600090505b6003548110156108fc576002600082815260200190815260200160002060030154826108ed9190611737565b915080806001019150506108c1565b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639fbe7c7382888887604051806040016040528060018152602001600381525060405180604001604052806001815260200160028152506064600160006040518a63ffffffff1660e01b8152600401610994989796959493929190611b50565b60206040518083038185885af11580156109b2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109d79190611bf3565b915060005b600354811015610ad1577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663975762b3846002600085815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008681526020019081526020016000206002015460016040518563ffffffff1660e01b8152600401610a929493929190611c20565b600060405180830381600087803b158015610aac57600080fd5b505af1158015610ac0573d6000803e3d6000fd5b5050505080806001019150506109dc565b50600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf4577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663975762b383600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008060055481526020019081526020016000206001015460016040518563ffffffff1660e01b8152600401610bc19493929190611c20565b600060405180830381600087803b158015610bdb57600080fd5b505af1158015610bef573d6000803e3d6000fd5b505050505b600354841015610d685760005b84600354610c0f9190611c65565b811015610d4e57600260008287610c269190611737565b8152602001908152602001600020600260008381526020019081526020016000206000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600282015481600201556003820154816003015560048201816004019081610d3d9190611e80565b509050508080600101915050610c01565b5083600354610d5d9190611c65565b600381905550610d71565b60006003819055505b610d79610f98565b600581905550600080600554815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f672ebfecd081c72b12452a84f8b6d051a1f32cda55cdf8992251279a5408b5a5600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610e489190611250565b60405180910390a150949350505050565b60006002600060036000815480929190610e72906116ef565b9190505581526020019081526020016000209050338160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550848160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508381600201819055503481600301819055508282826004019182610f31929190611f73565b507fc7fbf71176968d8b22516670c4d61aa2b56569c556dd3c5cd76a7a253c93b44a83838360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610f8993929190612043565b60405180910390a15050505050565b6000610fa2610fdb565b90506000806000838152602001908152602001600020905060018160030160006101000a81548160ff0219169083151502179055505090565b60008060005b60015481101561105f5760008082815260200190815260200160002060030160009054906101000a900460ff166110525760008082815260200190815260200160002060020154421161105257600080828152602001908152602001600020600101548261104f9190611737565b91505b8080600101915050610fe1565b50600081116110a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109a906120c1565b60405180910390fd5b600081446110b19190612110565b9050600080600090505b6001548110156111495760008082815260200190815260200160002060030160009054906101000a900460ff1661113c5760008082815260200190815260200160002060020154421161113c5760008082815260200190815260200160002060010154826111299190611737565b91508282111561113b57809450611149565b5b80806001019150506110bb565b5050505090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006111858261115a565b9050919050565b6111958161117a565b81146111a057600080fd5b50565b6000813590506111b28161118c565b92915050565b6000819050919050565b6111cb816111b8565b81146111d657600080fd5b50565b6000813590506111e8816111c2565b92915050565b60008060006060848603121561120757611206611150565b5b6000611215868287016111a3565b9350506020611226868287016111d9565b9250506040611237868287016111d9565b9150509250925092565b61124a8161117a565b82525050565b60006020820190506112656000830184611241565b92915050565b611274816111b8565b82525050565b600060208201905061128f600083018461126b565b92915050565b600080604083850312156112ac576112ab611150565b5b60006112ba858286016111d9565b92505060206112cb858286016111d9565b9150509250929050565b6000602082840312156112eb576112ea611150565b5b60006112f9848285016111d9565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561133c578082015181840152602081019050611321565b60008484015250505050565b6000601f19601f8301169050919050565b600061136482611302565b61136e818561130d565b935061137e81856020860161131e565b61138781611348565b840191505092915050565b600060a0820190506113a76000830188611241565b6113b46020830187611241565b6113c1604083018661126b565b6113ce606083018561126b565b81810360808301526113e08184611359565b90509695505050505050565b60008115159050919050565b611401816113ec565b82525050565b600060808201905061141c6000830187611241565b611429602083018661126b565b611436604083018561126b565b61144360608301846113f8565b95945050505050565b600080fd5b600080fd5b600080fd5b60008083601f8401126114715761147061144c565b5b8235905067ffffffffffffffff81111561148e5761148d611451565b5b6020830191508360018202830111156114aa576114a9611456565b5b9250929050565b600080600080606085870312156114cb576114ca611150565b5b600085013567ffffffffffffffff8111156114e9576114e8611155565b5b6114f58782880161145b565b94509450506020611508878288016111d9565b9250506040611519878288016111d9565b91505092959194509250565b6000806000806060858703121561153f5761153e611150565b5b600061154d878288016111a3565b945050602061155e878288016111d9565b935050604085013567ffffffffffffffff81111561157f5761157e611155565b5b61158b8782880161145b565b925092505092959194509250565b7f616363657074417661696c6162696c697479206d757374206f6e6c792062652060008201527f63616c6c65642062792044414f20636f6e747261637400000000000000000000602082015250565b60006115f560368361130d565b915061160082611599565b604082019050919050565b60006020820190508181036000830152611624816115e8565b9050919050565b60006040820190506116406000830185611241565b61164d6020830184611241565b9392505050565b7f4e6f207374616b652070726f7669646564000000000000000000000000000000600082015250565b600061168a60118361130d565b915061169582611654565b602082019050919050565b600060208201905081810360008301526116b98161167d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006116fa826111b8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361172c5761172b6116c0565b5b600182019050919050565b6000611742826111b8565b915061174d836111b8565b9250828201905080821115611765576117646116c0565b5b92915050565b7f576f726b65722063616e206f6e6c7920657874656e64207468656972206f776e60008201527f20617661696c6162696c697479207374616b6500000000000000000000000000602082015250565b60006117c760338361130d565b91506117d28261176b565b604082019050919050565b600060208201905081810360008301526117f6816117ba565b9050919050565b7f5374616b652068617320616c7265616479206265656e2061737369676e65642060008201527f776f726b00000000000000000000000000000000000000000000000000000000602082015250565b600061185960248361130d565b9150611864826117fd565b604082019050919050565b600060208201905081810360008301526118888161184c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806118d657607f821691505b6020821081036118e9576118e861188f565b5b50919050565b7f42617463682073697a6520746f6f206c61726765000000000000000000000000600082015250565b600061192560148361130d565b9150611930826118ef565b602082019050919050565b6000602082019050818103600083015261195481611918565b9050919050565b7f426174636820726573756c74206d757374206265207375626d6974746564206260008201527f792063757272656e7420626174636820776f726b657200000000000000000000602082015250565b60006119b760368361130d565b91506119c28261195b565b604082019050919050565b600060208201905081810360008301526119e6816119aa565b9050919050565b82818337600083830152505050565b6000611a08838561130d565b9350611a158385846119ed565b611a1e83611348565b840190509392505050565b600060029050919050565b600081905092915050565b6000819050919050565b611a52816111b8565b82525050565b6000611a648383611a49565b60208301905092915050565b6000602082019050919050565b611a8681611a29565b611a908184611a34565b9250611a9b82611a3f565b8060005b83811015611acc578151611ab38782611a58565b9650611abe83611a70565b925050600181019050611a9f565b505050505050565b6000819050919050565b6000819050919050565b6000611b03611afe611af984611ad4565b611ade565b6111b8565b9050919050565b611b1381611ae8565b82525050565b600082825260208201905092915050565b50565b6000611b3a600083611b19565b9150611b4582611b2a565b600082019050919050565b6000610140820190508181036000830152611b6c818a8c6119fc565b9050611b7b602083018961126b565b611b886040830188611a7d565b611b956080830187611a7d565b611ba260c0830186611b0a565b611baf60e08301856113f8565b611bbd6101008301846113f8565b818103610120830152611bcf81611b2d565b90509998505050505050505050565b600081519050611bed816111c2565b92915050565b600060208284031215611c0957611c08611150565b5b6000611c1784828501611bde565b91505092915050565b6000608082019050611c35600083018761126b565b611c426020830186611241565b611c4f604083018561126b565b611c5c60608301846113f8565b95945050505050565b6000611c70826111b8565b9150611c7b836111b8565b9250828203905081811115611c9357611c926116c0565b5b92915050565b600081549050611ca8816118be565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302611d407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611d03565b611d4a8683611d03565b95508019841693508086168417925050509392505050565b6000611d7d611d78611d73846111b8565b611ade565b6111b8565b9050919050565b6000819050919050565b611d9783611d62565b611dab611da382611d84565b848454611d10565b825550505050565b600090565b611dc0611db3565b611dcb818484611d8e565b505050565b5b81811015611def57611de4600082611db8565b600181019050611dd1565b5050565b601f821115611e3457611e0581611cde565b611e0e84611cf3565b81016020851015611e1d578190505b611e31611e2985611cf3565b830182611dd0565b50505b505050565b600082821c905092915050565b6000611e5760001984600802611e39565b1980831691505092915050565b6000611e708383611e46565b9150826002028217905092915050565b818103611e8e575050611f66565b611e9782611c99565b67ffffffffffffffff811115611eb057611eaf611caf565b5b611eba82546118be565b611ec5828285611df3565b6000601f831160018114611ef45760008415611ee2578287015490505b611eec8582611e64565b865550611f5f565b601f198416611f0287611cde565b9650611f0d86611cde565b60005b82811015611f3557848901548255600182019150600185019450602081019050611f10565b86831015611f525784890154611f4e601f891682611e46565b8355505b6001600288020188555050505b5050505050505b565b600082905092915050565b611f7d8383611f68565b67ffffffffffffffff811115611f9657611f95611caf565b5b611fa082546118be565b611fab828285611df3565b6000601f831160018114611fda5760008415611fc8578287013590505b611fd28582611e64565b86555061203a565b601f198416611fe886611cde565b60005b8281101561201057848901358255600182019150602085019450602081019050611feb565b8683101561202d5784890135612029601f891682611e46565b8355505b6001600288020188555050505b50505050505050565b6000604082019050818103600083015261205e8185876119fc565b905061206d6020830184611241565b949350505050565b7f4e6f20617661696c61626c6520776f726b6572207374616b6573000000000000600082015250565b60006120ab601a8361130d565b91506120b682612075565b602082019050919050565b600060208201905081810360008301526120da8161209e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061211b826111b8565b9150612126836111b8565b925082612136576121356120e1565b5b82820690509291505056fea2646970667358221220079cd1523e9ba6c72550190aae8fe13a1f0f68c17e10e7095c4be244a13f422064736f6c63430008180033",
"linkReferences": {},
"deployedLinkReferences": {}
}