6080604052662386f26fc100006000196200001b919062000829565b6000196200002a9190620007b0565b600655600060085560056009556000600a55600a600b55600a54600d55600b54600e55600d54600f55600e5460105573a525c65aa8b87d98cc6057ddd84140336fd7063a601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a525c65aa8b87d98cc6057ddd84140336fd7063a601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff021916908315150217905550655af3107a4000601655655af3107a40006017556509184e72a0006018553480156200016357600080fd5b50600062000176620006d060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200022b620006d060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200030a57600080fd5b505afa1580156200031f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000345919062000718565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003a857600080fd5b505afa158015620003bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e3919062000718565b6040518363ffffffff1660e01b81526004016200040292919062000766565b602060405180830381600087803b1580156200041d57600080fd5b505af115801562000432573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000458919062000718565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004ae620006d860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200065b620006d060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc10000604051620006c1919062000793565b60405180910390a350620008d9565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200071281620008bf565b92915050565b6000602082840312156200072b57600080fd5b60006200073b8482850162000701565b91505092915050565b6200074f81620007eb565b82525050565b62000760816200081f565b82525050565b60006040820190506200077d600083018562000744565b6200078c602083018462000744565b9392505050565b6000602082019050620007aa600083018462000755565b92915050565b6000620007bd826200081f565b9150620007ca836200081f565b925082821015620007e057620007df62000861565b5b828203905092915050565b6000620007f882620007ff565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062000836826200081f565b915062000843836200081f565b92508262000856576200085562000890565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b620008ca81620007eb565b8114620008d657600080fd5b50565b61390080620008e96000396000f3fe6080604052600436106101a05760003560e01c806374010ece116100ec578063a2a957bb1161008a578063c492f04611610064578063c492f0461461058b578063dd62ed3e146105b4578063ea1644d5146105f1578063f2fde38b1461061a576101a7565b8063a2a957bb1461050e578063a9059cbb14610537578063c3c8cd8014610574576101a7565b80638f70ccf7116100c65780638f70ccf7146104665780638f9a55c01461048f57806395d89b41146104ba57806398a5c315146104e5576101a7565b806374010ece146103e75780637d1db4a5146104105780638da5cb5b1461043b576101a7565b80632fd689e3116101595780636d8aa8f8116101335780636d8aa8f8146103535780636fc3eaec1461037c57806370a0823114610393578063715018a6146103d0576101a7565b80632fd689e3146102d2578063313ce567146102fd57806349bd5a5e14610328576101a7565b806306fdde03146101ac578063095ea7b3146101d757806313114a9d146102145780631694505e1461023f57806318160ddd1461026a57806323b872dd14610295576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610643565b6040516101ce9190612f51565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190612ab5565b610680565b60405161020b9190612f1b565b60405180910390f35b34801561022057600080fd5b5061022961069e565b6040516102369190613133565b60405180910390f35b34801561024b57600080fd5b506102546106a4565b6040516102619190612f36565b60405180910390f35b34801561027657600080fd5b5061027f6106ca565b60405161028c9190613133565b60405180910390f35b3480156102a157600080fd5b506102bc60048036038101906102b79190612a66565b6106d9565b6040516102c99190612f1b565b60405180910390f35b3480156102de57600080fd5b506102e76107b2565b6040516102f49190613133565b60405180910390f35b34801561030957600080fd5b506103126107b8565b60405161031f91906131a8565b60405180910390f35b34801561033457600080fd5b5061033d6107c1565b60405161034a9190612f00565b60405180910390f35b34801561035f57600080fd5b5061037a60048036038101906103759190612b49565b6107e7565b005b34801561038857600080fd5b50610391610899565b005b34801561039f57600080fd5b506103ba60048036038101906103b591906129d8565b61096a565b6040516103c79190613133565b60405180910390f35b3480156103dc57600080fd5b506103e56109bb565b005b3480156103f357600080fd5b5061040e60048036038101906104099190612b72565b610b0e565b005b34801561041c57600080fd5b50610425610bad565b6040516104329190613133565b60405180910390f35b34801561044757600080fd5b50610450610bb3565b60405161045d9190612f00565b60405180910390f35b34801561047257600080fd5b5061048d60048036038101906104889190612b49565b610bdc565b005b34801561049b57600080fd5b506104a4610c8e565b6040516104b19190613133565b60405180910390f35b3480156104c657600080fd5b506104cf610c94565b6040516104dc9190612f51565b60405180910390f35b3480156104f157600080fd5b5061050c60048036038101906105079190612b72565b610cd1565b005b34801561051a57600080fd5b5061053560048036038101906105309190612b9b565b610d70565b005b34801561054357600080fd5b5061055e60048036038101906105599190612ab5565b610e9d565b60405161056b9190612f1b565b60405180910390f35b34801561058057600080fd5b50610589610ebb565b005b34801561059757600080fd5b506105b260048036038101906105ad9190612af1565b610f94565b005b3480156105c057600080fd5b506105db60048036038101906105d69190612a2a565b6110f4565b6040516105e89190613133565b60405180910390f35b3480156105fd57600080fd5b5061061860048036038101906106139190612b72565b61117b565b005b34801561062657600080fd5b50610641600480360381019061063c91906129d8565b61121a565b005b60606040518060400160405280600581526020017f54776f6765000000000000000000000000000000000000000000000000000000815250905090565b600061069461068d6113dc565b84846113e4565b6001905092915050565b600c5481565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000662386f26fc10000905090565b60006106e68484846115af565b6107a7846106f26113dc565b6107a2856040518060600160405280602881526020016138a360289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107586113dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d519092919063ffffffff16565b6113e4565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107ef6113dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461087c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087390613093565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108da6113dc565b73ffffffffffffffffffffffffffffffffffffffff1614806109505750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109386113dc565b73ffffffffffffffffffffffffffffffffffffffff16145b61095957600080fd5b600047905061096781611db5565b50565b60006109b4600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb0565b9050919050565b6109c36113dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4790613093565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b166113dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9a90613093565b60405180910390fd5b8060168190555050565b60165481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610be46113dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6890613093565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600581526020017f54776f6765000000000000000000000000000000000000000000000000000000815250905090565b610cd96113dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5d90613093565b60405180910390fd5b8060188190555050565b610d786113dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfc90613093565b60405180910390fd5b8360088190555082600a819055508160098190555080600b81905550600b54600954600a54600854610e379190613218565b610e419190613218565b610e4b9190613218565b600c81905550600f600c541115610e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8e90612f93565b60405180910390fd5b50505050565b6000610eb1610eaa6113dc565b84846115af565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610efc6113dc565b73ffffffffffffffffffffffffffffffffffffffff161480610f725750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f5a6113dc565b73ffffffffffffffffffffffffffffffffffffffff16145b610f7b57600080fd5b6000610f863061096a565b9050610f9181611f1e565b50565b610f9c6113dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611029576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102090613093565b60405180910390fd5b60005b838390508110156110ee578160056000868685818110611075577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061108a91906129d8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110e6906133eb565b91505061102c565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6111836113dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611210576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120790613093565b60405180910390fd5b8060178190555050565b6112226113dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a690613093565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561131f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131690613013565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144b90613113565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bb90613033565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115a29190613133565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561161f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611616906130d3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561168f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168690612f73565b60405180910390fd5b600081116116d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c9906130b3565b60405180910390fd5b6116da610bb3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117485750611718610bb3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a5057601560149054906101000a900460ff166117d757611769610bb3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146117d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cd90612fb3565b60405180910390fd5b5b60165481111561181c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181390612ff3565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146118c9576017548161187e8461096a565b6118889190613218565b106118c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bf906130f3565b60405180910390fd5b5b60006118d43061096a565b90506000601854821015905060165482106118ef5760165491505b808015611907575060158054906101000a900460ff16155b80156119615750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156119795750601560169054906101000a900460ff165b80156119cf5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a255750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a4d57611a3382611f1e565b60004790506000811115611a4b57611a4a47611db5565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611af75750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611baa5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ba95750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611bb85760009050611d3f565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c635750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c7b57600854600d81905550600954600e819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d265750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d3e57600a54600d81905550600b54600e819055505b5b611d4b84848484612216565b50505050565b6000838311158290611d99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d909190612f51565b60405180910390fd5b5060008385611da891906132f9565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611e0560028461224390919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611e30573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611e8160028461224390919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611eac573d6000803e3d6000fd5b5050565b6000600654821115611ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eee90612fd3565b60405180910390fd5b6000611f0161228d565b9050611f16818461224390919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f7b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611fa95781602001602082028036833780820191505090505b5090503081600081518110611fe7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561208957600080fd5b505afa15801561209d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c19190612a01565b816001815181106120fb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061216230601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113e4565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121c695949392919061314e565b600060405180830381600087803b1580156121e057600080fd5b505af11580156121f4573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b80612224576122236122b8565b5b61222f8484846122fb565b8061223d5761223c6124c6565b5b50505050565b600061228583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124da565b905092915050565b600080600061229a61253d565b915091506122b1818361224390919063ffffffff16565b9250505090565b6000600d541480156122cc57506000600e54145b156122d6576122f9565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b60008060008060008061230d87612599565b95509550955095509550955061236b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461260190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061240085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264b90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061244c816126a9565b6124568483612766565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516124b39190613133565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b60008083118290612521576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125189190612f51565b60405180910390fd5b5060008385612530919061326e565b9050809150509392505050565b600080600060065490506000662386f26fc10000905061256f662386f26fc1000060065461224390919063ffffffff16565b82101561258c57600654662386f26fc10000935093505050612595565b81819350935050505b9091565b60008060008060008060008060006125b68a600d54600e546127a0565b92509250925060006125c661228d565b905060008060006125d98e878787612836565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061264383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d51565b905092915050565b600080828461265a9190613218565b90508381101561269f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269690613053565b60405180910390fd5b8091505092915050565b60006126b361228d565b905060006126ca82846128bf90919063ffffffff16565b905061271e81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264b90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61277b8260065461260190919063ffffffff16565b6006819055506127968160075461264b90919063ffffffff16565b6007819055505050565b6000806000806127cc60646127be888a6128bf90919063ffffffff16565b61224390919063ffffffff16565b905060006127f660646127e8888b6128bf90919063ffffffff16565b61224390919063ffffffff16565b9050600061281f82612811858c61260190919063ffffffff16565b61260190919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061284f85896128bf90919063ffffffff16565b9050600061286686896128bf90919063ffffffff16565b9050600061287d87896128bf90919063ffffffff16565b905060006128a682612898858761260190919063ffffffff16565b61260190919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156128d25760009050612934565b600082846128e0919061329f565b90508284826128ef919061326e565b1461292f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292690613073565b60405180910390fd5b809150505b92915050565b6000813590506129498161385d565b92915050565b60008151905061295e8161385d565b92915050565b60008083601f84011261297657600080fd5b8235905067ffffffffffffffff81111561298f57600080fd5b6020830191508360208202830111156129a757600080fd5b9250929050565b6000813590506129bd81613874565b92915050565b6000813590506129d28161388b565b92915050565b6000602082840312156129ea57600080fd5b60006129f88482850161293a565b91505092915050565b600060208284031215612a1357600080fd5b6000612a218482850161294f565b91505092915050565b60008060408385031215612a3d57600080fd5b6000612a4b8582860161293a565b9250506020612a5c8582860161293a565b9150509250929050565b600080600060608486031215612a7b57600080fd5b6000612a898682870161293a565b9350506020612a9a8682870161293a565b9250506040612aab868287016129c3565b9150509250925092565b60008060408385031215612ac857600080fd5b6000612ad68582860161293a565b9250506020612ae7858286016129c3565b9150509250929050565b600080600060408486031215612b0657600080fd5b600084013567ffffffffffffffff811115612b2057600080fd5b612b2c86828701612964565b93509350506020612b3f868287016129ae565b9150509250925092565b600060208284031215612b5b57600080fd5b6000612b69848285016129ae565b91505092915050565b600060208284031215612b8457600080fd5b6000612b92848285016129c3565b91505092915050565b60008060008060808587031215612bb157600080fd5b6000612bbf878288016129c3565b9450506020612bd0878288016129c3565b9350506040612be1878288016129c3565b9250506060612bf2878288016129c3565b91505092959194509250565b6000612c0a8383612c16565b60208301905092915050565b612c1f8161332d565b82525050565b612c2e8161332d565b82525050565b6000612c3f826131d3565b612c4981856131f6565b9350612c54836131c3565b8060005b83811015612c85578151612c6c8882612bfe565b9750612c77836131e9565b925050600181019050612c58565b5085935050505092915050565b612c9b8161333f565b82525050565b612caa81613382565b82525050565b612cb9816133a6565b82525050565b6000612cca826131de565b612cd48185613207565b9350612ce48185602086016133b8565b612ced81613492565b840191505092915050565b6000612d05602383613207565b9150612d10826134a3565b604082019050919050565b6000612d28601d83613207565b9150612d33826134f2565b602082019050919050565b6000612d4b603f83613207565b9150612d568261351b565b604082019050919050565b6000612d6e602a83613207565b9150612d798261356a565b604082019050919050565b6000612d91601c83613207565b9150612d9c826135b9565b602082019050919050565b6000612db4602683613207565b9150612dbf826135e2565b604082019050919050565b6000612dd7602283613207565b9150612de282613631565b604082019050919050565b6000612dfa601b83613207565b9150612e0582613680565b602082019050919050565b6000612e1d602183613207565b9150612e28826136a9565b604082019050919050565b6000612e40602083613207565b9150612e4b826136f8565b602082019050919050565b6000612e63602983613207565b9150612e6e82613721565b604082019050919050565b6000612e86602583613207565b9150612e9182613770565b604082019050919050565b6000612ea9602383613207565b9150612eb4826137bf565b604082019050919050565b6000612ecc602483613207565b9150612ed78261380e565b604082019050919050565b612eeb8161336b565b82525050565b612efa81613375565b82525050565b6000602082019050612f156000830184612c25565b92915050565b6000602082019050612f306000830184612c92565b92915050565b6000602082019050612f4b6000830184612ca1565b92915050565b60006020820190508181036000830152612f6b8184612cbf565b905092915050565b60006020820190508181036000830152612f8c81612cf8565b9050919050565b60006020820190508181036000830152612fac81612d1b565b9050919050565b60006020820190508181036000830152612fcc81612d3e565b9050919050565b60006020820190508181036000830152612fec81612d61565b9050919050565b6000602082019050818103600083015261300c81612d84565b9050919050565b6000602082019050818103600083015261302c81612da7565b9050919050565b6000602082019050818103600083015261304c81612dca565b9050919050565b6000602082019050818103600083015261306c81612ded565b9050919050565b6000602082019050818103600083015261308c81612e10565b9050919050565b600060208201905081810360008301526130ac81612e33565b9050919050565b600060208201905081810360008301526130cc81612e56565b9050919050565b600060208201905081810360008301526130ec81612e79565b9050919050565b6000602082019050818103600083015261310c81612e9c565b9050919050565b6000602082019050818103600083015261312c81612ebf565b9050919050565b60006020820190506131486000830184612ee2565b92915050565b600060a0820190506131636000830188612ee2565b6131706020830187612cb0565b81810360408301526131828186612c34565b90506131916060830185612c25565b61319e6080830184612ee2565b9695505050505050565b60006020820190506131bd6000830184612ef1565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006132238261336b565b915061322e8361336b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561326357613262613434565b5b828201905092915050565b60006132798261336b565b91506132848361336b565b92508261329457613293613463565b5b828204905092915050565b60006132aa8261336b565b91506132b58361336b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156132ee576132ed613434565b5b828202905092915050565b60006133048261336b565b915061330f8361336b565b92508282101561332257613321613434565b5b828203905092915050565b60006133388261334b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061338d82613394565b9050919050565b600061339f8261334b565b9050919050565b60006133b18261336b565b9050919050565b60005b838110156133d65780820151818401526020810190506133bb565b838111156133e5576000848401525b50505050565b60006133f68261336b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561342957613428613434565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4d757374206b656570206665657320617420313525206f72206c657373000000600082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6138668161332d565b811461387157600080fd5b50565b61387d8161333f565b811461388857600080fd5b50565b6138948161336b565b811461389f57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220de4cd6ab00d6863ed20ee5f0385cd11afa95d5c06757e4c2d0a1caa2ad80eaab64736f6c63430008040033