60806040525f600b555f600c555f600f5f6101000a81548160ff02191690831515021790555034801562000031575f80fd5b506040516200390538038062003905833981810160405281019062000057919062001279565b33848481600390816200006b919062001554565b5080600490816200007d919062001554565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000f3575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000ea919062001649565b60405180910390fd5b6200010481620006c960201b60201c565b508060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001b0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001d6919062001664565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000283919062001664565b6040518363ffffffff1660e01b8152600401620002a292919062001694565b6020604051808303815f875af1158015620002bf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002e5919062001664565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e5b41afdb346d39eed206c0d9dd6bc66362d19d460085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600a8262000692919062001719565b600d81905550600a82620006a7919062001719565b600e81905550620006bf33836200078c60201b60201c565b5050505062001875565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620007ff575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401620007f6919062001649565b60405180910390fd5b620008125f83836200081660201b60201c565b5050565b600f5f9054906101000a900460ff161580156200086e57506200083e62000dca60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015620008b657506200088662000dca60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15620008ee576040517fe09f033100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b620008fe62000dca60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801562000987575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015620009c057503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801562000a1a575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801562000a6e5750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1562000ad4575f62000a868362000df260201b60201c565b9050600e54828262000a99919062001750565b111562000ad2576040517f3261c79200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b600d548111801562000b2d5750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1562000b65576040517f3261c79200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801562000c04575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801562000cb5575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148062000cb4575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b1562000db1575f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161462000d35576064600b548362000d2391906200178a565b62000d2f919062001719565b62000d54565b6064600c548362000d4791906200178a565b62000d53919062001719565b5b905062000d8a8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168362000e3760201b60201c565b62000daa8484838562000d9e9190620017d4565b62000e3760201b60201c565b5062000dc5565b62000dc483838362000e3760201b60201c565b5b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000e8b578060025f82825462000e7e919062001750565b9250508190555062000f5c565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101562000f17578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040162000f0e939291906200181f565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000fa5578060025f828254039250508190555062000fef565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200104e91906200185a565b60405180910390a3505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620010bc8262001074565b810181811067ffffffffffffffff82111715620010de57620010dd62001084565b5b80604052505050565b5f620010f26200105b565b9050620011008282620010b1565b919050565b5f67ffffffffffffffff82111562001122576200112162001084565b5b6200112d8262001074565b9050602081019050919050565b5f5b83811015620011595780820151818401526020810190506200113c565b5f8484015250505050565b5f6200117a620011748462001105565b620010e7565b90508281526020810184848401111562001199576200119862001070565b5b620011a68482856200113a565b509392505050565b5f82601f830112620011c557620011c46200106c565b5b8151620011d784826020860162001164565b91505092915050565b5f819050919050565b620011f481620011e0565b8114620011ff575f80fd5b50565b5f815190506200121281620011e9565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620012438262001218565b9050919050565b620012558162001237565b811462001260575f80fd5b50565b5f8151905062001273816200124a565b92915050565b5f805f806080858703121562001294576200129362001064565b5b5f85015167ffffffffffffffff811115620012b457620012b362001068565b5b620012c287828801620011ae565b945050602085015167ffffffffffffffff811115620012e657620012e562001068565b5b620012f487828801620011ae565b9350506040620013078782880162001202565b92505060606200131a8782880162001263565b91505092959194509250565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200137557607f821691505b6020821081036200138b576200138a62001330565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620013ef7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620013b2565b620013fb8683620013b2565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6200143c620014366200143084620011e0565b62001413565b620011e0565b9050919050565b5f819050919050565b62001457836200141c565b6200146f620014668262001443565b848454620013be565b825550505050565b5f90565b6200148562001477565b620014928184846200144c565b505050565b5b81811015620014b957620014ad5f826200147b565b60018101905062001498565b5050565b601f8211156200150857620014d28162001391565b620014dd84620013a3565b81016020851015620014ed578190505b62001505620014fc85620013a3565b83018262001497565b50505b505050565b5f82821c905092915050565b5f6200152a5f19846008026200150d565b1980831691505092915050565b5f62001544838362001519565b9150826002028217905092915050565b6200155f8262001326565b67ffffffffffffffff8111156200157b576200157a62001084565b5b6200158782546200135d565b62001594828285620014bd565b5f60209050601f831160018114620015ca575f8415620015b5578287015190505b620015c1858262001537565b86555062001630565b601f198416620015da8662001391565b5f5b828110156200160357848901518255600182019150602085019450602081019050620015dc565b868310156200162357848901516200161f601f89168262001519565b8355505b6001600288020188555050505b505050505050565b620016438162001237565b82525050565b5f6020820190506200165e5f83018462001638565b92915050565b5f602082840312156200167c576200167b62001064565b5b5f6200168b8482850162001263565b91505092915050565b5f604082019050620016a95f83018562001638565b620016b8602083018462001638565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200172582620011e0565b91506200173283620011e0565b925082620017455762001744620016bf565b5b828204905092915050565b5f6200175c82620011e0565b91506200176983620011e0565b9250828201905080821115620017845762001783620016ec565b5b92915050565b5f6200179682620011e0565b9150620017a383620011e0565b9250828202620017b381620011e0565b91508282048414831517620017cd57620017cc620016ec565b5b5092915050565b5f620017e082620011e0565b9150620017ed83620011e0565b9250828203905081811115620018085762001807620016ec565b5b92915050565b6200181981620011e0565b82525050565b5f606082019050620018345f83018662001638565b6200184360208301856200180e565b6200185260408301846200180e565b949350505050565b5f6020820190506200186f5f8301846200180e565b92915050565b61208280620018835f395ff3fe608060405234801561000f575f80fd5b50600436106101d8575f3560e01c80637437681e11610102578063a9059cbb116100a0578063dd62ed3e1161006f578063dd62ed3e14610522578063eb50e70e14610552578063f2fde38b1461056e578063f8b45b051461058a576101d8565b8063a9059cbb1461049a578063c4590d3f146104ca578063c9567bf9146104e6578063d36d049714610504576101d8565b80638da5cb5b116100dc5780638da5cb5b1461041057806395d89b411461042e5780639be953b31461044c578063a0e47bf61461047c576101d8565b80637437681e146103cc578063751039fc146103ea5780638a218a7d146103f4576101d8565b80633090b6401161017a578063471131ac11610149578063471131ac146103445780634f1455c91461037457806370a0823114610392578063715018a6146103c2576101d8565b80633090b640146102ce578063313ce567146102ec57806332972e461461030a5780633ef6136314610328576101d8565b806318160ddd116101b657806318160ddd1461025a5780631e34c5851461027857806323b872dd14610294578063293230b8146102c4576101d8565b806306fdde03146101dc578063095ea7b3146101fa57806312fb55501461022a575b5f80fd5b6101e46105a8565b6040516101f191906119ba565b60405180910390f35b610214600480360381019061020f9190611a6f565b610638565b6040516102219190611ac7565b60405180910390f35b610244600480360381019061023f9190611ae0565b61065a565b6040516102519190611ac7565b60405180910390f35b610262610677565b60405161026f9190611b1a565b60405180910390f35b610292600480360381019061028d9190611b33565b610680565b005b6102ae60048036038101906102a99190611b71565b61069a565b6040516102bb9190611ac7565b60405180910390f35b6102cc6106c8565b005b6102d66106ec565b6040516102e39190611bd0565b60405180910390f35b6102f4610711565b6040516103019190611c04565b60405180910390f35b610312610719565b60405161031f9190611bd0565b60405180910390f35b610342600480360381019061033d9190611ca8565b61073e565b005b61035e60048036038101906103599190611ae0565b6107e1565b60405161036b9190611ac7565b60405180910390f35b61037c6107fe565b6040516103899190611b1a565b60405180910390f35b6103ac60048036038101906103a79190611ae0565b610804565b6040516103b99190611b1a565b60405180910390f35b6103ca610849565b005b6103d461085c565b6040516103e19190611b1a565b60405180910390f35b6103f2610862565b005b61040e60048036038101906104099190611ca8565b6108ba565b005b61041861095d565b6040516104259190611bd0565b60405180910390f35b610436610985565b60405161044391906119ba565b60405180910390f35b61046660048036038101906104619190611ae0565b610a15565b6040516104739190611ac7565b60405180910390f35b610484610b35565b6040516104919190611d60565b60405180910390f35b6104b460048036038101906104af9190611a6f565b610b5a565b6040516104c19190611ac7565b60405180910390f35b6104e460048036038101906104df9190611b33565b610b7c565b005b6104ee610b96565b6040516104fb9190611ac7565b60405180910390f35b61050c610ba8565b6040516105199190611b1a565b60405180910390f35b61053c60048036038101906105379190611d79565b610bae565b6040516105499190611b1a565b60405180910390f35b61056c60048036038101906105679190611ae0565b610c30565b005b61058860048036038101906105839190611ae0565b610c7b565b005b610592610cff565b60405161059f9190611b1a565b60405180910390f35b6060600380546105b790611de4565b80601f01602080910402602001604051908101604052809291908181526020018280546105e390611de4565b801561062e5780601f106106055761010080835404028352916020019161062e565b820191905f5260205f20905b81548152906001019060200180831161061157829003601f168201915b5050505050905090565b5f80610642610d05565b905061064f818585610d0c565b600191505092915050565b600a602052805f5260405f205f915054906101000a900460ff1681565b5f600254905090565b610688610d1e565b81600c8190555080600b819055505050565b5f806106a4610d05565b90506106b1858285610da5565b6106bc858585610e37565b60019150509392505050565b6106d0610d1e565b6001600f5f6101000a81548160ff021916908315150217905550565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6012905090565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610746610d1e565b5f5b838390508110156107db578160095f86868581811061076a57610769611e14565b5b905060200201602081019061077f9190611ae0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610748565b50505050565b6009602052805f5260405f205f915054906101000a900460ff1681565b600c5481565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610851610d1e565b61085a5f610f27565b565b600d5481565b61086a610d1e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600d819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600e81905550565b6108c2610d1e565b5f5b838390508110156109575781600a5f8686858181106108e6576108e5611e14565b5b90506020020160208101906108fb9190611ae0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506108c4565b50505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461099490611de4565b80601f01602080910402602001604051908101604052809291908181526020018280546109c090611de4565b8015610a0b5780601f106109e257610100808354040283529160200191610a0b565b820191905f5260205f20905b8154815290600101906020018083116109ee57829003601f168201915b5050505050905090565b5f808273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a509190611bd0565b602060405180830381865afa158015610a6b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a8f9190611e55565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610aed929190611e80565b6020604051808303815f875af1158015610b09573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b2d9190611ebb565b915050919050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f80610b64610d05565b9050610b71818585610e37565b600191505092915050565b610b84610d1e565b81600d8190555080600e819055505050565b600f5f9054906101000a900460ff1681565b600b5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610c38610d1e565b8060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610c83610d1e565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cf3575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610cea9190611bd0565b60405180910390fd5b610cfc81610f27565b50565b600e5481565b5f33905090565b610d198383836001610fea565b505050565b610d26610d05565b73ffffffffffffffffffffffffffffffffffffffff16610d4461095d565b73ffffffffffffffffffffffffffffffffffffffff1614610da357610d67610d05565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610d9a9190611bd0565b60405180910390fd5b565b5f610db08484610bae565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610e315781811015610e22578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610e1993929190611ee6565b60405180910390fd5b610e3084848484035f610fea565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ea7575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610e9e9190611bd0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f17575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610f0e9190611bd0565b60405180910390fd5b610f228383836111b9565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361105a575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016110519190611bd0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110ca575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016110c19190611bd0565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156111b3578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516111aa9190611b1a565b60405180910390a35b50505050565b600f5f9054906101000a900460ff1615801561120857506111d861095d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611247575061121761095d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561127e576040517fe09f033100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61128661095d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561130e575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561134657503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561139f575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156113f25750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561144c575f61140183610804565b9050600e5482826114129190611f48565b111561144a576040517f3261c79200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b600d54811180156114a45750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156114db576040517f3261c79200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611579575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611628575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611627575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b15611706575f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146116a1576064600b54836116929190611f7b565b61169c9190611fe9565b6116bc565b6064600c54836116b19190611f7b565b6116bb9190611fe9565b5b90506116ea8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611717565b611700848483856116fb9190612019565b611717565b50611712565b611711838383611717565b5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611767578060025f82825461175b9190611f48565b92505081905550611835565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156117f0578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016117e793929190611ee6565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361187c578060025f82825403925050819055506118c6565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119239190611b1a565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561196757808201518184015260208101905061194c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61198c82611930565b611996818561193a565b93506119a681856020860161194a565b6119af81611972565b840191505092915050565b5f6020820190508181035f8301526119d28184611982565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611a0b826119e2565b9050919050565b611a1b81611a01565b8114611a25575f80fd5b50565b5f81359050611a3681611a12565b92915050565b5f819050919050565b611a4e81611a3c565b8114611a58575f80fd5b50565b5f81359050611a6981611a45565b92915050565b5f8060408385031215611a8557611a846119da565b5b5f611a9285828601611a28565b9250506020611aa385828601611a5b565b9150509250929050565b5f8115159050919050565b611ac181611aad565b82525050565b5f602082019050611ada5f830184611ab8565b92915050565b5f60208284031215611af557611af46119da565b5b5f611b0284828501611a28565b91505092915050565b611b1481611a3c565b82525050565b5f602082019050611b2d5f830184611b0b565b92915050565b5f8060408385031215611b4957611b486119da565b5b5f611b5685828601611a5b565b9250506020611b6785828601611a5b565b9150509250929050565b5f805f60608486031215611b8857611b876119da565b5b5f611b9586828701611a28565b9350506020611ba686828701611a28565b9250506040611bb786828701611a5b565b9150509250925092565b611bca81611a01565b82525050565b5f602082019050611be35f830184611bc1565b92915050565b5f60ff82169050919050565b611bfe81611be9565b82525050565b5f602082019050611c175f830184611bf5565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611c3e57611c3d611c1d565b5b8235905067ffffffffffffffff811115611c5b57611c5a611c21565b5b602083019150836020820283011115611c7757611c76611c25565b5b9250929050565b611c8781611aad565b8114611c91575f80fd5b50565b5f81359050611ca281611c7e565b92915050565b5f805f60408486031215611cbf57611cbe6119da565b5b5f84013567ffffffffffffffff811115611cdc57611cdb6119de565b5b611ce886828701611c29565b93509350506020611cfb86828701611c94565b9150509250925092565b5f819050919050565b5f611d28611d23611d1e846119e2565b611d05565b6119e2565b9050919050565b5f611d3982611d0e565b9050919050565b5f611d4a82611d2f565b9050919050565b611d5a81611d40565b82525050565b5f602082019050611d735f830184611d51565b92915050565b5f8060408385031215611d8f57611d8e6119da565b5b5f611d9c85828601611a28565b9250506020611dad85828601611a28565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611dfb57607f821691505b602082108103611e0e57611e0d611db7565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050611e4f81611a45565b92915050565b5f60208284031215611e6a57611e696119da565b5b5f611e7784828501611e41565b91505092915050565b5f604082019050611e935f830185611bc1565b611ea06020830184611b0b565b9392505050565b5f81519050611eb581611c7e565b92915050565b5f60208284031215611ed057611ecf6119da565b5b5f611edd84828501611ea7565b91505092915050565b5f606082019050611ef95f830186611bc1565b611f066020830185611b0b565b611f136040830184611b0b565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611f5282611a3c565b9150611f5d83611a3c565b9250828201905080821115611f7557611f74611f1b565b5b92915050565b5f611f8582611a3c565b9150611f9083611a3c565b9250828202611f9e81611a3c565b91508282048414831517611fb557611fb4611f1b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611ff382611a3c565b9150611ffe83611a3c565b92508261200e5761200d611fbc565b5b828204905092915050565b5f61202382611a3c565b915061202e83611a3c565b925082820390508181111561204657612045611f1b565b5b9291505056fea26469706673582212200478d3a3aff357e58cb3a28a5cec51cca4e12fa6c49b4bb0f4935db5875e581264736f6c63430008180033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000033b2e3c9fd0803ce80000000000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000000000000000000000000000000000000000000d48696b612d456c6f6e20446f6700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000448494b4100000000000000000000000000000000000000000000000000000000