0x6080604052600436106100e55763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100ea578063095ea7b3146101745780630a0fb66b146101ac57806318160ddd146101f15780631df224c11461020657806323b872dd146102375780632ff2e9dc14610261578063313ce5671461027657806347e7ef24146102a157806366188463146102c557806370a08231146102e9578063848784e51461030a57806395d89b4114610383578063a9059cbb14610398578063d73dd623146103bc578063dd62ed3e146103e0575b600080fd5b3480156100f657600080fd5b506100ff610407565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610139578181015183820152602001610121565b50505050905090810190601f1680156101665780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561018057600080fd5b50610198600160a060020a036004351660243561043e565b604080519115158252519081900360200190f35b3480156101b857600080fd5b506101df600160a060020a036004358116906024351660443560643560843560a4356104a4565b60408051918252519081900360200190f35b3480156101fd57600080fd5b506101df610590565b34801561021257600080fd5b5061021b610596565b60408051600160a060020a039092168252519081900360200190f35b34801561024357600080fd5b50610198600160a060020a03600435811690602435166044356105a5565b34801561026d57600080fd5b506101df61071c565b34801561028257600080fd5b5061028b61072c565b6040805160ff9092168252519081900360200190f35b3480156102ad57600080fd5b50610198600160a060020a0360043516602435610731565b3480156102d157600080fd5b50610198600160a060020a03600435166024356107e0565b3480156102f557600080fd5b506101df600160a060020a03600435166108d0565b34801561031657600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261019894369492936024939284019190819084018382808284375094975050600160a060020a03853516955050506020830135926040810135925060608101359150608001356108eb565b34801561038f57600080fd5b506100ff610bca565b3480156103a457600080fd5b50610198600160a060020a0360043516602435610c01565b3480156103c857600080fd5b50610198600160a060020a0360043516602435610ce2565b3480156103ec57600080fd5b506101df600160a060020a0360043581169060243516610d7b565b60408051808201909152601081527f42696e63656e7469766520546f6b656e00000000000000000000000000000000602082015281565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b604080517f0d2d1bf5000000000000000000000000000000000000000000000000000000006020808301919091526c01000000000000000000000000600160a060020a03808b16820260248501528916026038830152604c8201879052606c8201869052608c820185905260ac8083018590528351808403909101815260cc909201928390528151600093918291908401908083835b602083106105595780518252601f19909201916020918201910161053a565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091209a9950505050505050505050565b60015490565b600354600160a060020a031681565b6000600160a060020a03831615156105bc57600080fd5b600160a060020a0384166000908152602081905260409020548211156105e157600080fd5b600160a060020a038416600090815260026020908152604080832033845290915290205482111561061157600080fd5b600160a060020a03841660009081526020819052604090205461063a908363ffffffff610da616565b600160a060020a03808616600090815260208190526040808220939093559085168152205461066f908363ffffffff610db816565b600160a060020a038085166000908152602081815260408083209490945591871681526002825282812033825290915220546106b1908363ffffffff610da616565b600160a060020a03808616600081815260026020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b6b033b2e3c9fd0803ce800000081565b601281565b600354600090600160a060020a0316331461074b57600080fd5b81151561075757600080fd5b600160a060020a038316600090815260208190526040902054610780908363ffffffff610db816565b600160a060020a0380851660008181526020818152604091829020949094556003548151878152915192949316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350600192915050565b336000908152600260209081526040808320600160a060020a03861684529091528120548083111561083557336000908152600260209081526040808320600160a060020a038816845290915281205561086a565b610845818463ffffffff610da616565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526020819052604090205490565b60008080600160a060020a038816151561090457600080fd5b6004896040518082805190602001908083835b602083106109365780518252601f199092019160209182019101610917565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092205460ff16159150610973905057600080fd5b4384101561098057600080fd5b610996610991308a8a8a8a8a6104a4565b610dcb565b91506109a2828a610e75565b600160a060020a0381166000908152602081905260409020549091506109e09087906109d4908a63ffffffff610da616565b9063ffffffff610da616565b600160a060020a0380831660009081526020819052604080822093909355908a1681522054610a15908863ffffffff610db816565b600160a060020a038916600090815260208190526040808220929092553381522054610a47908763ffffffff610db816565b60008033600160a060020a0316600160a060020a0316815260200190815260200160002081905550600160048a6040518082805190602001908083835b60208310610aa35780518252601f199092019160209182019101610a84565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520805460ff1916961515969096179095558b84529351600160a060020a038d811695908716947fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9450829003019150a36040805187815290513391600160a060020a038416917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a333600160a060020a031688600160a060020a031682600160a060020a03167fec5a73fd1f178be20c1bca1b406cbf4b5c20d833b66e582fc122fb4baa0fc2a48a8a604051808381526020018281526020019250505060405180910390a450600198975050505050505050565b60408051808201909152600481527f42434e5400000000000000000000000000000000000000000000000000000000602082015281565b6000600160a060020a0383161515610c1857600080fd5b33600090815260208190526040902054821115610c3457600080fd5b33600090815260208190526040902054610c54908363ffffffff610da616565b3360009081526020819052604080822092909255600160a060020a03851681522054610c86908363ffffffff610db816565b600160a060020a038416600081815260208181526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b336000908152600260209081526040808320600160a060020a0386168452909152812054610d16908363ffffffff610db816565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600082821115610db257fe5b50900390565b81810182811015610dc557fe5b92915050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c80830185905283518084039091018152605c909201928390528151600093918291908401908083835b60208310610e435780518252601f199092019160209182019101610e24565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912095945050505050565b60008060008084516041141515610e8f5760009350610f41565b50505060208201516040830151606084015160001a601b60ff82161015610eb457601b015b8060ff16601b14158015610ecc57508060ff16601c14155b15610eda5760009350610f41565b60408051600080825260208083018085528a905260ff8516838501526060830187905260808301869052925160019360a0808501949193601f19840193928390039091019190865af1158015610f34573d6000803e3d6000fd5b5050506020604051035193505b505050929150505600a165627a7a72305820d5f82cff0a1985aee308d300f255854875c74c9aeef300faf3da65e5de29123b0029
0x608060405234801561001057600080fd5b50604051602080611ef883398101604052516b033b2e3c9fd0803ce800000060018190558190601290610041610112565b600160a060020a03909316835260ff9091166060830152608082015260a0602082018190526018908201527f42696e63656e74697665205072697661746520546f6b656e000000000000000060c082015260e060408083018290526004918301919091527f42434e5000000000000000000000000000000000000000000000000000000000610100830152519081900361012001906000f0801580156100eb573d6000803e3d6000fd5b5060038054600160a060020a031916600160a060020a039290921691909117905550610122565b604051610e51806110a783390190565b610f76806101316000396000f3006080604052600436106100e55763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100ea578063095ea7b3146101745780630a0fb66b146101ac57806318160ddd146101f15780631df224c11461020657806323b872dd146102375780632ff2e9dc14610261578063313ce5671461027657806347e7ef24146102a157806366188463146102c557806370a08231146102e9578063848784e51461030a57806395d89b4114610383578063a9059cbb14610398578063d73dd623146103bc578063dd62ed3e146103e0575b600080fd5b3480156100f657600080fd5b506100ff610407565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610139578181015183820152602001610121565b50505050905090810190601f1680156101665780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561018057600080fd5b50610198600160a060020a036004351660243561043e565b604080519115158252519081900360200190f35b3480156101b857600080fd5b506101df600160a060020a036004358116906024351660443560643560843560a4356104a4565b60408051918252519081900360200190f35b3480156101fd57600080fd5b506101df610590565b34801561021257600080fd5b5061021b610596565b60408051600160a060020a039092168252519081900360200190f35b34801561024357600080fd5b50610198600160a060020a03600435811690602435166044356105a5565b34801561026d57600080fd5b506101df61071c565b34801561028257600080fd5b5061028b61072c565b6040805160ff9092168252519081900360200190f35b3480156102ad57600080fd5b50610198600160a060020a0360043516602435610731565b3480156102d157600080fd5b50610198600160a060020a03600435166024356107e0565b3480156102f557600080fd5b506101df600160a060020a03600435166108d0565b34801561031657600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261019894369492936024939284019190819084018382808284375094975050600160a060020a03853516955050506020830135926040810135925060608101359150608001356108eb565b34801561038f57600080fd5b506100ff610bca565b3480156103a457600080fd5b50610198600160a060020a0360043516602435610c01565b3480156103c857600080fd5b50610198600160a060020a0360043516602435610ce2565b3480156103ec57600080fd5b506101df600160a060020a0360043581169060243516610d7b565b60408051808201909152601081527f42696e63656e7469766520546f6b656e00000000000000000000000000000000602082015281565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b604080517f0d2d1bf5000000000000000000000000000000000000000000000000000000006020808301919091526c01000000000000000000000000600160a060020a03808b16820260248501528916026038830152604c8201879052606c8201869052608c820185905260ac8083018590528351808403909101815260cc909201928390528151600093918291908401908083835b602083106105595780518252601f19909201916020918201910161053a565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091209a9950505050505050505050565b60015490565b600354600160a060020a031681565b6000600160a060020a03831615156105bc57600080fd5b600160a060020a0384166000908152602081905260409020548211156105e157600080fd5b600160a060020a038416600090815260026020908152604080832033845290915290205482111561061157600080fd5b600160a060020a03841660009081526020819052604090205461063a908363ffffffff610da616565b600160a060020a03808616600090815260208190526040808220939093559085168152205461066f908363ffffffff610db816565b600160a060020a038085166000908152602081815260408083209490945591871681526002825282812033825290915220546106b1908363ffffffff610da616565b600160a060020a03808616600081815260026020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b6b033b2e3c9fd0803ce800000081565b601281565b600354600090600160a060020a0316331461074b57600080fd5b81151561075757600080fd5b600160a060020a038316600090815260208190526040902054610780908363ffffffff610db816565b600160a060020a0380851660008181526020818152604091829020949094556003548151878152915192949316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350600192915050565b336000908152600260209081526040808320600160a060020a03861684529091528120548083111561083557336000908152600260209081526040808320600160a060020a038816845290915281205561086a565b610845818463ffffffff610da616565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526020819052604090205490565b60008080600160a060020a038816151561090457600080fd5b6004896040518082805190602001908083835b602083106109365780518252601f199092019160209182019101610917565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092205460ff16159150610973905057600080fd5b4384101561098057600080fd5b610996610991308a8a8a8a8a6104a4565b610dcb565b91506109a2828a610e75565b600160a060020a0381166000908152602081905260409020549091506109e09087906109d4908a63ffffffff610da616565b9063ffffffff610da616565b600160a060020a0380831660009081526020819052604080822093909355908a1681522054610a15908863ffffffff610db816565b600160a060020a038916600090815260208190526040808220929092553381522054610a47908763ffffffff610db816565b60008033600160a060020a0316600160a060020a0316815260200190815260200160002081905550600160048a6040518082805190602001908083835b60208310610aa35780518252601f199092019160209182019101610a84565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520805460ff1916961515969096179095558b84529351600160a060020a038d811695908716947fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9450829003019150a36040805187815290513391600160a060020a038416917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a333600160a060020a031688600160a060020a031682600160a060020a03167fec5a73fd1f178be20c1bca1b406cbf4b5c20d833b66e582fc122fb4baa0fc2a48a8a604051808381526020018281526020019250505060405180910390a450600198975050505050505050565b60408051808201909152600481527f42434e5400000000000000000000000000000000000000000000000000000000602082015281565b6000600160a060020a0383161515610c1857600080fd5b33600090815260208190526040902054821115610c3457600080fd5b33600090815260208190526040902054610c54908363ffffffff610da616565b3360009081526020819052604080822092909255600160a060020a03851681522054610c86908363ffffffff610db816565b600160a060020a038416600081815260208181526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b336000908152600260209081526040808320600160a060020a0386168452909152812054610d16908363ffffffff610db816565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600082821115610db257fe5b50900390565b81810182811015610dc557fe5b92915050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c80830185905283518084039091018152605c909201928390528151600093918291908401908083835b60208310610e435780518252601f199092019160209182019101610e24565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912095945050505050565b60008060008084516041141515610e8f5760009350610f41565b50505060208201516040830151606084015160001a601b60ff82161015610eb457601b015b8060ff16601b14158015610ecc57508060ff16601c14155b15610eda5760009350610f41565b60408051600080825260208083018085528a905260ff8516838501526060830187905260808301869052925160019360a0808501949193601f19840193928390039091019190865af1158015610f34573d6000803e3d6000fd5b5050506020604051035193505b505050929150505600a165627a7a72305820d5f82cff0a1985aee308d300f255854875c74c9aeef300faf3da65e5de29123b0029608060405234801561001057600080fd5b50604051610e51380380610e518339810160409081528151602080840151928401516060850151608086015160078054600160a060020a0319163317905560058054600160a060020a0387166101000261010060a860020a0319909116179055948601805194969095920193909261008d91600391870190610122565b5082516100a1906004906020860190610122565b506005805460ff191660ff841617808255600183905561010090819004600160a060020a039081166000908152602081815260408083208790559454855187815295519490049092169390927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350505050506101bd565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061016357805160ff1916838001178555610190565b82800160010185558215610190579182015b82811115610190578251825591602001919060010190610175565b5061019c9291506101a0565b5090565b6101ba91905b8082111561019c57600081556001016101a6565b90565b610c85806101cc6000396000f3006080604052600436106100f05763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100f5578063095ea7b31461017f57806318160ddd146101b757806323b872dd146101de578063313ce56714610208578063661884631461023357806370a082311461025757806374817d9b1461027857806395d89b4114610292578063a9059cbb146102a7578063d73dd623146102cb578063dc9a1535146102ef578063dd62ed3e14610304578063ed10e33c1461032b578063f340fa0114610340578063f851a44014610361578063facc790514610392575b600080fd5b34801561010157600080fd5b5061010a6103a7565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014457818101518382015260200161012c565b50505050905090810190601f1680156101715780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561018b57600080fd5b506101a3600160a060020a0360043516602435610435565b604080519115158252519081900360200190f35b3480156101c357600080fd5b506101cc61049b565b60408051918252519081900360200190f35b3480156101ea57600080fd5b506101a3600160a060020a03600435811690602435166044356104a1565b34801561021457600080fd5b5061021d610618565b6040805160ff9092168252519081900360200190f35b34801561023f57600080fd5b506101a3600160a060020a0360043516602435610621565b34801561026357600080fd5b506101cc600160a060020a0360043516610711565b34801561028457600080fd5b5061029060043561072c565b005b34801561029e57600080fd5b5061010a6107ec565b3480156102b357600080fd5b506101a3600160a060020a0360043516602435610847565b3480156102d757600080fd5b506101a3600160a060020a0360043516602435610928565b3480156102fb57600080fd5b506101a36109c1565b34801561031057600080fd5b506101cc600160a060020a03600435811690602435166109e3565b34801561033757600080fd5b50610290610a0e565b34801561034c57600080fd5b506101a3600160a060020a0360043516610a5a565b34801561036d57600080fd5b50610376610bc4565b60408051600160a060020a039092168252519081900360200190f35b34801561039e57600080fd5b506101cc610bd8565b6003805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561042d5780601f106104025761010080835404028352916020019161042d565b820191906000526020600020905b81548152906001019060200180831161041057829003601f168201915b505050505081565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60015490565b6000600160a060020a03831615156104b857600080fd5b600160a060020a0384166000908152602081905260409020548211156104dd57600080fd5b600160a060020a038416600090815260026020908152604080832033845290915290205482111561050d57600080fd5b600160a060020a038416600090815260208190526040902054610536908363ffffffff610bde16565b600160a060020a03808616600090815260208190526040808220939093559085168152205461056b908363ffffffff610bf016565b600160a060020a038085166000908152602081815260408083209490945591871681526002825282812033825290915220546105ad908363ffffffff610bde16565b600160a060020a03808616600081815260026020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b60055460ff1681565b336000908152600260209081526040808320600160a060020a03861684529091528120548083111561067657336000908152600260209081526040808320600160a060020a03881684529091528120556106ab565b610686818463ffffffff610bde16565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526020819052604090205490565b6005546101009004600160a060020a0316331461074857600080fd5b6005547501000000000000000000000000000000000000000000900460ff161561077157600080fd5b600580547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16750100000000000000000000000000000000000000000017905560068190556040805182815290517f02e1e1c38268e2c2e32fe988eed0396306d58317d9754c8b2d7b64fea354aed99181900360200190a150565b6004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561042d5780601f106104025761010080835404028352916020019161042d565b6000600160a060020a038316151561085e57600080fd5b3360009081526020819052604090205482111561087a57600080fd5b3360009081526020819052604090205461089a908363ffffffff610bde16565b3360009081526020819052604080822092909255600160a060020a038516815220546108cc908363ffffffff610bf016565b600160a060020a038416600081815260208181526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b336000908152600260209081526040808320600160a060020a038616845290915281205461095c908363ffffffff610bf016565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6005547501000000000000000000000000000000000000000000900460ff1681565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b6005546101009004600160a060020a03163314610a2a57600080fd5b6005547501000000000000000000000000000000000000000000900460ff161515610a5457600080fd5b42600655565b600080610a65610c03565b50600160a060020a038216600090815260208190526040812054908111610a8b57600080fd5b600160a060020a0380841660008181526020818152604080832083905560075481517f47e7ef2400000000000000000000000000000000000000000000000000000000815260048101959095526024850187905290519416936347e7ef2493604480820194918390030190829087803b158015610b0757600080fd5b505af1158015610b1b573d6000803e3d6000fd5b505050506040513d6020811015610b3157600080fd5b50511515610b3e57600080fd5b604080518281529051600160a060020a038516917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a2604080518281529051600091600160a060020a038616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350919050565b6005546101009004600160a060020a031681565b60065481565b600082821115610bea57fe5b50900390565b81810182811015610bfd57fe5b92915050565b6005547501000000000000000000000000000000000000000000900460ff161515610c2d57600080fd5b6005546101009004600160a060020a0316331480610c4c575060065442115b1515610c5757600080fd5b5600a165627a7a7230582086a4ff769a47da44a354610d6d18f8830c7bcd442e1fe8d90a934214c9ec7d7e0029000000000000000000000000704ed99a28d206c15a7ef660c2f75f8dd0bd35a8