dgf-prototype/backend/contractArtifacts/Proposals.json

356 lines
63 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "Proposals",
"sourceName": "contracts/Proposals.sol",
"abi": [
{
"inputs": [
{
"internalType": "contract DAO",
"name": "dao",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalIndex",
"type": "uint256"
}
],
"name": "Attestation",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalIndex",
"type": "uint256"
}
],
"name": "NewProposal",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalIndex",
"type": "uint256"
}
],
"name": "ProposalAccepted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalIndex",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"name": "ProposalFailed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalIndex",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "poolIndex",
"type": "uint256"
}
],
"name": "ReferendumStarted",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "attest",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalIndex",
"type": "uint256"
}
],
"name": "evaluateAttestation",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalIndex",
"type": "uint256"
}
],
"name": "getPools",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "poolIndex",
"type": "uint256"
},
{
"internalType": "bool",
"name": "started",
"type": "bool"
},
{
"internalType": "bool",
"name": "completed",
"type": "bool"
},
{
"internalType": "uint256",
"name": "stakedFor",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "stakedAgainst",
"type": "uint256"
},
{
"internalType": "bool",
"name": "votePasses",
"type": "bool"
},
{
"internalType": "bool",
"name": "quorumMet",
"type": "bool"
}
],
"internalType": "struct Proposals.Pool[3][3]",
"name": "pools",
"type": "tuple[3][3]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "votePasses",
"type": "bool"
},
{
"internalType": "bool",
"name": "quorumMet",
"type": "bool"
},
{
"internalType": "uint256",
"name": "stakedFor",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "stakedAgainst",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "callbackData",
"type": "bytes"
}
],
"name": "onValidate",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "proposalCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "proposals",
"outputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "fee",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "remainingFee",
"type": "uint256"
},
{
"internalType": "string",
"name": "postId",
"type": "string"
},
{
"internalType": "uint256",
"name": "startTime",
"type": "uint256"
},
{
"internalType": "enum Proposals.Stage",
"name": "stage",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "attestationTotal",
"type": "uint256"
},
{
"internalType": "bool",
"name": "callbackOnAccepted",
"type": "bool"
},
{
"internalType": "bytes",
"name": "callbackData",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "contentId",
"type": "string"
},
{
"internalType": "address",
"name": "author",
"type": "address"
},
{
"internalType": "uint256[3]",
"name": "durations",
"type": "uint256[3]"
},
{
"internalType": "bool",
"name": "callbackOnAccepted",
"type": "bool"
},
{
"internalType": "bytes",
"name": "callbackData",
"type": "bytes"
}
],
"name": "propose",
"outputs": [
{
"internalType": "uint256",
"name": "proposalIndex",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalIndex",
"type": "uint256"
}
],
"name": "reclaimRemainingFee",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60a06040526040518060600160405280600060ff168152602001600160ff168152602001606460ff1681525060029060036200003d929190620001ef565b5060405180606001604052806000151515158152602001600015151515815260200160011515151581525060059060036200007a92919062000239565b5060405180606001604052806040518060400160405280600160ff168152602001600a60ff1681525081526020016040518060400160405280600160ff168152602001600a60ff1681525081526020016040518060400160405280600160ff168152602001600a60ff168152508152506006906003620000fc929190620002d9565b5060405180606001604052806040518060400160405280600260ff168152602001600360ff1681525081526020016040518060400160405280600260ff168152602001600360ff1681525081526020016040518060400160405280600260ff168152602001600360ff16815250815250600c9060036200017e929190620002d9565b503480156200018c57600080fd5b50604051620039d1380380620039d18339818101604052810190620001b291906200044e565b808073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050505062000480565b826003810192821562000226579160200282015b8281111562000225578251829060ff1690559160200191906001019062000203565b5b50905062000235919062000331565b5090565b826003601f01602090048101928215620002c65791602002820160005b838211156200029557835183826101000a81548160ff021916908315150217905550926020019260010160208160000104928301926001030262000256565b8015620002c45782816101000a81549060ff021916905560010160208160000104928301926001030262000295565b505b509050620002d5919062000331565b5090565b82600360020281019282156200031e579160200282015b828111156200031d578251829060026200030c92919062000350565b5091602001919060020190620002f0565b5b5090506200032d91906200039a565b5090565b5b808211156200034c57600081600090555060010162000332565b5090565b826002810192821562000387579160200282015b8281111562000386578251829060ff1690559160200191906001019062000364565b5b50905062000396919062000331565b5090565b5b80821115620003be5760008181620003b49190620003c2565b506002016200039b565b5090565b506000815560010160009055565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200040282620003d5565b9050919050565b60006200041682620003f5565b9050919050565b620004288162000409565b81146200043457600080fd5b50565b60008151905062000448816200041d565b92915050565b600060208284031215620004675762000466620003d0565b5b6000620004778482850162000437565b91505092915050565b608051613512620004bf6000396000818161046d01528181610a0301528181610bef01528181610de901528181611685015261185301526135126000f3fe60806040526004361061007b5760003560e01c8063b4e6a1d51161004e578063b4e6a1d51461015b578063c019faab14610198578063da35c664146101c1578063ea923e63146101ec5761007b565b8063013cf08b146100805780632805b5d9146100c557806362d26ed7146100f5578063a3bb24cc14610132575b600080fd5b34801561008c57600080fd5b506100a760048036038101906100a29190611b65565b610229565b6040516100bc99989796959493929190611d59565b60405180910390f35b6100df60048036038101906100da9190611f29565b6103c1565b6040516100ec9190611fe5565b60405180910390f35b34801561010157600080fd5b5061011c60048036038101906101179190611b65565b6106c7565b60405161012991906121e5565b60405180910390f35b34801561013e57600080fd5b5061015960048036038101906101549190612201565b610a00565b005b34801561016757600080fd5b50610182600480360381019061017d9190612241565b610beb565b60405161018f9190611fe5565b60405180910390f35b3480156101a457600080fd5b506101bf60048036038101906101ba9190611b65565b6114c0565b005b3480156101cd57600080fd5b506101d66115ec565b6040516101e39190611fe5565b60405180910390f35b3480156101f857600080fd5b50610213600480360381019061020e9190611b65565b6115f2565b60405161022091906122db565b60405180910390f35b60006020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101549080600201549080600301805461027e90612325565b80601f01602080910402602001604051908101604052809291908181526020018280546102aa90612325565b80156102f75780601f106102cc576101008083540402835291602001916102f7565b820191906000526020600020905b8154815290600101906020018083116102da57829003601f168201915b5050505050908060040154908060050160009054906101000a900460ff169080600701549080603b0160009054906101000a900460ff169080603c01805461033e90612325565b80601f016020809104026020016040519081016040528092919081815260200182805461036a90612325565b80156103b75780601f1061038c576101008083540402835291602001916103b7565b820191906000526020600020905b81548152906001019060200180831161039a57829003601f168201915b5050505050905089565b600060606000600167ffffffffffffffff8111156103e2576103e1612356565b5b60405190808252806020026020018201604052801561041b57816020015b610408611a56565b8152602001906001900390816104005790505b5090506040518060400160405280620f424081526020018973ffffffffffffffffffffffffffffffffffffffff16815250816000815181106104605761045f612385565b5b60200260200101819052507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e5b4d827828c8c866040518563ffffffff1660e01b81526004016104ca949392919061263f565b600060405180830381600087803b1580156104e457600080fd5b505af11580156104f8573d6000803e3d6000fd5b505050506001600081548092919061050f906126bc565b91905055925060008060008581526020019081526020016000209050338160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508a8a8260030191826105819291906128bb565b504281600401819055508760006003811061059f5761059e612385565b5b6020020135816008016000600381106105bb576105ba612385565b5b6011020160000181905550876001600381106105da576105d9612385565b5b6020020135816008016001600381106105f6576105f5612385565b5b60110201600001819055508760026003811061061557610614612385565b5b60200201358160080160026003811061063157610630612385565b5b6011020160000181905550348160010181905550806001015481600201819055508681603b0160006101000a81548160ff021916908315150217905550858582603c0191826106819291906129f1565b507f9a863892f20a6b9c6cec64d611b5864be6373191ce2cacc3b05a299bce3bf80e846040516106b19190611fe5565b60405180910390a1505050979650505050505050565b6106cf611a86565b60008060008481526020019081526020016000209050806008016000600381106106fc576106fb612385565b5b60110201600101600380602002604051908101604052809291906000905b828210156107cc578382600502016040518060e0016040529081600082015481526020016001820160009054906101000a900460ff161515151581526020016001820160019054906101000a900460ff1615151515815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff161515151581526020016004820160019054906101000a900460ff1615151515815250508152602001906001019061071a565b50505050826000600381106107e4576107e3612385565b5b60200201819052508060080160016003811061080357610802612385565b5b60110201600101600380602002604051908101604052809291906000905b828210156108d3578382600502016040518060e0016040529081600082015481526020016001820160009054906101000a900460ff161515151581526020016001820160019054906101000a900460ff1615151515815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff161515151581526020016004820160019054906101000a900460ff16151515158152505081526020019060010190610821565b50505050826001600381106108eb576108ea612385565b5b60200201819052508060080160026003811061090a57610909612385565b5b60110201600101600380602002604051908101604052809291906000905b828210156109da578382600502016040518060e0016040529081600082015481526020016001820160009054906101000a900460ff161515151581526020016001820160019054906101000a900460ff1615151515815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff161515151581526020016004820160019054906101000a900460ff16151515158152505081526020019060010190610928565b50505050826002600381106109f2576109f1612385565b5b602002018190525050919050565b807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401610a5a9190612ac1565b602060405180830381865afa158015610a77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9b9190612af1565b1015610adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad390612b90565b60405180910390fd5b600080600084815260200190815260200160002090508060060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054816007016000828254610b479190612bb0565b92505081905550818160060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081816007016000828254610ba89190612be4565b925050819055507fc23775ba00d23f337b9f790bd67eb5194aa9b95876933f9ccd1887becbb55ccb83604051610bde9190611fe5565b60405180910390a1505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7290612c8a565b60405180910390fd5b60008060008585810190610c8f9190612caa565b925092509250600080600085815260200190815260200160002090506000816008018460038110610cc357610cc2612385565b5b601102019050600081600101826010015460038110610ce557610ce4612385565b5b60050201905060018160010160016101000a81548160ff0219169083151502179055508a81600201819055508981600301819055508b8160040160016101000a81548160ff0219169083151502179055508c8160040160006101000a81548160ff0219169083151502179055508b610de55760048360050160006101000a81548160ff02191690836005811115610d7f57610d7e611c72565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb86604051610db39190612d49565b60405180910390a183836002016000828254610dcf9190612be4565b92505081905550600196505050505050506114b6565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e769190612af1565b8b8d610e829190612be4565b6002610e8e9190612d77565b1015905060016005811115610ea657610ea5611c72565b5b8460050160009054906101000a900460ff166005811115610eca57610ec9611c72565b5b03610feb5760008614610f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0990612e05565b60405180910390fd5b8d8015610f1c5750805b15610f535760028460050160006101000a81548160ff02191690836005811115610f4957610f48611c72565b5b0217905550610fe6565b6002836010015410610fc85760048460050160006101000a81548160ff02191690836005811115610f8757610f86611c72565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb87604051610fbb9190612e71565b60405180910390a1610fe5565b6001836010016000828254610fdd9190612be4565b925050819055505b5b611392565b60026005811115610fff57610ffe611c72565b5b8460050160009054906101000a900460ff16600581111561102357611022611c72565b5b03611144576001861461106b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106290612eeb565b60405180910390fd5b8d80156110755750805b156110ac5760038460050160006101000a81548160ff021916908360058111156110a2576110a1611c72565b5b021790555061113f565b60028360100154106111215760048460050160006101000a81548160ff021916908360058111156110e0576110df611c72565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb876040516111149190612e71565b60405180910390a161113e565b60018360100160008282546111369190612be4565b925050819055505b5b611391565b6003600581111561115857611157611c72565b5b8460050160009054906101000a900460ff16600581111561117c5761117b611c72565b5b0361139057600286146111c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bb90612f57565b60405180910390fd5b8d80156111ce5750805b156112fc5760058460050160006101000a81548160ff021916908360058111156111fb576111fa611c72565b5b02179055507fd24c2047577899547bacebb29e319fc7d73f6712b5adb401d45556f34bb2aa3b8760405161122f9190611fe5565b60405180910390a183603b0160009054906101000a900460ff16156112f7578360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663815a05728d8d87603c016040518463ffffffff1660e01b81526004016112b293929190612ffb565b6020604051808303816000875af11580156112d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f59190612af1565b505b61138f565b60028360100154106113715760048460050160006101000a81548160ff021916908360058111156113305761132f611c72565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb876040516113649190612e71565b60405180910390a161138e565b60018360100160008282546113869190612be4565b925050819055505b5b5b5b5b600160058111156113a6576113a5611c72565b5b8460050160009054906101000a900460ff1660058111156113ca576113c9611c72565b5b036113f0576113eb876000600a87600101546113e69190613068565b61181e565b6114aa565b6002600581111561140457611403611c72565b5b8460050160009054906101000a900460ff16600581111561142857611427611c72565b5b0361144e57611449876001600a87600101546114449190613068565b61181e565b6114a9565b6003600581111561146257611461611c72565b5b8460050160009054906101000a900460ff16600581111561148657611485611c72565b5b036114a8576114a7876002600a87600101546114a29190613068565b61181e565b5b5b5b60009750505050505050505b9695505050505050565b60008060008381526020019081526020016000209050600460058111156114ea576114e9611c72565b5b8160050160009054906101000a900460ff16600581111561150e5761150d611c72565b5b148061154e575060058081111561152857611527611c72565b5b8160050160009054906101000a900460ff16600581111561154c5761154b611c72565b5b145b61158d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158490613131565b60405180910390fd5b600081600201549050600082600201819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156115e6573d6000803e3d6000fd5b50505050565b60015481565b60008060008084815260200190815260200160002090506000600581111561161d5761161c611c72565b5b8160050160009054906101000a900460ff16600581111561164157611640611c72565b5b14611681576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611678906131c3565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117129190612af1565b8260070154600a6117239190612d77565b1015905060006301e13380836004015461173d9190612be4565b42119050816117c85780156117bc5760048360050160006101000a81548160ff0219169083600581111561177457611773611c72565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb856040516117a89190613255565b60405180910390a160009350505050611819565b60009350505050611819565b60018360050160006101000a81548160ff021916908360058111156117f0576117ef611c72565b5b0217905550611811856000600a866001015461180c9190613068565b61181e565b600193505050505b919050565b60008060008581526020019081526020016000209050818160020160008282546118489190612bb0565b9250508190555060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639fbe7c7384846003018560080188600381106118a8576118a7612385565b5b6011020160000154600689600381106118c4576118c3612385565b5b60020201600c8a600381106118dc576118db612385565b5b6002020160028b600381106118f4576118f3612385565b5b015460058c6003811061190a57611909612385565b5b602091828204019190069054906101000a900460ff1660018e8e8e60405160200161193793929190613283565b6040516020818303038152906040526040518a63ffffffff1660e01b8152600401611969989796959493929190613425565b60206040518083038185885af1158015611987573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119ac9190612af1565b905060008260080185600381106119c6576119c5612385565b5b6011020190506000816001018260100154600381106119e8576119e7612385565b5b60050201905082816000018190555060018160010160006101000a81548160ff0219169083151502179055507f4c14e16a98683e5b8bd70d51192048d0499fb3999b27ff1e9dce7e4a2c6734798784604051611a459291906134b3565b60405180910390a150505050505050565b604051806040016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b60405180606001604052806003905b611a9d611ab3565b815260200190600190039081611a955790505090565b60405180606001604052806003905b611aca611ae0565b815260200190600190039081611ac25790505090565b6040518060e001604052806000815260200160001515815260200160001515815260200160008152602001600081526020016000151581526020016000151581525090565b600080fd5b600080fd5b6000819050919050565b611b4281611b2f565b8114611b4d57600080fd5b50565b600081359050611b5f81611b39565b92915050565b600060208284031215611b7b57611b7a611b25565b5b6000611b8984828501611b50565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611bbd82611b92565b9050919050565b611bcd81611bb2565b82525050565b611bdc81611b2f565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c1c578082015181840152602081019050611c01565b60008484015250505050565b6000601f19601f8301169050919050565b6000611c4482611be2565b611c4e8185611bed565b9350611c5e818560208601611bfe565b611c6781611c28565b840191505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60068110611cb257611cb1611c72565b5b50565b6000819050611cc382611ca1565b919050565b6000611cd382611cb5565b9050919050565b611ce381611cc8565b82525050565b60008115159050919050565b611cfe81611ce9565b82525050565b600081519050919050565b600082825260208201905092915050565b6000611d2b82611d04565b611d358185611d0f565b9350611d45818560208601611bfe565b611d4e81611c28565b840191505092915050565b600061012082019050611d6f600083018c611bc4565b611d7c602083018b611bd3565b611d89604083018a611bd3565b8181036060830152611d9b8189611c39565b9050611daa6080830188611bd3565b611db760a0830187611cda565b611dc460c0830186611bd3565b611dd160e0830185611cf5565b818103610100830152611de48184611d20565b90509a9950505050505050505050565b600080fd5b600080fd5b600080fd5b60008083601f840112611e1957611e18611df4565b5b8235905067ffffffffffffffff811115611e3657611e35611df9565b5b602083019150836001820283011115611e5257611e51611dfe565b5b9250929050565b611e6281611bb2565b8114611e6d57600080fd5b50565b600081359050611e7f81611e59565b92915050565b600081905082602060030282011115611ea157611ea0611dfe565b5b92915050565b611eb081611ce9565b8114611ebb57600080fd5b50565b600081359050611ecd81611ea7565b92915050565b60008083601f840112611ee957611ee8611df4565b5b8235905067ffffffffffffffff811115611f0657611f05611df9565b5b602083019150836001820283011115611f2257611f21611dfe565b5b9250929050565b600080600080600080600060e0888a031215611f4857611f47611b25565b5b600088013567ffffffffffffffff811115611f6657611f65611b2a565b5b611f728a828b01611e03565b97509750506020611f858a828b01611e70565b9550506040611f968a828b01611e85565b94505060a0611fa78a828b01611ebe565b93505060c088013567ffffffffffffffff811115611fc857611fc7611b2a565b5b611fd48a828b01611ed3565b925092505092959891949750929550565b6000602082019050611ffa6000830184611bd3565b92915050565b600060039050919050565b600081905092915050565b6000819050919050565b600060039050919050565b600081905092915050565b6000819050919050565b61204981611b2f565b82525050565b61205881611ce9565b82525050565b60e0820160008201516120746000850182612040565b506020820151612087602085018261204f565b50604082015161209a604085018261204f565b5060608201516120ad6060850182612040565b5060808201516120c06080850182612040565b5060a08201516120d360a085018261204f565b5060c08201516120e660c085018261204f565b50505050565b60006120f8838361205e565b60e08301905092915050565b6000602082019050919050565b61211a81612020565b612124818461202b565b925061212f82612036565b8060005b8381101561216057815161214787826120ec565b965061215283612104565b925050600181019050612133565b505050505050565b60006121748383612111565b6102a08301905092915050565b6000602082019050919050565b61219781612000565b6121a1818461200b565b92506121ac82612016565b8060005b838110156121dd5781516121c48782612168565b96506121cf83612181565b9250506001810190506121b0565b505050505050565b60006107e0820190506121fb600083018461218e565b92915050565b6000806040838503121561221857612217611b25565b5b600061222685828601611b50565b925050602061223785828601611b50565b9150509250929050565b60008060008060008060a0878903121561225e5761225d611b25565b5b600061226c89828a01611ebe565b965050602061227d89828a01611ebe565b955050604061228e89828a01611b50565b945050606061229f89828a01611b50565b935050608087013567ffffffffffffffff8111156122c0576122bf611b2a565b5b6122cc89828a01611ed3565b92509250509295509295509295565b60006020820190506122f06000830184611cf5565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061233d57607f821691505b6020821081036123505761234f6122f6565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6123e981611bb2565b82525050565b6040820160008201516124056000850182612040565b50602082015161241860208501826123e0565b50505050565b600061242a83836123ef565b60408301905092915050565b6000602082019050919050565b600061244e826123b4565b61245881856123bf565b9350612463836123d0565b8060005b8381101561249457815161247b888261241e565b975061248683612436565b925050600181019050612467565b5085935050505092915050565b82818337600083830152505050565b60006124bc8385611bed565b93506124c98385846124a1565b6124d283611c28565b840190509392505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b61251c81612509565b82525050565b600082825260208201905092915050565b600061253e82611be2565b6125488185612522565b9350612558818560208601611bfe565b61256181611c28565b840191505092915050565b60006040830160008301516125846000860182612513565b506020830151848203602086015261259c8282612533565b9150508091505092915050565b60006125b5838361256c565b905092915050565b6000602082019050919050565b60006125d5826124dd565b6125df81856124e8565b9350836020820285016125f1856124f9565b8060005b8581101561262d578484038952815161260e85826125a9565b9450612619836125bd565b925060208a019950506001810190506125f5565b50829750879550505050505092915050565b600060608201905081810360008301526126598187612443565b9050818103602083015261266e8185876124b0565b9050818103604083015261268281846125ca565b905095945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006126c782611b2f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036126f9576126f861268d565b5b600182019050919050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026127717fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612734565b61277b8683612734565b95508019841693508086168417925050509392505050565b6000819050919050565b60006127b86127b36127ae84611b2f565b612793565b611b2f565b9050919050565b6000819050919050565b6127d28361279d565b6127e66127de826127bf565b848454612741565b825550505050565b600090565b6127fb6127ee565b6128068184846127c9565b505050565b5b8181101561282a5761281f6000826127f3565b60018101905061280c565b5050565b601f82111561286f576128408161270f565b61284984612724565b81016020851015612858578190505b61286c61286485612724565b83018261280b565b50505b505050565b600082821c905092915050565b600061289260001984600802612874565b1980831691505092915050565b60006128ab8383612881565b9150826002028217905092915050565b6128c58383612704565b67ffffffffffffffff8111156128de576128dd612356565b5b6128e88254612325565b6128f382828561282e565b6000601f8311600181146129225760008415612910578287013590505b61291a858261289f565b865550612982565b601f1984166129308661270f565b60005b8281101561295857848901358255600182019150602085019450602081019050612933565b868310156129755784890135612971601f891682612881565b8355505b6001600288020188555050505b50505050505050565b600082905092915050565b60008190508160005260206000209050919050565b601f8211156129ec576129bd81612996565b6129c684612724565b810160208510156129d5578190505b6129e96129e185612724565b83018261280b565b50505b505050565b6129fb838361298b565b67ffffffffffffffff811115612a1457612a13612356565b5b612a1e8254612325565b612a298282856129ab565b6000601f831160018114612a585760008415612a46578287013590505b612a50858261289f565b865550612ab8565b601f198416612a6686612996565b60005b82811015612a8e57848901358255600182019150602085019450602081019050612a69565b86831015612aab5784890135612aa7601f891682612881565b8355505b6001600288020188555050505b50505050505050565b6000602082019050612ad66000830184611bc4565b92915050565b600081519050612aeb81611b39565b92915050565b600060208284031215612b0757612b06611b25565b5b6000612b1584828501612adc565b91505092915050565b7f53656e6465722068617320696e73756666696369656e74205245502062616c6160008201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b6000612b7a602383611bed565b9150612b8582612b1e565b604082019050919050565b60006020820190508181036000830152612ba981612b6d565b9050919050565b6000612bbb82611b2f565b9150612bc683611b2f565b9250828203905081811115612bde57612bdd61268d565b5b92915050565b6000612bef82611b2f565b9150612bfa83611b2f565b9250828201905080821115612c1257612c1161268d565b5b92915050565b7f6f6e56616c6964617465206d6179206f6e6c792062652063616c6c656420627960008201527f207468652044414f20636f6e7472616374000000000000000000000000000000602082015250565b6000612c74603183611bed565b9150612c7f82612c18565b604082019050919050565b60006020820190508181036000830152612ca381612c67565b9050919050565b600080600060608486031215612cc357612cc2611b25565b5b6000612cd186828701611b50565b9350506020612ce286828701611b50565b9250506040612cf386828701611b50565b9150509250925092565b7f51756f72756d206e6f74206d6574000000000000000000000000000000000000600082015250565b6000612d33600e83611bed565b9150612d3e82612cfd565b602082019050919050565b6000604082019050612d5e6000830184611bd3565b8181036020830152612d6f81612d26565b905092915050565b6000612d8282611b2f565b9150612d8d83611b2f565b9250828202612d9b81611b2f565b91508282048414831517612db257612db161268d565b5b5092915050565b7f5374616765203020696e646578206d69736d6174636800000000000000000000600082015250565b6000612def601683611bed565b9150612dfa82612db9565b602082019050919050565b60006020820190508181036000830152612e1e81612de2565b9050919050565b7f526574727920636f756e74206578636565646564000000000000000000000000600082015250565b6000612e5b601483611bed565b9150612e6682612e25565b602082019050919050565b6000604082019050612e866000830184611bd3565b8181036020830152612e9781612e4e565b905092915050565b7f5374616765203120696e646578206d69736d6174636800000000000000000000600082015250565b6000612ed5601683611bed565b9150612ee082612e9f565b602082019050919050565b60006020820190508181036000830152612f0481612ec8565b9050919050565b7f5374616765203220696e646578206d69736d6174636800000000000000000000600082015250565b6000612f41601683611bed565b9150612f4c82612f0b565b602082019050919050565b60006020820190508181036000830152612f7081612f34565b9050919050565b60008154612f8481612325565b612f8e8186611d0f565b94506001821660008114612fa95760018114612fbf57612ff2565b60ff198316865281151560200286019350612ff2565b612fc885612996565b60005b83811015612fea57815481890152600182019150602081019050612fcb565b808801955050505b50505092915050565b60006060820190506130106000830186611bd3565b61301d6020830185611bd3565b818103604083015261302f8184612f77565b9050949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061307382611b2f565b915061307e83611b2f565b92508261308e5761308d613039565b5b828204905092915050565b7f52656d61696e696e6720666565732063616e206f6e6c79206265207265636c6160008201527f696d6564207768656e2070726f706f73616c20686173206265656e206163636560208201527f70746564206f72206661696c6564000000000000000000000000000000000000604082015250565b600061311b604e83611bed565b915061312682613099565b606082019050919050565b6000602082019050818103600083015261314a8161310e565b9050919050565b7f4174746573746174696f6e206f6e6c79207065727461696e7320746f2050726f60008201527f706f73616c207374616765000000000000000000000000000000000000000000602082015250565b60006131ad602b83611bed565b91506131b882613151565b604082019050919050565b600060208201905081810360008301526131dc816131a0565b9050919050565b7f4578706972656420776974686f7574206d656574696e6720617474657374617460008201527f696f6e207468726573686f6c6400000000000000000000000000000000000000602082015250565b600061323f602d83611bed565b915061324a826131e3565b604082019050919050565b600060408201905061326a6000830184611bd3565b818103602083015261327b81613232565b905092915050565b60006060820190506132986000830186611bd3565b6132a56020830185611bd3565b6132b26040830184611bd3565b949350505050565b600081546132c781612325565b6132d18186611bed565b945060018216600081146132ec576001811461330257613335565b60ff198316865281151560200286019350613335565b61330b8561270f565b60005b8381101561332d5781548189015260018201915060208101905061330e565b808801955050505b50505092915050565b600060029050919050565b600081905092915050565b6000819050919050565b600061336a8383612040565b60208301905092915050565b60008160001c9050919050565b6000819050919050565b60006133a061339b83613376565b613383565b9050919050565b60006133b3825461338d565b9050919050565b6000600182019050919050565b6133d08161333e565b6133da8184613349565b92506133e582613354565b8060005b8381101561341d576133fa826133a7565b613404878261335e565b965061340f836133ba565b9250506001810190506133e9565b505050505050565b6000610140820190508181036000830152613440818b6132ba565b905061344f602083018a611bd3565b61345c60408301896133c7565b61346960808301886133c7565b61347660c0830187611bd3565b61348360e0830186611cf5565b613491610100830185611cf5565b8181036101208301526134a48184611d20565b90509998505050505050505050565b60006040820190506134c86000830185611bd3565b6134d56020830184611bd3565b939250505056fea2646970667358221220d80ec4a4a8c90b2eda72e635e77c16034d285583d86f5e11799f48eca051357c64736f6c63430008180033",
"deployedBytecode": "0x60806040526004361061007b5760003560e01c8063b4e6a1d51161004e578063b4e6a1d51461015b578063c019faab14610198578063da35c664146101c1578063ea923e63146101ec5761007b565b8063013cf08b146100805780632805b5d9146100c557806362d26ed7146100f5578063a3bb24cc14610132575b600080fd5b34801561008c57600080fd5b506100a760048036038101906100a29190611b65565b610229565b6040516100bc99989796959493929190611d59565b60405180910390f35b6100df60048036038101906100da9190611f29565b6103c1565b6040516100ec9190611fe5565b60405180910390f35b34801561010157600080fd5b5061011c60048036038101906101179190611b65565b6106c7565b60405161012991906121e5565b60405180910390f35b34801561013e57600080fd5b5061015960048036038101906101549190612201565b610a00565b005b34801561016757600080fd5b50610182600480360381019061017d9190612241565b610beb565b60405161018f9190611fe5565b60405180910390f35b3480156101a457600080fd5b506101bf60048036038101906101ba9190611b65565b6114c0565b005b3480156101cd57600080fd5b506101d66115ec565b6040516101e39190611fe5565b60405180910390f35b3480156101f857600080fd5b50610213600480360381019061020e9190611b65565b6115f2565b60405161022091906122db565b60405180910390f35b60006020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101549080600201549080600301805461027e90612325565b80601f01602080910402602001604051908101604052809291908181526020018280546102aa90612325565b80156102f75780601f106102cc576101008083540402835291602001916102f7565b820191906000526020600020905b8154815290600101906020018083116102da57829003601f168201915b5050505050908060040154908060050160009054906101000a900460ff169080600701549080603b0160009054906101000a900460ff169080603c01805461033e90612325565b80601f016020809104026020016040519081016040528092919081815260200182805461036a90612325565b80156103b75780601f1061038c576101008083540402835291602001916103b7565b820191906000526020600020905b81548152906001019060200180831161039a57829003601f168201915b5050505050905089565b600060606000600167ffffffffffffffff8111156103e2576103e1612356565b5b60405190808252806020026020018201604052801561041b57816020015b610408611a56565b8152602001906001900390816104005790505b5090506040518060400160405280620f424081526020018973ffffffffffffffffffffffffffffffffffffffff16815250816000815181106104605761045f612385565b5b60200260200101819052507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e5b4d827828c8c866040518563ffffffff1660e01b81526004016104ca949392919061263f565b600060405180830381600087803b1580156104e457600080fd5b505af11580156104f8573d6000803e3d6000fd5b505050506001600081548092919061050f906126bc565b91905055925060008060008581526020019081526020016000209050338160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508a8a8260030191826105819291906128bb565b504281600401819055508760006003811061059f5761059e612385565b5b6020020135816008016000600381106105bb576105ba612385565b5b6011020160000181905550876001600381106105da576105d9612385565b5b6020020135816008016001600381106105f6576105f5612385565b5b60110201600001819055508760026003811061061557610614612385565b5b60200201358160080160026003811061063157610630612385565b5b6011020160000181905550348160010181905550806001015481600201819055508681603b0160006101000a81548160ff021916908315150217905550858582603c0191826106819291906129f1565b507f9a863892f20a6b9c6cec64d611b5864be6373191ce2cacc3b05a299bce3bf80e846040516106b19190611fe5565b60405180910390a1505050979650505050505050565b6106cf611a86565b60008060008481526020019081526020016000209050806008016000600381106106fc576106fb612385565b5b60110201600101600380602002604051908101604052809291906000905b828210156107cc578382600502016040518060e0016040529081600082015481526020016001820160009054906101000a900460ff161515151581526020016001820160019054906101000a900460ff1615151515815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff161515151581526020016004820160019054906101000a900460ff1615151515815250508152602001906001019061071a565b50505050826000600381106107e4576107e3612385565b5b60200201819052508060080160016003811061080357610802612385565b5b60110201600101600380602002604051908101604052809291906000905b828210156108d3578382600502016040518060e0016040529081600082015481526020016001820160009054906101000a900460ff161515151581526020016001820160019054906101000a900460ff1615151515815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff161515151581526020016004820160019054906101000a900460ff16151515158152505081526020019060010190610821565b50505050826001600381106108eb576108ea612385565b5b60200201819052508060080160026003811061090a57610909612385565b5b60110201600101600380602002604051908101604052809291906000905b828210156109da578382600502016040518060e0016040529081600082015481526020016001820160009054906101000a900460ff161515151581526020016001820160019054906101000a900460ff1615151515815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff161515151581526020016004820160019054906101000a900460ff16151515158152505081526020019060010190610928565b50505050826002600381106109f2576109f1612385565b5b602002018190525050919050565b807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401610a5a9190612ac1565b602060405180830381865afa158015610a77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9b9190612af1565b1015610adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad390612b90565b60405180910390fd5b600080600084815260200190815260200160002090508060060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054816007016000828254610b479190612bb0565b92505081905550818160060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081816007016000828254610ba89190612be4565b925050819055507fc23775ba00d23f337b9f790bd67eb5194aa9b95876933f9ccd1887becbb55ccb83604051610bde9190611fe5565b60405180910390a1505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7290612c8a565b60405180910390fd5b60008060008585810190610c8f9190612caa565b925092509250600080600085815260200190815260200160002090506000816008018460038110610cc357610cc2612385565b5b601102019050600081600101826010015460038110610ce557610ce4612385565b5b60050201905060018160010160016101000a81548160ff0219169083151502179055508a81600201819055508981600301819055508b8160040160016101000a81548160ff0219169083151502179055508c8160040160006101000a81548160ff0219169083151502179055508b610de55760048360050160006101000a81548160ff02191690836005811115610d7f57610d7e611c72565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb86604051610db39190612d49565b60405180910390a183836002016000828254610dcf9190612be4565b92505081905550600196505050505050506114b6565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e769190612af1565b8b8d610e829190612be4565b6002610e8e9190612d77565b1015905060016005811115610ea657610ea5611c72565b5b8460050160009054906101000a900460ff166005811115610eca57610ec9611c72565b5b03610feb5760008614610f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0990612e05565b60405180910390fd5b8d8015610f1c5750805b15610f535760028460050160006101000a81548160ff02191690836005811115610f4957610f48611c72565b5b0217905550610fe6565b6002836010015410610fc85760048460050160006101000a81548160ff02191690836005811115610f8757610f86611c72565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb87604051610fbb9190612e71565b60405180910390a1610fe5565b6001836010016000828254610fdd9190612be4565b925050819055505b5b611392565b60026005811115610fff57610ffe611c72565b5b8460050160009054906101000a900460ff16600581111561102357611022611c72565b5b03611144576001861461106b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106290612eeb565b60405180910390fd5b8d80156110755750805b156110ac5760038460050160006101000a81548160ff021916908360058111156110a2576110a1611c72565b5b021790555061113f565b60028360100154106111215760048460050160006101000a81548160ff021916908360058111156110e0576110df611c72565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb876040516111149190612e71565b60405180910390a161113e565b60018360100160008282546111369190612be4565b925050819055505b5b611391565b6003600581111561115857611157611c72565b5b8460050160009054906101000a900460ff16600581111561117c5761117b611c72565b5b0361139057600286146111c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bb90612f57565b60405180910390fd5b8d80156111ce5750805b156112fc5760058460050160006101000a81548160ff021916908360058111156111fb576111fa611c72565b5b02179055507fd24c2047577899547bacebb29e319fc7d73f6712b5adb401d45556f34bb2aa3b8760405161122f9190611fe5565b60405180910390a183603b0160009054906101000a900460ff16156112f7578360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663815a05728d8d87603c016040518463ffffffff1660e01b81526004016112b293929190612ffb565b6020604051808303816000875af11580156112d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f59190612af1565b505b61138f565b60028360100154106113715760048460050160006101000a81548160ff021916908360058111156113305761132f611c72565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb876040516113649190612e71565b60405180910390a161138e565b60018360100160008282546113869190612be4565b925050819055505b5b5b5b5b600160058111156113a6576113a5611c72565b5b8460050160009054906101000a900460ff1660058111156113ca576113c9611c72565b5b036113f0576113eb876000600a87600101546113e69190613068565b61181e565b6114aa565b6002600581111561140457611403611c72565b5b8460050160009054906101000a900460ff16600581111561142857611427611c72565b5b0361144e57611449876001600a87600101546114449190613068565b61181e565b6114a9565b6003600581111561146257611461611c72565b5b8460050160009054906101000a900460ff16600581111561148657611485611c72565b5b036114a8576114a7876002600a87600101546114a29190613068565b61181e565b5b5b5b60009750505050505050505b9695505050505050565b60008060008381526020019081526020016000209050600460058111156114ea576114e9611c72565b5b8160050160009054906101000a900460ff16600581111561150e5761150d611c72565b5b148061154e575060058081111561152857611527611c72565b5b8160050160009054906101000a900460ff16600581111561154c5761154b611c72565b5b145b61158d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158490613131565b60405180910390fd5b600081600201549050600082600201819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156115e6573d6000803e3d6000fd5b50505050565b60015481565b60008060008084815260200190815260200160002090506000600581111561161d5761161c611c72565b5b8160050160009054906101000a900460ff16600581111561164157611640611c72565b5b14611681576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611678906131c3565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117129190612af1565b8260070154600a6117239190612d77565b1015905060006301e13380836004015461173d9190612be4565b42119050816117c85780156117bc5760048360050160006101000a81548160ff0219169083600581111561177457611773611c72565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb856040516117a89190613255565b60405180910390a160009350505050611819565b60009350505050611819565b60018360050160006101000a81548160ff021916908360058111156117f0576117ef611c72565b5b0217905550611811856000600a866001015461180c9190613068565b61181e565b600193505050505b919050565b60008060008581526020019081526020016000209050818160020160008282546118489190612bb0565b9250508190555060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639fbe7c7384846003018560080188600381106118a8576118a7612385565b5b6011020160000154600689600381106118c4576118c3612385565b5b60020201600c8a600381106118dc576118db612385565b5b6002020160028b600381106118f4576118f3612385565b5b015460058c6003811061190a57611909612385565b5b602091828204019190069054906101000a900460ff1660018e8e8e60405160200161193793929190613283565b6040516020818303038152906040526040518a63ffffffff1660e01b8152600401611969989796959493929190613425565b60206040518083038185885af1158015611987573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119ac9190612af1565b905060008260080185600381106119c6576119c5612385565b5b6011020190506000816001018260100154600381106119e8576119e7612385565b5b60050201905082816000018190555060018160010160006101000a81548160ff0219169083151502179055507f4c14e16a98683e5b8bd70d51192048d0499fb3999b27ff1e9dce7e4a2c6734798784604051611a459291906134b3565b60405180910390a150505050505050565b604051806040016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b60405180606001604052806003905b611a9d611ab3565b815260200190600190039081611a955790505090565b60405180606001604052806003905b611aca611ae0565b815260200190600190039081611ac25790505090565b6040518060e001604052806000815260200160001515815260200160001515815260200160008152602001600081526020016000151581526020016000151581525090565b600080fd5b600080fd5b6000819050919050565b611b4281611b2f565b8114611b4d57600080fd5b50565b600081359050611b5f81611b39565b92915050565b600060208284031215611b7b57611b7a611b25565b5b6000611b8984828501611b50565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611bbd82611b92565b9050919050565b611bcd81611bb2565b82525050565b611bdc81611b2f565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c1c578082015181840152602081019050611c01565b60008484015250505050565b6000601f19601f8301169050919050565b6000611c4482611be2565b611c4e8185611bed565b9350611c5e818560208601611bfe565b611c6781611c28565b840191505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60068110611cb257611cb1611c72565b5b50565b6000819050611cc382611ca1565b919050565b6000611cd382611cb5565b9050919050565b611ce381611cc8565b82525050565b60008115159050919050565b611cfe81611ce9565b82525050565b600081519050919050565b600082825260208201905092915050565b6000611d2b82611d04565b611d358185611d0f565b9350611d45818560208601611bfe565b611d4e81611c28565b840191505092915050565b600061012082019050611d6f600083018c611bc4565b611d7c602083018b611bd3565b611d89604083018a611bd3565b8181036060830152611d9b8189611c39565b9050611daa6080830188611bd3565b611db760a0830187611cda565b611dc460c0830186611bd3565b611dd160e0830185611cf5565b818103610100830152611de48184611d20565b90509a9950505050505050505050565b600080fd5b600080fd5b600080fd5b60008083601f840112611e1957611e18611df4565b5b8235905067ffffffffffffffff811115611e3657611e35611df9565b5b602083019150836001820283011115611e5257611e51611dfe565b5b9250929050565b611e6281611bb2565b8114611e6d57600080fd5b50565b600081359050611e7f81611e59565b92915050565b600081905082602060030282011115611ea157611ea0611dfe565b5b92915050565b611eb081611ce9565b8114611ebb57600080fd5b50565b600081359050611ecd81611ea7565b92915050565b60008083601f840112611ee957611ee8611df4565b5b8235905067ffffffffffffffff811115611f0657611f05611df9565b5b602083019150836001820283011115611f2257611f21611dfe565b5b9250929050565b600080600080600080600060e0888a031215611f4857611f47611b25565b5b600088013567ffffffffffffffff811115611f6657611f65611b2a565b5b611f728a828b01611e03565b97509750506020611f858a828b01611e70565b9550506040611f968a828b01611e85565b94505060a0611fa78a828b01611ebe565b93505060c088013567ffffffffffffffff811115611fc857611fc7611b2a565b5b611fd48a828b01611ed3565b925092505092959891949750929550565b6000602082019050611ffa6000830184611bd3565b92915050565b600060039050919050565b600081905092915050565b6000819050919050565b600060039050919050565b600081905092915050565b6000819050919050565b61204981611b2f565b82525050565b61205881611ce9565b82525050565b60e0820160008201516120746000850182612040565b506020820151612087602085018261204f565b50604082015161209a604085018261204f565b5060608201516120ad6060850182612040565b5060808201516120c06080850182612040565b5060a08201516120d360a085018261204f565b5060c08201516120e660c085018261204f565b50505050565b60006120f8838361205e565b60e08301905092915050565b6000602082019050919050565b61211a81612020565b612124818461202b565b925061212f82612036565b8060005b8381101561216057815161214787826120ec565b965061215283612104565b925050600181019050612133565b505050505050565b60006121748383612111565b6102a08301905092915050565b6000602082019050919050565b61219781612000565b6121a1818461200b565b92506121ac82612016565b8060005b838110156121dd5781516121c48782612168565b96506121cf83612181565b9250506001810190506121b0565b505050505050565b60006107e0820190506121fb600083018461218e565b92915050565b6000806040838503121561221857612217611b25565b5b600061222685828601611b50565b925050602061223785828601611b50565b9150509250929050565b60008060008060008060a0878903121561225e5761225d611b25565b5b600061226c89828a01611ebe565b965050602061227d89828a01611ebe565b955050604061228e89828a01611b50565b945050606061229f89828a01611b50565b935050608087013567ffffffffffffffff8111156122c0576122bf611b2a565b5b6122cc89828a01611ed3565b92509250509295509295509295565b60006020820190506122f06000830184611cf5565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061233d57607f821691505b6020821081036123505761234f6122f6565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6123e981611bb2565b82525050565b6040820160008201516124056000850182612040565b50602082015161241860208501826123e0565b50505050565b600061242a83836123ef565b60408301905092915050565b6000602082019050919050565b600061244e826123b4565b61245881856123bf565b9350612463836123d0565b8060005b8381101561249457815161247b888261241e565b975061248683612436565b925050600181019050612467565b5085935050505092915050565b82818337600083830152505050565b60006124bc8385611bed565b93506124c98385846124a1565b6124d283611c28565b840190509392505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b61251c81612509565b82525050565b600082825260208201905092915050565b600061253e82611be2565b6125488185612522565b9350612558818560208601611bfe565b61256181611c28565b840191505092915050565b60006040830160008301516125846000860182612513565b506020830151848203602086015261259c8282612533565b9150508091505092915050565b60006125b5838361256c565b905092915050565b6000602082019050919050565b60006125d5826124dd565b6125df81856124e8565b9350836020820285016125f1856124f9565b8060005b8581101561262d578484038952815161260e85826125a9565b9450612619836125bd565b925060208a019950506001810190506125f5565b50829750879550505050505092915050565b600060608201905081810360008301526126598187612443565b9050818103602083015261266e8185876124b0565b9050818103604083015261268281846125ca565b905095945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006126c782611b2f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036126f9576126f861268d565b5b600182019050919050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026127717fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612734565b61277b8683612734565b95508019841693508086168417925050509392505050565b6000819050919050565b60006127b86127b36127ae84611b2f565b612793565b611b2f565b9050919050565b6000819050919050565b6127d28361279d565b6127e66127de826127bf565b848454612741565b825550505050565b600090565b6127fb6127ee565b6128068184846127c9565b505050565b5b8181101561282a5761281f6000826127f3565b60018101905061280c565b5050565b601f82111561286f576128408161270f565b61284984612724565b81016020851015612858578190505b61286c61286485612724565b83018261280b565b50505b505050565b600082821c905092915050565b600061289260001984600802612874565b1980831691505092915050565b60006128ab8383612881565b9150826002028217905092915050565b6128c58383612704565b67ffffffffffffffff8111156128de576128dd612356565b5b6128e88254612325565b6128f382828561282e565b6000601f8311600181146129225760008415612910578287013590505b61291a858261289f565b865550612982565b601f1984166129308661270f565b60005b8281101561295857848901358255600182019150602085019450602081019050612933565b868310156129755784890135612971601f891682612881565b8355505b6001600288020188555050505b50505050505050565b600082905092915050565b60008190508160005260206000209050919050565b601f8211156129ec576129bd81612996565b6129c684612724565b810160208510156129d5578190505b6129e96129e185612724565b83018261280b565b50505b505050565b6129fb838361298b565b67ffffffffffffffff811115612a1457612a13612356565b5b612a1e8254612325565b612a298282856129ab565b6000601f831160018114612a585760008415612a46578287013590505b612a50858261289f565b865550612ab8565b601f198416612a6686612996565b60005b82811015612a8e57848901358255600182019150602085019450602081019050612a69565b86831015612aab5784890135612aa7601f891682612881565b8355505b6001600288020188555050505b50505050505050565b6000602082019050612ad66000830184611bc4565b92915050565b600081519050612aeb81611b39565b92915050565b600060208284031215612b0757612b06611b25565b5b6000612b1584828501612adc565b91505092915050565b7f53656e6465722068617320696e73756666696369656e74205245502062616c6160008201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b6000612b7a602383611bed565b9150612b8582612b1e565b604082019050919050565b60006020820190508181036000830152612ba981612b6d565b9050919050565b6000612bbb82611b2f565b9150612bc683611b2f565b9250828203905081811115612bde57612bdd61268d565b5b92915050565b6000612bef82611b2f565b9150612bfa83611b2f565b9250828201905080821115612c1257612c1161268d565b5b92915050565b7f6f6e56616c6964617465206d6179206f6e6c792062652063616c6c656420627960008201527f207468652044414f20636f6e7472616374000000000000000000000000000000602082015250565b6000612c74603183611bed565b9150612c7f82612c18565b604082019050919050565b60006020820190508181036000830152612ca381612c67565b9050919050565b600080600060608486031215612cc357612cc2611b25565b5b6000612cd186828701611b50565b9350506020612ce286828701611b50565b9250506040612cf386828701611b50565b9150509250925092565b7f51756f72756d206e6f74206d6574000000000000000000000000000000000000600082015250565b6000612d33600e83611bed565b9150612d3e82612cfd565b602082019050919050565b6000604082019050612d5e6000830184611bd3565b8181036020830152612d6f81612d26565b905092915050565b6000612d8282611b2f565b9150612d8d83611b2f565b9250828202612d9b81611b2f565b91508282048414831517612db257612db161268d565b5b5092915050565b7f5374616765203020696e646578206d69736d6174636800000000000000000000600082015250565b6000612def601683611bed565b9150612dfa82612db9565b602082019050919050565b60006020820190508181036000830152612e1e81612de2565b9050919050565b7f526574727920636f756e74206578636565646564000000000000000000000000600082015250565b6000612e5b601483611bed565b9150612e6682612e25565b602082019050919050565b6000604082019050612e866000830184611bd3565b8181036020830152612e9781612e4e565b905092915050565b7f5374616765203120696e646578206d69736d6174636800000000000000000000600082015250565b6000612ed5601683611bed565b9150612ee082612e9f565b602082019050919050565b60006020820190508181036000830152612f0481612ec8565b9050919050565b7f5374616765203220696e646578206d69736d6174636800000000000000000000600082015250565b6000612f41601683611bed565b9150612f4c82612f0b565b602082019050919050565b60006020820190508181036000830152612f7081612f34565b9050919050565b60008154612f8481612325565b612f8e8186611d0f565b94506001821660008114612fa95760018114612fbf57612ff2565b60ff198316865281151560200286019350612ff2565b612fc885612996565b60005b83811015612fea57815481890152600182019150602081019050612fcb565b808801955050505b50505092915050565b60006060820190506130106000830186611bd3565b61301d6020830185611bd3565b818103604083015261302f8184612f77565b9050949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061307382611b2f565b915061307e83611b2f565b92508261308e5761308d613039565b5b828204905092915050565b7f52656d61696e696e6720666565732063616e206f6e6c79206265207265636c6160008201527f696d6564207768656e2070726f706f73616c20686173206265656e206163636560208201527f70746564206f72206661696c6564000000000000000000000000000000000000604082015250565b600061311b604e83611bed565b915061312682613099565b606082019050919050565b6000602082019050818103600083015261314a8161310e565b9050919050565b7f4174746573746174696f6e206f6e6c79207065727461696e7320746f2050726f60008201527f706f73616c207374616765000000000000000000000000000000000000000000602082015250565b60006131ad602b83611bed565b91506131b882613151565b604082019050919050565b600060208201905081810360008301526131dc816131a0565b9050919050565b7f4578706972656420776974686f7574206d656574696e6720617474657374617460008201527f696f6e207468726573686f6c6400000000000000000000000000000000000000602082015250565b600061323f602d83611bed565b915061324a826131e3565b604082019050919050565b600060408201905061326a6000830184611bd3565b818103602083015261327b81613232565b905092915050565b60006060820190506132986000830186611bd3565b6132a56020830185611bd3565b6132b26040830184611bd3565b949350505050565b600081546132c781612325565b6132d18186611bed565b945060018216600081146132ec576001811461330257613335565b60ff198316865281151560200286019350613335565b61330b8561270f565b60005b8381101561332d5781548189015260018201915060208101905061330e565b808801955050505b50505092915050565b600060029050919050565b600081905092915050565b6000819050919050565b600061336a8383612040565b60208301905092915050565b60008160001c9050919050565b6000819050919050565b60006133a061339b83613376565b613383565b9050919050565b60006133b3825461338d565b9050919050565b6000600182019050919050565b6133d08161333e565b6133da8184613349565b92506133e582613354565b8060005b8381101561341d576133fa826133a7565b613404878261335e565b965061340f836133ba565b9250506001810190506133e9565b505050505050565b6000610140820190508181036000830152613440818b6132ba565b905061344f602083018a611bd3565b61345c60408301896133c7565b61346960808301886133c7565b61347660c0830187611bd3565b61348360e0830186611cf5565b613491610100830185611cf5565b8181036101208301526134a48184611d20565b90509998505050505050505050565b60006040820190506134c86000830185611bd3565b6134d56020830184611bd3565b939250505056fea2646970667358221220d80ec4a4a8c90b2eda72e635e77c16034d285583d86f5e11799f48eca051357c64736f6c63430008180033",
"linkReferences": {},
"deployedLinkReferences": {}
}