60806040526012600a62000014919062000cff565b66017e9d8602b40062000028919062000d4f565b60035562000058606462000049600260035462000a2f60201b90919060201c565b62000aaf60201b90919060201c565b60045562000088606462000079600260035462000a2f60201b90919060201c565b62000aaf60201b90919060201c565b6005556001600a556002600b555f600c556001600d555f600e55600e54600c54600a54600b54600d54620000bd919062000d99565b620000c9919062000d99565b620000d5919062000d99565b620000e1919062000d99565b600f556064601055606460115560646012556064601355601e6019556064601a555f601d60146101000a81548160ff0219169083151502179055506001601d60156101000a81548160ff0219169083151502179055506103e860046003546200014b919062000d4f565b62000157919062000e00565b601e5534801562000166575f80fd5b505f6200017862000b0060201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001805f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000347573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200036d919062000e9c565b60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000417573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200043d919062000e9c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200049a92919062000edd565b6020604051808303815f875af1158015620004b7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004dd919062000e9c565b601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503360145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f68a65ac3a45621988e73e779f7e9d7f82f415db60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead60185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035460065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000a21919062000f19565b60405180910390a36200107e565b5f80830362000a41575f905062000aa9565b5f828462000a50919062000d4f565b905082848262000a61919062000e00565b1462000aa4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a9b9062000fb8565b60405180910390fd5b809150505b92915050565b5f62000af883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b0760201b60201c565b905092915050565b5f33905090565b5f808311829062000b50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b4791906200105c565b60405180910390fd5b505f838562000b60919062000e00565b9050809150509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000bf75780860481111562000bcf5762000bce62000b6d565b5b600185161562000bdf5780820291505b808102905062000bef8562000b9a565b945062000baf565b94509492505050565b5f8262000c11576001905062000ce3565b8162000c20575f905062000ce3565b816001811462000c39576002811462000c445762000c7a565b600191505062000ce3565b60ff84111562000c595762000c5862000b6d565b5b8360020a91508482111562000c735762000c7262000b6d565b5b5062000ce3565b5060208310610133831016604e8410600b841016171562000cb45782820a90508381111562000cae5762000cad62000b6d565b5b62000ce3565b62000cc3848484600162000ba6565b9250905081840481111562000cdd5762000cdc62000b6d565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000d0b8262000cea565b915062000d188362000cf3565b925062000d477fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c00565b905092915050565b5f62000d5b8262000cea565b915062000d688362000cea565b925082820262000d788162000cea565b9150828204841483151762000d925762000d9162000b6d565b5b5092915050565b5f62000da58262000cea565b915062000db28362000cea565b925082820190508082111562000dcd5762000dcc62000b6d565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000e0c8262000cea565b915062000e198362000cea565b92508262000e2c5762000e2b62000dd3565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000e668262000e3b565b9050919050565b62000e788162000e5a565b811462000e83575f80fd5b50565b5f8151905062000e968162000e6d565b92915050565b5f6020828403121562000eb45762000eb362000e37565b5b5f62000ec38482850162000e86565b91505092915050565b62000ed78162000e5a565b82525050565b5f60408201905062000ef25f83018562000ecc565b62000f01602083018462000ecc565b9392505050565b62000f138162000cea565b82525050565b5f60208201905062000f2e5f83018462000f08565b92915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f62000fa060218362000f34565b915062000fad8262000f44565b604082019050919050565b5f6020820190508181035f83015262000fd18162000f92565b9050919050565b5f81519050919050565b5f5b838110156200100157808201518184015260208101905062000fe4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620010288262000fd8565b62001034818562000f34565b93506200104681856020860162000fe2565b62001051816200100c565b840191505092915050565b5f6020820190508181035f8301526200107681846200101c565b905092915050565b6140a3806200108c5f395ff3fe608060405260043610610212575f3560e01c806377b54bad11610117578063a9059cbb1161009f578063ded1e4381161006e578063ded1e4381461076b578063df20fd49146107a7578063f2fde38b146107cf578063f4293890146107f7578063f887ea401461080d57610219565b8063a9059cbb146106a1578063b2bdfa7b146106dd578063c0cbdea414610707578063dd62ed3e1461072f57610219565b8063893d20e8116100e6578063893d20e8146105e35780638da5cb5b1461060d57806395d89b4114610637578063a70419d214610661578063a8aa1b311461067757610219565b806377b54bad1461052b57806378109e54146105675780637d1db4a51461059157806382528791146105bb57610219565b806330c9a6a01161019a5780635d83e1d5116101695780635d83e1d5146104715780636ddd17131461049957806370a08231146104c3578063715018a6146104ff578063751039fc1461051557610219565b806330c9a6a0146103a5578063313ce567146103e1578063552656691461040b578063571ac8b01461043557610219565b806318160ddd116101e157806318160ddd146102d75780631df4ccfc1461030157806323b872dd1461032b578063282c874914610367578063293230b81461038f57610219565b80630445b6671461021d57806306fdde031461024757806308fd3d0514610271578063095ea7b31461029b57610219565b3661021957005b5f80fd5b348015610228575f80fd5b50610231610837565b60405161023e9190613227565b60405180910390f35b348015610252575f80fd5b5061025b61083d565b60405161026891906132ca565b60405180910390f35b34801561027c575f80fd5b5061028561087a565b6040516102929190613304565b60405180910390f35b3480156102a6575f80fd5b506102c160048036038101906102bc91906133a5565b61088d565b6040516102ce9190613304565b60405180910390f35b3480156102e2575f80fd5b506102eb61097a565b6040516102f89190613227565b60405180910390f35b34801561030c575f80fd5b50610315610983565b6040516103229190613227565b60405180910390f35b348015610336575f80fd5b50610351600480360381019061034c91906133e3565b610989565b60405161035e9190613304565b60405180910390f35b348015610372575f80fd5b5061038d60048036038101906103889190613433565b610b7c565b005b34801561039a575f80fd5b506103a3610ceb565b005b3480156103b0575f80fd5b506103cb60048036038101906103c691906134bc565b610db7565b6040516103d89190613227565b60405180910390f35b3480156103ec575f80fd5b506103f5610e27565b6040516104029190613502565b60405180910390f35b348015610416575f80fd5b5061041f610e2f565b60405161042c9190613227565b60405180910390f35b348015610440575f80fd5b5061045b6004803603810190610456919061351b565b610e6e565b6040516104689190613304565b60405180910390f35b34801561047c575f80fd5b50610497600480360381019061049291906134bc565b610ea0565b005b3480156104a4575f80fd5b506104ad610f9e565b6040516104ba9190613304565b60405180910390f35b3480156104ce575f80fd5b506104e960048036038101906104e4919061351b565b610fb1565b6040516104f69190613227565b60405180910390f35b34801561050a575f80fd5b50610513610ff7565b005b348015610520575f80fd5b50610529611145565b005b348015610536575f80fd5b50610551600480360381019061054c91906133a5565b6111ed565b60405161055e9190613304565b60405180910390f35b348015610572575f80fd5b5061057b61134d565b6040516105889190613227565b60405180910390f35b34801561059c575f80fd5b506105a5611353565b6040516105b29190613227565b60405180910390f35b3480156105c6575f80fd5b506105e160048036038101906105dc9190613546565b611359565b005b3480156105ee575f80fd5b506105f76115f5565b60405161060491906135cc565b60405180910390f35b348015610618575f80fd5b50610621611603565b60405161062e91906135cc565b60405180910390f35b348015610642575f80fd5b5061064b61162a565b60405161065891906132ca565b60405180910390f35b34801561066c575f80fd5b50610675611667565b005b348015610682575f80fd5b5061068b611715565b60405161069891906135cc565b60405180910390f35b3480156106ac575f80fd5b506106c760048036038101906106c291906133a5565b61173a565b6040516106d49190613304565b60405180910390f35b3480156106e8575f80fd5b506106f161174e565b6040516106fe91906135cc565b60405180910390f35b348015610712575f80fd5b5061072d600480360381019061072891906135e5565b611771565b005b34801561073a575f80fd5b5061075560048036038101906107509190613635565b61181f565b6040516107629190613227565b60405180910390f35b348015610776575f80fd5b50610791600480360381019061078c9190613673565b6118a1565b60405161079e9190613304565b60405180910390f35b3480156107b2575f80fd5b506107cd60048036038101906107c891906136db565b6118b5565b005b3480156107da575f80fd5b506107f560048036038101906107f0919061351b565b6119b8565b005b348015610802575f80fd5b5061080b611b75565b005b348015610818575f80fd5b50610821611bdc565b60405161082e9190613774565b60405180910390f35b601e5481565b60606040518060400160405280600881526020017f4f4720547572626f000000000000000000000000000000000000000000000000815250905090565b601d60149054906101000a900460ff1681565b5f8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109689190613227565b60405180910390a36001905092915050565b5f600354905090565b600f5481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610b6857610aeb826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c019092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610b73848484611c63565b90509392505050565b610b8461229a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c07906137d7565b60405180910390fd5b85600a8190555084600d8190555083600b8190555082600c8190555081600e81905550610c7c82610c6e85610c6088610c528b8d6122a190919063ffffffff16565b6122a190919063ffffffff16565b6122a190919063ffffffff16565b6122a190919063ffffffff16565b600f81905550806010819055506002601054610c98919061384f565b600f5410610cdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd2906138c9565b60405180910390fd5b610ce36122fe565b505050505050565b610cf361229a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d76906137d7565b60405180910390fd5b6001601d60146101000a81548160ff0219169083151502179055506102bc6012819055506102bc6011819055506102bc601381905550565b5f610e20610dc3610e2f565b610e12610e036002610df5601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610fb1565b6123b690919063ffffffff16565b856123b690919063ffffffff16565b61242d90919063ffffffff16565b9050919050565b5f6012905090565b5f610e69610e3c5f610fb1565b610e5b610e4a61dead610fb1565b60035461247690919063ffffffff16565b61247690919063ffffffff16565b905090565b5f610e99827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61088d565b9050919050565b610ea861229a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b906137d7565b60405180910390fd5b6001811015610f41575f80fd5b6103e881600354610f5291906138e7565b610f5c919061384f565b6005819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600554604051610f939190613227565b60405180910390a150565b601d60159054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610fff61229a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461108b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611082906137d7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61114d61229a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d0906137d7565b60405180910390fd5b600354600481905550600354600581905550565b5f808203611270578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161122e91906135cc565b602060405180830381865afa158015611249573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061126d919061393c565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f83836040516112a1929190613967565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401611305929190613967565b6020604051808303815f875af1158015611321573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061134591906139a2565b905092915050565b60055481565b60045481565b61136161229a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e4906137d7565b60405180910390fd5b8460145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b1560155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516115e694939291906139cd565b60405180910390a15050505050565b5f6115fe611603565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f4f47545552424f00000000000000000000000000000000000000000000000000815250905090565b61166f61229a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f2906137d7565b60405180910390fd5b60c860128190555060c860118190555060c8601381905550565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f611746338484611c63565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61177961229a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fc906137d7565b60405180910390fd5b816011819055508260128190555080601381905550505050565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f826118ac83610db7565b11905092915050565b6118bd61229a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611949576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611940906137d7565b60405180910390fd5b81601d60156101000a81548160ff02191690831515021790555080601e819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601e54601d60159054906101000a900460ff166040516119ac929190613a10565b60405180910390a15050565b6119c061229a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a43906137d7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611aba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab190613aa7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611bd9573d5f803e3d5ffd5b50565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f838311158290611c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3f91906132ca565b60405180910390fd5b505f8385611c569190613ac5565b9050809150509392505050565b5f601f5f9054906101000a900460ff1615611c8a57611c838484846124bf565b9050612293565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611d28575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d7d57601d60149054906101000a900460ff16611d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7390613b42565b60405180910390fd5b5b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e0057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e3a575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e935750601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611eec575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f45575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f98575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ffb575f611fa784610fb1565b90506005548382611fb89190613b60565b1115611ff9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff090613c03565b60405180910390fd5b505b6120058483612689565b61200d612723565b1561201b5761201a6127f5565b5b6120a2826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c019092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061217f575060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6121935761218e858486612df0565b612195565b825b90506121e78160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122a190919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122859190613227565b60405180910390a360019150505b9392505050565b5f33905090565b5f8082846122af9190613b60565b9050838110156122f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122eb90613c6b565b60405180910390fd5b8091505092915050565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b932800612349606461233b601254600f546123b690919063ffffffff16565b61242d90919063ffffffff16565b6123736064612365601154600f546123b690919063ffffffff16565b61242d90919063ffffffff16565b61239d606461238f601354600f546123b690919063ffffffff16565b61242d90919063ffffffff16565b6040516123ac93929190613c89565b60405180910390a1565b5f8083036123c6575f9050612427565b5f82846123d391906138e7565b90508284826123e2919061384f565b14612422576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241990613d2e565b60405180910390fd5b809150505b92915050565b5f61246e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506131ae565b905092915050565b5f6124b783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c01565b905092915050565b5f612547826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c019092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506125d88260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122a190919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126769190613227565b60405180910390a3600190509392505050565b600454811115806126e0575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61271f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271690613d96565b60405180910390fd5b5050565b5f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561278d5750601f5f9054906101000a900460ff16155b80156127a55750601d60159054906101000a900460ff165b80156127f05750601e5460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001601f5f6101000a81548160ff0219169083151502179055505f61281e601954601a546118a1565b61282a57600a5461282c565b5f5b90505f61286b600261285d600f5461284f86601e546123b690919063ffffffff16565b61242d90919063ffffffff16565b61242d90919063ffffffff16565b90505f61288382601e5461247690919063ffffffff16565b90505f600267ffffffffffffffff8111156128a1576128a0613db4565b5b6040519080825280602002602001820160405280156128cf5781602001602082028036833780820191505090505b50905030815f815181106128e6576128e5613de1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061295657612955613de1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f479050601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b81526004016129f6959493929190613efe565b5f604051808303815f87803b158015612a0d575f80fd5b505af1158015612a1f573d5f803e3d5ffd5b505050505f612a37824761247690919063ffffffff16565b90505f612a62612a5160028961242d90919063ffffffff16565b600f5461247690919063ffffffff16565b90505f612a9d6002612a8f84612a818c886123b690919063ffffffff16565b61242d90919063ffffffff16565b61242d90919063ffffffff16565b90505f612ac783612ab9600b54876123b690919063ffffffff16565b61242d90919063ffffffff16565b90505f612af184612ae3600d54886123b690919063ffffffff16565b61242d90919063ffffffff16565b90505f612b1b85612b0d600c54896123b690919063ffffffff16565b61242d90919063ffffffff16565b90505f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612b6390613f83565b5f6040518083038185875af1925050503d805f8114612b9d576040519150601f19603f3d011682016040523d82523d5f602084013e612ba2565b606091505b5050905060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612beb90613f83565b5f6040518083038185875af1925050503d805f8114612c25576040519150601f19603f3d011682016040523d82523d5f602084013e612c2a565b606091505b50508091505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612c7590613f83565b5f6040518083038185875af1925050503d805f8114612caf576040519150601f19603f3d011682016040523d82523d5f602084013e612cb4565b606091505b5050809150505f90505f8b1115612dc957601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e5f8060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612d4b96959493929190613f97565b60606040518083038185885af1158015612d67573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612d8c9190613ff6565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612dc0929190614046565b60405180910390a15b5050505050505050505050505f601f5f6101000a81548160ff021916908315150217905550565b5f806013549050601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612e55576011549050612eb0565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612eaf5760125490505b5b5f612ef86064601054612ec391906138e7565b612eea84612edc600f548a6123b690919063ffffffff16565b6123b690919063ffffffff16565b61242d90919063ffffffff16565b90505f612f24600f54612f16600e54856123b690919063ffffffff16565b61242d90919063ffffffff16565b90505f612f3a828461247690919063ffffffff16565b9050612f8c8160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122a190919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061303e8260065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122a190919063ffffffff16565b60065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130fd9190613227565b60405180910390a35f82111561318e576131228260035461247690919063ffffffff16565b6003819055505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516131859190613227565b60405180910390a35b6131a1838861247690919063ffffffff16565b9450505050509392505050565b5f80831182906131f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131eb91906132ca565b60405180910390fd5b505f8385613202919061384f565b9050809150509392505050565b5f819050919050565b6132218161320f565b82525050565b5f60208201905061323a5f830184613218565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561327757808201518184015260208101905061325c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61329c82613240565b6132a6818561324a565b93506132b681856020860161325a565b6132bf81613282565b840191505092915050565b5f6020820190508181035f8301526132e28184613292565b905092915050565b5f8115159050919050565b6132fe816132ea565b82525050565b5f6020820190506133175f8301846132f5565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61334a82613321565b9050919050565b61335a81613340565b8114613364575f80fd5b50565b5f8135905061337581613351565b92915050565b6133848161320f565b811461338e575f80fd5b50565b5f8135905061339f8161337b565b92915050565b5f80604083850312156133bb576133ba61331d565b5b5f6133c885828601613367565b92505060206133d985828601613391565b9150509250929050565b5f805f606084860312156133fa576133f961331d565b5b5f61340786828701613367565b935050602061341886828701613367565b925050604061342986828701613391565b9150509250925092565b5f805f805f8060c0878903121561344d5761344c61331d565b5b5f61345a89828a01613391565b965050602061346b89828a01613391565b955050604061347c89828a01613391565b945050606061348d89828a01613391565b935050608061349e89828a01613391565b92505060a06134af89828a01613391565b9150509295509295509295565b5f602082840312156134d1576134d061331d565b5b5f6134de84828501613391565b91505092915050565b5f60ff82169050919050565b6134fc816134e7565b82525050565b5f6020820190506135155f8301846134f3565b92915050565b5f602082840312156135305761352f61331d565b5b5f61353d84828501613367565b91505092915050565b5f805f805f60a0868803121561355f5761355e61331d565b5b5f61356c88828901613367565b955050602061357d88828901613367565b945050604061358e88828901613367565b935050606061359f88828901613367565b92505060806135b088828901613367565b9150509295509295909350565b6135c681613340565b82525050565b5f6020820190506135df5f8301846135bd565b92915050565b5f805f606084860312156135fc576135fb61331d565b5b5f61360986828701613391565b935050602061361a86828701613391565b925050604061362b86828701613391565b9150509250925092565b5f806040838503121561364b5761364a61331d565b5b5f61365885828601613367565b925050602061366985828601613367565b9150509250929050565b5f80604083850312156136895761368861331d565b5b5f61369685828601613391565b92505060206136a785828601613391565b9150509250929050565b6136ba816132ea565b81146136c4575f80fd5b50565b5f813590506136d5816136b1565b92915050565b5f80604083850312156136f1576136f061331d565b5b5f6136fe858286016136c7565b925050602061370f85828601613391565b9150509250929050565b5f819050919050565b5f61373c61373761373284613321565b613719565b613321565b9050919050565b5f61374d82613722565b9050919050565b5f61375e82613743565b9050919050565b61376e81613754565b82525050565b5f6020820190506137875f830184613765565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6137c160208361324a565b91506137cc8261378d565b602082019050919050565b5f6020820190508181035f8301526137ee816137b5565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6138598261320f565b91506138648361320f565b925082613874576138736137f5565b5b828204905092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e203530250000005f82015250565b5f6138b3601d8361324a565b91506138be8261387f565b602082019050919050565b5f6020820190508181035f8301526138e0816138a7565b9050919050565b5f6138f18261320f565b91506138fc8361320f565b925082820261390a8161320f565b9150828204841483151761392157613920613822565b5b5092915050565b5f815190506139368161337b565b92915050565b5f602082840312156139515761395061331d565b5b5f61395e84828501613928565b91505092915050565b5f60408201905061397a5f8301856135bd565b6139876020830184613218565b9392505050565b5f8151905061399c816136b1565b92915050565b5f602082840312156139b7576139b661331d565b5b5f6139c48482850161398e565b91505092915050565b5f6080820190506139e05f8301876135bd565b6139ed60208301866135bd565b6139fa60408301856135bd565b613a0760608301846135bd565b95945050505050565b5f604082019050613a235f830185613218565b613a3060208301846132f5565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613a9160268361324a565b9150613a9c82613a37565b604082019050919050565b5f6020820190508181035f830152613abe81613a85565b9050919050565b5f613acf8261320f565b9150613ada8361320f565b9250828203905081811115613af257613af1613822565b5b92915050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f613b2c60148361324a565b9150613b3782613af8565b602082019050919050565b5f6020820190508181035f830152613b5981613b20565b9050919050565b5f613b6a8261320f565b9150613b758361320f565b9250828201905080821115613b8d57613b8c613822565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f613bed603e8361324a565b9150613bf882613b93565b604082019050919050565b5f6020820190508181035f830152613c1a81613be1565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613c55601b8361324a565b9150613c6082613c21565b602082019050919050565b5f6020820190508181035f830152613c8281613c49565b9050919050565b5f606082019050613c9c5f8301866134f3565b613ca960208301856134f3565b613cb660408301846134f3565b949350505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613d1860218361324a565b9150613d2382613cbe565b604082019050919050565b5f6020820190508181035f830152613d4581613d0c565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f613d8060118361324a565b9150613d8b82613d4c565b602082019050919050565b5f6020820190508181035f830152613dad81613d74565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f613e31613e2c613e2784613e0e565b613719565b61320f565b9050919050565b613e4181613e17565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613e7981613340565b82525050565b5f613e8a8383613e70565b60208301905092915050565b5f602082019050919050565b5f613eac82613e47565b613eb68185613e51565b9350613ec183613e61565b805f5b83811015613ef1578151613ed88882613e7f565b9750613ee383613e96565b925050600181019050613ec4565b5085935050505092915050565b5f60a082019050613f115f830188613218565b613f1e6020830187613e38565b8181036040830152613f308186613ea2565b9050613f3f60608301856135bd565b613f4c6080830184613218565b9695505050505050565b5f81905092915050565b50565b5f613f6e5f83613f56565b9150613f7982613f60565b5f82019050919050565b5f613f8d82613f63565b9150819050919050565b5f60c082019050613faa5f8301896135bd565b613fb76020830188613218565b613fc46040830187613e38565b613fd16060830186613e38565b613fde60808301856135bd565b613feb60a0830184613218565b979650505050505050565b5f805f6060848603121561400d5761400c61331d565b5b5f61401a86828701613928565b935050602061402b86828701613928565b925050604061403c86828701613928565b9150509250925092565b5f6040820190506140595f830185613218565b6140666020830184613218565b939250505056fea264697066735822122006330a01ce302e80419a3174b7cdb6ac5680c7a5a8188a9e740a5cb154f52ec564736f6c63430008140033