dgf-prototype/backend/contractArtifacts/Onboarding.json

486 lines
63 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "Onboarding",
"sourceName": "contracts/Onboarding.sol",
"abi": [
{
"inputs": [
{
"internalType": "contract DAO",
"name": "dao_",
"type": "address"
},
{
"internalType": "contract Proposals",
"name": "proposals_",
"type": "address"
},
{
"internalType": "uint256",
"name": "price_",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "stakeIndex",
"type": "uint256"
}
],
"name": "AvailabilityStaked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "priceProposalIndex",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "price",
"type": "uint256"
}
],
"name": "PriceChangeAccepted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "priceProposalIndex",
"type": "uint256"
}
],
"name": "PriceChangeProposed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "requestIndex",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bool",
"name": "approval",
"type": "bool"
}
],
"name": "WorkApprovalSubmitted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "requestIndex",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "stakeIndex",
"type": "uint256"
}
],
"name": "WorkAssigned",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "requestIndex",
"type": "uint256"
}
],
"name": "WorkEvidenceSubmitted",
"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": "uint256",
"name": "stakeIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
}
],
"name": "extendAvailability",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "callbackData",
"type": "bytes"
}
],
"name": "onProposalAccepted",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "votePasses",
"type": "bool"
},
{
"internalType": "bool",
"name": "quorumMet",
"type": "bool"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "callbackData",
"type": "bytes"
}
],
"name": "onValidate",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "price",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "priceProposalCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "priceProposals",
"outputs": [
{
"internalType": "uint256",
"name": "price",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "proposalIndex",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "newPrice",
"type": "uint256"
},
{
"internalType": "string",
"name": "contentId",
"type": "string"
},
{
"internalType": "uint256[3]",
"name": "durations",
"type": "uint256[3]"
}
],
"name": "proposeNewPrice",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "requestCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "requestContentId",
"type": "string"
}
],
"name": "requestWork",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "requests",
"outputs": [
{
"internalType": "address",
"name": "customer",
"type": "address"
},
{
"internalType": "uint256",
"name": "fee",
"type": "uint256"
},
{
"internalType": "enum WorkContract.WorkStatus",
"name": "status",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "stakeIndex",
"type": "uint256"
},
{
"internalType": "string",
"name": "requestContentId",
"type": "string"
},
{
"internalType": "string",
"name": "evidenceContentId",
"type": "string"
},
{
"internalType": "bool",
"name": "approval",
"type": "bool"
}
],
"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": "uint256",
"name": "requestIndex",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approval",
"type": "bool"
}
],
"name": "submitWorkApproval",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "requestIndex",
"type": "uint256"
},
{
"internalType": "string",
"name": "evidenceContentId",
"type": "string"
},
{
"components": [
{
"internalType": "int256",
"name": "weightPercent",
"type": "int256"
},
{
"internalType": "string",
"name": "targetPostId",
"type": "string"
}
],
"internalType": "struct Citation[]",
"name": "citations",
"type": "tuple[]"
}
],
"name": "submitWorkEvidence",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60a06040523480156200001157600080fd5b50604051620035a8380380620035a88339818101604052810190620000379190620001c1565b828282828073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250505080600181905550816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050506200021d565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000f582620000c8565b9050919050565b60006200010982620000e8565b9050919050565b6200011b81620000fc565b81146200012757600080fd5b50565b6000815190506200013b8162000110565b92915050565b60006200014e82620000e8565b9050919050565b620001608162000141565b81146200016c57600080fd5b50565b600081519050620001808162000155565b92915050565b6000819050919050565b6200019b8162000186565b8114620001a757600080fd5b50565b600081519050620001bb8162000190565b92915050565b600080600060608486031215620001dd57620001dc620000c3565b5b6000620001ed868287016200012a565b935050602062000200868287016200016f565b92505060406200021386828701620001aa565b9150509250925092565b60805161334c6200025c6000396000818161097f01528181610a4f01528181610b6c01528181610d7f01528181610f970152611029015261334c6000f3fe6080604052600436106100e85760003560e01c8063a035b1fe1161008a578063cf37625611610059578063cf376256146102de578063d0fae95f1461031c578063d5a44f8614610345578063d76b679414610385576100e8565b8063a035b1fe14610222578063b4e6a1d51461024d578063b5b20c001461028a578063c4a9e116146102b3576100e8565b8063815a0572116100c6578063815a05721461015d57806381d12c581461019a578063854b6a4f146101dd57806399ad6c5614610206576100e8565b80630d0271d6146100ed578063216ed6ad146101095780635badbe4c14610132575b600080fd5b610107600480360381019061010291906117fb565b6103b0565b005b34801561011557600080fd5b50610130600480360381019061012b91906118dc565b61049e565b005b34801561013e57600080fd5b506101476105b1565b604051610154919061193e565b60405180910390f35b34801561016957600080fd5b50610184600480360381019061017f91906119af565b6105b7565b604051610191919061193e565b60405180910390f35b3480156101a657600080fd5b506101c160048036038101906101bc9190611a23565b610636565b6040516101d49796959493929190611b81565b60405180910390f35b3480156101e957600080fd5b5061020460048036038101906101ff9190611c2a565b6107c2565b005b610220600480360381019061021b9190611c8c565b610c2c565b005b34801561022e57600080fd5b50610237610d75565b604051610244919061193e565b60405180910390f35b34801561025957600080fd5b50610274600480360381019061026f9190611d00565b610d7b565b604051610281919061193e565b60405180910390f35b34801561029657600080fd5b506102b160048036038101906102ac9190611d9a565b611127565b005b3480156102bf57600080fd5b506102c861129c565b6040516102d5919061193e565b60405180910390f35b3480156102ea57600080fd5b5061030560048036038101906103009190611a23565b6112a2565b604051610313929190611dda565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e9190611e59565b6112c6565b005b34801561035157600080fd5b5061036c60048036038101906103679190611a23565b6114ff565b60405161037c9493929190611eee565b60405180910390f35b34801561039157600080fd5b5061039a61155c565b6040516103a7919061193e565b60405180910390f35b6001543410156103f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ec90611f7f565b60405180910390fd5b60006007600081548092919061040a90611fce565b9190505590506000600660008381526020019081526020016000209050338160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034816001018190555061047c82611562565b8160030181905550838382600401918261049792919061225c565b5050505050565b600082116104e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d890612378565b60405180910390fd5b6000600560008154809291906104f690611fce565b9190505590506000600460008381526020019081526020016000209050848160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838160010181905550824261056b9190612398565b81600201819055507fa85b1153cd317f9d39e14d8dbfb592ffb46123e9fc61b21b3f70d7d90a81a7e9826040516105a2919061193e565b60405180910390a15050505050565b60075481565b60008083838101906105c99190611a23565b9050600060026000838152602001908152602001600020905080600001546001819055507f6a3843c02c26620842ae8496fd3afcb44b27463b3808e2ccdae4bcee5a2e3f2082600154604051610620929190611dda565b60405180910390a1600092505050949350505050565b60066020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a900460ff169080600301549080600401805461069e9061207f565b80601f01602080910402602001604051908101604052809291908181526020018280546106ca9061207f565b80156107175780601f106106ec57610100808354040283529160200191610717565b820191906000526020600020905b8154815290600101906020018083116106fa57829003601f168201915b50505050509080600501805461072c9061207f565b80601f01602080910402602001604051908101604052809291908181526020018280546107589061207f565b80156107a55780601f1061077a576101008083540402835291602001916107a5565b820191906000526020600020905b81548152906001019060200180831161078857829003601f168201915b5050505050908060070160009054906101000a900460ff16905087565b6000600660008481526020019081526020016000209050600160038111156107ed576107ec611a5f565b5b8160020160009054906101000a900460ff16600381111561081157610810611a5f565b5b14610851576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084890612418565b60405180910390fd5b60006004600083600301548152602001908152602001600020905060028260020160006101000a81548160ff0219169083600381111561089457610893611a5f565b5b0217905550828260070160006101000a81548160ff0219169083151502179055506000600167ffffffffffffffff8111156108d2576108d1612021565b5b60405190808252806020026020018201604052801561090b57816020015b6108f861175c565b8152602001906001900390816108f05790505b5090506040518060400160405280606481526020018360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152508160008151811061097257610971612438565b5b60200260200101819052507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e5b4d8278285600501866006016040518463ffffffff1660e01b81526004016109e0939291906127d5565b600060405180830381600087803b1580156109fa57600080fd5b505af1158015610a0e573d6000803e3d6000fd5b505050507f470d2978e081461f6d144c091dfd83ec06e6011da0b03bd1c0121b7fb71370dc8585604051610a43929190612821565b60405180910390a160007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639fbe7c73600a8660010154610a9a9190612879565b8660010154610aa991906128aa565b8660050160146040518060400160405280600181526020016003815250604051806040016040528060018152602001600281525060646001808f604051602001610af3919061193e565b6040516020818303038152906040526040518a63ffffffff1660e01b8152600401610b25989796959493929190612a0a565b60206040518083038185885af1158015610b43573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b689190612aad565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663975762b3828560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866001015460016040518563ffffffff1660e01b8152600401610bf29493929190612ada565b600060405180830381600087803b158015610c0c57600080fd5b505af1158015610c20573d6000803e3d6000fd5b50505050505050505050565b600060036000815480929190610c4190611fce565b919050559050600060026000838152602001908152602001600020905085816000018190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632805b5d93487873388600189604051602001610cbb919061193e565b6040516020818303038152906040526040518863ffffffff1660e01b8152600401610ceb96959493929190612b74565b60206040518083038185885af1158015610d09573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d2e9190612aad565b81600101819055507f71eae802097e4e77c5345dee7f35d74ac0ae45eb5a456fdaed0de4d141fc5d8c82604051610d65919061193e565b60405180910390a1505050505050565b60015481565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0290612c49565b60405180910390fd5b60008383810190610e1c9190611a23565b90506000600660008381526020019081526020016000209050881580610e40575087155b15610ecb578060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600a8360010154610e949190612879565b9081150290604051600060405180830381858888f19350505050158015610ebf573d6000803e3d6000fd5b5060019250505061111d565b60606000600167ffffffffffffffff811115610eea57610ee9612021565b5b604051908082528060200260200182016040528015610f2357816020015b610f1061175c565b815260200190600190039081610f085790505b5090506040518060400160405280606481526020018460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525081600081518110610f8a57610f89612438565b5b60200260200101819052507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e5b4d8278285600401856040518463ffffffff1660e01b8152600401610ff593929190612d90565b600060405180830381600087803b15801561100f57600080fd5b505af1158015611023573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639fbe7c73600a85600101546110749190612879565b856004016014604051806040016040528060018152602001600381525060405180604001604052806001815260200160028152506064600160006040518963ffffffff1660e01b81526004016110d09796959493929190612e02565b60206040518083038185885af11580156110ee573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111139190612aad565b5060009450505050505b9695505050505050565b60006004600084815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c790612f00565b60405180910390fd5b8060030160009054906101000a900460ff1615611222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121990612f92565b60405180910390fd5b806002015442111561124757814261123a9190612398565b8160020181905550611260565b8181600201546112579190612398565b81600201819055505b7fa85b1153cd317f9d39e14d8dbfb592ffb46123e9fc61b21b3f70d7d90a81a7e98360405161128f919061193e565b60405180910390a1505050565b60055481565b60026020528060005260406000206000915090508060000154908060010154905082565b6000600660008781526020019081526020016000209050600060038111156112f1576112f0611a5f565b5b8160020160009054906101000a900460ff16600381111561131557611314611a5f565b5b14611355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134c90612ffe565b60405180910390fd5b6000600460008360030154815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f990613090565b60405180910390fd5b60018260020160006101000a81548160ff0219169083600381111561142a57611429611a5f565b5b0217905550858583600501918261144292919061225c565b5060005b848490508110156114be578260060185858381811061146857611467612438565b5b905060200281019061147a91906130bf565b908060018154018082558091505060019003906000526020600020906002020160009091909190915081816114af919061326b565b50508080600101915050611446565b507ffaecd3b4db089bf25a48306100dd5fb2152e3887c7815b2b221dbb7da2f8e8dc876040516114ee919061193e565b60405180910390a150505050505050565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030160009054906101000a900460ff16905084565b60035481565b600061156c6115e1565b9050600060046000838152602001908152602001600020905060018160030160006101000a81548160ff0219169083151502179055507fd9e7f38a71691fb1db2da17057c03d381a42a9925350883f10e8e5d0bca4a3b483836040516115d3929190611dda565b60405180910390a150919050565b60008060005b600554811015611668576004600082815260200190815260200160002060030160009054906101000a900460ff1661165b576004600082815260200190815260200160002060020154421161165b576004600082815260200190815260200160002060010154826116589190612398565b91505b80806001019150506115e7565b50600081116116ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a3906132c5565b60405180910390fd5b600081446116ba91906132e5565b9050600080600090505b600554811015611755576004600082815260200190815260200160002060030160009054906101000a900460ff166117485760046000828152602001908152602001600020600201544211611748576004600082815260200190815260200160002060010154826117359190612398565b91508282111561174757809450611755565b5b80806001019150506116c4565b5050505090565b604051806040016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126117bb576117ba611796565b5b8235905067ffffffffffffffff8111156117d8576117d761179b565b5b6020830191508360018202830111156117f4576117f36117a0565b5b9250929050565b600080602083850312156118125761181161178c565b5b600083013567ffffffffffffffff8111156118305761182f611791565b5b61183c858286016117a5565b92509250509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061187382611848565b9050919050565b61188381611868565b811461188e57600080fd5b50565b6000813590506118a08161187a565b92915050565b6000819050919050565b6118b9816118a6565b81146118c457600080fd5b50565b6000813590506118d6816118b0565b92915050565b6000806000606084860312156118f5576118f461178c565b5b600061190386828701611891565b9350506020611914868287016118c7565b9250506040611925868287016118c7565b9150509250925092565b611938816118a6565b82525050565b6000602082019050611953600083018461192f565b92915050565b60008083601f84011261196f5761196e611796565b5b8235905067ffffffffffffffff81111561198c5761198b61179b565b5b6020830191508360018202830111156119a8576119a76117a0565b5b9250929050565b600080600080606085870312156119c9576119c861178c565b5b60006119d7878288016118c7565b94505060206119e8878288016118c7565b935050604085013567ffffffffffffffff811115611a0957611a08611791565b5b611a1587828801611959565b925092505092959194509250565b600060208284031215611a3957611a3861178c565b5b6000611a47848285016118c7565b91505092915050565b611a5981611868565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60048110611a9f57611a9e611a5f565b5b50565b6000819050611ab082611a8e565b919050565b6000611ac082611aa2565b9050919050565b611ad081611ab5565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b10578082015181840152602081019050611af5565b60008484015250505050565b6000601f19601f8301169050919050565b6000611b3882611ad6565b611b428185611ae1565b9350611b52818560208601611af2565b611b5b81611b1c565b840191505092915050565b60008115159050919050565b611b7b81611b66565b82525050565b600060e082019050611b96600083018a611a50565b611ba3602083018961192f565b611bb06040830188611ac7565b611bbd606083018761192f565b8181036080830152611bcf8186611b2d565b905081810360a0830152611be38185611b2d565b9050611bf260c0830184611b72565b98975050505050505050565b611c0781611b66565b8114611c1257600080fd5b50565b600081359050611c2481611bfe565b92915050565b60008060408385031215611c4157611c4061178c565b5b6000611c4f858286016118c7565b9250506020611c6085828601611c15565b9150509250929050565b600081905082602060030282011115611c8657611c856117a0565b5b92915050565b60008060008060a08587031215611ca657611ca561178c565b5b6000611cb4878288016118c7565b945050602085013567ffffffffffffffff811115611cd557611cd4611791565b5b611ce1878288016117a5565b93509350506040611cf487828801611c6a565b91505092959194509250565b60008060008060008060a08789031215611d1d57611d1c61178c565b5b6000611d2b89828a01611c15565b9650506020611d3c89828a01611c15565b9550506040611d4d89828a016118c7565b9450506060611d5e89828a016118c7565b935050608087013567ffffffffffffffff811115611d7f57611d7e611791565b5b611d8b89828a01611959565b92509250509295509295509295565b60008060408385031215611db157611db061178c565b5b6000611dbf858286016118c7565b9250506020611dd0858286016118c7565b9150509250929050565b6000604082019050611def600083018561192f565b611dfc602083018461192f565b9392505050565b60008083601f840112611e1957611e18611796565b5b8235905067ffffffffffffffff811115611e3657611e3561179b565b5b602083019150836020820283011115611e5257611e516117a0565b5b9250929050565b600080600080600060608688031215611e7557611e7461178c565b5b6000611e83888289016118c7565b955050602086013567ffffffffffffffff811115611ea457611ea3611791565b5b611eb0888289016117a5565b9450945050604086013567ffffffffffffffff811115611ed357611ed2611791565b5b611edf88828901611e03565b92509250509295509295909350565b6000608082019050611f036000830187611a50565b611f10602083018661192f565b611f1d604083018561192f565b611f2a6060830184611b72565b95945050505050565b7f496e73756666696369656e742066656500000000000000000000000000000000600082015250565b6000611f69601083611ae1565b9150611f7482611f33565b602082019050919050565b60006020820190508181036000830152611f9881611f5c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611fd9826118a6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361200b5761200a611f9f565b5b600182019050919050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061209757607f821691505b6020821081036120aa576120a9612050565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026121127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826120d5565b61211c86836120d5565b95508019841693508086168417925050509392505050565b6000819050919050565b600061215961215461214f846118a6565b612134565b6118a6565b9050919050565b6000819050919050565b6121738361213e565b61218761217f82612160565b8484546120e2565b825550505050565b600090565b61219c61218f565b6121a781848461216a565b505050565b5b818110156121cb576121c0600082612194565b6001810190506121ad565b5050565b601f821115612210576121e1816120b0565b6121ea846120c5565b810160208510156121f9578190505b61220d612205856120c5565b8301826121ac565b50505b505050565b600082821c905092915050565b600061223360001984600802612215565b1980831691505092915050565b600061224c8383612222565b9150826002028217905092915050565b6122668383612016565b67ffffffffffffffff81111561227f5761227e612021565b5b612289825461207f565b6122948282856121cf565b6000601f8311600181146122c357600084156122b1578287013590505b6122bb8582612240565b865550612323565b601f1984166122d1866120b0565b60005b828110156122f9578489013582556001820191506020850194506020810190506122d4565b868310156123165784890135612312601f891682612222565b8355505b6001600288020188555050505b50505050505050565b7f4e6f207374616b652070726f7669646564000000000000000000000000000000600082015250565b6000612362601183611ae1565b915061236d8261232c565b602082019050919050565b6000602082019050818103600083015261239181612355565b9050919050565b60006123a3826118a6565b91506123ae836118a6565b92508282019050808211156123c6576123c5611f9f565b5b92915050565b7f537461747573206d7573742062652045766964656e63655375626d6974746564600082015250565b6000612402602083611ae1565b915061240d826123cc565b602082019050919050565b60006020820190508181036000830152612431816123f5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61249c816118a6565b82525050565b6124ab81611868565b82525050565b6040820160008201516124c76000850182612493565b5060208201516124da60208501826124a2565b50505050565b60006124ec83836124b1565b60408301905092915050565b6000602082019050919050565b600061251082612467565b61251a8185612472565b935061252583612483565b8060005b8381101561255657815161253d88826124e0565b9750612548836124f8565b925050600181019050612529565b5085935050505092915050565b600081546125708161207f565b61257a8186611ae1565b9450600182166000811461259557600181146125ab576125de565b60ff1983168652811515602002860193506125de565b6125b4856120b0565b60005b838110156125d6578154818901526001820191506020810190506125b7565b808801955050505b50505092915050565b600081549050919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b60008160001c9050919050565b6000819050919050565b600061264261263d83612618565b612625565b9050919050565b6000819050919050565b61265c81612649565b82525050565b600082825260208201905092915050565b600081546126808161207f565b61268a8186612662565b945060018216600081146126a557600181146126bb576126ee565b60ff1983168652811515602002860193506126ee565b6126c4856120b0565b60005b838110156126e6578154818901526001820191506020810190506126c7565b808801955050505b50505092915050565b600060408301600080840154905061270e8161262f565b61271b6000870182612653565b506001840185830360208701526127328382612673565b925050819250505092915050565b600061274c83836126f7565b905092915050565b6000600282019050919050565b600061276c826125e7565b61277681856125f2565b93508360208202850161278885612603565b8060005b858110156127c3578484038952816127a48582612740565b94506127af83612754565b925060208a0199505060018101905061278c565b50829750879550505050505092915050565b600060608201905081810360008301526127ef8186612505565b905081810360208301526128038185612563565b905081810360408301526128178184612761565b9050949350505050565b6000604082019050612836600083018561192f565b6128436020830184611b72565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612884826118a6565b915061288f836118a6565b92508261289f5761289e61284a565b5b828204905092915050565b60006128b5826118a6565b91506128c0836118a6565b92508282039050818111156128d8576128d7611f9f565b5b92915050565b600060029050919050565b600081905092915050565b6000819050919050565b600061290a8383612493565b60208301905092915050565b6000602082019050919050565b61292c816128de565b61293681846128e9565b9250612941826128f4565b8060005b8381101561297257815161295987826128fe565b965061296483612916565b925050600181019050612945565b505050505050565b6000819050919050565b600061299f61299a6129958461297a565b612134565b6118a6565b9050919050565b6129af81612984565b82525050565b600081519050919050565b600082825260208201905092915050565b60006129dc826129b5565b6129e681856129c0565b93506129f6818560208601611af2565b6129ff81611b1c565b840191505092915050565b6000610140820190508181036000830152612a25818b612563565b9050612a34602083018a61192f565b612a416040830189612923565b612a4e6080830188612923565b612a5b60c08301876129a6565b612a6860e0830186611b72565b612a76610100830185611b72565b818103610120830152612a8981846129d1565b90509998505050505050505050565b600081519050612aa7816118b0565b92915050565b600060208284031215612ac357612ac261178c565b5b6000612ad184828501612a98565b91505092915050565b6000608082019050612aef600083018761192f565b612afc6020830186611a50565b612b09604083018561192f565b612b166060830184611b72565b95945050505050565b82818337600083830152505050565b6000612b3a8385611ae1565b9350612b47838584612b1f565b612b5083611b1c565b840190509392505050565b82818337505050565b612b7060608383612b5b565b5050565b600060e0820190508181036000830152612b8f81888a612b2e565b9050612b9e6020830187611a50565b612bab6040830186612b64565b612bb860a0830185611b72565b81810360c0830152612bca81846129d1565b9050979650505050505050565b7f6f6e56616c6964617465206d6179206f6e6c792062652063616c6c656420627960008201527f207468652044414f20636f6e7472616374000000000000000000000000000000602082015250565b6000612c33603183611ae1565b9150612c3e82612bd7565b604082019050919050565b60006020820190508181036000830152612c6281612c26565b9050919050565b600081519050919050565b6000819050602082019050919050565b6000612c8f82611ad6565b612c998185612662565b9350612ca9818560208601611af2565b612cb281611b1c565b840191505092915050565b6000604083016000830151612cd56000860182612653565b5060208301518482036020860152612ced8282612c84565b9150508091505092915050565b6000612d068383612cbd565b905092915050565b6000602082019050919050565b6000612d2682612c69565b612d3081856125f2565b935083602082028501612d4285612c74565b8060005b85811015612d7e5784840389528151612d5f8582612cfa565b9450612d6a83612d0e565b925060208a01995050600181019050612d46565b50829750879550505050505092915050565b60006060820190508181036000830152612daa8186612505565b90508181036020830152612dbe8185612563565b90508181036040830152612dd28184612d1b565b9050949350505050565b50565b6000612dec6000836129c0565b9150612df782612ddc565b600082019050919050565b6000610140820190508181036000830152612e1d818a612563565b9050612e2c602083018961192f565b612e396040830188612923565b612e466080830187612923565b612e5360c08301866129a6565b612e6060e0830185611b72565b612e6e610100830184611b72565b818103610120830152612e8081612ddf565b905098975050505050505050565b7f576f726b65722063616e206f6e6c7920657874656e64207468656972206f776e60008201527f20617661696c6162696c697479207374616b6500000000000000000000000000602082015250565b6000612eea603383611ae1565b9150612ef582612e8e565b604082019050919050565b60006020820190508181036000830152612f1981612edd565b9050919050565b7f5374616b652068617320616c7265616479206265656e2061737369676e65642060008201527f776f726b00000000000000000000000000000000000000000000000000000000602082015250565b6000612f7c602483611ae1565b9150612f8782612f20565b604082019050919050565b60006020820190508181036000830152612fab81612f6f565b9050919050565b7f537461747573206d757374206265205265717565737465640000000000000000600082015250565b6000612fe8601883611ae1565b9150612ff382612fb2565b602082019050919050565b6000602082019050818103600083015261301781612fdb565b9050919050565b7f576f726b65722063616e206f6e6c79207375626d69742065766964656e63652060008201527f666f7220776f726b2074686579206172652061737369676e6564000000000000602082015250565b600061307a603a83611ae1565b91506130858261301e565b604082019050919050565b600060208201905081810360008301526130a98161306d565b9050919050565b600080fd5b600080fd5b600080fd5b6000823560016040038336030381126130db576130da6130b0565b5b80830191505092915050565b6130f081612649565b81146130fb57600080fd5b50565b6000813561310b816130e7565b80915050919050565b60008160001b9050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61314d84613114565b9350801983169250808416831791505092915050565b600061317e61317961317484612649565b612134565b612649565b9050919050565b6000819050919050565b61319882613163565b6131ab6131a482613185565b8354613121565b8255505050565b600080833560016020038436030381126131cf576131ce6130b0565b5b80840192508235915067ffffffffffffffff8211156131f1576131f06130b5565b5b60208301925060018202360383131561320d5761320c6130ba565b5b509250929050565b61322083838361225c565b505050565b600081016000830180613237816130fe565b9050613243818461318f565b505050600181016020830161325881856131b2565b613263818386613215565b505050505050565b6132758282613225565b5050565b7f4e6f20617661696c61626c6520776f726b6572207374616b6573000000000000600082015250565b60006132af601a83611ae1565b91506132ba82613279565b602082019050919050565b600060208201905081810360008301526132de816132a2565b9050919050565b60006132f0826118a6565b91506132fb836118a6565b92508261330b5761330a61284a565b5b82820690509291505056fea2646970667358221220614a4462497b67381bd0ef26bbd0292370c52a5d343cb9a3ea3eccc11540c1cc64736f6c63430008180033",
"deployedBytecode": "0x6080604052600436106100e85760003560e01c8063a035b1fe1161008a578063cf37625611610059578063cf376256146102de578063d0fae95f1461031c578063d5a44f8614610345578063d76b679414610385576100e8565b8063a035b1fe14610222578063b4e6a1d51461024d578063b5b20c001461028a578063c4a9e116146102b3576100e8565b8063815a0572116100c6578063815a05721461015d57806381d12c581461019a578063854b6a4f146101dd57806399ad6c5614610206576100e8565b80630d0271d6146100ed578063216ed6ad146101095780635badbe4c14610132575b600080fd5b610107600480360381019061010291906117fb565b6103b0565b005b34801561011557600080fd5b50610130600480360381019061012b91906118dc565b61049e565b005b34801561013e57600080fd5b506101476105b1565b604051610154919061193e565b60405180910390f35b34801561016957600080fd5b50610184600480360381019061017f91906119af565b6105b7565b604051610191919061193e565b60405180910390f35b3480156101a657600080fd5b506101c160048036038101906101bc9190611a23565b610636565b6040516101d49796959493929190611b81565b60405180910390f35b3480156101e957600080fd5b5061020460048036038101906101ff9190611c2a565b6107c2565b005b610220600480360381019061021b9190611c8c565b610c2c565b005b34801561022e57600080fd5b50610237610d75565b604051610244919061193e565b60405180910390f35b34801561025957600080fd5b50610274600480360381019061026f9190611d00565b610d7b565b604051610281919061193e565b60405180910390f35b34801561029657600080fd5b506102b160048036038101906102ac9190611d9a565b611127565b005b3480156102bf57600080fd5b506102c861129c565b6040516102d5919061193e565b60405180910390f35b3480156102ea57600080fd5b5061030560048036038101906103009190611a23565b6112a2565b604051610313929190611dda565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e9190611e59565b6112c6565b005b34801561035157600080fd5b5061036c60048036038101906103679190611a23565b6114ff565b60405161037c9493929190611eee565b60405180910390f35b34801561039157600080fd5b5061039a61155c565b6040516103a7919061193e565b60405180910390f35b6001543410156103f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ec90611f7f565b60405180910390fd5b60006007600081548092919061040a90611fce565b9190505590506000600660008381526020019081526020016000209050338160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034816001018190555061047c82611562565b8160030181905550838382600401918261049792919061225c565b5050505050565b600082116104e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d890612378565b60405180910390fd5b6000600560008154809291906104f690611fce565b9190505590506000600460008381526020019081526020016000209050848160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838160010181905550824261056b9190612398565b81600201819055507fa85b1153cd317f9d39e14d8dbfb592ffb46123e9fc61b21b3f70d7d90a81a7e9826040516105a2919061193e565b60405180910390a15050505050565b60075481565b60008083838101906105c99190611a23565b9050600060026000838152602001908152602001600020905080600001546001819055507f6a3843c02c26620842ae8496fd3afcb44b27463b3808e2ccdae4bcee5a2e3f2082600154604051610620929190611dda565b60405180910390a1600092505050949350505050565b60066020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a900460ff169080600301549080600401805461069e9061207f565b80601f01602080910402602001604051908101604052809291908181526020018280546106ca9061207f565b80156107175780601f106106ec57610100808354040283529160200191610717565b820191906000526020600020905b8154815290600101906020018083116106fa57829003601f168201915b50505050509080600501805461072c9061207f565b80601f01602080910402602001604051908101604052809291908181526020018280546107589061207f565b80156107a55780601f1061077a576101008083540402835291602001916107a5565b820191906000526020600020905b81548152906001019060200180831161078857829003601f168201915b5050505050908060070160009054906101000a900460ff16905087565b6000600660008481526020019081526020016000209050600160038111156107ed576107ec611a5f565b5b8160020160009054906101000a900460ff16600381111561081157610810611a5f565b5b14610851576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084890612418565b60405180910390fd5b60006004600083600301548152602001908152602001600020905060028260020160006101000a81548160ff0219169083600381111561089457610893611a5f565b5b0217905550828260070160006101000a81548160ff0219169083151502179055506000600167ffffffffffffffff8111156108d2576108d1612021565b5b60405190808252806020026020018201604052801561090b57816020015b6108f861175c565b8152602001906001900390816108f05790505b5090506040518060400160405280606481526020018360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152508160008151811061097257610971612438565b5b60200260200101819052507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e5b4d8278285600501866006016040518463ffffffff1660e01b81526004016109e0939291906127d5565b600060405180830381600087803b1580156109fa57600080fd5b505af1158015610a0e573d6000803e3d6000fd5b505050507f470d2978e081461f6d144c091dfd83ec06e6011da0b03bd1c0121b7fb71370dc8585604051610a43929190612821565b60405180910390a160007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639fbe7c73600a8660010154610a9a9190612879565b8660010154610aa991906128aa565b8660050160146040518060400160405280600181526020016003815250604051806040016040528060018152602001600281525060646001808f604051602001610af3919061193e565b6040516020818303038152906040526040518a63ffffffff1660e01b8152600401610b25989796959493929190612a0a565b60206040518083038185885af1158015610b43573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b689190612aad565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663975762b3828560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866001015460016040518563ffffffff1660e01b8152600401610bf29493929190612ada565b600060405180830381600087803b158015610c0c57600080fd5b505af1158015610c20573d6000803e3d6000fd5b50505050505050505050565b600060036000815480929190610c4190611fce565b919050559050600060026000838152602001908152602001600020905085816000018190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632805b5d93487873388600189604051602001610cbb919061193e565b6040516020818303038152906040526040518863ffffffff1660e01b8152600401610ceb96959493929190612b74565b60206040518083038185885af1158015610d09573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d2e9190612aad565b81600101819055507f71eae802097e4e77c5345dee7f35d74ac0ae45eb5a456fdaed0de4d141fc5d8c82604051610d65919061193e565b60405180910390a1505050505050565b60015481565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0290612c49565b60405180910390fd5b60008383810190610e1c9190611a23565b90506000600660008381526020019081526020016000209050881580610e40575087155b15610ecb578060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600a8360010154610e949190612879565b9081150290604051600060405180830381858888f19350505050158015610ebf573d6000803e3d6000fd5b5060019250505061111d565b60606000600167ffffffffffffffff811115610eea57610ee9612021565b5b604051908082528060200260200182016040528015610f2357816020015b610f1061175c565b815260200190600190039081610f085790505b5090506040518060400160405280606481526020018460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525081600081518110610f8a57610f89612438565b5b60200260200101819052507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e5b4d8278285600401856040518463ffffffff1660e01b8152600401610ff593929190612d90565b600060405180830381600087803b15801561100f57600080fd5b505af1158015611023573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639fbe7c73600a85600101546110749190612879565b856004016014604051806040016040528060018152602001600381525060405180604001604052806001815260200160028152506064600160006040518963ffffffff1660e01b81526004016110d09796959493929190612e02565b60206040518083038185885af11580156110ee573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111139190612aad565b5060009450505050505b9695505050505050565b60006004600084815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c790612f00565b60405180910390fd5b8060030160009054906101000a900460ff1615611222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121990612f92565b60405180910390fd5b806002015442111561124757814261123a9190612398565b8160020181905550611260565b8181600201546112579190612398565b81600201819055505b7fa85b1153cd317f9d39e14d8dbfb592ffb46123e9fc61b21b3f70d7d90a81a7e98360405161128f919061193e565b60405180910390a1505050565b60055481565b60026020528060005260406000206000915090508060000154908060010154905082565b6000600660008781526020019081526020016000209050600060038111156112f1576112f0611a5f565b5b8160020160009054906101000a900460ff16600381111561131557611314611a5f565b5b14611355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134c90612ffe565b60405180910390fd5b6000600460008360030154815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f990613090565b60405180910390fd5b60018260020160006101000a81548160ff0219169083600381111561142a57611429611a5f565b5b0217905550858583600501918261144292919061225c565b5060005b848490508110156114be578260060185858381811061146857611467612438565b5b905060200281019061147a91906130bf565b908060018154018082558091505060019003906000526020600020906002020160009091909190915081816114af919061326b565b50508080600101915050611446565b507ffaecd3b4db089bf25a48306100dd5fb2152e3887c7815b2b221dbb7da2f8e8dc876040516114ee919061193e565b60405180910390a150505050505050565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030160009054906101000a900460ff16905084565b60035481565b600061156c6115e1565b9050600060046000838152602001908152602001600020905060018160030160006101000a81548160ff0219169083151502179055507fd9e7f38a71691fb1db2da17057c03d381a42a9925350883f10e8e5d0bca4a3b483836040516115d3929190611dda565b60405180910390a150919050565b60008060005b600554811015611668576004600082815260200190815260200160002060030160009054906101000a900460ff1661165b576004600082815260200190815260200160002060020154421161165b576004600082815260200190815260200160002060010154826116589190612398565b91505b80806001019150506115e7565b50600081116116ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a3906132c5565b60405180910390fd5b600081446116ba91906132e5565b9050600080600090505b600554811015611755576004600082815260200190815260200160002060030160009054906101000a900460ff166117485760046000828152602001908152602001600020600201544211611748576004600082815260200190815260200160002060010154826117359190612398565b91508282111561174757809450611755565b5b80806001019150506116c4565b5050505090565b604051806040016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126117bb576117ba611796565b5b8235905067ffffffffffffffff8111156117d8576117d761179b565b5b6020830191508360018202830111156117f4576117f36117a0565b5b9250929050565b600080602083850312156118125761181161178c565b5b600083013567ffffffffffffffff8111156118305761182f611791565b5b61183c858286016117a5565b92509250509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061187382611848565b9050919050565b61188381611868565b811461188e57600080fd5b50565b6000813590506118a08161187a565b92915050565b6000819050919050565b6118b9816118a6565b81146118c457600080fd5b50565b6000813590506118d6816118b0565b92915050565b6000806000606084860312156118f5576118f461178c565b5b600061190386828701611891565b9350506020611914868287016118c7565b9250506040611925868287016118c7565b9150509250925092565b611938816118a6565b82525050565b6000602082019050611953600083018461192f565b92915050565b60008083601f84011261196f5761196e611796565b5b8235905067ffffffffffffffff81111561198c5761198b61179b565b5b6020830191508360018202830111156119a8576119a76117a0565b5b9250929050565b600080600080606085870312156119c9576119c861178c565b5b60006119d7878288016118c7565b94505060206119e8878288016118c7565b935050604085013567ffffffffffffffff811115611a0957611a08611791565b5b611a1587828801611959565b925092505092959194509250565b600060208284031215611a3957611a3861178c565b5b6000611a47848285016118c7565b91505092915050565b611a5981611868565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60048110611a9f57611a9e611a5f565b5b50565b6000819050611ab082611a8e565b919050565b6000611ac082611aa2565b9050919050565b611ad081611ab5565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b10578082015181840152602081019050611af5565b60008484015250505050565b6000601f19601f8301169050919050565b6000611b3882611ad6565b611b428185611ae1565b9350611b52818560208601611af2565b611b5b81611b1c565b840191505092915050565b60008115159050919050565b611b7b81611b66565b82525050565b600060e082019050611b96600083018a611a50565b611ba3602083018961192f565b611bb06040830188611ac7565b611bbd606083018761192f565b8181036080830152611bcf8186611b2d565b905081810360a0830152611be38185611b2d565b9050611bf260c0830184611b72565b98975050505050505050565b611c0781611b66565b8114611c1257600080fd5b50565b600081359050611c2481611bfe565b92915050565b60008060408385031215611c4157611c4061178c565b5b6000611c4f858286016118c7565b9250506020611c6085828601611c15565b9150509250929050565b600081905082602060030282011115611c8657611c856117a0565b5b92915050565b60008060008060a08587031215611ca657611ca561178c565b5b6000611cb4878288016118c7565b945050602085013567ffffffffffffffff811115611cd557611cd4611791565b5b611ce1878288016117a5565b93509350506040611cf487828801611c6a565b91505092959194509250565b60008060008060008060a08789031215611d1d57611d1c61178c565b5b6000611d2b89828a01611c15565b9650506020611d3c89828a01611c15565b9550506040611d4d89828a016118c7565b9450506060611d5e89828a016118c7565b935050608087013567ffffffffffffffff811115611d7f57611d7e611791565b5b611d8b89828a01611959565b92509250509295509295509295565b60008060408385031215611db157611db061178c565b5b6000611dbf858286016118c7565b9250506020611dd0858286016118c7565b9150509250929050565b6000604082019050611def600083018561192f565b611dfc602083018461192f565b9392505050565b60008083601f840112611e1957611e18611796565b5b8235905067ffffffffffffffff811115611e3657611e3561179b565b5b602083019150836020820283011115611e5257611e516117a0565b5b9250929050565b600080600080600060608688031215611e7557611e7461178c565b5b6000611e83888289016118c7565b955050602086013567ffffffffffffffff811115611ea457611ea3611791565b5b611eb0888289016117a5565b9450945050604086013567ffffffffffffffff811115611ed357611ed2611791565b5b611edf88828901611e03565b92509250509295509295909350565b6000608082019050611f036000830187611a50565b611f10602083018661192f565b611f1d604083018561192f565b611f2a6060830184611b72565b95945050505050565b7f496e73756666696369656e742066656500000000000000000000000000000000600082015250565b6000611f69601083611ae1565b9150611f7482611f33565b602082019050919050565b60006020820190508181036000830152611f9881611f5c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611fd9826118a6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361200b5761200a611f9f565b5b600182019050919050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061209757607f821691505b6020821081036120aa576120a9612050565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026121127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826120d5565b61211c86836120d5565b95508019841693508086168417925050509392505050565b6000819050919050565b600061215961215461214f846118a6565b612134565b6118a6565b9050919050565b6000819050919050565b6121738361213e565b61218761217f82612160565b8484546120e2565b825550505050565b600090565b61219c61218f565b6121a781848461216a565b505050565b5b818110156121cb576121c0600082612194565b6001810190506121ad565b5050565b601f821115612210576121e1816120b0565b6121ea846120c5565b810160208510156121f9578190505b61220d612205856120c5565b8301826121ac565b50505b505050565b600082821c905092915050565b600061223360001984600802612215565b1980831691505092915050565b600061224c8383612222565b9150826002028217905092915050565b6122668383612016565b67ffffffffffffffff81111561227f5761227e612021565b5b612289825461207f565b6122948282856121cf565b6000601f8311600181146122c357600084156122b1578287013590505b6122bb8582612240565b865550612323565b601f1984166122d1866120b0565b60005b828110156122f9578489013582556001820191506020850194506020810190506122d4565b868310156123165784890135612312601f891682612222565b8355505b6001600288020188555050505b50505050505050565b7f4e6f207374616b652070726f7669646564000000000000000000000000000000600082015250565b6000612362601183611ae1565b915061236d8261232c565b602082019050919050565b6000602082019050818103600083015261239181612355565b9050919050565b60006123a3826118a6565b91506123ae836118a6565b92508282019050808211156123c6576123c5611f9f565b5b92915050565b7f537461747573206d7573742062652045766964656e63655375626d6974746564600082015250565b6000612402602083611ae1565b915061240d826123cc565b602082019050919050565b60006020820190508181036000830152612431816123f5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61249c816118a6565b82525050565b6124ab81611868565b82525050565b6040820160008201516124c76000850182612493565b5060208201516124da60208501826124a2565b50505050565b60006124ec83836124b1565b60408301905092915050565b6000602082019050919050565b600061251082612467565b61251a8185612472565b935061252583612483565b8060005b8381101561255657815161253d88826124e0565b9750612548836124f8565b925050600181019050612529565b5085935050505092915050565b600081546125708161207f565b61257a8186611ae1565b9450600182166000811461259557600181146125ab576125de565b60ff1983168652811515602002860193506125de565b6125b4856120b0565b60005b838110156125d6578154818901526001820191506020810190506125b7565b808801955050505b50505092915050565b600081549050919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b60008160001c9050919050565b6000819050919050565b600061264261263d83612618565b612625565b9050919050565b6000819050919050565b61265c81612649565b82525050565b600082825260208201905092915050565b600081546126808161207f565b61268a8186612662565b945060018216600081146126a557600181146126bb576126ee565b60ff1983168652811515602002860193506126ee565b6126c4856120b0565b60005b838110156126e6578154818901526001820191506020810190506126c7565b808801955050505b50505092915050565b600060408301600080840154905061270e8161262f565b61271b6000870182612653565b506001840185830360208701526127328382612673565b925050819250505092915050565b600061274c83836126f7565b905092915050565b6000600282019050919050565b600061276c826125e7565b61277681856125f2565b93508360208202850161278885612603565b8060005b858110156127c3578484038952816127a48582612740565b94506127af83612754565b925060208a0199505060018101905061278c565b50829750879550505050505092915050565b600060608201905081810360008301526127ef8186612505565b905081810360208301526128038185612563565b905081810360408301526128178184612761565b9050949350505050565b6000604082019050612836600083018561192f565b6128436020830184611b72565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612884826118a6565b915061288f836118a6565b92508261289f5761289e61284a565b5b828204905092915050565b60006128b5826118a6565b91506128c0836118a6565b92508282039050818111156128d8576128d7611f9f565b5b92915050565b600060029050919050565b600081905092915050565b6000819050919050565b600061290a8383612493565b60208301905092915050565b6000602082019050919050565b61292c816128de565b61293681846128e9565b9250612941826128f4565b8060005b8381101561297257815161295987826128fe565b965061296483612916565b925050600181019050612945565b505050505050565b6000819050919050565b600061299f61299a6129958461297a565b612134565b6118a6565b9050919050565b6129af81612984565b82525050565b600081519050919050565b600082825260208201905092915050565b60006129dc826129b5565b6129e681856129c0565b93506129f6818560208601611af2565b6129ff81611b1c565b840191505092915050565b6000610140820190508181036000830152612a25818b612563565b9050612a34602083018a61192f565b612a416040830189612923565b612a4e6080830188612923565b612a5b60c08301876129a6565b612a6860e0830186611b72565b612a76610100830185611b72565b818103610120830152612a8981846129d1565b90509998505050505050505050565b600081519050612aa7816118b0565b92915050565b600060208284031215612ac357612ac261178c565b5b6000612ad184828501612a98565b91505092915050565b6000608082019050612aef600083018761192f565b612afc6020830186611a50565b612b09604083018561192f565b612b166060830184611b72565b95945050505050565b82818337600083830152505050565b6000612b3a8385611ae1565b9350612b47838584612b1f565b612b5083611b1c565b840190509392505050565b82818337505050565b612b7060608383612b5b565b5050565b600060e0820190508181036000830152612b8f81888a612b2e565b9050612b9e6020830187611a50565b612bab6040830186612b64565b612bb860a0830185611b72565b81810360c0830152612bca81846129d1565b9050979650505050505050565b7f6f6e56616c6964617465206d6179206f6e6c792062652063616c6c656420627960008201527f207468652044414f20636f6e7472616374000000000000000000000000000000602082015250565b6000612c33603183611ae1565b9150612c3e82612bd7565b604082019050919050565b60006020820190508181036000830152612c6281612c26565b9050919050565b600081519050919050565b6000819050602082019050919050565b6000612c8f82611ad6565b612c998185612662565b9350612ca9818560208601611af2565b612cb281611b1c565b840191505092915050565b6000604083016000830151612cd56000860182612653565b5060208301518482036020860152612ced8282612c84565b9150508091505092915050565b6000612d068383612cbd565b905092915050565b6000602082019050919050565b6000612d2682612c69565b612d3081856125f2565b935083602082028501612d4285612c74565b8060005b85811015612d7e5784840389528151612d5f8582612cfa565b9450612d6a83612d0e565b925060208a01995050600181019050612d46565b50829750879550505050505092915050565b60006060820190508181036000830152612daa8186612505565b90508181036020830152612dbe8185612563565b90508181036040830152612dd28184612d1b565b9050949350505050565b50565b6000612dec6000836129c0565b9150612df782612ddc565b600082019050919050565b6000610140820190508181036000830152612e1d818a612563565b9050612e2c602083018961192f565b612e396040830188612923565b612e466080830187612923565b612e5360c08301866129a6565b612e6060e0830185611b72565b612e6e610100830184611b72565b818103610120830152612e8081612ddf565b905098975050505050505050565b7f576f726b65722063616e206f6e6c7920657874656e64207468656972206f776e60008201527f20617661696c6162696c697479207374616b6500000000000000000000000000602082015250565b6000612eea603383611ae1565b9150612ef582612e8e565b604082019050919050565b60006020820190508181036000830152612f1981612edd565b9050919050565b7f5374616b652068617320616c7265616479206265656e2061737369676e65642060008201527f776f726b00000000000000000000000000000000000000000000000000000000602082015250565b6000612f7c602483611ae1565b9150612f8782612f20565b604082019050919050565b60006020820190508181036000830152612fab81612f6f565b9050919050565b7f537461747573206d757374206265205265717565737465640000000000000000600082015250565b6000612fe8601883611ae1565b9150612ff382612fb2565b602082019050919050565b6000602082019050818103600083015261301781612fdb565b9050919050565b7f576f726b65722063616e206f6e6c79207375626d69742065766964656e63652060008201527f666f7220776f726b2074686579206172652061737369676e6564000000000000602082015250565b600061307a603a83611ae1565b91506130858261301e565b604082019050919050565b600060208201905081810360008301526130a98161306d565b9050919050565b600080fd5b600080fd5b600080fd5b6000823560016040038336030381126130db576130da6130b0565b5b80830191505092915050565b6130f081612649565b81146130fb57600080fd5b50565b6000813561310b816130e7565b80915050919050565b60008160001b9050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61314d84613114565b9350801983169250808416831791505092915050565b600061317e61317961317484612649565b612134565b612649565b9050919050565b6000819050919050565b61319882613163565b6131ab6131a482613185565b8354613121565b8255505050565b600080833560016020038436030381126131cf576131ce6130b0565b5b80840192508235915067ffffffffffffffff8211156131f1576131f06130b5565b5b60208301925060018202360383131561320d5761320c6130ba565b5b509250929050565b61322083838361225c565b505050565b600081016000830180613237816130fe565b9050613243818461318f565b505050600181016020830161325881856131b2565b613263818386613215565b505050505050565b6132758282613225565b5050565b7f4e6f20617661696c61626c6520776f726b6572207374616b6573000000000000600082015250565b60006132af601a83611ae1565b91506132ba82613279565b602082019050919050565b600060208201905081810360008301526132de816132a2565b9050919050565b60006132f0826118a6565b91506132fb836118a6565b92508261330b5761330a61284a565b5b82820690509291505056fea2646970667358221220614a4462497b67381bd0ef26bbd0292370c52a5d343cb9a3ea3eccc11540c1cc64736f6c63430008180033",
"linkReferences": {},
"deployedLinkReferences": {}
}