608060405234801561000f575f5ffd5b5060405161140338038061140383398101604081905261002e9161024b565b610039838383610041565b505050610477565b60095460ff16156100985760405162461bcd60e51b815260206004820152601360248201527f414c52454144595f494e495449414c495a454400000000000000000000000000604482015260640160405180910390fd5b5f6100a3848261034c565b5060016100b0838261034c565b506002805460ff191660ff83161790556100c86100e8565b6006556100d3610108565b60075550506009805460ff1916600117905550565b5f6101aa602090811b610819179081906101019082901c565b9250505090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516101389190610406565b6040519081900390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc661016a6100e8565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b4690565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126101d1575f5ffd5b81516001600160401b038111156101ea576101ea6101ae565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610218576102186101ae565b60405281815283820160200185101561022f575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f5f5f6060848603121561025d575f5ffd5b83516001600160401b03811115610272575f5ffd5b61027e868287016101c2565b602086015190945090506001600160401b0381111561029b575f5ffd5b6102a7868287016101c2565b925050604084015160ff811681146102bd575f5ffd5b809150509250925092565b600181811c908216806102dc57607f821691505b6020821081036102fa57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561034757805f5260205f20601f840160051c810160208510156103255750805b601f840160051c820191505b81811015610344575f8155600101610331565b50505b505050565b81516001600160401b03811115610365576103656101ae565b6103798161037384546102c8565b84610300565b6020601f8211600181146103ab575f83156103945750848201515b5f19600385901b1c1916600184901b178455610344565b5f84815260208120601f198516915b828110156103da57878501518255602094850194600190920191016103ba565b50848210156103f757868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f5f8354610413816102c8565b60018216801561042a576001811461043f5761046c565b60ff198316865281151582028601935061046c565b865f5260205f205f5b8381101561046457815488820152600190910190602001610448565b505081860193505b509195945050505050565b610f7f806104845f395ff3fe608060405234801561000f575f5ffd5b50600436106100f0575f3560e01c806340c10f19116100935780639dc29fac116100635780639dc29fac146101ee578063a9059cbb14610201578063d505accf14610214578063dd62ed3e14610227575f5ffd5b806340c10f191461018c57806370a082311461019f5780637ecebe00146101c757806395d89b41146101e6575f5ffd5b806318160ddd116100ce57806318160ddd1461014a57806323b872dd1461015c578063313ce5671461016f5780633644e51514610184575f5ffd5b806306fdde03146100f4578063095ea7b3146101125780631624f6c614610135575b5f5ffd5b6100fc61025f565b6040516101099190610a8e565b60405180910390f35b610125610120366004610ade565b6102ee565b6040519015158152602001610109565b610148610143366004610bb5565b61035a565b005b6003545b604051908152602001610109565b61012561016a366004610c29565b6103f8565b60025460405160ff9091168152602001610109565b61014e6104f4565b61014861019a366004610ade565b610519565b61014e6101ad366004610c63565b6001600160a01b03165f9081526004602052604090205490565b61014e6101d5366004610c63565b60086020525f908152604090205481565b6100fc610527565b6101486101fc366004610ade565b610536565b61012561020f366004610ade565b610540565b610148610222366004610c7c565b6105c1565b61014e610235366004610ce2565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b60605f805461026d90610d13565b80601f016020809104026020016040519081016040528092919081815260200182805461029990610d13565b80156102e45780601f106102bb576101008083540402835291602001916102e4565b820191905f5260205f20905b8154815290600101906020018083116102c757829003601f168201915b5050505050905090565b335f8181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103489086815260200190565b60405180910390a35060015b92915050565b60095460ff16156103a85760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b60448201526064015b60405180910390fd5b5f6103b38482610d97565b5060016103c08382610d97565b506002805460ff191660ff83161790556103d861081d565b6006556103e3610835565b60075550506009805460ff1916600117905550565b6001600160a01b0383165f9081526005602090815260408083203384529091528120545f1981146104515761042d81846108d6565b6001600160a01b0386165f9081526005602090815260408083203384529091529020555b6001600160a01b0385165f9081526004602052604090205461047390846108d6565b6001600160a01b038087165f9081526004602052604080822093909355908616815220546104a19084610938565b6001600160a01b038086165f8181526004602052604090819020939093559151908716905f516020610f2a5f395f51905f52906104e19087815260200190565b60405180910390a3506001949350505050565b5f60065461050061081d565b146105125761050d610835565b905090565b5060075490565b6105238282610996565b5050565b60606001805461026d90610d13565b6105238282610a10565b335f9081526004602052604081205461055990836108d6565b335f90815260046020526040808220929092556001600160a01b038516815220546105849083610938565b6001600160a01b0384165f818152600460205260409081902092909255905133905f516020610f2a5f395f51905f52906103489086815260200190565b428410156106115760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f45585049524544000000000000000000604482015260640161039f565b5f600161061c6104f4565b6001600160a01b038a165f90815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061066983610e66565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e001604051602081830303815290604052805190602001206040516020016106e292919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa15801561073d573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116158015906107735750876001600160a01b0316816001600160a01b0316145b6107b05760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b604482015260640161039f565b6001600160a01b038181165f9081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b4690565b5f6108198061082e63ffffffff8216565b9250505090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516108659190610e7e565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc661089661081d565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f818310156109275760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f7700000000604482015260640161039f565b6109318284610eef565b9392505050565b5f806109448385610f02565b9050838110156109315760405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f770000000000000000604482015260640161039f565b6109a260035482610938565b6003556001600160a01b0382165f908152600460205260409020546109c79082610938565b6001600160a01b0383165f818152600460205260408082209390935591519091905f516020610f2a5f395f51905f5290610a049085815260200190565b60405180910390a35050565b6001600160a01b0382165f90815260046020526040902054610a3290826108d6565b6001600160a01b0383165f90815260046020526040902055600354610a5790826108d6565b6003556040518181525f906001600160a01b038416905f516020610f2a5f395f51905f5290602001610a04565b610a8c610f15565b565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610ad9575f5ffd5b919050565b5f5f60408385031215610aef575f5ffd5b610af883610ac3565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610b29575f5ffd5b813567ffffffffffffffff811115610b4357610b43610b06565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610b7257610b72610b06565b604052818152838201602001851015610b89575f5ffd5b816020850160208301375f918101602001919091529392505050565b803560ff81168114610ad9575f5ffd5b5f5f5f60608486031215610bc7575f5ffd5b833567ffffffffffffffff811115610bdd575f5ffd5b610be986828701610b1a565b935050602084013567ffffffffffffffff811115610c05575f5ffd5b610c1186828701610b1a565b925050610c2060408501610ba5565b90509250925092565b5f5f5f60608486031215610c3b575f5ffd5b610c4484610ac3565b9250610c5260208501610ac3565b929592945050506040919091013590565b5f60208284031215610c73575f5ffd5b61093182610ac3565b5f5f5f5f5f5f5f60e0888a031215610c92575f5ffd5b610c9b88610ac3565b9650610ca960208901610ac3565b95506040880135945060608801359350610cc560808901610ba5565b9699959850939692959460a0840135945060c09093013592915050565b5f5f60408385031215610cf3575f5ffd5b610cfc83610ac3565b9150610d0a60208401610ac3565b90509250929050565b600181811c90821680610d2757607f821691505b602082108103610d4557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610d9257805f5260205f20601f840160051c81016020851015610d705750805b601f840160051c820191505b81811015610d8f575f8155600101610d7c565b50505b505050565b815167ffffffffffffffff811115610db157610db1610b06565b610dc581610dbf8454610d13565b84610d4b565b6020601f821160018114610df7575f8315610de05750848201515b5f19600385901b1c1916600184901b178455610d8f565b5f84815260208120601f198516915b82811015610e265787850151825560209485019460019092019101610e06565b5084821015610e4357868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b5f60018201610e7757610e77610e52565b5060010190565b5f5f8354610e8b81610d13565b600182168015610ea25760018114610eb757610ee4565b60ff1983168652811515820286019350610ee4565b865f5260205f205f5b83811015610edc57815488820152600190910190602001610ec0565b505081860193505b509195945050505050565b8181038181111561035457610354610e52565b8082018082111561035457610354610e52565b634e487b7160e01b5f52605160045260245ffdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212207d6d4e433ec4a2467df0d3952563a25cc0070c5f7bc4e60bc9c1c067fc97e80264736f6c634300081c0033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000004746573740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047465737400000000000000000000000000000000000000000000000000000000