60806040523480156200001157600080fd5b506200001d3262000023565b62000327565b6200002e81620000b2565b6200003b816001620000ee565b604080518082019091526007815266082e6e8cae4d2f60cb1b60208201526000906200006890826200025b565b50604080518082019091526004815263082a6a8b60e31b60208201526001906200009390826200025b565b50506003805464ffffffffff60281b191667c350230000000000179055565b6001600160a01b0316638b78c6d8198190558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b6200017a82620001398362000129836001600160a01b0316600090815268a20d6e21d0e525531060205260409020546001600160581b031690565b6001600160581b0316906200017e565b6001600160a01b0391909116600090815268a20d6e21d0e52553106020526040902080546001600160581b0319166001600160581b03909216919091179055565b5050565b6000811515620001938460571c600116151590565b151514620001ad576a800000000000000000000092909218915b5090919050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001df57607f821691505b6020821081036200020057634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000256576000816000526020600020601f850160051c81016020861015620002315750805b601f850160051c820191505b8181101562000252578281556001016200023d565b5050505b505050565b81516001600160401b03811115620002775762000277620001b4565b6200028f81620002888454620001ca565b8462000206565b602080601f831160018114620002c75760008415620002ae5750858301515b600019600386901b1c1916600185901b17855562000252565b600085815260208120601f198616915b82811015620002f857888601518255948401946001909101908401620002d7565b5085821015620003175787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b612fae80620003376000396000f3fe60806040526004361061030c5760003560e01c806353df5c7c1161019a578063af6900c3116100e1578063d73c1fb31161008a578063f04e283e11610064578063f04e283e14610caa578063f2fde38b14610cbd578063fee81cf414610cd057610313565b8063d73c1fb314610c19578063dd62ed3e14610c3a578063e436744514610c8857610313565b8063bbefa83a116100bb578063bbefa83a14610bc4578063c4d66de814610bd9578063c87b56dd14610bf957610313565b8063af6900c314610b6f578063b19de39f14610b84578063b698206914610ba457610313565b806370a08231116101435780638da5cb5b1161011d5780638da5cb5b14610b2157806395d89b4114610b3a578063a9059cbb14610b4f57610313565b806370a0823114610ab1578063715018a614610b0457806375b238fc14610b0c57610313565b80635a446215116101745780635a44621514610a625780635d148e5c14610a825780636338cb8a14610a9c57610313565b806353df5c7c14610a2557806354d1f13d14610a3a57806355f804b314610a4257610313565b8063274e430b1161025e57806347f618a511610207578063514e62fc116101e1578063514e62fc146109925780635327bba3146109c957806353d6fd5914610a0557610313565b806347f618a5146109255780634a4ee7b1146109455780634ef41efc1461095857610313565b8063313ce56711610238578063313ce567146108dc5780633af32abf146108f05780633ccfd60b1461091057610313565b8063274e430b146108695780632a6a935d146108895780632de94807146108a957610313565b8063183a4f6e116102c057806323b848ff1161029a57806323b848ff1461082c57806323b872dd14610841578063256929621461086157610313565b8063183a4f6e146107cf5780631c10893f146107e25780631cd64df4146107f557610313565b8063095ea7b3116102f1578063095ea7b314610744578063180434a31461077457806318160ddd1461079357610313565b806304dfe79d146106e857806306fdde031461072257610313565b3661031357005b68a20d6e21d0e525530860003560e01c63e985e9c58190036103b95760018201546001600160a01b0316331461035c5760405163ce5a776b60e01b815260040160405180910390fd5b604436101561036a57600080fd5b6004356001600160a01b038181166000908152600385016020908152604080832060243594851684529091529020546103b69060ff166103ab5760006103ae565b60015b60ff16610d03565b50505b80636352211e0361041e5760018201546001600160a01b031633146103f15760405163ce5a776b60e01b815260040160405180910390fd5b60243610156103ff57600080fd5b60043561041c61040e82610d0d565b6001600160a01b0316610d03565b505b8063e5eb36c80361048b5760018201546001600160a01b031633146104565760405163ce5a776b60e01b815260040160405180910390fd5b608436101561046457600080fd5b60043560243560443560643561047c84848484610d44565b6104866001610d03565b505050505b8063813500fc036105255760018201546001600160a01b031633146104c35760405163ce5a776b60e01b815260040160405180910390fd5b60643610156104d157600080fd5b6001600160a01b03604435818116600090815268a20d6e21d0e525530b6020908152604080832060043595861684529091529020805460ff19166024351515908117909155906105216001610d03565b5050505b8063d10b6e0c036105865760018201546001600160a01b0316331461055d5760405163ce5a776b60e01b815260040160405180910390fd5b606436101561056b57600080fd5b60043560243560443561058261040e848484610d8b565b5050505b8063081812fc036105dd5760018201546001600160a01b031633146105be5760405163ce5a776b60e01b815260040160405180910390fd5b60243610156105cc57600080fd5b6004356105db61040e82610e9c565b505b8063f5b100ea036106655760018201546001600160a01b031633146106155760405163ce5a776b60e01b815260040160405180910390fd5b602436101561062357600080fd5b60043561066361065e826001600160a01b0316600090815268a20d6e21d0e5255310602052604090205463ffffffff600160801b9091041690565b610d03565b505b8063e2c79281036106d15760018201546001600160a01b0316331461069d5760405163ce5a776b60e01b815260040160405180910390fd5b60043610156106ab57600080fd5b68a20d6e21d0e5255308546106d19068010000000000000000900463ffffffff16610d03565b8063b7a94eb8036106e6576106e66001610d03565b005b3480156106f457600080fd5b5060035461070b9065010000000000900460ff1681565b60405160ff90911681526020015b60405180910390f35b34801561072e57600080fd5b50610737610ee8565b6040516107199190612ada565b34801561075057600080fd5b5061076461075f366004612b40565b610f7a565b6040519015158152602001610719565b34801561078057600080fd5b5060035461076490610100900460ff1681565b34801561079f57600080fd5b5068a20d6e21d0e525530854600160601b90046bffffffffffffffffffffffff165b604051908152602001610719565b6106e66107dd366004612b6a565b610ff0565b6106e66107f0366004612b40565b610ffd565b34801561080157600080fd5b50610764610810366004612b40565b638b78c6d8600c90815260009290925260209091205481161490565b34801561083857600080fd5b506106e6611013565b34801561084d57600080fd5b5061076461085c366004612b83565b611036565b6106e66110f2565b34801561087557600080fd5b50610764610884366004612bbf565b611142565b34801561089557600080fd5b506106e66108a4366004612bea565b611191565b3480156108b557600080fd5b506107c16108c4366004612bbf565b638b78c6d8600c908152600091909152602090205490565b3480156108e857600080fd5b50601261070b565b3480156108fc57600080fd5b5061076461090b366004612bbf565b61119b565b34801561091c57600080fd5b506106e66111d9565b34801561093157600080fd5b506003546107649062010000900460ff1681565b6106e6610953366004612b40565b6111ed565b34801561096457600080fd5b5068a20d6e21d0e5255309546001600160a01b03165b6040516001600160a01b039091168152602001610719565b34801561099e57600080fd5b506107646109ad366004612b40565b638b78c6d8600c90815260009290925260209091205416151590565b3480156109d557600080fd5b506003546109f0906601000000000000900463ffffffff1681565b60405163ffffffff9091168152602001610719565b348015610a1157600080fd5b506106e6610a20366004612c05565b6111ff565b348015610a3157600080fd5b506106e6611244565b6106e661125f565b348015610a4e57600080fd5b506106e6610a5d366004612c7a565b61129b565b348015610a6e57600080fd5b506106e6610a7d366004612cbc565b6112d7565b348015610a8e57600080fd5b506003546107649060ff1681565b348015610aa857600080fd5b506106e661132e565b348015610abd57600080fd5b506107c1610acc366004612bbf565b6001600160a01b0316600090815268a20d6e21d0e52553106020526040902054600160a01b90046bffffffffffffffffffffffff1690565b6106e661134b565b348015610b1857600080fd5b506107c1600181565b348015610b2d57600080fd5b50638b78c6d8195461097a565b348015610b4657600080fd5b5061073761135f565b348015610b5b57600080fd5b50610764610b6a366004612b40565b61136e565b348015610b7b57600080fd5b506106e6611384565b348015610b9057600080fd5b506106e6610b9f366004612d28565b6113a5565b348015610bb057600080fd5b506106e6610bbf366004612d4e565b611407565b348015610bd057600080fd5b506106e6611463565b348015610be557600080fd5b506106e6610bf4366004612bbf565b611482565b348015610c0557600080fd5b50610737610c14366004612b6a565b6114bc565b348015610c2557600080fd5b50600354610764906301000000900460ff1681565b348015610c4657600080fd5b506107c1610c55366004612d71565b6001600160a01b03918216600090815268a20d6e21d0e525530d6020908152604080832093909416825291909152205490565b348015610c9457600080fd5b5060035461076490640100000000900460ff1681565b6106e6610cb8366004612bbf565b6115cf565b6106e6610ccb366004612bbf565b61160c565b348015610cdc57600080fd5b506107c1610ceb366004612bbf565b63389a75e1600c908152600091909152602090205490565b8060005260206000f35b6000610d1882611633565b610d355760405163677510db60e11b815260040160405180910390fd5b610d3e82611650565b92915050565b610d50848484846116a5565b610d5a8484611af9565b826001600160a01b0316846001600160a01b031614610d8557610d8584670de0b6b3a7640000611c1a565b50505050565b600068a20d6e21d0e52553088168a20d6e21d0e525530a81610dd968a20d6e21d0e525530f600189901b5b600381901c600090815260209290925260409091205460059190911b60e0161c90565b63ffffffff1681526020810191909152604001600020546001600160a01b03908116915084168114610e66576001600160a01b03808216600090815260038401602090815260408083209388168352929052205460ff16610e66576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008581526004909201602052604090912080546001600160a01b0387166001600160a01b031990911617905590509392505050565b6000610ea782611633565b610ec45760405163677510db60e11b815260040160405180910390fd5b50600090815268a20d6e21d0e525530c60205260409020546001600160a01b031690565b606060008054610ef790612d9b565b80601f0160208091040260200160405190810160405280929190818152602001828054610f2390612d9b565b8015610f705780601f10610f4557610100808354040283529160200191610f70565b820191906000526020600020905b815481529060010190602001808311610f5357829003601f168201915b5050505050905090565b60008068a20d6e21d0e525530833600081815260058301602090815260408083206001600160a01b038a16808552908352928190208890555187815293945090927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060019392505050565b610ffa3382611cff565b50565b611005611d0b565b61100f8282611d26565b5050565b600161101e81611d32565b506003805464ff000000001916640100000000179055565b6001600160a01b038316600090815268a20d6e21d0e525530d6020908152604080832033845290915281205468a20d6e21d0e52553089060001981146110db57808411156110b0576040517f13be252b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03861660009081526005830160209081526040808320338452909152902084820390555b6110e6868686611d65565b50600195945050505050565b60006202a30067ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b6001600160a01b038116600090815268a20d6e21d0e5255310602052604081208054600160581b9004600116820361117e57823b5b9392505050565b54600160581b9004600216151592915050565b610ffa3382611d9d565b6001600160a01b038116600090815268a20d6e21d0e52553106020526040812054610d3e906affffffffffffffffffffff165b60571c600116151590565b60016111e481611d32565b610ffa33611e35565b6111f5611d0b565b61100f8282611cff565b600161120a81611d32565b6003546301000000900460ff1615611235576040516303cb96db60e21b815260040160405180910390fd5b61123f8383611e51565b505050565b600161124f81611d32565b506003805460ff19166001179055565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b60016112a681611d32565b60035460ff16156112ca576040516303cb96db60e21b815260040160405180910390fd5b6002610d85838583612e2d565b60016112e281611d32565b600354610100900460ff161561130b576040516303cb96db60e21b815260040160405180910390fd5b6000611318858783612e2d565b506001611326838583612e2d565b505050505050565b600161133981611d32565b506003805461ff001916610100179055565b611353611d0b565b61135d6000611ee9565b565b606060018054610ef790612d9b565b600061137b338484611d65565b50600192915050565b600161138f81611d32565b506003805463ff00000019166301000000179055565b60016113b081611d32565b60035462010000900460ff16156113da576040516303cb96db60e21b815260040160405180910390fd5b506003805463ffffffff90921666010000000000000269ffffffff00000000000019909216919091179055565b600161141281611d32565b600354640100000000900460ff161561143e576040516303cb96db60e21b815260040160405180910390fd5b506003805460ff909216650100000000000265ff000000000019909216919091179055565b600161146e81611d32565b506003805462ff0000191662010000179055565b600161148d81611d32565b60006114a3670de0b6b3a7640000612710612f03565b9050336114b1828286611f27565b610d85816001611e51565b60606114c782611633565b6114e45760405163677510db60e11b815260040160405180910390fd5b600280546114f190612d9b565b1590506115ca57610d3e6002805461150890612d9b565b80601f016020809104026020016040519081016040528092919081815260200182805461153490612d9b565b80156115815780601f1061155657610100808354040283529160200191611581565b820191906000526020600020905b81548152906001019060200180831161156457829003601f168201915b50505050506040518060400160405280600481526020017f7b69647d000000000000000000000000000000000000000000000000000000008152506115c58561211c565b612160565b919050565b6115d7611d0b565b63389a75e1600c52806000526020600c2080544211156115ff57636f5e88186000526004601cfd5b60009055610ffa81611ee9565b611614611d0b565b8060601b61162a57637448fbae6000526004601cfd5b610ffa81611ee9565b60008061163f83611650565b6001600160a01b0316141592915050565b600068a20d6e21d0e525530868a20d6e21d0e525530a8261167e68a20d6e21d0e525530f600187901b610db6565b63ffffffff1681526020810191909152604001600020546001600160a01b03169392505050565b68a20d6e21d0e52553086001600160a01b0384166116d657604051633a954ecd60e21b815260040160405180910390fd5b60008160020160006116ef84600701610db68860011b90565b63ffffffff1681526020810191909152604001600020546001600160a01b0390811691508616811461174d576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b856001600160a01b0316836001600160a01b0316146117ea576001600160a01b03808716600090815260038401602090815260408083209387168352929052205460ff166117ea5760008481526004830160205260409020546001600160a01b038481169116146117ea576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006117f587612283565b9050600061180287612283565b8254909150670de0b6b3a7640000908390601490611836908490600160a01b90046bffffffffffffffffffffffff16612f1a565b82546101009290920a6bffffffffffffffffffffffff81810219909316918316021790915582546001600160a01b038116670de0b6b3a7640000600160a01b9283900484160190921602178255506118ce60078501600188901b61189a848b6122f7565b826020528160031c60005260406000206007831660051b815463ffffffff8482841c188116831b8218845550505050505050565b6000868152600485016020908152604080832080546001600160a01b03191690556001600160a01b038b168352600687018252808320855463ffffffff60801b198116600160801b9182900463ffffffff90811660001901908116909202178755631fffffff600382901c168552925282205460059190911b60e0161c6001600160a01b038a166000908152600687016020526040902063ffffffff9190911691506119c1906119866007880160018b811b01610db6565b63ffffffff1683826020528160031c60005260406000206007831660051b815463ffffffff8482841c188116831b8218845550505050505050565b8154600163ffffffff600160801b80840482169283019091160263ffffffff60801b19909216919091178355611a1360078701611a0184600190811b0190565b61189a60078a0160018d811b01610db6565b6001600160a01b03891660009081526006870160209081526040808320909152600383901c82529020805460e0600584901b1681811c8b1863ffffffff16901b189055611a986007870160018a811b0183826020528160031c60005260406000206007831660051b815463ffffffff8482841c188116831b8218845550505050505050565b5050866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051611ae791815260200190565b60405180910390a35050505050505050565b60035465010000000000900460ff166000819003611b1657505050565b6001600160a01b038216600090815268a20d6e21d0e52553106020526040902054670de0b6b3a7640000820290600160a01b90046bffffffffffffffffffffffff1611611b6257505050565b611b996111ce836001600160a01b0316600090815268a20d6e21d0e525531060205260409020546affffffffffffffffffffff1690565b15611ba357505050565b638b78c6d819546001600160a01b0316836001600160a01b031603611bc757505050565b638b78c6d8600c9081526000849052602090205460011615611be857505050565b6040517f0f2acbfc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003546601000000000000900463ffffffff166000819003611c3b57505050565b600080611c8984611c76876001600160a01b0316600090815268a20d6e21d0e525531060205260409020546affffffffffffffffffffff1690565b6affffffffffffffffffffff16906123b2565b9150915060028110611cb65780800283026301312d00808210611caa578091505b611cb382612429565b50505b6001600160a01b038516600090815268a20d6e21d0e52553106020526040902080546affffffffffffffffffffff19166affffffffffffffffffffff84161790555b5050505050565b61100f8282600061245d565b638b78c6d81954331461135d576382b429006000526004601cfd5b61100f8282600161245d565b638b78c6d819543314610ffa57638b78c6d8600c5233600052806020600c205416610ffa576382b429006000526004601cfd5b611d708383836124b6565b611d7a8383611af9565b816001600160a01b0316836001600160a01b03161461123f5761123f8382611c1a565b6000611da883612283565b8054909150600160581b9004600216151582151514611deb57805460ff600160581b8083048216600218909116026bff0000000000000000000000199091161781555b826001600160a01b03167fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039383604051611e28911515815260200190565b60405180910390a2505050565b60003860003847855af1610ffa5763b12d13eb6000526004601cfd5b61100f82611ea083611e8d866001600160a01b0316600090815268a20d6e21d0e525531060205260409020546affffffffffffffffffffff1690565b6affffffffffffffffffffff1690612a42565b6001600160a01b0391909116600090815268a20d6e21d0e52553106020526040902080546affffffffffffffffffffff19166affffffffffffffffffffff909216919091179055565b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b68a20d6e21d0e52553088054640100000000900463ffffffff1615611f78576040517fead4d2e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038216611fb8576040517f39a84a7b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611fc182612a6f565b805467ffffffff0000000019166401000000001781556001810180546001600160a01b0384166001600160a01b03199091161790558315610d85576001600160a01b03831661202357604051633a954ecd60e21b815260040160405180910390fd5b6b0de0b6b39983494c589bffff841115612069576040517fe5cfe95700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80547fffffffffffffffff000000000000000000000000ffffffffffffffffffffffff16600160601b6bffffffffffffffffffffffff86160217815560006120b084612283565b80546001600160a01b03908116600160a01b6bffffffffffffffffffffffff8916021782556040518781529192508516906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3611cf8846001611d9d565b60606080604051019050602081016040526000815280600019835b928101926030600a8206018453600a900480612137575050819003601f19909101908152919050565b60608351835183516020870196506020860195506020850194506020604051019350828701838311612232576001838203016000602085106121a157508388205b601f851660200360031b89515b8b51818118831c6122195783156121e85783888e20146121e857808a5260019c8d019c90990198848d106121e2575061222d565b506121ae565b60005b8b8101518b8201526020018781106121eb57509b87019b98860198871561221957848d106121e2575061222d565b895260019b8c019b90980197838c106121ae575b505050505b84935060206040510194508781038585030192505b80881015612262578751845260209788019790930192612247565b50506000818401908152602001604052601f19909201918252509392505050565b6001600160a01b038116600090815268a20d6e21d0e5255310602052604081208054909168a20d6e21d0e525530891600160581b900460011690036122f1576001833b156122cf576002175b825460ff909116600160581b026bff0000000000000000000000199091161782555b50919050565b8154600160601b900463ffffffff1668a20d6e21d0e525530860008290036123ab578054819060009061232f9063ffffffff16612f3f565b825463ffffffff8083166101009490940a848102910219909116179092558554600160601b82027fffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff9091161786556000908152600283016020526040902080546001600160a01b0386166001600160a01b031990911617905591505b5092915050565b600080605784901c600116156123cd57508290506000612422565b637fffffff620151804204811690603886901c1666ffffffffffffff86168183146123f9575081905060005b60389190911b66ffffffffffffff602887901c811692909201918216179350620de0b690049150505b9250929050565b80600117601052605b8104607882110260005b818114612452576010808020905260010161243c565b5050601051610ffa57fe5b638b78c6d8600c52826000526020600c2080548381178361247f575080841681185b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe26600080a3505050505050565b6001600160a01b0382166124dd57604051633a954ecd60e21b815260040160405180910390fd5b68a20d6e21d0e525530860006124f285612283565b905060006124ff85612283565b905061253a6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b825463ffffffff600160801b808304821660808501528454041660a08301526bffffffffffffffffffffffff600160a01b90910416604082018190528511156125af576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040810180518690039081905283546bffffffffffffffffffffffff808316600160a01b9081026001600160a01b03938416178755855481810483168a0160608701819052909216029116178355608082015161261a91670de0b6b3a7640000900480821191030290565b81528154600160581b900460021660000361268957856001600160a01b0316876001600160a01b03160361265657805160808201510360a08201525b612683670de0b6b3a764000082606001518161267457612674612f62565b048260a0015180821191030290565b60208201525b60006126d382602001518360000151016040805180820190915260608152600060208201526040805101828152806020018360051b81016040528183528083602001525050919050565b8251909150156127ff576001600160a01b0388166000908152600686016020526040902060808301518351875463ffffffff6801000000000000000080830482168490038216026bffffffff0000000000000000199092169190911789558754918303908116600160801b0263ffffffff60801b199092169190911787555b60001991909101600381901c600090815260208490526040812054919291600584901b60e0161c60078a01602052633fffffff600282901c16600090815260409020805460c0600684901b1681811c67ffffffffffffffff16901b18905563ffffffff169050600081815260048a016020908152604090912080546001600160a01b0319169055858101805160608f901b600885901b176001178152909101905250808203612752575050505b6020820151156129ca576001600160a01b03871660009081526006860160209081526040822060a08501519185015190929082019061283e878c6122f7565b895460208801516bffffffff000000000000000019821663ffffffff6801000000000000000080850482169093018116909202178c55895463ffffffff60801b1916600160801b86831602178a55919250670de0b6b3a7640000600160601b82046bffffffffffffffffffffffff160491640100000000909104165b6128cb8b600701610db68360011b90565b63ffffffff16156128ea57600101818111156128e5575060015b6128ba565b6020869052600385901c600090815260409020805460e0600588901b1681811c841863ffffffff16901b18905560078b016020908152600282901c600090815260409020805460c0600685901b1681811c9389901b63ffffffff8816179390931867ffffffffffffffff1690921b909118905560019094019361298d878e8360008360200151818360081b8560601b171781526020810185602001525050505050565b6001018181111561299c575060015b8385036128ba578a5463ffffffff9091166401000000000267ffffffff0000000019909116178a5550505050505b805151156129eb5760018501546129eb9082906001600160a01b0316612aa1565b50856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051612a3191815260200190565b60405180910390a350505050505050565b60006001605784901c16151582151514612a68576a800000000000000000000092909218915b5090919050565b630f4599e560005233602052602060006024601c6000855af160016000511416610ffa5763d125259c6000526004601cfd5b81516040810363263c69d68152602080820152815160051b604401915060208183601c84016000875af1600182511416610d8557600081fd5b60006020808352835180602085015260005b81811015612b0857858101830151858201604001528201612aec565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146115ca57600080fd5b60008060408385031215612b5357600080fd5b612b5c83612b29565b946020939093013593505050565b600060208284031215612b7c57600080fd5b5035919050565b600080600060608486031215612b9857600080fd5b612ba184612b29565b9250612baf60208501612b29565b9150604084013590509250925092565b600060208284031215612bd157600080fd5b61117782612b29565b803580151581146115ca57600080fd5b600060208284031215612bfc57600080fd5b61117782612bda565b60008060408385031215612c1857600080fd5b612c2183612b29565b9150612c2f60208401612bda565b90509250929050565b60008083601f840112612c4a57600080fd5b50813567ffffffffffffffff811115612c6257600080fd5b60208301915083602082850101111561242257600080fd5b60008060208385031215612c8d57600080fd5b823567ffffffffffffffff811115612ca457600080fd5b612cb085828601612c38565b90969095509350505050565b60008060008060408587031215612cd257600080fd5b843567ffffffffffffffff80821115612cea57600080fd5b612cf688838901612c38565b90965094506020870135915080821115612d0f57600080fd5b50612d1c87828801612c38565b95989497509550505050565b600060208284031215612d3a57600080fd5b813563ffffffff8116811461117757600080fd5b600060208284031215612d6057600080fd5b813560ff8116811461117757600080fd5b60008060408385031215612d8457600080fd5b612d8d83612b29565b9150612c2f60208401612b29565b600181811c90821680612daf57607f821691505b6020821081036122f157634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b601f82111561123f576000816000526020600020601f850160051c81016020861015612e0e5750805b601f850160051c820191505b8181101561132657828155600101612e1a565b67ffffffffffffffff831115612e4557612e45612dcf565b612e5983612e538354612d9b565b83612de5565b6000601f841160018114612e8d5760008515612e755750838201355b600019600387901b1c1916600186901b178355611cf8565b600083815260209020601f19861690835b82811015612ebe5786850135825560209485019460019092019101612e9e565b5086821015612edb5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610d3e57610d3e612eed565b6bffffffffffffffffffffffff8281168282160390808211156123ab576123ab612eed565b600063ffffffff808316818103612f5857612f58612eed565b6001019392505050565b634e487b7160e01b600052601260045260246000fdfea2646970667358221220a355f6339ac2b63f9cfd678e5ae6c747b67293b0045023593cc9950e11b0621d64736f6c63430008180033