0x608060405234801561000f575f80fd5b506109cb8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610085575f3560e01c80638960dd2e116100585780638960dd2e1461011a5780639c2c770b14610130578063d826f88f14610138578063f91f093714610140575f80fd5b80631963f2b3146100895780631cff79cd1461009e5780632b5ff52f146100c757806367d95cc2146100f2575b5f80fd5b61009c610097366004610622565b610154565b005b6100b16100ac36600461067c565b6101d4565b6040516100be91906106ed565b60405180910390f35b6100da6100d536600461071f565b6102ef565b6040516001600160a01b0390911681526020016100be565b6100da610100366004610736565b60016020525f90815260409020546001600160a01b031681565b610122610461565b6040519081526020016100be565b610122610477565b61009c6104cf565b335f90815260208190526040902054610122565b335f908152602081815260408220805460018101825590835291200161017b8284836107ee565b50335f818152602081905260409020547f0b31186104d10b97bc16cb9a9ee13b7709e0865ba6270f9ddd1f620895e3473c906101b9906001906108bc565b60408051918252602082018590520160405180910390a25050565b6001600160a01b038381165f9081526001602052604090205460609116331461023a5760405162461bcd60e51b8152602060048201526013602482015272139bdd081e5bdd5c8819195c1b1bde5b595b9d606a1b60448201526064015b60405180910390fd5b5f80856001600160a01b031685856040516102569291906108d5565b5f604051808303815f865af19150503d805f811461028f576040519150601f19603f3d011682016040523d82523d5f602084013e610294565b606091505b5091509150816102e65760405162461bcd60e51b815260206004820152601760248201527f466f727761726465642063616c6c2072657665727465640000000000000000006044820152606401610231565b95945050505050565b5f806102fa336104e8565b90505f81511161033f5760405162461bcd60e51b815260206004820152601060248201526f139bdd1a1a5b99c8189d5999995c995960821b6044820152606401610231565b80516020820120831461038c5760405162461bcd60e51b8152602060048201526015602482015274084eacccccae440c8decae640dcdee840dac2e8c6d605b1b6044820152606401610231565b335f9081526020819052604081206103a391610559565b8051602082015ff091506001600160a01b0382166103f35760405162461bcd60e51b815260206004820152600d60248201526c10d4915055114819985a5b1959609a1b6044820152606401610231565b6001600160a01b0382165f818152600160205260409081902080546001600160a01b031916339081179091558351915190917f78c9d1e385f0bb7d4dd0237eb7ab708b0780c73031080977cd5469bab04ed6909161045391815260200190565b60405180910390a350919050565b5f61046b336104e8565b80519060200120905090565b335f908152602081905260408120815b81548110156104ca578181815481106104a2576104a26108e4565b905f5260205f200180546104b59061076a565b6104c09150846108f8565b9250600101610487565b505090565b335f9081526020819052604081206104e691610559565b565b6001600160a01b0381165f9081526020819052604081206060915b8154811015610552578282828154811061051f5761051f6108e4565b905f5260205f200160405160200161053892919061090b565b60408051601f198184030181529190529250600101610503565b5050919050565b5080545f8255905f5260205f20908101906105749190610577565b50565b80821115610593575f61058a8282610597565b50600101610577565b5090565b5080546105a39061076a565b5f825580601f106105b2575050565b601f0160209004905f5260205f209081019061057491905b80821115610593575f81556001016105ca565b5f8083601f8401126105ed575f80fd5b50813567ffffffffffffffff811115610604575f80fd5b60208301915083602082850101111561061b575f80fd5b9250929050565b5f8060208385031215610633575f80fd5b823567ffffffffffffffff811115610649575f80fd5b610655858286016105dd565b90969095509350505050565b80356001600160a01b0381168114610677575f80fd5b919050565b5f805f6040848603121561068e575f80fd5b61069784610661565b9250602084013567ffffffffffffffff8111156106b2575f80fd5b6106be868287016105dd565b9497909650939450505050565b5f5b838110156106e55781810151838201526020016106cd565b50505f910152565b602081525f825180602084015261070b8160408501602087016106cb565b601f01601f19169190910160400192915050565b5f6020828403121561072f575f80fd5b5035919050565b5f60208284031215610746575f80fd5b61074f82610661565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061077e57607f821691505b60208210810361079c57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156107e957805f5260205f20601f840160051c810160208510156107c75750805b601f840160051c820191505b818110156107e6575f81556001016107d3565b50505b505050565b67ffffffffffffffff83111561080657610806610756565b61081a83610814835461076a565b836107a2565b5f601f84116001811461084b575f85156108345750838201355b5f19600387901b1c1916600186901b1783556107e6565b5f83815260208120601f198716915b8281101561087a578685013582556020948501946001909201910161085a565b5086821015610896575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156108cf576108cf6108a8565b92915050565b818382375f9101908152919050565b634e487b7160e01b5f52603260045260245ffd5b808201808211156108cf576108cf6108a8565b5f8351602061091e8285602089016106cb565b81840191505f855461092f8161076a565b60018281168015610947576001811461095c57610986565b60ff1984168752821515830287019450610986565b895f5260205f205f5b8481101561097e57815489820152908301908701610965565b505082870194505b5092999850505050505050505056fea26469706673582212202c5d62468c6941ee1fa4d1f736f6543eec61534222aa7b1f67ad774031bb71686468797063430000020033