2022-10-25 15:21:54 -03:00

293 lines
38 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "P2PIX",
"sourceName": "contracts/p2pix.sol",
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "defaultBlocks",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "validSigners",
"type": "address[]"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "seller",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "depositID",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "DepositAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "seller",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "depositID",
"type": "bytes32"
}
],
"name": "DepositClosed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "seller",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "depositID",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "DepositWithdrawn",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "buyer",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "lockID",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "LockAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "buyer",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "lockId",
"type": "bytes32"
}
],
"name": "LockReleased",
"type": "event"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "depositID",
"type": "bytes32"
}
],
"name": "cancelDeposit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "string",
"name": "pixTarget",
"type": "string"
}
],
"name": "deposit",
"outputs": [
{
"internalType": "bytes32",
"name": "depositID",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "depositID",
"type": "bytes32"
},
{
"internalType": "address",
"name": "targetAddress",
"type": "address"
},
{
"internalType": "address",
"name": "relayerAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "relayerPremium",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "lock",
"outputs": [
{
"internalType": "bytes32",
"name": "lockID",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "lockID",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "pixTimestamp",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
}
],
"name": "release",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "validBacenSigners",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "depositID",
"type": "bytes32"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60806040523480156200001157600080fd5b50604051620021853803806200218583398181016040528101906200003791906200030d565b8160008190555060005b81518160ff161015620000db576001806000848460ff16815181106200006c576200006b62000373565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080620000d290620003de565b91505062000041565b5050506200040c565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6200010d81620000f8565b81146200011957600080fd5b50565b6000815190506200012d8162000102565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620001838262000138565b810181811067ffffffffffffffff82111715620001a557620001a462000149565b5b80604052505050565b6000620001ba620000e4565b9050620001c8828262000178565b919050565b600067ffffffffffffffff821115620001eb57620001ea62000149565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200022e8262000201565b9050919050565b620002408162000221565b81146200024c57600080fd5b50565b600081519050620002608162000235565b92915050565b60006200027d6200027784620001cd565b620001ae565b90508083825260208201905060208402830185811115620002a357620002a2620001fc565b5b835b81811015620002d05780620002bb88826200024f565b845260208401935050602081019050620002a5565b5050509392505050565b600082601f830112620002f257620002f162000133565b5b81516200030484826020860162000266565b91505092915050565b60008060408385031215620003275762000326620000ee565b5b600062000337858286016200011c565b925050602083015167ffffffffffffffff8111156200035b576200035a620000f3565b5b6200036985828601620002da565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600060ff82169050919050565b6000620003eb82620003d1565b915060ff8203620004015762000400620003a2565b5b600182019050919050565b611d69806200041c6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806331404484146100675780634e1389ed146100835780638e19899e1461009f578063b21a99d2146100bb578063b93bd7d4146100eb578063bfe07da61461011b575b600080fd5b610081600480360381019061007c9190610f6c565b61014b565b005b61009d60048036038101906100989190611008565b6102a7565b005b6100b960048036038101906100b49190610f6c565b61054d565b005b6100d560048036038101906100d091906110e1565b610688565b6040516100e2919061116b565b60405180910390f35b61010560048036038101906101009190611186565b610a37565b60405161011291906111ce565b60405180910390f35b6101356004803603810190610130919061124e565b610a57565b604051610142919061116b565b60405180910390f35b803373ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146101f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101e790611345565b60405180910390fd5b60006002600084815260200190815260200160002060030160006101000a81548160ff0219169083151502179055506002600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f81a84d666c6a692c1cf93ca3b3648cc7bf23d34a1c6afa2e15e346f424baa06c8360405161029b919061116b565b60405180910390a25050565b6000600560008781526020019081526020016000209050600060026000836000015481526020019081526020016000206004018260040154876040516020016102f293929190611489565b6040516020818303038152906040528051906020012090506006600082815260200190815260200160002060009054906101000a900460ff161561036b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036290611534565b60405180910390fd5b6000600182858888604051600081526020016040526040516103909493929190611563565b6020604051602081039080840390855afa1580156103b2573d6000803e3d6000fd5b505050602060405103519050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661044a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610441906115f4565b60405180910390fd5b60018360060160006101000a81548160ff02191690831515021790555060016006600084815260200190815260200160002060006101000a81548160ff0219169083151502179055506104a08360000154610cc8565b600460008560000154815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055508260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5e420822d2f7281fdc4b763c62c8b7874bf22108a35efe93144d79296aacc67d8960405161053b919061116b565b60405180910390a25050505050505050565b803373ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e990611345565b60405180910390fd5b6105fb82610cc8565b50600060026000848152602001908152602001600020600201549050600060026000858152602001908152602001600020600201819055503373ffffffffffffffffffffffffffffffffffffffff167fbc44d79619424e05dd4e8ea6a3e67823f43e45cf0c9b52463ec7a8806146991d848360405161067b929190611623565b60405180910390a2505050565b6000806002600088815260200190815260200160002090508060030160009054906101000a900460ff166106f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e890611698565b60405180910390fd5b82816002015411610737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072e90611704565b60405180910390fd5b86838760405160200161074c9392919061178d565b604051602081830303815290604052805190602001209150436005600084815260200190815260200160002060050154106107bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b39061183c565b60405180910390fd5b60006040518060e001604052808981526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff16815260200186815260200185815260200160005443610821919061188b565b815260200160001515815250905080600560008581526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a81548160ff02191690831515021790555090505082600360008a8152602001908152602001600020600460008b815260200190815260200160002060009054906101000a900461ffff1661ffff1681548110610967576109666118bf565b5b906000526020600020018190555060046000898152602001908152602001600020600081819054906101000a900461ffff16809291906109a6906118fc565b91906101000a81548161ffff021916908361ffff16021790555050838260020160008282546109d59190611926565b925050819055508673ffffffffffffffffffffffffffffffffffffffff167f628415da70a2c48a4b0ec6d330bb84602bfa2b9f13415d12e273a7844ec8126b8486604051610a24929190611623565b60405180910390a2505095945050505050565b60016020528060005260406000206000915054906101000a900460ff1681565b6000828285604051602001610a6e9392919061198e565b6040516020818303038152906040528051906020012090506002600082815260200190815260200160002060030160009054906101000a900460ff1615610aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae190611a2a565b60405180910390fd5b60006040518060a001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff16815260200186815260200160011515815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152509050806002600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015560608201518160030160006101000a81548160ff0219169083151502179055506080820151816004019081610c699190611c1b565b509050503373ffffffffffffffffffffffffffffffffffffffff167fff446757a2885630e74116c217f433ee3c8ff5e1a60055ca9c30d89f29e6f1b4838888604051610cb793929190611cfc565b60405180910390a250949350505050565b60008060036000848152602001908152602001600020905060006004600085815260200190815260200160002060009054906101000a900461ffff1690506000925060005b8161ffff168161ffff161015610f2457600060056000858461ffff1681548110610d3a57610d396118bf565b5b906000526020600020015481526020019081526020016000206040518060e0016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016003820154815260200160048201548152602001600582015481526020016006820160009054906101000a900460ff1615151515815250509050438160a00151118015610e6457508060c00151155b15610ec357838261ffff1681548110610e8057610e7f6118bf565b5b9060005260206000200154848661ffff1681548110610ea257610ea16118bf565b5b90600052602060002001819055508480610ebb906118fc565b955050610f10565b438160a00151108015610ed857508060c00151155b15610f0f578060800151600260008881526020019081526020016000206002016000828254610f07919061188b565b925050819055505b5b508080610f1c906118fc565b915050610d0d565b505050919050565b600080fd5b600080fd5b6000819050919050565b610f4981610f36565b8114610f5457600080fd5b50565b600081359050610f6681610f40565b92915050565b600060208284031215610f8257610f81610f2c565b5b6000610f9084828501610f57565b91505092915050565b6000819050919050565b610fac81610f99565b8114610fb757600080fd5b50565b600081359050610fc981610fa3565b92915050565b600060ff82169050919050565b610fe581610fcf565b8114610ff057600080fd5b50565b60008135905061100281610fdc565b92915050565b600080600080600060a0868803121561102457611023610f2c565b5b600061103288828901610f57565b955050602061104388828901610fba565b945050604061105488828901610f57565b935050606061106588828901610f57565b925050608061107688828901610ff3565b9150509295509295909350565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006110ae82611083565b9050919050565b6110be816110a3565b81146110c957600080fd5b50565b6000813590506110db816110b5565b92915050565b600080600080600060a086880312156110fd576110fc610f2c565b5b600061110b88828901610f57565b955050602061111c888289016110cc565b945050604061112d888289016110cc565b935050606061113e88828901610fba565b925050608061114f88828901610fba565b9150509295509295909350565b61116581610f36565b82525050565b6000602082019050611180600083018461115c565b92915050565b60006020828403121561119c5761119b610f2c565b5b60006111aa848285016110cc565b91505092915050565b60008115159050919050565b6111c8816111b3565b82525050565b60006020820190506111e360008301846111bf565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261120e5761120d6111e9565b5b8235905067ffffffffffffffff81111561122b5761122a6111ee565b5b602083019150836001820283011115611247576112466111f3565b5b9250929050565b6000806000806060858703121561126857611267610f2c565b5b6000611276878288016110cc565b945050602061128787828801610fba565b935050604085013567ffffffffffffffff8111156112a8576112a7610f31565b5b6112b4878288016111f8565b925092505092959194509250565b600082825260208201905092915050565b7f50325049583a204f6e6c792073656c6c657220636f756c642063616c6c20746860008201527f69732066756e6374696f6e2e0000000000000000000000000000000000000000602082015250565b600061132f602c836112c2565b915061133a826112d3565b604082019050919050565b6000602082019050818103600083015261135e81611322565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806113ac57607f821691505b6020821081036113bf576113be611365565b5b50919050565b600081905092915050565b60008190508160005260206000209050919050565b600081546113f281611394565b6113fc81866113c5565b94506001821660008114611417576001811461142c5761145f565b60ff198316865281151582028601935061145f565b611435856113d0565b60005b8381101561145757815481890152600182019150602081019050611438565b838801955050505b50505092915050565b6000819050919050565b61148361147e82610f99565b611468565b82525050565b600061149582866113e5565b91506114a18285611472565b6020820191506114b18284611472565b602082019150819050949350505050565b7f5472616e73616374696f6e20616c7265616479207573656420746f20756e6c6f60008201527f636b207061796d656e742e000000000000000000000000000000000000000000602082015250565b600061151e602b836112c2565b9150611529826114c2565b604082019050919050565b6000602082019050818103600083015261154d81611511565b9050919050565b61155d81610fcf565b82525050565b6000608082019050611578600083018761115c565b6115856020830186611554565b611592604083018561115c565b61159f606083018461115c565b95945050505050565b7f5369676e6572206973206e6f7420612076616c6964207369676e65722e000000600082015250565b60006115de601d836112c2565b91506115e9826115a8565b602082019050919050565b6000602082019050818103600083015261160d816115d1565b9050919050565b61161d81610f99565b82525050565b6000604082019050611638600083018561115c565b6116456020830184611614565b9392505050565b7f50325049583a204465706f736974206e6f742076616c696420616e796d6f7265600082015250565b60006116826020836112c2565b915061168d8261164c565b602082019050919050565b600060208201905081810360008301526116b181611675565b9050919050565b7f50325049583a204e6f7420656e6f7567682072656d61696e696e670000000000600082015250565b60006116ee601b836112c2565b91506116f9826116b8565b602082019050919050565b6000602082019050818103600083015261171d816116e1565b9050919050565b6000819050919050565b61173f61173a82610f36565b611724565b82525050565b60008160601b9050919050565b600061175d82611745565b9050919050565b600061176f82611752565b9050919050565b611787611782826110a3565b611764565b82525050565b6000611799828661172e565b6020820191506117a98285611472565b6020820191506117b98284611776565b601482019150819050949350505050565b7f50325049583a20416e6f74686572206c6f636b20776974682073616d6520494460008201527f206973206e6f7420657870697265642079657400000000000000000000000000602082015250565b60006118266033836112c2565b9150611831826117ca565b604082019050919050565b6000602082019050818103600083015261185581611819565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061189682610f99565b91506118a183610f99565b92508282019050808211156118b9576118b861185c565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061ffff82169050919050565b6000611907826118ee565b915061ffff820361191b5761191a61185c565b5b600182019050919050565b600061193182610f99565b915061193c83610f99565b92508282039050818111156119545761195361185c565b5b92915050565b82818337600083830152505050565b600061197583856113c5565b935061198283858461195a565b82840190509392505050565b600061199b828587611969565b91506119a78284611472565b602082019150819050949350505050565b7f50325049583a204465706f73697420616c726561647920657869737420616e6460008201527f206974206973207374696c6c2076616c69640000000000000000000000000000602082015250565b6000611a146032836112c2565b9150611a1f826119b8565b604082019050919050565b60006020820190508181036000830152611a4381611a07565b9050919050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020601f8301049050919050565b600082821b905092915050565b600060088302611ad17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611a94565b611adb8683611a94565b95508019841693508086168417925050509392505050565b6000819050919050565b6000611b18611b13611b0e84610f99565b611af3565b610f99565b9050919050565b6000819050919050565b611b3283611afd565b611b46611b3e82611b1f565b848454611aa1565b825550505050565b600090565b611b5b611b4e565b611b66818484611b29565b505050565b5b81811015611b8a57611b7f600082611b53565b600181019050611b6c565b5050565b601f821115611bcf57611ba0816113d0565b611ba984611a84565b81016020851015611bb8578190505b611bcc611bc485611a84565b830182611b6b565b50505b505050565b600082821c905092915050565b6000611bf260001984600802611bd4565b1980831691505092915050565b6000611c0b8383611be1565b9150826002028217905092915050565b611c2482611a4a565b67ffffffffffffffff811115611c3d57611c3c611a55565b5b611c478254611394565b611c52828285611b8e565b600060209050601f831160018114611c855760008415611c73578287015190505b611c7d8582611bff565b865550611ce5565b601f198416611c93866113d0565b60005b82811015611cbb57848901518255600182019150602085019450602081019050611c96565b86831015611cd85784890151611cd4601f891682611be1565b8355505b6001600288020188555050505b505050505050565b611cf6816110a3565b82525050565b6000606082019050611d11600083018661115c565b611d1e6020830185611ced565b611d2b6040830184611614565b94935050505056fea2646970667358221220fe9ff1e9a517a7b010e12ac35c5ea0c1d6330b7c228192d600f1a49e6213c01664736f6c63430008110033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c806331404484146100675780634e1389ed146100835780638e19899e1461009f578063b21a99d2146100bb578063b93bd7d4146100eb578063bfe07da61461011b575b600080fd5b610081600480360381019061007c9190610f6c565b61014b565b005b61009d60048036038101906100989190611008565b6102a7565b005b6100b960048036038101906100b49190610f6c565b61054d565b005b6100d560048036038101906100d091906110e1565b610688565b6040516100e2919061116b565b60405180910390f35b61010560048036038101906101009190611186565b610a37565b60405161011291906111ce565b60405180910390f35b6101356004803603810190610130919061124e565b610a57565b604051610142919061116b565b60405180910390f35b803373ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146101f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101e790611345565b60405180910390fd5b60006002600084815260200190815260200160002060030160006101000a81548160ff0219169083151502179055506002600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f81a84d666c6a692c1cf93ca3b3648cc7bf23d34a1c6afa2e15e346f424baa06c8360405161029b919061116b565b60405180910390a25050565b6000600560008781526020019081526020016000209050600060026000836000015481526020019081526020016000206004018260040154876040516020016102f293929190611489565b6040516020818303038152906040528051906020012090506006600082815260200190815260200160002060009054906101000a900460ff161561036b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036290611534565b60405180910390fd5b6000600182858888604051600081526020016040526040516103909493929190611563565b6020604051602081039080840390855afa1580156103b2573d6000803e3d6000fd5b505050602060405103519050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661044a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610441906115f4565b60405180910390fd5b60018360060160006101000a81548160ff02191690831515021790555060016006600084815260200190815260200160002060006101000a81548160ff0219169083151502179055506104a08360000154610cc8565b600460008560000154815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055508260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5e420822d2f7281fdc4b763c62c8b7874bf22108a35efe93144d79296aacc67d8960405161053b919061116b565b60405180910390a25050505050505050565b803373ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e990611345565b60405180910390fd5b6105fb82610cc8565b50600060026000848152602001908152602001600020600201549050600060026000858152602001908152602001600020600201819055503373ffffffffffffffffffffffffffffffffffffffff167fbc44d79619424e05dd4e8ea6a3e67823f43e45cf0c9b52463ec7a8806146991d848360405161067b929190611623565b60405180910390a2505050565b6000806002600088815260200190815260200160002090508060030160009054906101000a900460ff166106f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e890611698565b60405180910390fd5b82816002015411610737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072e90611704565b60405180910390fd5b86838760405160200161074c9392919061178d565b604051602081830303815290604052805190602001209150436005600084815260200190815260200160002060050154106107bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b39061183c565b60405180910390fd5b60006040518060e001604052808981526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff16815260200186815260200185815260200160005443610821919061188b565b815260200160001515815250905080600560008581526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a81548160ff02191690831515021790555090505082600360008a8152602001908152602001600020600460008b815260200190815260200160002060009054906101000a900461ffff1661ffff1681548110610967576109666118bf565b5b906000526020600020018190555060046000898152602001908152602001600020600081819054906101000a900461ffff16809291906109a6906118fc565b91906101000a81548161ffff021916908361ffff16021790555050838260020160008282546109d59190611926565b925050819055508673ffffffffffffffffffffffffffffffffffffffff167f628415da70a2c48a4b0ec6d330bb84602bfa2b9f13415d12e273a7844ec8126b8486604051610a24929190611623565b60405180910390a2505095945050505050565b60016020528060005260406000206000915054906101000a900460ff1681565b6000828285604051602001610a6e9392919061198e565b6040516020818303038152906040528051906020012090506002600082815260200190815260200160002060030160009054906101000a900460ff1615610aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae190611a2a565b60405180910390fd5b60006040518060a001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff16815260200186815260200160011515815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152509050806002600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015560608201518160030160006101000a81548160ff0219169083151502179055506080820151816004019081610c699190611c1b565b509050503373ffffffffffffffffffffffffffffffffffffffff167fff446757a2885630e74116c217f433ee3c8ff5e1a60055ca9c30d89f29e6f1b4838888604051610cb793929190611cfc565b60405180910390a250949350505050565b60008060036000848152602001908152602001600020905060006004600085815260200190815260200160002060009054906101000a900461ffff1690506000925060005b8161ffff168161ffff161015610f2457600060056000858461ffff1681548110610d3a57610d396118bf565b5b906000526020600020015481526020019081526020016000206040518060e0016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016003820154815260200160048201548152602001600582015481526020016006820160009054906101000a900460ff1615151515815250509050438160a00151118015610e6457508060c00151155b15610ec357838261ffff1681548110610e8057610e7f6118bf565b5b9060005260206000200154848661ffff1681548110610ea257610ea16118bf565b5b90600052602060002001819055508480610ebb906118fc565b955050610f10565b438160a00151108015610ed857508060c00151155b15610f0f578060800151600260008881526020019081526020016000206002016000828254610f07919061188b565b925050819055505b5b508080610f1c906118fc565b915050610d0d565b505050919050565b600080fd5b600080fd5b6000819050919050565b610f4981610f36565b8114610f5457600080fd5b50565b600081359050610f6681610f40565b92915050565b600060208284031215610f8257610f81610f2c565b5b6000610f9084828501610f57565b91505092915050565b6000819050919050565b610fac81610f99565b8114610fb757600080fd5b50565b600081359050610fc981610fa3565b92915050565b600060ff82169050919050565b610fe581610fcf565b8114610ff057600080fd5b50565b60008135905061100281610fdc565b92915050565b600080600080600060a0868803121561102457611023610f2c565b5b600061103288828901610f57565b955050602061104388828901610fba565b945050604061105488828901610f57565b935050606061106588828901610f57565b925050608061107688828901610ff3565b9150509295509295909350565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006110ae82611083565b9050919050565b6110be816110a3565b81146110c957600080fd5b50565b6000813590506110db816110b5565b92915050565b600080600080600060a086880312156110fd576110fc610f2c565b5b600061110b88828901610f57565b955050602061111c888289016110cc565b945050604061112d888289016110cc565b935050606061113e88828901610fba565b925050608061114f88828901610fba565b9150509295509295909350565b61116581610f36565b82525050565b6000602082019050611180600083018461115c565b92915050565b60006020828403121561119c5761119b610f2c565b5b60006111aa848285016110cc565b91505092915050565b60008115159050919050565b6111c8816111b3565b82525050565b60006020820190506111e360008301846111bf565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261120e5761120d6111e9565b5b8235905067ffffffffffffffff81111561122b5761122a6111ee565b5b602083019150836001820283011115611247576112466111f3565b5b9250929050565b6000806000806060858703121561126857611267610f2c565b5b6000611276878288016110cc565b945050602061128787828801610fba565b935050604085013567ffffffffffffffff8111156112a8576112a7610f31565b5b6112b4878288016111f8565b925092505092959194509250565b600082825260208201905092915050565b7f50325049583a204f6e6c792073656c6c657220636f756c642063616c6c20746860008201527f69732066756e6374696f6e2e0000000000000000000000000000000000000000602082015250565b600061132f602c836112c2565b915061133a826112d3565b604082019050919050565b6000602082019050818103600083015261135e81611322565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806113ac57607f821691505b6020821081036113bf576113be611365565b5b50919050565b600081905092915050565b60008190508160005260206000209050919050565b600081546113f281611394565b6113fc81866113c5565b94506001821660008114611417576001811461142c5761145f565b60ff198316865281151582028601935061145f565b611435856113d0565b60005b8381101561145757815481890152600182019150602081019050611438565b838801955050505b50505092915050565b6000819050919050565b61148361147e82610f99565b611468565b82525050565b600061149582866113e5565b91506114a18285611472565b6020820191506114b18284611472565b602082019150819050949350505050565b7f5472616e73616374696f6e20616c7265616479207573656420746f20756e6c6f60008201527f636b207061796d656e742e000000000000000000000000000000000000000000602082015250565b600061151e602b836112c2565b9150611529826114c2565b604082019050919050565b6000602082019050818103600083015261154d81611511565b9050919050565b61155d81610fcf565b82525050565b6000608082019050611578600083018761115c565b6115856020830186611554565b611592604083018561115c565b61159f606083018461115c565b95945050505050565b7f5369676e6572206973206e6f7420612076616c6964207369676e65722e000000600082015250565b60006115de601d836112c2565b91506115e9826115a8565b602082019050919050565b6000602082019050818103600083015261160d816115d1565b9050919050565b61161d81610f99565b82525050565b6000604082019050611638600083018561115c565b6116456020830184611614565b9392505050565b7f50325049583a204465706f736974206e6f742076616c696420616e796d6f7265600082015250565b60006116826020836112c2565b915061168d8261164c565b602082019050919050565b600060208201905081810360008301526116b181611675565b9050919050565b7f50325049583a204e6f7420656e6f7567682072656d61696e696e670000000000600082015250565b60006116ee601b836112c2565b91506116f9826116b8565b602082019050919050565b6000602082019050818103600083015261171d816116e1565b9050919050565b6000819050919050565b61173f61173a82610f36565b611724565b82525050565b60008160601b9050919050565b600061175d82611745565b9050919050565b600061176f82611752565b9050919050565b611787611782826110a3565b611764565b82525050565b6000611799828661172e565b6020820191506117a98285611472565b6020820191506117b98284611776565b601482019150819050949350505050565b7f50325049583a20416e6f74686572206c6f636b20776974682073616d6520494460008201527f206973206e6f7420657870697265642079657400000000000000000000000000602082015250565b60006118266033836112c2565b9150611831826117ca565b604082019050919050565b6000602082019050818103600083015261185581611819565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061189682610f99565b91506118a183610f99565b92508282019050808211156118b9576118b861185c565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061ffff82169050919050565b6000611907826118ee565b915061ffff820361191b5761191a61185c565b5b600182019050919050565b600061193182610f99565b915061193c83610f99565b92508282039050818111156119545761195361185c565b5b92915050565b82818337600083830152505050565b600061197583856113c5565b935061198283858461195a565b82840190509392505050565b600061199b828587611969565b91506119a78284611472565b602082019150819050949350505050565b7f50325049583a204465706f73697420616c726561647920657869737420616e6460008201527f206974206973207374696c6c2076616c69640000000000000000000000000000602082015250565b6000611a146032836112c2565b9150611a1f826119b8565b604082019050919050565b60006020820190508181036000830152611a4381611a07565b9050919050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020601f8301049050919050565b600082821b905092915050565b600060088302611ad17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611a94565b611adb8683611a94565b95508019841693508086168417925050509392505050565b6000819050919050565b6000611b18611b13611b0e84610f99565b611af3565b610f99565b9050919050565b6000819050919050565b611b3283611afd565b611b46611b3e82611b1f565b848454611aa1565b825550505050565b600090565b611b5b611b4e565b611b66818484611b29565b505050565b5b81811015611b8a57611b7f600082611b53565b600181019050611b6c565b5050565b601f821115611bcf57611ba0816113d0565b611ba984611a84565b81016020851015611bb8578190505b611bcc611bc485611a84565b830182611b6b565b50505b505050565b600082821c905092915050565b6000611bf260001984600802611bd4565b1980831691505092915050565b6000611c0b8383611be1565b9150826002028217905092915050565b611c2482611a4a565b67ffffffffffffffff811115611c3d57611c3c611a55565b5b611c478254611394565b611c52828285611b8e565b600060209050601f831160018114611c855760008415611c73578287015190505b611c7d8582611bff565b865550611ce5565b601f198416611c93866113d0565b60005b82811015611cbb57848901518255600182019150602085019450602081019050611c96565b86831015611cd85784890151611cd4601f891682611be1565b8355505b6001600288020188555050505b505050505050565b611cf6816110a3565b82525050565b6000606082019050611d11600083018661115c565b611d1e6020830185611ced565b611d2b6040830184611614565b94935050505056fea2646970667358221220fe9ff1e9a517a7b010e12ac35c5ea0c1d6330b7c228192d600f1a49e6213c01664736f6c63430008110033",
"linkReferences": {},
"deployedLinkReferences": {}
}