60806040525f60035573cf0c122c6b73ff809c693db761e7baebe62b6a2e60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801562000068575f80fd5b5060405162000d9338038062000d9383398181016040528101906200008e91906200024b565b815f90816200009e919062000505565b508060019081620000b0919062000505565b506509184e72a0006002819055505050620005e9565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6200012782620000df565b810181811067ffffffffffffffff82111715620001495762000148620000ef565b5b80604052505050565b5f6200015d620000c6565b90506200016b82826200011c565b919050565b5f67ffffffffffffffff8211156200018d576200018c620000ef565b5b6200019882620000df565b9050602081019050919050565b5f5b83811015620001c4578082015181840152602081019050620001a7565b5f8484015250505050565b5f620001e5620001df8462000170565b62000152565b905082815260208101848484011115620002045762000203620000db565b5b62000211848285620001a5565b509392505050565b5f82601f83011262000230576200022f620000d7565b5b815162000242848260208601620001cf565b91505092915050565b5f8060408385031215620002645762000263620000cf565b5b5f83015167ffffffffffffffff811115620002845762000283620000d3565b5b620002928582860162000219565b925050602083015167ffffffffffffffff811115620002b657620002b5620000d3565b5b620002c48582860162000219565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200031d57607f821691505b602082108103620003335762000332620002d8565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200035a565b620003a386836200035a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620003ed620003e7620003e184620003bb565b620003c4565b620003bb565b9050919050565b5f819050919050565b6200040883620003cd565b620004206200041782620003f4565b84845462000366565b825550505050565b5f90565b6200043662000428565b62000443818484620003fd565b505050565b5b818110156200046a576200045e5f826200042c565b60018101905062000449565b5050565b601f821115620004b957620004838162000339565b6200048e846200034b565b810160208510156200049e578190505b620004b6620004ad856200034b565b83018262000448565b50505b505050565b5f82821c905092915050565b5f620004db5f1984600802620004be565b1980831691505092915050565b5f620004f58383620004ca565b9150826002028217905092915050565b6200051082620002ce565b67ffffffffffffffff8111156200052c576200052b620000ef565b5b62000538825462000305565b620005458282856200046e565b5f60209050601f8311600181146200057b575f841562000566578287015190505b620005728582620004e8565b865550620005e1565b601f1984166200058b8662000339565b5f5b82811015620005b4578489015182556001820191506020850194506020810190506200058d565b86831015620005d45784890151620005d0601f891682620004ca565b8355505b6001600288020188555050505b505050505050565b61079c80620005f75f395ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c806306fdde031461006457806318160ddd14610082578063313ce567146100a057806370a08231146100be57806395d89b41146100ee578063dcf2fc391461010c575b5f80fd5b61006c610128565b60405161007991906103fd565b60405180910390f35b61008a6101b3565b6040516100979190610435565b60405180910390f35b6100a86101b9565b6040516100b59190610469565b60405180910390f35b6100d860048036038101906100d391906104ed565b6101bd565b6040516100e59190610435565b60405180910390f35b6100f6610223565b60405161010391906103fd565b60405180910390f35b61012660048036038101906101219190610682565b6102af565b005b5f805461013490610709565b80601f016020809104026020016040519081016040528092919081815260200182805461016090610709565b80156101ab5780601f10610182576101008083540402835291602001916101ab565b820191905f5260205f20905b81548152906001019060200180831161018e57829003601f168201915b505050505081565b60025481565b5f90565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461021a5760035461021c565b5f5b9050919050565b6001805461023090610709565b80601f016020809104026020016040519081016040528092919081815260200182805461025c90610709565b80156102a75780601f1061027e576101008083540402835291602001916102a7565b820191905f5260205f20905b81548152906001019060200180831161028a57829003601f168201915b505050505081565b806003819055505f5b825181101561036e578281815181106102d4576102d3610739565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516103599190610435565b60405180910390a380806001019150506102b8565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156103aa57808201518184015260208101905061038f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6103cf82610373565b6103d9818561037d565b93506103e981856020860161038d565b6103f2816103b5565b840191505092915050565b5f6020820190508181035f83015261041581846103c5565b905092915050565b5f819050919050565b61042f8161041d565b82525050565b5f6020820190506104485f830184610426565b92915050565b5f60ff82169050919050565b6104638161044e565b82525050565b5f60208201905061047c5f83018461045a565b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6104bc82610493565b9050919050565b6104cc816104b2565b81146104d6575f80fd5b50565b5f813590506104e7816104c3565b92915050565b5f602082840312156105025761050161048b565b5b5f61050f848285016104d9565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610552826103b5565b810181811067ffffffffffffffff821117156105715761057061051c565b5b80604052505050565b5f610583610482565b905061058f8282610549565b919050565b5f67ffffffffffffffff8211156105ae576105ad61051c565b5b602082029050602081019050919050565b5f80fd5b5f6105d56105d084610594565b61057a565b905080838252602082019050602084028301858111156105f8576105f76105bf565b5b835b81811015610621578061060d88826104d9565b8452602084019350506020810190506105fa565b5050509392505050565b5f82601f83011261063f5761063e610518565b5b813561064f8482602086016105c3565b91505092915050565b6106618161041d565b811461066b575f80fd5b50565b5f8135905061067c81610658565b92915050565b5f80604083850312156106985761069761048b565b5b5f83013567ffffffffffffffff8111156106b5576106b461048f565b5b6106c18582860161062b565b92505060206106d28582860161066e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061072057607f821691505b602082108103610733576107326106dc565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea264697066735822122041f43c0b2e7f8a808f9c288a4d66b93afb0aa54f668c494dac4b7377b005f4b464736f6c63430008180033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000002b2320464c4f4b492052657761726420546f6b656e2028576562736974653a20666c6f6b6976322e636f6d290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029464c4f4b492052657761726420546f6b656e2028576562736974653a20666c6f6b6976322e636f6d290000000000000000000000000000000000000000000000