608060405266038d7ea4c680005f196200001a919062000727565b5f196200002891906200078b565b6006555f60085560146009555f600a556014600b55600a54600c55600b54600d55600c54600e55600d54600f557369340ea37be90680564d6e445b1ef41672ff120e60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507369340ea37be90680564d6e445b1ef41672ff120e60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff0219169083151502179055505f6015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555066038d7ea4c680006016556064600266038d7ea4c680006200016f9190620007c5565b6200017b91906200080f565b6017556103e866038d7ea4c680006200019591906200080f565b601855348015620001a4575f80fd5b505f620001b6620006c360201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460025f62000268620006c360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000347573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200036d9190620008ab565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003d3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003f99190620008ab565b6040518363ffffffff1660e01b815260040162000418929190620008ec565b6020604051808303815f875af115801562000435573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200045b9190620008ab565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f620004af620006ca60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200064f620006c360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c68000604051620006b4919062000928565b60405180910390a35062000943565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200073382620006f1565b91506200074083620006f1565b925082620007535762000752620006fa565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200079782620006f1565b9150620007a483620006f1565b9250828203905081811115620007bf57620007be6200075e565b5b92915050565b5f620007d182620006f1565b9150620007de83620006f1565b9250828202620007ee81620006f1565b915082820484148315176200080857620008076200075e565b5b5092915050565b5f6200081b82620006f1565b91506200082883620006f1565b9250826200083b576200083a620006fa565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000875826200084a565b9050919050565b620008878162000869565b811462000892575f80fd5b50565b5f81519050620008a5816200087c565b92915050565b5f60208284031215620008c357620008c262000846565b5b5f620008d28482850162000895565b91505092915050565b620008e68162000869565b82525050565b5f604082019050620009015f830185620008db565b620009106020830184620008db565b9392505050565b6200092281620006f1565b82525050565b5f6020820190506200093d5f83018462000917565b92915050565b613cc980620009515f395ff3fe6080604052600436106101cf575f3560e01c806374010ece116100f6578063a2a957bb11610094578063c492f04611610063578063c492f04614610640578063dd62ed3e14610668578063ea1644d5146106a4578063f2fde38b146106cc576101d6565b8063a2a957bb1461058a578063a9059cbb146105b2578063bfd79284146105ee578063c3c8cd801461062a576101d6565b80638da5cb5b116100d05780638da5cb5b146104e45780638f9a55c01461050e57806395d89b411461053857806398a5c31514610562576101d6565b806374010ece146104565780637d1db4a51461047e5780637f2feddc146104a8576101d6565b80632fd689e31161016e5780636d8aa8f81161013d5780636d8aa8f8146103c65780636fc3eaec146103ee57806370a0823114610404578063715018a614610440576101d6565b80632fd689e314610320578063313ce5671461034a57806349bd5a5e146103745780636b9990531461039e576101d6565b80631694505e116101aa5780631694505e1461026857806318160ddd146102925780632369bf83146102bc57806323b872dd146102e4576101d6565b8062b8cf2a146101da57806306fdde0314610202578063095ea7b31461022c576101d6565b366101d657005b5f80fd5b3480156101e5575f80fd5b5061020060048036038101906101fb9190612cd6565b6106f4565b005b34801561020d575f80fd5b50610216610813565b6040516102239190612d97565b60405180910390f35b348015610237575f80fd5b50610252600480360381019061024d9190612dea565b610850565b60405161025f9190612e42565b60405180910390f35b348015610273575f80fd5b5061027c61086d565b6040516102899190612eb6565b60405180910390f35b34801561029d575f80fd5b506102a6610892565b6040516102b39190612ede565b60405180910390f35b3480156102c7575f80fd5b506102e260048036038101906102dd9190612ef7565b6108a0565b005b3480156102ef575f80fd5b5061030a60048036038101906103059190612f22565b610977565b6040516103179190612e42565b60405180910390f35b34801561032b575f80fd5b50610334610a4b565b6040516103419190612ede565b60405180910390f35b348015610355575f80fd5b5061035e610a51565b60405161036b9190612f8d565b60405180910390f35b34801561037f575f80fd5b50610388610a59565b6040516103959190612fb5565b60405180910390f35b3480156103a9575f80fd5b506103c460048036038101906103bf9190612ef7565b610a7e565b005b3480156103d1575f80fd5b506103ec60048036038101906103e79190612ff8565b610b69565b005b3480156103f9575f80fd5b50610402610c1a565b005b34801561040f575f80fd5b5061042a60048036038101906104259190612ef7565b610c2a565b6040516104379190612ede565b60405180910390f35b34801561044b575f80fd5b50610454610c78565b005b348015610461575f80fd5b5061047c60048036038101906104779190613023565b610dc6565b005b348015610489575f80fd5b50610492610ea3565b60405161049f9190612ede565b60405180910390f35b3480156104b3575f80fd5b506104ce60048036038101906104c99190612ef7565b610ea9565b6040516104db9190612ede565b60405180910390f35b3480156104ef575f80fd5b506104f8610ebe565b6040516105059190612fb5565b60405180910390f35b348015610519575f80fd5b50610522610ee5565b60405161052f9190612ede565b60405180910390f35b348015610543575f80fd5b5061054c610eeb565b6040516105599190612d97565b60405180910390f35b34801561056d575f80fd5b5061058860048036038101906105839190613023565b610f28565b005b348015610595575f80fd5b506105b060048036038101906105ab919061304e565b610fc6565b005b3480156105bd575f80fd5b506105d860048036038101906105d39190612dea565b6110ee565b6040516105e59190612e42565b60405180910390f35b3480156105f9575f80fd5b50610614600480360381019061060f9190612ef7565b61110b565b6040516106219190612e42565b60405180910390f35b348015610635575f80fd5b5061063e611128565b005b34801561064b575f80fd5b506106666004803603810190610661919061310b565b6111fd565b005b348015610673575f80fd5b5061068e60048036038101906106899190613168565b61132c565b60405161069b9190612ede565b60405180910390f35b3480156106af575f80fd5b506106ca60048036038101906106c59190613023565b6113ae565b005b3480156106d7575f80fd5b506106f260048036038101906106ed9190612ef7565b61148b565b005b6106fc611648565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077f906131f0565b60405180910390fd5b5f5b815181101561080f57600160105f8484815181106107ab576107aa61320e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061078a565b5050565b60606040518060400160405280600781526020017f4275646479414900000000000000000000000000000000000000000000000000815250905090565b5f61086361085c611648565b848461164f565b6001905092915050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f66038d7ea4c68000905090565b6108a8611648565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092b906131f0565b60405180910390fd5b8060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f610983848484611812565b610a408461098f611648565b610a3b85604051806060016040528060288152602001613c6c6028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109f2611648565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120929092919063ffffffff16565b61164f565b600190509392505050565b60185481565b5f6009905090565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a86611648565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b09906131f0565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610b71611648565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf4906131f0565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b5f479050610c27816120f4565b50565b5f610c7160025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461215c565b9050919050565b610c80611648565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d03906131f0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610dce611648565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e51906131f0565b60405180910390fd5b60648166038d7ea4c68000610e6f9190613268565b610e7991906132d6565b601681905550606466038d7ea4c68000610e9391906132d6565b6016541015610ea0575f80fd5b50565b60165481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600581526020017f4275646479000000000000000000000000000000000000000000000000000000815250905090565b610f30611648565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb3906131f0565b60405180910390fd5b8060188190555050565b610fce611648565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461105a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611051906131f0565b60405180910390fd5b8360088190555082600a819055508160098190555080600b819055505f600b54600954600a5460085461108d9190613306565b6110979190613306565b6110a19190613306565b905060198111156110e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110de906133a9565b60405180910390fd5b5050505050565b5f6111016110fa611648565b8484611812565b6001905092915050565b6010602052805f5260405f205f915054906101000a900460ff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611168611648565b73ffffffffffffffffffffffffffffffffffffffff1614806111dd575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111c5611648565b73ffffffffffffffffffffffffffffffffffffffff16145b6111e5575f80fd5b5f6111ef30610c2a565b90506111fa816121c8565b50565b611205611648565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611291576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611288906131f0565b60405180910390fd5b5f5b83839050811015611326578160055f8686858181106112b5576112b461320e565b5b90506020020160208101906112ca9190612ef7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611293565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6113b6611648565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611442576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611439906131f0565b60405180910390fd5b60648166038d7ea4c680006114579190613268565b61146191906132d6565b601781905550606466038d7ea4c6800061147b91906132d6565b6017541015611488575f80fd5b50565b611493611648565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461151f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611516906131f0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361158d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158490613437565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b4906134c5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361172b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172290613553565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118059190612ede565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611880576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611877906135e1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e59061366f565b60405180910390fd5b5f8111611930576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611927906136fd565b60405180910390fd5b611938610ebe565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119a65750611976610ebe565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d9f57601560149054906101000a900460ff16611a35576119c7610ebe565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611a34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2b9061378b565b60405180910390fd5b5b601654811115611a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a71906137f3565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611b18575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4e90613881565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c035760175481611bb884610c2a565b611bc29190613306565b10611c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf99061390f565b60405180910390fd5b5b5f611c0d30610c2a565b90505f60185482101590506008601854611c279190613268565b8210611c3f576008601854611c3c9190613268565b91505b808015611c57575060158054906101000a900460ff16155b8015611cb0575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611cc85750601560169054906101000a900460ff165b8015611d1b575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d6e575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d9c57611d7c826121c8565b5f47905067011c37937e080000811115611d9a57611d99476120f4565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611e3f575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611ef0575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611eef575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611efd575f9050612080565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fa6575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fbe57600854600c81905550600954600d819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612067575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561207f57600a54600c81905550600b54600d819055505b5b61208c84848484612431565b50505050565b5f8383111582906120d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d09190612d97565b60405180910390fd5b505f83856120e7919061392d565b9050809150509392505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612158573d5f803e3d5ffd5b5050565b5f6006548211156121a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612199906139d0565b60405180910390fd5b5f6121ab61245e565b90506121c0818461248790919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156121fe576121fd612b40565b5b60405190808252806020026020018201604052801561222c5781602001602082028036833780820191505090505b50905030815f815181106122435761224261320e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061230b9190613a02565b8160018151811061231f5761231e61320e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123853060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461164f565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016123e7959493929190613b1d565b5f604051808303815f87803b1580156123fe575f80fd5b505af1158015612410573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b8061243f5761243e6124d0565b5b61244a848484612509565b80612458576124576126c9565b5b50505050565b5f805f6124696126dd565b91509150612480818361248790919063ffffffff16565b9250505090565b5f6124c883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612736565b905092915050565b5f600c541480156124e257505f600d54145b61250757600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f8061251887612797565b9550955095509550955095506125748660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127f790919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506126058560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461284090919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061264f8161289d565b6126598483612954565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126b69190612ede565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f66038d7ea4c68000905061270c66038d7ea4c6800060065461248790919063ffffffff16565b8210156127295760065466038d7ea4c68000935093505050612732565b81819350935050505b9091565b5f808311829061277c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127739190612d97565b60405180910390fd5b505f838561278a91906132d6565b9050809150509392505050565b5f805f805f805f805f6127af8a600c54600d5461298e565b9250925092505f6127be61245e565b90505f805f6127cf8e878787612a20565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61283883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612092565b905092915050565b5f80828461284e9190613306565b905083811015612893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288a90613bbf565b60405180910390fd5b8091505092915050565b5f6128a661245e565b90505f6128bc8284612aa490919063ffffffff16565b905061290e8160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461284090919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612969826006546127f790919063ffffffff16565b6006819055506129848160075461284090919063ffffffff16565b6007819055505050565b5f805f806129b860646129aa888a612aa490919063ffffffff16565b61248790919063ffffffff16565b90505f6129e160646129d3888b612aa490919063ffffffff16565b61248790919063ffffffff16565b90505f612a09826129fb858c6127f790919063ffffffff16565b6127f790919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612a378589612aa490919063ffffffff16565b90505f612a4d8689612aa490919063ffffffff16565b90505f612a638789612aa490919063ffffffff16565b90505f612a8b82612a7d85876127f790919063ffffffff16565b6127f790919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612ab4575f9050612b15565b5f8284612ac19190613268565b9050828482612ad091906132d6565b14612b10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0790613c4d565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612b7682612b30565b810181811067ffffffffffffffff82111715612b9557612b94612b40565b5b80604052505050565b5f612ba7612b1b565b9050612bb38282612b6d565b919050565b5f67ffffffffffffffff821115612bd257612bd1612b40565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612c1082612be7565b9050919050565b612c2081612c06565b8114612c2a575f80fd5b50565b5f81359050612c3b81612c17565b92915050565b5f612c53612c4e84612bb8565b612b9e565b90508083825260208201905060208402830185811115612c7657612c75612be3565b5b835b81811015612c9f5780612c8b8882612c2d565b845260208401935050602081019050612c78565b5050509392505050565b5f82601f830112612cbd57612cbc612b2c565b5b8135612ccd848260208601612c41565b91505092915050565b5f60208284031215612ceb57612cea612b24565b5b5f82013567ffffffffffffffff811115612d0857612d07612b28565b5b612d1484828501612ca9565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612d54578082015181840152602081019050612d39565b5f8484015250505050565b5f612d6982612d1d565b612d738185612d27565b9350612d83818560208601612d37565b612d8c81612b30565b840191505092915050565b5f6020820190508181035f830152612daf8184612d5f565b905092915050565b5f819050919050565b612dc981612db7565b8114612dd3575f80fd5b50565b5f81359050612de481612dc0565b92915050565b5f8060408385031215612e0057612dff612b24565b5b5f612e0d85828601612c2d565b9250506020612e1e85828601612dd6565b9150509250929050565b5f8115159050919050565b612e3c81612e28565b82525050565b5f602082019050612e555f830184612e33565b92915050565b5f819050919050565b5f612e7e612e79612e7484612be7565b612e5b565b612be7565b9050919050565b5f612e8f82612e64565b9050919050565b5f612ea082612e85565b9050919050565b612eb081612e96565b82525050565b5f602082019050612ec95f830184612ea7565b92915050565b612ed881612db7565b82525050565b5f602082019050612ef15f830184612ecf565b92915050565b5f60208284031215612f0c57612f0b612b24565b5b5f612f1984828501612c2d565b91505092915050565b5f805f60608486031215612f3957612f38612b24565b5b5f612f4686828701612c2d565b9350506020612f5786828701612c2d565b9250506040612f6886828701612dd6565b9150509250925092565b5f60ff82169050919050565b612f8781612f72565b82525050565b5f602082019050612fa05f830184612f7e565b92915050565b612faf81612c06565b82525050565b5f602082019050612fc85f830184612fa6565b92915050565b612fd781612e28565b8114612fe1575f80fd5b50565b5f81359050612ff281612fce565b92915050565b5f6020828403121561300d5761300c612b24565b5b5f61301a84828501612fe4565b91505092915050565b5f6020828403121561303857613037612b24565b5b5f61304584828501612dd6565b91505092915050565b5f805f806080858703121561306657613065612b24565b5b5f61307387828801612dd6565b945050602061308487828801612dd6565b935050604061309587828801612dd6565b92505060606130a687828801612dd6565b91505092959194509250565b5f80fd5b5f8083601f8401126130cb576130ca612b2c565b5b8235905067ffffffffffffffff8111156130e8576130e76130b2565b5b60208301915083602082028301111561310457613103612be3565b5b9250929050565b5f805f6040848603121561312257613121612b24565b5b5f84013567ffffffffffffffff81111561313f5761313e612b28565b5b61314b868287016130b6565b9350935050602061315e86828701612fe4565b9150509250925092565b5f806040838503121561317e5761317d612b24565b5b5f61318b85828601612c2d565b925050602061319c85828601612c2d565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6131da602083612d27565b91506131e5826131a6565b602082019050919050565b5f6020820190508181035f830152613207816131ce565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61327282612db7565b915061327d83612db7565b925082820261328b81612db7565b915082820484148315176132a2576132a161323b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6132e082612db7565b91506132eb83612db7565b9250826132fb576132fa6132a9565b5b828204905092915050565b5f61331082612db7565b915061331b83612db7565b92508282019050808211156133335761333261323b565b5b92915050565b7f546f74616c20466565732063616e6e6f74206265206d6f7265207468616e20325f8201527f3525000000000000000000000000000000000000000000000000000000000000602082015250565b5f613393602283612d27565b915061339e82613339565b604082019050919050565b5f6020820190508181035f8301526133c081613387565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613421602683612d27565b915061342c826133c7565b604082019050919050565b5f6020820190508181035f83015261344e81613415565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6134af602483612d27565b91506134ba82613455565b604082019050919050565b5f6020820190508181035f8301526134dc816134a3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61353d602283612d27565b9150613548826134e3565b604082019050919050565b5f6020820190508181035f83015261356a81613531565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6135cb602583612d27565b91506135d682613571565b604082019050919050565b5f6020820190508181035f8301526135f8816135bf565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613659602383612d27565b9150613664826135ff565b604082019050919050565b5f6020820190508181035f8301526136868161364d565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6136e7602983612d27565b91506136f28261368d565b604082019050919050565b5f6020820190508181035f830152613714816136db565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f613775603f83612d27565b91506137808261371b565b604082019050919050565b5f6020820190508181035f8301526137a281613769565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f6137dd601c83612d27565b91506137e8826137a9565b602082019050919050565b5f6020820190508181035f83015261380a816137d1565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f61386b602383612d27565b915061387682613811565b604082019050919050565b5f6020820190508181035f8301526138988161385f565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f6138f9602383612d27565b91506139048261389f565b604082019050919050565b5f6020820190508181035f830152613926816138ed565b9050919050565b5f61393782612db7565b915061394283612db7565b925082820390508181111561395a5761395961323b565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f6139ba602a83612d27565b91506139c582613960565b604082019050919050565b5f6020820190508181035f8301526139e7816139ae565b9050919050565b5f815190506139fc81612c17565b92915050565b5f60208284031215613a1757613a16612b24565b5b5f613a24848285016139ee565b91505092915050565b5f819050919050565b5f613a50613a4b613a4684613a2d565b612e5b565b612db7565b9050919050565b613a6081613a36565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613a9881612c06565b82525050565b5f613aa98383613a8f565b60208301905092915050565b5f602082019050919050565b5f613acb82613a66565b613ad58185613a70565b9350613ae083613a80565b805f5b83811015613b10578151613af78882613a9e565b9750613b0283613ab5565b925050600181019050613ae3565b5085935050505092915050565b5f60a082019050613b305f830188612ecf565b613b3d6020830187613a57565b8181036040830152613b4f8186613ac1565b9050613b5e6060830185612fa6565b613b6b6080830184612ecf565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613ba9601b83612d27565b9150613bb482613b75565b602082019050919050565b5f6020820190508181035f830152613bd681613b9d565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c37602183612d27565b9150613c4282613bdd565b604082019050919050565b5f6020820190508181035f830152613c6481613c2b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204a4302017d021e9d2c2178c291ce9ae7841c7bcf0c995615c7e9cd849dfbeefa64736f6c63430008160033