608060405234801561000f575f80fd5b506040518060400160405280600481526020016347616c6160e01b8152506040518060400160405280600481526020016347414c4160e01b81525081600390816100599190610106565b5060046100668282610106565b5050506101c5565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061009657607f821691505b6020821081036100b457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561010157805f5260205f20601f840160051c810160208510156100df5750805b601f840160051c820191505b818110156100fe575f81556001016100eb565b50505b505050565b81516001600160401b0381111561011f5761011f61006e565b6101338161012d8454610082565b846100ba565b602080601f831160018114610166575f841561014f5750858301515b5f19600386901b1c1916600185901b1785556101bd565b5f85815260208120601f198616915b8281101561019457888601518255948401946001909101908401610175565b50858210156101b157878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b610c00806101d25f395ff3fe608060405234801561000f575f80fd5b50600436106100cf575f3560e01c806340c10f191161007d578063a457c2d711610058578063a457c2d7146101ad578063a9059cbb146101c0578063dd62ed3e146101d3575f80fd5b806340c10f191461015b57806370a082311461017057806395d89b41146101a5575f80fd5b806323b872dd116100ad57806323b872dd14610126578063313ce567146101395780633950935114610148575f80fd5b806306fdde03146100d3578063095ea7b3146100f157806318160ddd14610114575b5f80fd5b6100db610218565b6040516100e89190610a14565b60405180910390f35b6101046100ff366004610a8f565b6102a8565b60405190151581526020016100e8565b6002545b6040519081526020016100e8565b610104610134366004610ab7565b6102c1565b604051601281526020016100e8565b610104610156366004610a8f565b6102e4565b61016e610169366004610a8f565b61032f565b005b61011861017e366004610af0565b73ffffffffffffffffffffffffffffffffffffffff165f9081526020819052604090205490565b6100db61033d565b6101046101bb366004610a8f565b61034c565b6101046101ce366004610a8f565b610421565b6101186101e1366004610b10565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260016020908152604080832093909416825291909152205490565b60606003805461022790610b41565b80601f016020809104026020016040519081016040528092919081815260200182805461025390610b41565b801561029e5780601f106102755761010080835404028352916020019161029e565b820191905f5260205f20905b81548152906001019060200180831161028157829003601f168201915b5050505050905090565b5f336102b581858561042e565b60019150505b92915050565b5f336102ce8582856105e0565b6102d98585856106b6565b506001949350505050565b335f81815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906102b5908290869061032a908790610b92565b61042e565b6103398282610923565b5050565b60606004805461022790610b41565b335f81815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015610414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102d9828686840361042e565b5f336102b58185856106b6565b73ffffffffffffffffffffffffffffffffffffffff83166104d0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161040b565b73ffffffffffffffffffffffffffffffffffffffff8216610573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161040b565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381165f908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106b057818110156106a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161040b565b6106b0848484840361042e565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161040b565b73ffffffffffffffffffffffffffffffffffffffff82166107fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161040b565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260208190526040902054818110156108b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161040b565b73ffffffffffffffffffffffffffffffffffffffff8481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36106b0565b73ffffffffffffffffffffffffffffffffffffffff82166109a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161040b565b8060025f8282546109b19190610b92565b909155505073ffffffffffffffffffffffffffffffffffffffff82165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a8a575f80fd5b919050565b5f8060408385031215610aa0575f80fd5b610aa983610a67565b946020939093013593505050565b5f805f60608486031215610ac9575f80fd5b610ad284610a67565b9250610ae060208501610a67565b9150604084013590509250925092565b5f60208284031215610b00575f80fd5b610b0982610a67565b9392505050565b5f8060408385031215610b21575f80fd5b610b2a83610a67565b9150610b3860208401610a67565b90509250929050565b600181811c90821680610b5557607f821691505b602082108103610b8c577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b808201808211156102bb577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffdfea2646970667358221220cdc0cea9cbf82c2d4e57407f9d3b1edd7ef2ab7832b6cd8f0dad1e8c0ccc03f764736f6c63430008190033