UNPKG

kleros-interaction-2

Version:
260 lines (259 loc) 496 kB
{ "contractName": "TwoPartyArbitrableEscrowPaymentProxyUser", "abi": [ { "constant": true, "inputs": [ { "name": "", "type": "bytes32" } ], "name": "payments", "outputs": [ { "name": "value", "type": "uint256" }, { "name": "createdAt", "type": "uint256" }, { "name": "timeOut", "type": "uint256" }, { "name": "executed", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "arbitrableProxy", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "inputs": [ { "name": "_arbitrableProxy", "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_paymentID", "type": "bytes32" }, { "indexed": true, "name": "_sender", "type": "address" }, { "indexed": true, "name": "_receiver", "type": "address" }, { "indexed": false, "name": "_value", "type": "uint256" } ], "name": "PaymentExecuted", "type": "event" }, { "constant": false, "inputs": [ { "name": "_paymentID", "type": "bytes32" }, { "name": "_metaEvidence", "type": "string" }, { "name": "_to", "type": "address" }, { "name": "_arbitrationFeesWaitingTime", "type": "uint256" }, { "name": "_arbitrator", "type": "address" }, { "name": "_timeOut", "type": "uint256" } ], "name": "createPayment", "outputs": [], "payable": true, "stateMutability": "payable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_paymentID", "type": "bytes32" } ], "name": "executePayment", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_agreementID", "type": "bytes32" }, { "name": "_ruling", "type": "uint256" } ], "name": "executeAgreementRuling", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b50604051602080620015b583398101806040526100309190810190610068565b60008054600160a060020a031916600160a060020a03929092169190911790556100ab565b6000610061825161009a565b9392505050565b60006020828403121561007a57600080fd5b60006100868484610055565b949350505050565b600160a060020a031690565b60006100a58261008e565b92915050565b6114fa80620000bb6000396000f30060806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630716326d81146100715780633471c7f3146100aa578063418bb260146100bf5780639fdd0f99146100df578063e615e31314610101575b600080fd5b34801561007d57600080fd5b5061009161008c366004610e48565b610121565b6040516100a1949392919061137a565b60405180910390f35b6100bd6100b8366004610e6e565b61014c565b005b3480156100cb57600080fd5b506100bd6100da366004610e48565b6102da565b3480156100eb57600080fd5b506100f461051d565b6040516100a191906112fc565b34801561010d57600080fd5b506100bd61011c366004610f13565b61052c565b6001602081905260009182526040909120805491810154600282015460039092015490919060ff1684565b60606000341161017a5760405160e560020a62461bcd0281526004016101719061136a565b60405180910390fd5b6040805160028082526060820183529091602083019080388339019050509050338160008151811015156101aa57fe5b600160a060020a0390921660209283029091019091015280518590829060019081106101d257fe5b600160a060020a039283166020918202929092018101919091526000805460408051928352928201928390527ff3eb594f0000000000000000000000000000000000000000000000000000000090925291169063f3eb594f90610245908b908b908b9087906002908c8c6024830161127d565b600060405180830381600087803b15801561025f57600080fd5b505af1158015610273573d6000803e3d6000fd5b5050604080516080810182523481524260208083019182528284019788526000606084018181529e81526001918290529390932091518255519181019190915593516002850155505096516003909101805460ff1916911515919091179055505050505050565b600080546040517fedde5ff400000000000000000000000000000000000000000000000000000000815260609183918291600160a060020a03169063edde5ff490610329908890600401611269565b600060405180830381600087803b15801561034357600080fd5b505af1158015610357573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261037f9190810190610c3e565b50505060008d8152600160205260409020979b50959950949750949550505050600160a060020a038616151591506103ce90505760405160e560020a62461bcd0281526004016101719061135a565b600381015460ff16156103f65760405160e560020a62461bcd0281526004016101719061131a565b81156104175760405160e560020a62461bcd0281526004016101719061132a565b600281015460018201544203116104435760405160e560020a62461bcd0281526004016101719061130a565b82600181518110151561045257fe5b602090810290910101518154604051600160a060020a039092169181156108fc0291906000818181858888f15050505060038201805460ff19166001908117909155845185925081106104a157fe5b90602001906020020151600160a060020a03168360008151811015156104c357fe5b90602001906020020151600160a060020a031686600019167f315da197c0ccf4f28bae1ae22802d4b17da07de78726fb3f81c38eabf5b1b715846000015460405161050e9190611269565b60405180910390a45050505050565b600054600160a060020a031681565b60608060608060008061053f88886108e8565b6000546040517fedde5ff4000000000000000000000000000000000000000000000000000000008152600160a060020a039091169063edde5ff490610588908b90600401611269565b600060405180830381600087803b1580156105a257600080fd5b505af11580156105b6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105de9190810190610c3e565b5050505050505050509650506000809054906101000a9004600160a060020a0316600160a060020a0316630b3b430d896040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016106469190611269565b600060405180830381600087803b15801561066057600080fd5b505af1158015610674573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261069c9190810190610d5c565b60008d81526001602052604090206003810154949a50919850965094505060ff161590506106df5760405160e560020a62461bcd0281526004016101719061134a565b845160011415610767578360008151811015156106f857fe5b602090810291909101810151015184518590600090811061071557fe5b602090810291909101015151106107465785600081518110151561073557fe5b906020019060200201519050610762565b85600181518110151561075557fe5b9060200190602002015190505b61083d565b82518390600019810190811061077957fe5b9060200190602002015180156107e7575083518490600019810190811061079c57fe5b60209081029190910181015101518551869060001981019081106107bc57fe5b906020019060200201518560018751038151811015156107d857fe5b60209081029190910101515103115b1561080e5785876002146107fc5760016107ff565b60005b60ff1681518110151561075557fe5b858760021461081e576000610821565b60015b60ff1681518110151561083057fe5b9060200190602002015190505b8154604051600160a060020a0383169180156108fc02916000818181858888f150505060038401805460ff1916600117905550508551600160a060020a038216908790600090811061088b57fe5b90602001906020020151600160a060020a031689600019167f315da197c0ccf4f28bae1ae22802d4b17da07de78726fb3f81c38eabf5b1b71585600001546040516108d69190611269565b60405180910390a45050505050505050565b600054600160a060020a031633146109155760405160e560020a62461bcd0281526004016101719061133a565b5050565b60006109258235611450565b9392505050565b60006109258251611450565b6000601f8201831361094957600080fd5b815161095c610957826113df565b6113b8565b9150818183526020840193506020810190508385602084028201111561098157600080fd5b60005b838110156109ad5781610997888261092c565b8452506020928301929190910190600101610984565b5050505092915050565b6000601f820183136109c857600080fd5b81516109d6610957826113df565b915081818352602084019350602081019050838560408402820111156109fb57600080fd5b60005b838110156109ad5781610a118882610a99565b845250602090920191604091909101906001016109fe565b6000601f82018313610a3a57600080fd5b8151610a48610957826113df565b91508181835260208401935060208101905083856020840282011115610a6d57600080fd5b60005b838110156109ad5781610a838882610b6a565b8452506020928301929190910190600101610a70565b6000601f82018313610aaa57600080fd5b6002610ab861095782611400565b91508183856020840282011115610ace57600080fd5b60005b838110156109ad5781610ae48882610c32565b8452506020928301929190910190600101610ad1565b6000601f82018313610b0b57600080fd5b8151610b19610957826113df565b91508181835260208401935060208101905083856020840282011115610b3e57600080fd5b60005b838110156109ad5781610b548882610c32565b8452506020928301929190910190600101610b41565b6000610925825161145c565b60006109258235611461565b6000601f82018313610b9357600080fd5b8151610ba16109578261141e565b91508082526020830160208301858383011115610bbd57600080fd5b610bc8838284611486565b50505092915050565b60006109258235611464565b60006109258251611464565b600080601f83018413610bfb57600080fd5b50813567ffffffffffffffff811115610c1357600080fd5b602083019150836001820283011115610c2b57600080fd5b9250929050565b60006109258251611461565b60008060008060008060008060008060006101608c8e031215610c6057600080fd5b6000610c6c8e8e61092c565b9b505060208c015167ffffffffffffffff811115610c8957600080fd5b610c958e828f01610938565b9a50506040610ca68e828f01610c32565b99505060608c015167ffffffffffffffff811115610cc357600080fd5b610ccf8e828f01610b82565b9850506080610ce08e828f01610c32565b97505060a0610cf18e828f01610bdd565b96505060c0610d028e828f01610c32565b95505060e0610d138e828f01610b6a565b945050610100610d258e828f01610b6a565b935050610120610d378e828f01610c32565b925050610140610d498e828f01610b6a565b9150509295989b509295989b9093969950565b600080600080600060a08688031215610d7457600080fd5b855167ffffffffffffffff811115610d8b57600080fd5b610d9788828901610afa565b955050602086015167ffffffffffffffff811115610db457600080fd5b610dc088828901610afa565b945050604086015167ffffffffffffffff811115610ddd57600080fd5b610de988828901610afa565b935050606086015167ffffffffffffffff811115610e0657600080fd5b610e12888289016109b7565b925050608086015167ffffffffffffffff811115610e2f57600080fd5b610e3b88828901610a29565b9150509295509295909350565b600060208284031215610e5a57600080fd5b6000610e668484610b76565b949350505050565b600080600080600080600060c0888a031215610e8957600080fd5b6000610e958a8a610b76565b975050602088013567ffffffffffffffff811115610eb257600080fd5b610ebe8a828b01610be9565b96509650506040610ed18a828b01610919565b9450506060610ee28a828b01610b76565b9350506080610ef38a828b01610bd1565b92505060a0610f048a828b01610b76565b91505092959891949750929550565b60008060408385031215610f2657600080fd5b6000610f328585610b76565b9250506020610f4385828601610b76565b9150509250929050565b610f5681611450565b82525050565b6000610f678261144c565b808452602084019350610f7983611446565b60005b82811015610fa957610f8f868351610f4d565b610f9882611446565b602096909601959150600101610f7c565b5093949350505050565b610f568161145c565b610f5681611461565b6000610fd08261144c565b808452610fe4816020860160208601611486565b610fed816114b6565b9093016020019392505050565b610f5681611464565b610f568161146f565b600082845260208401935061102283858461147a565b61102b836114b6565b9093019392505050565b602c81527f54686520737065636966696564207061796d656e7420686173206e6f7420746960208201527f6d6564206f7574207965742e0000000000000000000000000000000000000000604082015260600190565b603081527f54686520737065636966696564207061796d656e742068617320616c7265616460208201527f79206265656e2065786563757465642e00000000000000000000000000000000604082015260600190565b602281527f54686520737065636966696564207061796d656e74206973206469737075746560208201527f642e000000000000000000000000000000000000000000000000000000000000604082015260600190565b602881527f5468652063616c6c6572206d757374206265207468652061726269747261626c60208201527f652070726f78792e000000000000000000000000000000000000000000000000604082015260600190565b603281527f546865207370656369666965642061677265656d656e742068617320616c726560208201527f616479206265656e2065786563757465642e0000000000000000000000000000604082015260600190565b602581527f54686520737065636966696564207061796d656e7420646f6573206e6f74206560208201527f786973742e000000000000000000000000000000000000000000000000000000604082015260600190565b601f81527f5061796d656e74206d757374206265206d6f7265207468616e207a65726f2e00602082015260400190565b602081016112778284610fbc565b92915050565b60e0810161128b828b610fbc565b818103602083015261129e81898b61100c565b905081810360408301526112b28188610f5c565b90506112c16060830187611003565b81810360808301526112d38186610fc5565b90506112e260a0830185610fbc565b6112ef60c0830184610ffa565b9998505050505050505050565b602081016112778284610ffa565b6020808252810161127781611035565b602080825281016112778161108b565b60208082528101611277816110e1565b6020808252810161127781611137565b602080825281016112778161118d565b60208082528101611277816111e3565b6020808252810161127781611239565b608081016113888287610fbc565b6113956020830186610fbc565b6113a26040830185610fbc565b6113af6060830184610fb3565b95945050505050565b60405181810167ffffffffffffffff811182821017156113d757600080fd5b604052919050565b600067ffffffffffffffff8211156113f657600080fd5b5060209081020190565b600067ffffffffffffffff82111561141757600080fd5b5060200290565b600067ffffffffffffffff82111561143557600080fd5b506020601f91909101601f19160190565b60200190565b5190565b600160a060020a031690565b151590565b90565b600061127782611450565b600061127782611461565b82818337506000910152565b60005b838110156114a1578181015183820152602001611489565b838111156114b0576000848401525b50505050565b601f01601f1916905600a265627a7a723058207f58c0d71b6ca6929ef8aa084bb5ad9314954ea316ca807d0ca8119b2605a2336c6578706572696d656e74616cf50037", "deployedBytecode": "0x60806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630716326d81146100715780633471c7f3146100aa578063418bb260146100bf5780639fdd0f99146100df578063e615e31314610101575b600080fd5b34801561007d57600080fd5b5061009161008c366004610e48565b610121565b6040516100a1949392919061137a565b60405180910390f35b6100bd6100b8366004610e6e565b61014c565b005b3480156100cb57600080fd5b506100bd6100da366004610e48565b6102da565b3480156100eb57600080fd5b506100f461051d565b6040516100a191906112fc565b34801561010d57600080fd5b506100bd61011c366004610f13565b61052c565b6001602081905260009182526040909120805491810154600282015460039092015490919060ff1684565b60606000341161017a5760405160e560020a62461bcd0281526004016101719061136a565b60405180910390fd5b6040805160028082526060820183529091602083019080388339019050509050338160008151811015156101aa57fe5b600160a060020a0390921660209283029091019091015280518590829060019081106101d257fe5b600160a060020a039283166020918202929092018101919091526000805460408051928352928201928390527ff3eb594f0000000000000000000000000000000000000000000000000000000090925291169063f3eb594f90610245908b908b908b9087906002908c8c6024830161127d565b600060405180830381600087803b15801561025f57600080fd5b505af1158015610273573d6000803e3d6000fd5b5050604080516080810182523481524260208083019182528284019788526000606084018181529e81526001918290529390932091518255519181019190915593516002850155505096516003909101805460ff1916911515919091179055505050505050565b600080546040517fedde5ff400000000000000000000000000000000000000000000000000000000815260609183918291600160a060020a03169063edde5ff490610329908890600401611269565b600060405180830381600087803b15801561034357600080fd5b505af1158015610357573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261037f9190810190610c3e565b50505060008d8152600160205260409020979b50959950949750949550505050600160a060020a038616151591506103ce90505760405160e560020a62461bcd0281526004016101719061135a565b600381015460ff16156103f65760405160e560020a62461bcd0281526004016101719061131a565b81156104175760405160e560020a62461bcd0281526004016101719061132a565b600281015460018201544203116104435760405160e560020a62461bcd0281526004016101719061130a565b82600181518110151561045257fe5b602090810290910101518154604051600160a060020a039092169181156108fc0291906000818181858888f15050505060038201805460ff19166001908117909155845185925081106104a157fe5b90602001906020020151600160a060020a03168360008151811015156104c357fe5b90602001906020020151600160a060020a031686600019167f315da197c0ccf4f28bae1ae22802d4b17da07de78726fb3f81c38eabf5b1b715846000015460405161050e9190611269565b60405180910390a45050505050565b600054600160a060020a031681565b60608060608060008061053f88886108e8565b6000546040517fedde5ff4000000000000000000000000000000000000000000000000000000008152600160a060020a039091169063edde5ff490610588908b90600401611269565b600060405180830381600087803b1580156105a257600080fd5b505af11580156105b6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105de9190810190610c3e565b5050505050505050509650506000809054906101000a9004600160a060020a0316600160a060020a0316630b3b430d896040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016106469190611269565b600060405180830381600087803b15801561066057600080fd5b505af1158015610674573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261069c9190810190610d5c565b60008d81526001602052604090206003810154949a50919850965094505060ff161590506106df5760405160e560020a62461bcd0281526004016101719061134a565b845160011415610767578360008151811015156106f857fe5b602090810291909101810151015184518590600090811061071557fe5b602090810291909101015151106107465785600081518110151561073557fe5b906020019060200201519050610762565b85600181518110151561075557fe5b9060200190602002015190505b61083d565b82518390600019810190811061077957fe5b9060200190602002015180156107e7575083518490600019810190811061079c57fe5b60209081029190910181015101518551869060001981019081106107bc57fe5b906020019060200201518560018751038151811015156107d857fe5b60209081029190910101515103115b1561080e5785876002146107fc5760016107ff565b60005b60ff1681518110151561075557fe5b858760021461081e576000610821565b60015b60ff1681518110151561083057fe5b9060200190602002015190505b8154604051600160a060020a0383169180156108fc02916000818181858888f150505060038401805460ff1916600117905550508551600160a060020a038216908790600090811061088b57fe5b90602001906020020151600160a060020a031689600019167f315da197c0ccf4f28bae1ae22802d4b17da07de78726fb3f81c38eabf5b1b71585600001546040516108d69190611269565b60405180910390a45050505050505050565b600054600160a060020a031633146109155760405160e560020a62461bcd0281526004016101719061133a565b5050565b60006109258235611450565b9392505050565b60006109258251611450565b6000601f8201831361094957600080fd5b815161095c610957826113df565b6113b8565b9150818183526020840193506020810190508385602084028201111561098157600080fd5b60005b838110156109ad5781610997888261092c565b8452506020928301929190910190600101610984565b5050505092915050565b6000601f820183136109c857600080fd5b81516109d6610957826113df565b915081818352602084019350602081019050838560408402820111156109fb57600080fd5b60005b838110156109ad5781610a118882610a99565b845250602090920191604091909101906001016109fe565b6000601f82018313610a3a57600080fd5b8151610a48610957826113df565b91508181835260208401935060208101905083856020840282011115610a6d57600080fd5b60005b838110156109ad5781610a838882610b6a565b8452506020928301929190910190600101610a70565b6000601f82018313610aaa57600080fd5b6002610ab861095782611400565b91508183856020840282011115610ace57600080fd5b60005b838110156109ad5781610ae48882610c32565b8452506020928301929190910190600101610ad1565b6000601f82018313610b0b57600080fd5b8151610b19610957826113df565b91508181835260208401935060208101905083856020840282011115610b3e57600080fd5b60005b838110156109ad5781610b548882610c32565b8452506020928301929190910190600101610b41565b6000610925825161145c565b60006109258235611461565b6000601f82018313610b9357600080fd5b8151610ba16109578261141e565b91508082526020830160208301858383011115610bbd57600080fd5b610bc8838284611486565b50505092915050565b60006109258235611464565b60006109258251611464565b600080601f83018413610bfb57600080fd5b50813567ffffffffffffffff811115610c1357600080fd5b602083019150836001820283011115610c2b57600080fd5b9250929050565b60006109258251611461565b60008060008060008060008060008060006101608c8e031215610c6057600080fd5b6000610c6c8e8e61092c565b9b505060208c015167ffffffffffffffff811115610c8957600080fd5b610c958e828f01610938565b9a50506040610ca68e828f01610c32565b99505060608c015167ffffffffffffffff811115610cc357600080fd5b610ccf8e828f01610b82565b9850506080610ce08e828f01610c32565b97505060a0610cf18e828f01610bdd565b96505060c0610d028e828f01610c32565b95505060e0610d138e828f01610b6a565b945050610100610d258e828f01610b6a565b935050610120610d378e828f01610c32565b925050610140610d498e828f01610b6a565b9150509295989b509295989b9093969950565b600080600080600060a08688031215610d7457600080fd5b855167ffffffffffffffff811115610d8b57600080fd5b610d9788828901610afa565b955050602086015167ffffffffffffffff811115610db457600080fd5b610dc088828901610afa565b945050604086015167ffffffffffffffff811115610ddd57600080fd5b610de988828901610afa565b935050606086015167ffffffffffffffff811115610e0657600080fd5b610e12888289016109b7565b925050608086015167ffffffffffffffff811115610e2f57600080fd5b610e3b88828901610a29565b9150509295509295909350565b600060208284031215610e5a57600080fd5b6000610e668484610b76565b949350505050565b600080600080600080600060c0888a031215610e8957600080fd5b6000610e958a8a610b76565b975050602088013567ffffffffffffffff811115610eb257600080fd5b610ebe8a828b01610be9565b96509650506040610ed18a828b01610919565b9450506060610ee28a828b01610b76565b9350506080610ef38a828b01610bd1565b92505060a0610f048a828b01610b76565b91505092959891949750929550565b60008060408385031215610f2657600080fd5b6000610f328585610b76565b9250506020610f4385828601610b76565b9150509250929050565b610f5681611450565b82525050565b6000610f678261144c565b808452602084019350610f7983611446565b60005b82811015610fa957610f8f868351610f4d565b610f9882611446565b602096909601959150600101610f7c565b5093949350505050565b610f568161145c565b610f5681611461565b6000610fd08261144c565b808452610fe4816020860160208601611486565b610fed816114b6565b9093016020019392505050565b610f5681611464565b610f568161146f565b600082845260208401935061102283858461147a565b61102b836114b6565b9093019392505050565b602c81527f54686520737065636966696564207061796d656e7420686173206e6f7420746960208201527f6d6564206f7574207965742e0000000000000000000000000000000000000000604082015260600190565b603081527f54686520737065636966696564207061796d656e742068617320616c7265616460208201527f79206265656e2065786563757465642e00000000000000000000000000000000604082015260600190565b602281527f54686520737065636966696564207061796d656e74206973206469737075746560208201527f642e000000000000000000000000000000000000000000000000000000000000604082015260600190565b602881527f5468652063616c6c6572206d757374206265207468652061726269747261626c60208201527f652070726f78792e000000000000000000000000000000000000000000000000604082015260600190565b603281527f546865207370656369666965642061677265656d656e742068617320616c726560208201527f616479206265656e2065786563757465642e0000000000000000000000000000604082015260600190565b602581527f54686520737065636966696564207061796d656e7420646f6573206e6f74206560208201527f786973742e000000000000000000000000000000000000000000000000000000604082015260600190565b601f81527f5061796d656e74206d757374206265206d6f7265207468616e207a65726f2e00602082015260400190565b602081016112778284610fbc565b92915050565b60e0810161128b828b610fbc565b818103602083015261129e81898b61100c565b905081810360408301526112b28188610f5c565b90506112c16060830187611003565b81810360808301526112d38186610fc5565b90506112e260a0830185610fbc565b6112ef60c0830184610ffa565b9998505050505050505050565b602081016112778284610ffa565b6020808252810161127781611035565b602080825281016112778161108b565b60208082528101611277816110e1565b6020808252810161127781611137565b602080825281016112778161118d565b60208082528101611277816111e3565b6020808252810161127781611239565b608081016113888287610fbc565b6113956020830186610fbc565b6113a26040830185610fbc565b6113af6060830184610fb3565b95945050505050565b60405181810167ffffffffffffffff811182821017156113d757600080fd5b604052919050565b600067ffffffffffffffff8211156113f657600080fd5b5060209081020190565b600067ffffffffffffffff82111561141757600080fd5b5060200290565b600067ffffffffffffffff82111561143557600080fd5b506020601f91909101601f19160190565b60200190565b5190565b600160a060020a031690565b151590565b90565b600061127782611450565b600061127782611461565b82818337506000910152565b60005b838110156114a1578181015183820152602001611489565b838111156114b0576000848401525b50505050565b601f01601f1916905600a265627a7a723058207f58c0d71b6ca6929ef8aa084bb5ad9314954ea316ca807d0ca8119b2605a2336c6578706572696d656e74616cf50037", "sourceMap": "325:5318:38:-;;;1179:93;8:9:-1;5:2;;;30:1;27;20:12;5:2;1179:93:38;;;;;;;;;;;;;;;;;;;;;;541:15:41;:34;;-1:-1:-1;;;;;;541:34:41;-1:-1:-1;;;;;541:34:41;;;;;;;;;;325:5318:38;;5:172:-1;;108:64;164:6;158:13;108:64;;;99:73;93:84;-1:-1;;;93:84;184:313;;324:2;312:9;303:7;299:23;295:32;292:2;;;340:1;337;330:12;292:2;375:1;392:89;473:7;453:9;392:89;;;382:99;286:211;-1:-1;;;;286:211;504:128;-1:-1;;;;;573:54;;556:76;639:130;;733:31;758:5;733:31;;;722:42;716:53;-1:-1;;716:53;;325:5318:38;;;;;;", "deployedSourceMap": "325:5318:38:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;956:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;956:43:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;1810:812;;;;;;;;;;;;2765:880;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2765:880:38;;;;;;;;;281:38:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;281:38:41;;;;;;;;;;;;3826:1815:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3826:1815:38;;;;;;;;;956:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1810:812::-;2109:25;2062:1;2050:9;:13;2042:57;;;;-1:-1:-1;;;;;2042:57:38;;;;;;;;;;;;;;;;;2137:16;;;2151:1;2137:16;;;;;;;;;;;;;;;105:10:-1;2137:16:38;88:34:-1;136:17;;-1:-1;2137:16:38;2109:44;;2177:10;2163:8;2172:1;2163:11;;;;;;;;;;-1:-1:-1;;;;;2163:24:38;;;:11;;;;;;;;;;:24;2197:11;;2211:3;;2197:8;;2206:1;;2197:11;;;;;;-1:-1:-1;;;;;2197:17:38;;;:11;;;;;;;;;;:17;;;;2224:15;;;2357:12;;;;;;;;;;;;;2224:221;;;;:15;;;:31;;:221;;2269:10;;2293:13;;;;2320:8;;2342:1;;2383:27;2424:11;2224:221;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2224:221:38;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2478:137:38;;;;;;;;2507:9;2478:137;;2541:3;2478:137;;;;;;;;;;;;;-1:-1:-1;2478:137:38;;;;;;2455:20;;;2478:137;2455:20;;;;;;;;:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2455:160:38;;;;;;;;-1:-1:-1;;2455:160:38;;;;;;;;;;-1:-1:-1;;;;;;1810:812:38:o;2765:880::-;2840:16;3017:15;;:44;;;;;2868:25;;2840:16;;;;-1:-1:-1;;;;;3017:15:38;;:32;;:44;;3050:10;;3017:44;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3017:44:38;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3017:44:38;;;;;;39:16:-1;36:1;17:17;2:54;101:4;3017:44:38;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;3017:44:38;;;;;;;;;-1:-1:-1;;;3097:20:38;;;;:8;:20;;;;;2828:233;;-1:-1:-1;2828:233:38;;-1:-1:-1;2828:233:38;;-1:-1:-1;3097:20:38;;-1:-1:-1;;;;;;;;;3135:22:38;;;;;-1:-1:-1;3127:72:38;;-1:-1:-1;3127:72:38;;;-1:-1:-1;;;;;3127:72:38;;;;;;;;;3218:16;;;;;;3217:17;3209:78;;;;-1:-1:-1;;;;;3209:78:38;;;;;;;;;3305:10;;3297:57;;;;-1:-1:-1;;;;;3297:57:38;;;;;;;;;3398:15;;;;3378:17;;;;3372:3;:23;:41;3364:98;;;;-1:-1:-1;;;;;3364:98:38;;;;;;;;;3472:8;3481:1;3472:11;;;;;;;;;;;;;;;;;;;3489:13;;3472:31;;-1:-1:-1;;;;;3472:16:38;;;;:31;;;;;3489:13;;3472:31;3489:13;3472:31;3489:13;3472:16;:31;;-1:-1:-1;;;;3532:16:38;;;:23;;-1:-1:-1;;3532:23:38;3551:4;3532:23;;;;;;3611:11;;;;-1:-1:-1;3611:11:38;;;;;;;;;;;;;;-1:-1:-1;;;;;3570:68:38;3598:8;3607:1;3598:11;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3570:68:38;3586:10;3570:68;;;;3624:7;:13;;;3570:68;;;;;;;;;;;;;;;2765:880;;;;;:::o;281:38:41:-;;;-1:-1:-1;;;;;281:38:41;;:::o;3826:1815:38:-;3996:25;4211:20;4255:41;4308:31;4403:23;4552:17;3911:51;3940:12;3954:7;3911:28;:51::i;:::-;4131:15;;:46;;;;;-1:-1:-1;;;;;4131:15:38;;;;:32;;:46;;4164:12;;4131:46;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4131:46:38;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4131:46:38;;;;;;39:16:-1;36:1;17:17;2:54;101:4;4131:46:38;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;4131:46:38;;;;;;;;;3972:205;;;;;;;;;;;;4352:15;;;;;;;;;-1:-1:-1;;;;;4352:15:38;-1:-1:-1;;;;;4352:27:38;;4380:12;4352:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4352:41:38;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4352:41:38;;;;;;39:16:-1;36:1;17:17;2:54;101:4;4352:41:38;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;4352:41:38;;;;;;;;;4429:22;;;;:8;:22;;;;;4470:16;;;;4187:206;;-1:-1:-1;4187:206:38;;-1:-1:-1;4187:206:38;-1:-1:-1;4429:22:38;-1:-1:-1;;4470:16:38;;4469:17;;-1:-1:-1;4461:80:38;;;;-1:-1:-1;;;;;4461:80:38;;;;;;;;;4583:6;:13;4600:1;4583:18;4579:881;;;4738:24;4763:1;4738:27;;;;;;;;;;;;;;;;;;;;;:30;;4704:27;;:24;;4729:1;;4704:27;;;;;;;;;;;;;;;;:30;:64;4700:167;;4798:8;4807:1;4798:11;;;;;;;;;;;;;;;;;;4786:23;;4700:167;;;4856:8;4865:1;4856:11;;;;;;;;;;;;;;;;;;4844:23;;4700:167;4579:881;;;5091:24;;5073:17;;-1:-1:-1;;5091:28:38;;;5073:47;;;;;;;;;;;;;;:226;;;;-1:-1:-1;5260:31:38;;5235:24;;-1:-1:-1;;5260:35:38;;;5235:61;;;;;;;;;;;;;;;;;:64;;5214:13;;;;-1:-1:-1;;5214:17:38;;;5207:25;;;;;;;;;;;;;;5140:24;5199:1;5165:24;:31;:35;5140:61;;;;;;;;;;;;;;;;;;;;:64;:92;:159;5073:226;5052:397;;;5342:8;5351:7;5362:1;5351:12;:20;;5370:1;5351:20;;;5366:1;5351:20;5342:30;;;;;;;;;;;5052:397;5419:8;5428:7;5439:1;5428:12;:20;;5447:1;5428:20;;;5443:1;5428:20;5419:30;;;;;;;;;;;;;;;;;;;;5407:42;;5052:397;5485:13;;5470:29;;-1:-1:-1;;;;;5470:14:38;;;:29;;;;;5485:13;5470:29;5485:13;5470:29;5485:13;5470:14;:29;;-1:-1:-1;;;5528:16:38;;;:23;;-1:-1:-1;;5528:23:38;5547:4;5528:23;;;-1:-1:-1;;5596:11:38;;-1:-1:-1;;;;;5566:68:38;;;5596:8;;5528:16;;5596:11;;;;;;;;;;;;;;-1:-1:-1;;;;;5566:68:38;5582:12;5566:68;;;;5620:7;:13;;;5566:68;;;;;;;;;;;;;;;3826:1815;;;;;;;;:::o;763:191:41:-;887:15;;-1:-1:-1;;;;;887:15:41;872:10;856:46;848:99;;;;-1:-1:-1;;;;;848:99:41;;;;;;;;;763:191;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;;63:55;57:66;-1:-1;;;57:66;130:122;;208:39;239:6;233:13;208:39;;277:722;;398:4;386:17;;382:27;-1:-1;372:2;;423:1;420;413:12;372:2;453:6;447:13;475:80;490:64;547:6;490:64;;;475:80;;;466:89;;572:5;597:6;590:5;583:21;627:4;619:6;615:17;605:27;;649:4;644:3;640:14;633:21;;702:6;749:3;741:4;733:6;729:17;724:3;720:27;717:36;714:2;;;766:1;763;756:12;714:2;791:1;776:217;801:6;798:1;795:13;776:217;;;859:3;881:48;925:3;913:10;881:48;;;869:61;;-1:-1;953:4;944:14;;;;972;;;;;823:1;816:9;776:217;;;780:14;365:634;;;;;;;;1028:779;;1168:4;1156:17;;1152:27;-1:-1;1142:2;;1193:1;1190;1183:12;1142:2;1223:6;1217:13;1245:99;1260:83;1336:6;1260:83;;1245:99;1236:108;;1361:5;1386:6;1379:5;1372:21;1416:4;1408:6;1404:17;1394:27;;1438:4;1433:3;1429:14;1422:21;;1491:6;1538:3;1530:4;1522:6;1518:17;1513:3;1509:27;1506:36;1503:2;;;1555:1;1552;1545:12;1503:2;1580:1;1565:236;1590:6;1587:1;1584:13;1565:236;;;1648:3;1670:67;1733:3;1721:10;1670:67;;;1658:80;;-1:-1;1761:4;1752:14;;;;1789:4;1780:14;;;;;1612:1;1605:9;1565:236;;1830:713;;1948:4;1936:17;;1932:27;-1:-1;1922:2;;1973:1;1970;1963:12;1922:2;2003:6;1997:13;2025:77;2040:61;2094:6;2040:61;;2025:77;2016:86;;2119:5;2144:6;2137:5;2130:21;2174:4;2166:6;2162:17;2152:27;;2196:4;2191:3;2187:14;2180:21;;2249:6;2296:3;2288:4;2280:6;2276:17;2271:3;2267:27;2264:36;2261:2;;;2313:1;2310;2303:12;2261:2;2338:1;2323:214;2348:6;2345:1;2342:13;2323:214;;;2406:3;2428:45;2469:3;2457:10;2428:45;;;2416:58;;-1:-1;2497:4;2488:14;;;;2516;;;;;2370:1;2363:9;2323:214;;2570:629;;2685:4;2673:17;;2669:27;-1:-1;2659:2;;2710:1;2707;2700:12;2659:2;2734:3;2752:74;2767:58;2818:6;2767:58;;2752:74;2743:83;;2843:5;2902:6;2949:3;2941:4;2933:6;2929:17;2924:3;2920:27;2917:36;2914:2;;;2966:1;2963;2956:12;2914:2;2991:1;2976:217;3001:6;2998:1;2995:13;2976:217;;;3059:3;3081:48;3125:3;3113:10;3081:48;;;3069:61;;-1:-1;3153:4;3144:14;;;;3172;;;;;3023:1;3016:9;2976:217;;3225:722;;3346:4;3334:17;;3330:27;-1:-1;3320:2;;3371:1;3368;3361:12;3320:2;3401:6;3395:13;3423:80;3438:64;3495:6;3438:64;;3423:80;3414:89;;3520:5;3545:6;3538:5;3531:21;3575:4;3567:6;3563:17;3553:27;;3597:4;3592:3;3588:14;3581:21;;3650:6;3697:3;3689:4;3681:6;3677:17;3672:3;3668:27;3665:36;3662:2;;;3714:1;3711;3704:12;3662:2;3739:1;3724:217;3749:6;3746:1;3743:13;3724:217;;;3807:3;3829:48;3873:3;3861:10;3829:48;;;3817:61;;-1:-1;3901:4;3892:14;;;;3920;;;;;3771:1;3764:9;3724:217;;3955:116;;4030:36;4058:6;4052:13;4030:36;;4078:118;;4145:46;4183:6;4170:20;4145:46;;4204:442;;4309:4;4297:17;;4293:27;-1:-1;4283:2;;4334:1;4331;4324:12;4283:2;4364:6;4358:13;4386:64;4401:48;4442:6;4401:48;;4386:64;4377:73;;4470:6;4463:5;4456:21;4506:4;4498:6;4494:17;4539:4;4532:5;4528:16;4574:3;4565:6;4560:3;4556:16;4553:25;4550:2;;;4591:1;4588;4581:12;4550:2;4601:39;4633:6;4628:3;4623;4601:39;;;4276:370;;;;;;;;4654:156;;4740:65;4797:6;4784:20;4740:65;;4817:160;;4914:58;4964:6;4958:13;4914:58;;4999:336;;;5107:4;5095:17;;5091:27;-1:-1;5081:2;;5132:1;5129;5122:12;5081:2;-1:-1;5152:20;;5192:18;5181:30;;5178:2;;;5224:1;5221;5214:12;5178:2;5258:4;5250:6;5246:17;5234:29;;5308:3;5301;5293:6;5289:16;5279:8;5275:31;5272:40;5269:2;;;5325:1;5322;5315:12;5269:2;5074:261;;;;;;5468:122;;5546:39;5577:6;5571:13;5546:39;;5597:1879;;;;;;;;;;;;5927:3;5915:9;5906:7;5902:23;5898:33;5895:2;;;5944:1;5941;5934:12;5895:2;5979:1;5996:64;6052:7;6032:9;5996:64;;;5986:74;;5958:108;6118:2;6107:9;6103:18;6097:25;6142:18;6134:6;6131:30;6128:2;;;6174:1;6171;6164:12;6128:2;6194:89;6275:7;6266:6;6255:9;6251:22;6194:89;;;6184:99;;6076:213;6320:2;6338:64;6394:7;6385:6;6374:9;6370:22;6338:64;;;6328:74;;6299:109;6460:2;6449:9;6445:18;6439:25;6484:18;6476:6;6473:30;6470:2;;;6516:1;6513;6506:12;6470:2;6536:73;6601:7;6592:6;6581:9;6577:22;6536:73;;;6526:83;;6418:197;6646:3;6665:64;6721:7;6712:6;6701:9;6697:22;6665:64;;;6655:74;;6625:110;6766:3;6785:83;6860:7;6851:6;6840:9;6836:22;6785:83;;;6775:93;;6745:129;6905:3;6924:64;6980:7;6971:6;6960:9;6956:22;6924:64;;;6914:74;;6884:110;7025:3;7044:61;7097:7;7088:6;7077:9;7073:22;7044:61;;;7034:71;;7004:107;7142:3;7161:61;7214:7;7205:6;7194:9;7190:22;7161:61;;;7151:71;;7121:107;7259:3;7278:64;7334:7;7325:6;7314:9;7310:22;7278:64;;;7268:74;;7238:110;7379:3;7399:61;7452:7;7443:6;7432:9;7428:22;7399:61;;;7388:72;;7358:108;5889:1587;;;;;;;;;;;;;;;7483:1486;;;;;;7807:3;7795:9;7786:7;7782:23;7778:33;7775:2;;;7824:1;7821;7814:12;7775:2;7859:24;;7903:18;7892:30;;7889:2;;;7935:1;7932;7925:12;7889:2;7955:89;8036:7;8027:6;8016:9;8012:22;7955:89;;;7945:99;;7838:212;8102:2;8091:9;8087:18;8081:25;8126:18;8118:6;8115:30;8112:2;;;8158:1;8155;8148:12;8112:2;8178:89;8259:7;8250:6;8239:9;8235:22;8178:89;;;8168:99;;8060:213;8325:2;8314:9;8310:18;8304:25;8349:18;8341:6;8338:30;8335:2;;;8381:1;8378;8371:12;8335:2;8401:89;8482:7;8473:6;8462:9;8458:22;8401:89;;;8391:99;;8283:213;8548:2;8537:9;8533:18;8527:25;8572:18;8564:6;8561:30;8558:2;;;8604:1;8601;8594:12;8558:2;8624:108;8724:7;8715:6;8704:9;8700:22;8624:108;;;8614:118;;8506:232;8790:3;8779:9;8775:19;8769:26;8815:18;8807:6;8804:30;8801:2;;;8847:1;8844;8837:12;8801:2;8867:86;8945:7;8936:6;8925:9;8921:22;8867:86;;;8857:96;;8748:211;7769:1200;;;;;;;;;8976:241;;9080:2;9068:9;9059:7;9055:23;9051:32;9048:2;;;9096:1;9093;9086:12;9048:2;9131:1;9148:53;9193:7;9173:9;9148:53;;;9138:63;9042:175;-1:-1;;;;9042:175;9224:1033;;;;;;;;9452:3;9440:9;9431:7;9427:23;9423:33;9420:2;;;9469:1;9466;9459:12;9420:2;9504:1;9521:53;9566:7;9546:9;9521:53;;;9511:63;;9483:97;9639:2;9628:9;9624:18;9611:32;9663:18;9655:6;9652:30;9649:2;;;9695:1;9692;9685:12;9649:2;9723:65;9780:7;9771:6;9760:9;9756:22;9723:65;;;9705:83;;;;9590:204;9825:2;9843:53;9888:7;9879:6;9868:9;9864:22;9843:53;;;9833:63;;9804:98;9933:2;9951:53;9996:7;9987:6;9976:9;9972:22;9951:53;;;9941:63;;9912:98;10041:3;10060:72;10124:7;10115:6;10104:9;10100:22;10060:72;;;10050:82;;10020:118;10169:3;10188:53;10233:7;10224:6;10213:9;10209:22;10188:53;;;10178:63;;10148:99;9414:843;;;;;;;;;;;10264:366;;;10385:2;10373:9;10364:7;10360:23;10356:32;10353:2;;;10401:1;10398;10391:12;10353:2;10436:1;10453:53;10498:7;10478:9;10453:53;;;10443:63;;10415:97;10543:2;10561:53;10606:7;10597:6;10586:9;10582:22;10561:53;;;10551:63;;10522:98;10347:283;;;;;;10637:110;10710:31;10735:5;10710:31;;;10705:3;10698:44;10692:55;;;10785:590;;10920:54;10968:5;10920:54;;;10992:6;10987:3;10980:19;11016:4;11011:3;11007:14;11000:21;;11061:56;11111:5;11061:56;;;11138:1;11123:230;11148:6;11145:1;11142:13;11123:230;;;11188:53;11237:3;11228:6;11222:13;11188:53;;;11258:60;11311:6;11258:60;;;11341:4;11332:14;;;;;11248:70;-1:-1;11170:1;11163:9;11123:230;;;-1:-1;11366:3;;10899:476;-1:-1;;;;10899:476;11383:101;11450:28;11472:5;11450:28;;11491:110;11564:31;11589:5;11564:31;;11608:289;;11704:34;11732:5;11704:34;;;11755:6;11750:3;11743:19;11767:63;11823:6;11816:4;11811:3;11807:14;11800:4;11793:5;11789:16;11767:63;;;11862:29;11884:6;11862:29;;;11842:50;;;11855:4;11842:50;;11684:213;-1:-1;;;11684:213;11904:166;12002:62;12058:5;12002:62;;12238:132;12319:45;12358:5;12319:45;;12400:263;;12510:6;12505:3;12498:19;12534:4;12529:3;12525:14;12518:21;;12564:43;12600:6;12595:3;12588:5;12564:43;;;12628:29;12650:6;12628:29;;;12619:39;;;;12492:171;-1:-1;;;12492:171;12671:397;12826:2;12814:15;;12863:66;12858:2;12849:12;;12842:88;12964:66;12959:2;12950:12;;12943:88;13059:2;13050:12;;12807:261;13077:397;13232:2;13220:15;;13269:66;13264:2;13255:12;;13248:88;13370:66;13365:2;13356:12;;13349:88;13465:2;13456:12;;13213:261;13483:397;13638:2;13626:15;;13675:66;13670:2;13661:12;;13654:88;13776:66;13771:2;13762:12;;13755:88;13871:2;13862:12;;13619:261;13889:397;14044:2;14032:15;;14081:66;14076:2;14067:12;;14060:88;14182:66;14177:2;14168:12;;14161:88;14277:2;14268:12;;14025:261;14295:397;14450:2;14438:15;;14487:66;14482:2;14473:12;;14466:88;14588:66;14583:2;14574:12;;14567:88;14683:2;14674:12;;14431:261;14701:397;14856:2;14844:15;;14893:66;14888:2;14879:12;;14872:88;14994:66;14989:2;14980:12;;14973:88;15089:2;15080:12;;14837:261;15107:296;15262:2;15250:15;;15299:66;15294:2;15285:12;;15278:88;15394:2;15385:12;;15243:160;15528:193;15636:2;15621:18;;15650:61;15625:9;15684:6;15650:61;;;15607:114;;;;;15728:1189;16125:3;16110:19;;16140:61;16114:9;16174:6;16140:61;;;16249:9;16243:4;16239:20;16234:2;16223:9;16219:18;16212:48;16274:78;16347:4;16338:6;16330;16274:78;;;16266:86;;16400:9;16394:4;16390:20;16385:2;16374:9;16370:18;16363:48;16425:98;16518:4;16509:6;16425:98;;;16417:106;;16534:70;16600:2;16589:9;16585:18;16576:6;16534:70;;;16653:9;16647:4;16643:20;16637:3;16626:9;16622:19;16615:49;16678:62;16735:4;16726:6;16678:62;;;16670:70;;16751:63;16809:3;16798:9;16794:19;16785:6;16751:63;;;16825:82;16902:3;16891:9;16887:19;16878:6;16825:82;;;16096:821;;;;;;;;;;;;16924:243;17057:2;17042:18;;17071:86;17046:9;17130:6;17071:86;;17174:387;17355:2;17369:47;;;17340:18;;17430:121;17340:18;17430:121;;17568:387;17749:2;17763:47;;;17734:18;;17824:121;17734:18;17824:121;;17962:387;18143:2;18157:47;;;18128:18;;18218:121;18128:18;18218:121;;18356:387;18537:2;18551:47;;;18522:18;;18612:121;18522:18;18612:121;;18750:387;18931:2;18945:47;;;18916:18;;19006:121;18916:18;19006:121;;19144:387;19325:2;19339:47;;;19310:18;;19400:121;19310:18;19400:121;;19538:387;19719:2;19733:47;;;19704:18;;19794:121;19704:18;19794:121;;20132:485;20318:3;20303:19;;20333:61;20307:9;20367:6;20333:61;;;20405:62;20463:2;20452:9;20448:18;20439:6;20405:62;;;20478;20536:2;20525:9;20521:18;20512:6;20478:62;;;20551:56;20603:2;20592:9;20588:18;20579:6;20551:56;;;20289:328;;;;;;;;20624:256;20686:2;20680:9;20712:17;;;20787:18;20772:34;;20808:22;;;20769:62;20766:2;;;20844:1;20841;20834:12;20766:2;20860;20853:22;20664:216;;-1:-1;20664:216;20887:258;;21046:18;21038:6;21035:30;21032:2;;;21078:1;21075;21068:12;21032:2;-1:-1;21107:4;21095:17;;;21125:15;;20969:176;21698:229;;21851:18;21843:6;21840:30;21837:2;;;21883:1;21880;21873:12;21837:2;-1:-1;21912:4;21900:17;;21774:153;22199:258;;22342:18;22334:6;22331:30;22328:2;;;22374:1;22371;22364:12;22328:2;-1:-1;22447:4;22418;22395:17;;;;-1:-1;;22391:33;22437:15;;22265:192;22466:121;22575:4;22563:17;;22544:43;22596:107;22686:12;;22670:33;22935:128;-1:-1;;;;;23004:54;;22987:76;23070:92;23143:13;23136:21;;23119:43;23169:79;23238:5;23221:27;23661:124;;23749:31;23774:5;23749:31;;24166:123;;24253:31;24278:5;24253:31;;24297:145;24378:6;24373:3;24368;24355:30;-1:-1;24434:1;24416:16;;24409:27;24348:94;24451:268;24516:1;24523:101;24537:6;24534:1;24531:13;24523:101;;;24604:11;;;24598:18;24585:11;;;24578:39;24559:2;24552:10;24523:101;;;24639:6;24636:1;24633:13;24630:2;;;24704:1;24695:6;24690:3;24686:16;24679:27;24630:2;24500:219;;;;;24727:97;24815:2;24795:14;-1:-1;;24791:28;;24775:49", "source": "pragma solidity ^0.4.24;\npragma experimental ABIEncoderV2;\n\nimport \"../proxy/ArbitrableProxyUser.sol\";\n\n/**\n * @title TwoPartyArbitrableEscrowPaymentProxyUser\n * @author Enrique Piqueras - <epiquerass@gmail.com>\n * @dev Implementation of a two party arbitrable escrow service using the `ArbitrableProxyUser` contract.\n */\ncontract TwoPartyArbitrableEscrowPaymentProxyUser is ArbitrableProxyUser {\n /* Structs */\n\n struct Payment {\n uint value;\n uint createdAt;\n uint timeOut;\n bool executed;\n }\n\n /* Events */\n\n /** @dev Emitted when a payment is executed.\n * @param _paymentID The ID of the payment.\n * @param _sender The address of the sender.\n * @param _receiver The address of the receiver.\n * @param _value The value of the payment.\n */\n event PaymentExecuted(bytes32 indexed _paymentID, address indexed _sender, address indexed _receiver, uint _value);\n\n /* Storage */\n\n mapping(bytes32 => Payment) public payments;\n\n /* Constructor */\n\n /** @dev Constructs the `TwoPartyArbitrableEscrowPaymentProxyUser` contract.\n * @param _arbitrableProxy The arbitrable proxy to use.\n */\n constructor(ArbitrableProxy _arbitrableProxy) public ArbitrableProxyUser(_arbitrableProxy) {}\n\n /* External */\n\n /** @dev Creates an escrowed payment.\n * @param _paymentID The ID of the payment.\n * @param _metaEvidence The meta evidence for the potential dispute.\n * @param _to The receiver of the payment.\n * @param _arbitrationFeesWaitingTime The maximum time to wait for arbitration fees if the dispute is raised.\n * @param _arbitrator The arbitrator to use for the potential dispute.\n * @param _timeOut The time to wait before executing the payment if the dispute is not raised.\n */\n function createPayment(\n bytes32 _paymentID,\n string _metaEvidence,\n address _to,\n uint _arbitrationFeesWaitingTime,\n Arbitrator _arbitrator,\n uint _timeOut\n ) external payable {\n require(msg.value > 0, \"Payment must be more than zero.\");\n address[] memory _parties = new address[](2);\n _parties[0] = msg.sender;\n _parties[1] = _to;\n arbitrableProxy.createAgreement(\n _paymentID,\n _metaEvidence,\n _parties,\n 2,\n new bytes(0),\n _arbitrationFeesWaitingTime,\n _arbitrator\n );\n payments[_paymentID] = Payment({\n value: msg.value,\n createdAt: now,\n timeOut: _timeOut,\n executed: false\n });\n }\n\n /** @dev Executes a payment that has already timed out and is not disputed.\n * @param _paymentID The ID of the payment.\n */\n function executePayment(bytes32 _paymentID) external {\n (\n address _creator,\n address[] memory _parties,\n ,\n ,\n ,\n ,\n ,\n bool _disputed,\n ,\n ,\n ) = arbitrableProxy.getAgreementInfo(_paymentID);\n Payment storage payment = payments[_paymentID];\n require(_creator != address(0), \"The specified payment does not exist.\");\n require(!payment.executed, \"The specified payment has already been executed.\");\n require(!_disputed, \"The specified payment is disputed.\");\n require(now - payment.createdAt > payment.timeOut, \"The specified payment has not timed out yet.\");\n _parties[1].send(payment.value); // Avoid blocking.\n payment.executed = true;\n emit PaymentExecuted(_paymentID, _parties[0], _parties[1], payment.value);\n }\n\n /* Public */\n\n /** @dev Executes the ruling on the specified agreement.\n * @param _agreementID The ID of the agreement.\n * @param _ruling The ruling.\n */\n function executeAgreementRuling(bytes32 _agreementID, uint _ruling) public {\n super.executeAgreementRuling(_agreementID, _ruling);\n (\n ,\n address[] memory _parties,\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n ) = arbitrableProxy.getAgreementInfo(_agreementID);\n (\n ,\n uint[] memory _stake,\n ,\n uint[2][] memory _totalContributedPerSide,\n bool[] memory _loserFullyFunded\n ) = arbitrableProxy.getFeesInfo(_agreementID);\n Payment storage payment = payments[_agreementID];\n require(!payment.executed, \"The specified agreement has already been executed.\");\n\n address _receiver;\n if (_stake.length == 1) { // Failed to fund first round.\n // Send the value to whoever paid more.\n if (_totalContributedPerSide[0][0] >= _totalContributedPerSide[0][1])\n _receiver = _parties[0];\n else\n _receiver = _parties[1];\n } else { // Failed to fund a later round.\n // Respect the ruling unless the losing side funded the appeal and the winning side paid less than expected.\n if (\n _loserFullyFunded[_loserFullyFunded.length - 1] &&\n _totalContributedPerSide[_totalContributedPerSide.length - 1][0] - _stake[_stake.length - 1] > _totalContributedPerSide[_totalContributedPerSide.length - 1][1]\n )\n _receiver = _parties[_ruling == 2 ? 0 : 1];\n else\n _receiver = _parties[_ruling == 2 ? 1 : 0];\n }\n\n _receiver.send(payment.value); // Avoid blocking.\n payment.executed = true;\n emit PaymentExecuted(_agreementID, _parties[0], _receiver, payment.value);\n }\n}\n", "sourcePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/composed-arbitrable/example/TwoPartyArbitrableEscrowPaymentProxyUser.sol", "ast": { "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/composed-arbitrable/example/TwoPartyArbitrableEscrowPaymentProxyUser.sol", "exportedSymbols": { "TwoPartyArbitrableEscrowPaymentProxyUser": [ 11869 ] }, "id": 11870, "nodeType": "SourceUnit", "nodes": [ { "id": 11510, "literals": [ "solidity", "^", "0.4", ".24" ], "nodeType": "PragmaDirective", "src": "0:24:38" }, { "id": 11511, "literals": [ "experimental", "ABIEncoderV2" ], "nodeType": "PragmaDirective", "src": "25:33:38" }, { "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/composed-arbitrable/proxy/ArbitrableProxyUser.sol", "file": "../proxy/ArbitrableProxyUser.sol", "id": 11512, "nodeType": "ImportDirective", "scope": 11870, "sourceUnit": 13209, "src": "60:42:38", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 11513, "name": "ArbitrableProxyUser", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 13208, "src": "378:19:38", "typeDescriptions": { "typeIdentifier": "t_contract$_ArbitrableProxyUser_$13208", "typeString": "contract ArbitrableProxyUser" } }, "id": 11514, "nodeType": "InheritanceSpecifier", "src": "378:19:38" } ], "contractDependencies": [ 13208 ], "contractKind": "contract", "documentation": " @title TwoPartyArbitrableEscrowPaymentProxyUser\n @author Enrique Piqueras - <epiquerass@gmail.com>\n @dev Implementation of a two party arbitrable escrow service using the `ArbitrableProxyUser` contract.", "fullyImplemented": true, "id": 11869, "linearizedBaseContracts": [ 11869, 13208 ], "name": "TwoPartyArbitrableEscrowPaymentProxyUser", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "TwoPartyArbitrableEscrowPaymentProxyUser.Payment", "id": 11523, "members": [ { "constant": false, "id": 11516, "name": "value", "nodeType": "VariableDeclaration", "scope": 11523, "src": "448:10:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11515, "name": "uint", "nodeType": "ElementaryTypeName", "src": "448:4:38", "typeDescriptions": { "typeIdentifier": "t_uint256",