6080604052662386f26fc100006000196200001b919062000739565b6000196200002a9190620007a0565b600655600060085560036009556000600a556003600b55600a54600c55600b54600d55600c54600e55600d54600f5573014e0776af2b44ff0a3d2f3ae60dff7d38cc4826601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073014e0776af2b44ff0a3d2f3ae60dff7d38cc4826601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff021916908315150217905550655af3107a4000601655655af3107a400060175564174876e8006018553480156200016257600080fd5b50600062000175620006cf60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200022a620006cf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200030957600080fd5b505afa1580156200031e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000344919062000845565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003a757600080fd5b505afa158015620003bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e2919062000845565b6040518363ffffffff1660e01b81526004016200040192919062000888565b602060405180830381600087803b1580156200041c57600080fd5b505af115801562000431573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000457919062000845565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004ad620006d760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200065a620006cf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc10000604051620006c09190620008c6565b60405180910390a350620008e3565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007468262000700565b9150620007538362000700565b9250826200076657620007656200070a565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007ad8262000700565b9150620007ba8362000700565b925082821015620007d057620007cf62000771565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200080d82620007e0565b9050919050565b6200081f8162000800565b81146200082b57600080fd5b50565b6000815190506200083f8162000814565b92915050565b6000602082840312156200085e576200085d620007db565b5b60006200086e848285016200082e565b91505092915050565b620008828162000800565b82525050565b60006040820190506200089f600083018562000877565b620008ae602083018462000877565b9392505050565b620008c08162000700565b82525050565b6000602082019050620008dd6000830184620008b5565b92915050565b61416880620008f36000396000f3fe6080604052600436106101d05760003560e01c80637d1db4a5116100f7578063a2a957bb11610095578063c492f04611610064578063c492f0461461065c578063dd62ed3e14610685578063ea1644d5146106c2578063f2fde38b146106eb576101d7565b8063a2a957bb146105a2578063a9059cbb146105cb578063bfd7928414610608578063c3c8cd8014610645576101d7565b80638f70ccf7116100d15780638f70ccf7146104fa5780638f9a55c01461052357806395d89b411461054e57806398a5c31514610579576101d7565b80637d1db4a5146104675780637f2feddc146104925780638da5cb5b146104cf576101d7565b8063313ce5671161016f5780636fc3eaec1161013e5780636fc3eaec146103d357806370a08231146103ea578063715018a61461042757806374010ece1461043e576101d7565b8063313ce5671461032b57806349bd5a5e146103565780636b999053146103815780636d8aa8f8146103aa576101d7565b80631694505e116101ab5780631694505e1461026d57806318160ddd1461029857806323b872dd146102c35780632fd689e314610300576101d7565b8062b8cf2a146101dc57806306fdde0314610205578063095ea7b314610230576101d7565b366101d757005b600080fd5b3480156101e857600080fd5b5061020360048036038101906101fe9190612eac565b610714565b005b34801561021157600080fd5b5061021a61083e565b6040516102279190612f7d565b60405180910390f35b34801561023c57600080fd5b5061025760048036038101906102529190612fd5565b61087b565b6040516102649190613030565b60405180910390f35b34801561027957600080fd5b50610282610899565b60405161028f91906130aa565b60405180910390f35b3480156102a457600080fd5b506102ad6108bf565b6040516102ba91906130d4565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e591906130ef565b6108ce565b6040516102f79190613030565b60405180910390f35b34801561030c57600080fd5b506103156109a7565b60405161032291906130d4565b60405180910390f35b34801561033757600080fd5b506103406109ad565b60405161034d919061315e565b60405180910390f35b34801561036257600080fd5b5061036b6109b6565b6040516103789190613188565b60405180910390f35b34801561038d57600080fd5b506103a860048036038101906103a391906131a3565b6109dc565b005b3480156103b657600080fd5b506103d160048036038101906103cc91906131fc565b610acc565b005b3480156103df57600080fd5b506103e8610b7e565b005b3480156103f657600080fd5b50610411600480360381019061040c91906131a3565b610c4f565b60405161041e91906130d4565b60405180910390f35b34801561043357600080fd5b5061043c610ca0565b005b34801561044a57600080fd5b5061046560048036038101906104609190613229565b610df3565b005b34801561047357600080fd5b5061047c610e92565b60405161048991906130d4565b60405180910390f35b34801561049e57600080fd5b506104b960048036038101906104b491906131a3565b610e98565b6040516104c691906130d4565b60405180910390f35b3480156104db57600080fd5b506104e4610eb0565b6040516104f19190613188565b60405180910390f35b34801561050657600080fd5b50610521600480360381019061051c91906131fc565b610ed9565b005b34801561052f57600080fd5b50610538610f8b565b60405161054591906130d4565b60405180910390f35b34801561055a57600080fd5b50610563610f91565b6040516105709190612f7d565b60405180910390f35b34801561058557600080fd5b506105a0600480360381019061059b9190613229565b610fce565b005b3480156105ae57600080fd5b506105c960048036038101906105c49190613256565b61106d565b005b3480156105d757600080fd5b506105f260048036038101906105ed9190612fd5565b611268565b6040516105ff9190613030565b60405180910390f35b34801561061457600080fd5b5061062f600480360381019061062a91906131a3565b611286565b60405161063c9190613030565b60405180910390f35b34801561065157600080fd5b5061065a6112a6565b005b34801561066857600080fd5b50610683600480360381019061067e9190613318565b61137f565b005b34801561069157600080fd5b506106ac60048036038101906106a79190613378565b6114b9565b6040516106b991906130d4565b60405180910390f35b3480156106ce57600080fd5b506106e960048036038101906106e49190613229565b611540565b005b3480156106f757600080fd5b50610712600480360381019061070d91906131a3565b6115df565b005b61071c6117a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a090613404565b60405180910390fd5b60005b815181101561083a576001601060008484815181106107ce576107cd613424565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061083290613482565b9150506107ac565b5050565b60606040518060400160405280601281526020017f4c656e6e792074686520537175697272656c0000000000000000000000000000815250905090565b600061088f6108886117a1565b84846117a9565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000662386f26fc10000905090565b60006108db848484611974565b61099c846108e76117a1565b6109978560405180606001604052806028815260200161410b60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061094d6117a1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121f99092919063ffffffff16565b6117a9565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109e46117a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6890613404565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ad46117a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5890613404565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bbf6117a1565b73ffffffffffffffffffffffffffffffffffffffff161480610c355750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c1d6117a1565b73ffffffffffffffffffffffffffffffffffffffff16145b610c3e57600080fd5b6000479050610c4c8161225d565b50565b6000610c99600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c9565b9050919050565b610ca86117a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2c90613404565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610dfb6117a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7f90613404565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ee16117a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6590613404565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600581526020017f4c454e4e59000000000000000000000000000000000000000000000000000000815250905090565b610fd66117a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611063576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105a90613404565b60405180910390fd5b8060188190555050565b6110756117a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611102576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f990613404565b60405180910390fd5b60008410158015611114575060048411155b611153576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114a9061353d565b60405180910390fd5b60008210158015611165575060148211155b6111a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119b906135cf565b60405180910390fd5b600083101580156111b6575060048311155b6111f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ec90613661565b60405180910390fd5b60008110158015611207575060148111155b611246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123d906136f3565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061127c6112756117a1565b8484611974565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112e76117a1565b73ffffffffffffffffffffffffffffffffffffffff16148061135d5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113456117a1565b73ffffffffffffffffffffffffffffffffffffffff16145b61136657600080fd5b600061137130610c4f565b905061137c81612337565b50565b6113876117a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140b90613404565b60405180910390fd5b60005b838390508110156114b357816005600086868581811061143a57611439613424565b5b905060200201602081019061144f91906131a3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114ab90613482565b915050611417565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115486117a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cc90613404565b60405180910390fd5b8060178190555050565b6115e76117a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166b90613404565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116db90613785565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181090613817565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611889576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611880906138a9565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161196791906130d4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119db9061393b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4b906139cd565b60405180910390fd5b60008111611a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8e90613a5f565b60405180910390fd5b611a9f610eb0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b0d5750611add610eb0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ef857601560149054906101000a900460ff16611b9c57611b2e610eb0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611b9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9290613af1565b60405180910390fd5b5b601654811115611be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd890613b5d565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c855750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611cc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbb90613bef565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611d715760175481611d2684610c4f565b611d309190613c0f565b10611d70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6790613cd7565b60405180910390fd5b5b6000611d7c30610c4f565b9050600060185482101590506016548210611d975760165491505b808015611daf575060158054906101000a900460ff16155b8015611e095750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611e215750601560169054906101000a900460ff165b8015611e775750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ecd5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ef557611edb82612337565b60004790506000811115611ef357611ef24761225d565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f9f5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120525750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156120515750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561206057600090506121e7565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561210b5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561212357600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156121ce5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156121e657600a54600c81905550600b54600d819055505b5b6121f3848484846125bd565b50505050565b6000838311158290612241576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122389190612f7d565b60405180910390fd5b50600083856122509190613cf7565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122c5573d6000803e3d6000fd5b5050565b6000600654821115612310576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230790613d9d565b60405180910390fd5b600061231a6125ea565b905061232f818461261590919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561236e5761236d612d0b565b5b60405190808252806020026020018201604052801561239c5781602001602082028036833780820191505090505b50905030816000815181106123b4576123b3613424565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561245657600080fd5b505afa15801561246a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248e9190613dd2565b816001815181106124a2576124a1613424565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061250930601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117a9565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161256d959493929190613ef8565b600060405180830381600087803b15801561258757600080fd5b505af115801561259b573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806125cb576125ca61265f565b5b6125d68484846126a2565b806125e4576125e361286d565b5b50505050565b60008060006125f7612881565b9150915061260e818361261590919063ffffffff16565b9250505090565b600061265783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506128dd565b905092915050565b6000600c5414801561267357506000600d54145b1561267d576126a0565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806126b487612940565b95509550955095509550955061271286600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129a890919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127a785600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f290919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127f381612a50565b6127fd8483612b0d565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161285a91906130d4565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000662386f26fc1000090506128b3662386f26fc1000060065461261590919063ffffffff16565b8210156128d057600654662386f26fc100009350935050506128d9565b81819350935050505b9091565b60008083118290612924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291b9190612f7d565b60405180910390fd5b50600083856129339190613f81565b9050809150509392505050565b600080600080600080600080600061295d8a600c54600d54612b47565b925092509250600061296d6125ea565b905060008060006129808e878787612bdd565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006129ea83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121f9565b905092915050565b6000808284612a019190613c0f565b905083811015612a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3d90613ffe565b60405180910390fd5b8091505092915050565b6000612a5a6125ea565b90506000612a718284612c6690919063ffffffff16565b9050612ac581600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f290919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612b22826006546129a890919063ffffffff16565b600681905550612b3d816007546129f290919063ffffffff16565b6007819055505050565b600080600080612b736064612b65888a612c6690919063ffffffff16565b61261590919063ffffffff16565b90506000612b9d6064612b8f888b612c6690919063ffffffff16565b61261590919063ffffffff16565b90506000612bc682612bb8858c6129a890919063ffffffff16565b6129a890919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612bf68589612c6690919063ffffffff16565b90506000612c0d8689612c6690919063ffffffff16565b90506000612c248789612c6690919063ffffffff16565b90506000612c4d82612c3f85876129a890919063ffffffff16565b6129a890919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612c795760009050612cdb565b60008284612c87919061401e565b9050828482612c969190613f81565b14612cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ccd906140ea565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612d4382612cfa565b810181811067ffffffffffffffff82111715612d6257612d61612d0b565b5b80604052505050565b6000612d75612ce1565b9050612d818282612d3a565b919050565b600067ffffffffffffffff821115612da157612da0612d0b565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612de282612db7565b9050919050565b612df281612dd7565b8114612dfd57600080fd5b50565b600081359050612e0f81612de9565b92915050565b6000612e28612e2384612d86565b612d6b565b90508083825260208201905060208402830185811115612e4b57612e4a612db2565b5b835b81811015612e745780612e608882612e00565b845260208401935050602081019050612e4d565b5050509392505050565b600082601f830112612e9357612e92612cf5565b5b8135612ea3848260208601612e15565b91505092915050565b600060208284031215612ec257612ec1612ceb565b5b600082013567ffffffffffffffff811115612ee057612edf612cf0565b5b612eec84828501612e7e565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f2f578082015181840152602081019050612f14565b83811115612f3e576000848401525b50505050565b6000612f4f82612ef5565b612f598185612f00565b9350612f69818560208601612f11565b612f7281612cfa565b840191505092915050565b60006020820190508181036000830152612f978184612f44565b905092915050565b6000819050919050565b612fb281612f9f565b8114612fbd57600080fd5b50565b600081359050612fcf81612fa9565b92915050565b60008060408385031215612fec57612feb612ceb565b5b6000612ffa85828601612e00565b925050602061300b85828601612fc0565b9150509250929050565b60008115159050919050565b61302a81613015565b82525050565b60006020820190506130456000830184613021565b92915050565b6000819050919050565b600061307061306b61306684612db7565b61304b565b612db7565b9050919050565b600061308282613055565b9050919050565b600061309482613077565b9050919050565b6130a481613089565b82525050565b60006020820190506130bf600083018461309b565b92915050565b6130ce81612f9f565b82525050565b60006020820190506130e960008301846130c5565b92915050565b60008060006060848603121561310857613107612ceb565b5b600061311686828701612e00565b935050602061312786828701612e00565b925050604061313886828701612fc0565b9150509250925092565b600060ff82169050919050565b61315881613142565b82525050565b6000602082019050613173600083018461314f565b92915050565b61318281612dd7565b82525050565b600060208201905061319d6000830184613179565b92915050565b6000602082840312156131b9576131b8612ceb565b5b60006131c784828501612e00565b91505092915050565b6131d981613015565b81146131e457600080fd5b50565b6000813590506131f6816131d0565b92915050565b60006020828403121561321257613211612ceb565b5b6000613220848285016131e7565b91505092915050565b60006020828403121561323f5761323e612ceb565b5b600061324d84828501612fc0565b91505092915050565b600080600080608085870312156132705761326f612ceb565b5b600061327e87828801612fc0565b945050602061328f87828801612fc0565b93505060406132a087828801612fc0565b92505060606132b187828801612fc0565b91505092959194509250565b600080fd5b60008083601f8401126132d8576132d7612cf5565b5b8235905067ffffffffffffffff8111156132f5576132f46132bd565b5b60208301915083602082028301111561331157613310612db2565b5b9250929050565b60008060006040848603121561333157613330612ceb565b5b600084013567ffffffffffffffff81111561334f5761334e612cf0565b5b61335b868287016132c2565b9350935050602061336e868287016131e7565b9150509250925092565b6000806040838503121561338f5761338e612ceb565b5b600061339d85828601612e00565b92505060206133ae85828601612e00565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006133ee602083612f00565b91506133f9826133b8565b602082019050919050565b6000602082019050818103600083015261341d816133e1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061348d82612f9f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156134c0576134bf613453565b5b600182019050919050565b7f4275792072657761726473206d757374206265206265747765656e203025206160008201527f6e64203425000000000000000000000000000000000000000000000000000000602082015250565b6000613527602583612f00565b9150613532826134cb565b604082019050919050565b600060208201905081810360008301526135568161351a565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203260008201527f3025000000000000000000000000000000000000000000000000000000000000602082015250565b60006135b9602283612f00565b91506135c48261355d565b604082019050919050565b600060208201905081810360008301526135e8816135ac565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e2030252060008201527f616e642034250000000000000000000000000000000000000000000000000000602082015250565b600061364b602683612f00565b9150613656826135ef565b604082019050919050565b6000602082019050818103600083015261367a8161363e565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3230250000000000000000000000000000000000000000000000000000000000602082015250565b60006136dd602383612f00565b91506136e882613681565b604082019050919050565b6000602082019050818103600083015261370c816136d0565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061376f602683612f00565b915061377a82613713565b604082019050919050565b6000602082019050818103600083015261379e81613762565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613801602483612f00565b915061380c826137a5565b604082019050919050565b60006020820190508181036000830152613830816137f4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613893602283612f00565b915061389e82613837565b604082019050919050565b600060208201905081810360008301526138c281613886565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613925602583612f00565b9150613930826138c9565b604082019050919050565b6000602082019050818103600083015261395481613918565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006139b7602383612f00565b91506139c28261395b565b604082019050919050565b600060208201905081810360008301526139e6816139aa565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613a49602983612f00565b9150613a54826139ed565b604082019050919050565b60006020820190508181036000830152613a7881613a3c565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613adb603f83612f00565b9150613ae682613a7f565b604082019050919050565b60006020820190508181036000830152613b0a81613ace565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613b47601c83612f00565b9150613b5282613b11565b602082019050919050565b60006020820190508181036000830152613b7681613b3a565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613bd9602383612f00565b9150613be482613b7d565b604082019050919050565b60006020820190508181036000830152613c0881613bcc565b9050919050565b6000613c1a82612f9f565b9150613c2583612f9f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c5a57613c59613453565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613cc1602383612f00565b9150613ccc82613c65565b604082019050919050565b60006020820190508181036000830152613cf081613cb4565b9050919050565b6000613d0282612f9f565b9150613d0d83612f9f565b925082821015613d2057613d1f613453565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613d87602a83612f00565b9150613d9282613d2b565b604082019050919050565b60006020820190508181036000830152613db681613d7a565b9050919050565b600081519050613dcc81612de9565b92915050565b600060208284031215613de857613de7612ceb565b5b6000613df684828501613dbd565b91505092915050565b6000819050919050565b6000613e24613e1f613e1a84613dff565b61304b565b612f9f565b9050919050565b613e3481613e09565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613e6f81612dd7565b82525050565b6000613e818383613e66565b60208301905092915050565b6000602082019050919050565b6000613ea582613e3a565b613eaf8185613e45565b9350613eba83613e56565b8060005b83811015613eeb578151613ed28882613e75565b9750613edd83613e8d565b925050600181019050613ebe565b5085935050505092915050565b600060a082019050613f0d60008301886130c5565b613f1a6020830187613e2b565b8181036040830152613f2c8186613e9a565b9050613f3b6060830185613179565b613f4860808301846130c5565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f8c82612f9f565b9150613f9783612f9f565b925082613fa757613fa6613f52565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613fe8601b83612f00565b9150613ff382613fb2565b602082019050919050565b6000602082019050818103600083015261401781613fdb565b9050919050565b600061402982612f9f565b915061403483612f9f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561406d5761406c613453565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006140d4602183612f00565b91506140df82614078565b604082019050919050565b60006020820190508181036000830152614103816140c7565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c41f550d01d323f76cbc5d1c5c2e4db6207914bd89b91a30cd2fd672dd26806c64736f6c63430008090033