0x6101606040523480156200001257600080fd5b506040518060400160405280600481526020017f4d49535300000000000000000000000000000000000000000000000000000000815250806040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4d495353000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4d495353000000000000000000000000000000000000000000000000000000008152508160039081620000fd919062000b24565b5080600490816200010f919062000b24565b50505062000132620001266200023160201b60201c565b6200023960201b60201c565b6200014d600a83620002ff60201b620010071790919060201c565b610120818152505062000170600b82620002ff60201b620010071790919060201c565b6101408181525050818051906020012060e08181525050808051906020012061010081815250504660a08181525050620001af6200035c60201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250505050506200022b3362000202620003b960201b60201c565b600a62000210919062000d9b565b6103e86200021f919062000dec565b620003c260201b60201c565b6200118e565b600033905090565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060208351101562000325576200031d836200052f60201b60201c565b905062000356565b826200033c836200059c60201b6200104b1760201c565b60000190816200034d919062000b24565b5060ff60001b90505b92915050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60e0516101005146306040516020016200039e95949392919062000ea8565b60405160208183030381529060405280519060200120905090565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000434576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200042b9062000f66565b60405180910390fd5b6200044860008383620005a660201b60201c565b80600260008282546200045c919062000f88565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200050f919062000fc3565b60405180910390a36200052b60008383620005c360201b60201c565b5050565b600080829050601f815111156200057f57826040517f305a27a90000000000000000000000000000000000000000000000000000000081526004016200057691906200105e565b60405180910390fd5b8051816200058d90620010b4565b60001c1760001b915050919050565b6000819050919050565b620005be838383620005c860201b620010551760201c565b505050565b505050565b620005e0838383620006c160201b6200110d1760201c565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200063c576200062682620006c660201b60201c565b620006366200072960201b60201c565b620006bc565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000698576200068283620006c660201b60201c565b620006926200072960201b60201c565b620006bb565b620006a983620006c660201b60201c565b620006ba82620006c660201b60201c565b5b5b505050565b505050565b62000726600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206200071a836200074d60201b60201c565b6200079560201b60201c565b50565b6200074b60066200073f6200082160201b60201c565b6200079560201b60201c565b565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000620007a76200082b60201b60201c565b905080620007be846000016200084960201b60201c565b10156200081c5782600001819080600181540180825580915050600190039060005260206000200160009091909190915055826001018290806001815401808255809150506001900390600052602060002001600090919091909150555b505050565b6000600254905090565b60006200084460086200089c60201b620011121760201c565b905090565b60008082805490500362000861576000905062000897565b816001838054905062000875919062001124565b815481106200088957620008886200115f565b5b906000526020600020015490505b919050565b600081600001549050919050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200092c57607f821691505b602082108103620009425762000941620008e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200096d565b620009b886836200096d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000a05620009ff620009f984620009d0565b620009da565b620009d0565b9050919050565b6000819050919050565b62000a2183620009e4565b62000a3962000a308262000a0c565b8484546200097a565b825550505050565b600090565b62000a5062000a41565b62000a5d81848462000a16565b505050565b5b8181101562000a855762000a7960008262000a46565b60018101905062000a63565b5050565b601f82111562000ad45762000a9e8162000948565b62000aa9846200095d565b8101602085101562000ab9578190505b62000ad162000ac8856200095d565b83018262000a62565b50505b505050565b600082821c905092915050565b600062000af96000198460080262000ad9565b1980831691505092915050565b600062000b14838362000ae6565b9150826002028217905092915050565b62000b2f82620008aa565b67ffffffffffffffff81111562000b4b5762000b4a620008b5565b5b62000b57825462000913565b62000b6482828562000a89565b600060209050601f83116001811462000b9c576000841562000b87578287015190505b62000b93858262000b06565b86555062000c03565b601f19841662000bac8662000948565b60005b8281101562000bd65784890151825560018201915060208501945060208101905062000baf565b8683101562000bf6578489015162000bf2601f89168262000ae6565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000c995780860481111562000c715762000c7062000c0b565b5b600185161562000c815780820291505b808102905062000c918562000c3a565b945062000c51565b94509492505050565b60008262000cb4576001905062000d87565b8162000cc4576000905062000d87565b816001811462000cdd576002811462000ce85762000d1e565b600191505062000d87565b60ff84111562000cfd5762000cfc62000c0b565b5b8360020a91508482111562000d175762000d1662000c0b565b5b5062000d87565b5060208310610133831016604e8410600b841016171562000d585782820a90508381111562000d525762000d5162000c0b565b5b62000d87565b62000d67848484600162000c47565b9250905081840481111562000d815762000d8062000c0b565b5b81810290505b9392505050565b600060ff82169050919050565b600062000da882620009d0565b915062000db58362000d8e565b925062000de47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ca2565b905092915050565b600062000df982620009d0565b915062000e0683620009d0565b925082820262000e1681620009d0565b9150828204841483151762000e305762000e2f62000c0b565b5b5092915050565b6000819050919050565b62000e4c8162000e37565b82525050565b62000e5d81620009d0565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e908262000e63565b9050919050565b62000ea28162000e83565b82525050565b600060a08201905062000ebf600083018862000e41565b62000ece602083018762000e41565b62000edd604083018662000e41565b62000eec606083018562000e52565b62000efb608083018462000e97565b9695505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000f4e601f8362000f05565b915062000f5b8262000f16565b602082019050919050565b6000602082019050818103600083015262000f818162000f3f565b9050919050565b600062000f9582620009d0565b915062000fa283620009d0565b925082820190508082111562000fbd5762000fbc62000c0b565b5b92915050565b600060208201905062000fda600083018462000e52565b92915050565b60005b838110156200100057808201518184015260208101905062000fe3565b60008484015250505050565b6000601f19601f8301169050919050565b60006200102a82620008aa565b62001036818562000f05565b93506200104881856020860162000fe0565b62001053816200100c565b840191505092915050565b600060208201905081810360008301526200107a81846200101d565b905092915050565b600081519050919050565b6000819050602082019050919050565b6000620010ab825162000e37565b80915050919050565b6000620010c18262001082565b82620010cd846200108d565b9050620010da816200109d565b925060208210156200111d57620011187fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff836020036008026200096d565b831692505b5050919050565b60006200113182620009d0565b91506200113e83620009d0565b925082820390508181111562001159576200115862000c0b565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60805160a05160c05160e051610100516101205161014051613db3620011e96000396000610ae401526000610ab001526000611ee601526000611ec5015260006115f70152600061164d015260006116760152613db36000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063715018a6116100f9578063981b24d011610097578063d505accf11610071578063d505accf146104fe578063d9d98ce41461051a578063dd62ed3e1461054a578063f2fde38b1461057a576101a9565b8063981b24d01461046e578063a457c2d71461049e578063a9059cbb146104ce576101a9565b806384b0196e116100d357806384b0196e146104045780638da5cb5b1461042857806395d89b41146104465780639711715a14610464576101a9565b8063715018a6146103ae57806379cc6790146103b85780637ecebe00146103d4576101a9565b806339509351116101665780634ee2cd7e116101405780634ee2cd7e146102ee5780635cffe9de1461031e578063613255ab1461034e57806370a082311461037e576101a9565b8063395093511461028657806340c10f19146102b657806342966c68146102d2576101a9565b806306fdde03146101ae578063095ea7b3146101cc57806318160ddd146101fc57806323b872dd1461021a578063313ce5671461024a5780633644e51514610268575b600080fd5b6101b6610596565b6040516101c3919061250c565b60405180910390f35b6101e660048036038101906101e191906125cc565b610628565b6040516101f39190612627565b60405180910390f35b61020461064b565b6040516102119190612651565b60405180910390f35b610234600480360381019061022f919061266c565b610655565b6040516102419190612627565b60405180910390f35b610252610684565b60405161025f91906126db565b60405180910390f35b61027061068d565b60405161027d919061270f565b60405180910390f35b6102a0600480360381019061029b91906125cc565b61069c565b6040516102ad9190612627565b60405180910390f35b6102d060048036038101906102cb91906125cc565b6106d3565b005b6102ec60048036038101906102e7919061272a565b6106e9565b005b610308600480360381019061030391906125cc565b6106fd565b6040516103159190612651565b60405180910390f35b610338600480360381019061033391906127fa565b61076d565b6040516103459190612627565b60405180910390f35b61036860048036038101906103639190612882565b61095a565b6040516103759190612651565b60405180910390f35b61039860048036038101906103939190612882565b6109d1565b6040516103a59190612651565b60405180910390f35b6103b6610a19565b005b6103d260048036038101906103cd91906125cc565b610a2d565b005b6103ee60048036038101906103e99190612882565b610a4d565b6040516103fb9190612651565b60405180910390f35b61040c610a9d565b60405161041f97969594939291906129b7565b60405180910390f35b610430610b9f565b60405161043d9190612a3b565b60405180910390f35b61044e610bc9565b60405161045b919061250c565b60405180910390f35b61046c610c5b565b005b6104886004803603810190610483919061272a565b610c6e565b6040516104959190612651565b60405180910390f35b6104b860048036038101906104b391906125cc565b610c9f565b6040516104c59190612627565b60405180910390f35b6104e860048036038101906104e391906125cc565b610d16565b6040516104f59190612627565b60405180910390f35b61051860048036038101906105139190612aae565b610d39565b005b610534600480360381019061052f91906125cc565b610e7b565b6040516105419190612651565b60405180910390f35b610564600480360381019061055f9190612b50565b610efd565b6040516105719190612651565b60405180910390f35b610594600480360381019061058f9190612882565b610f84565b005b6060600380546105a590612bbf565b80601f01602080910402602001604051908101604052809291908181526020018280546105d190612bbf565b801561061e5780601f106105f35761010080835404028352916020019161061e565b820191906000526020600020905b81548152906001019060200180831161060157829003601f168201915b5050505050905090565b600080610633611120565b9050610640818585611128565b600191505092915050565b6000600254905090565b600080610660611120565b905061066d8582856112f1565b61067885858561137d565b60019150509392505050565b60006012905090565b60006106976115f3565b905090565b6000806106a7611120565b90506106c88185856106b98589610efd565b6106c39190612c1f565b611128565b600191505092915050565b6106db6116aa565b6106e58282611728565b5050565b6106fa6106f4611120565b8261187e565b50565b600080600061074a84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611a4b565b91509150816107615761075c856109d1565b610763565b805b9250505092915050565b60006107788561095a565b8411156107ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b190612cc5565b60405180910390fd5b60006107c68686610e7b565b90506107d28786611728565b7f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd98773ffffffffffffffffffffffffffffffffffffffff166323e30c8b338989868a8a6040518763ffffffff1660e01b815260040161083696959493929190612d32565b6020604051808303816000875af1158015610855573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108799190612da3565b146108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b090612e42565b60405180910390fd5b60006108c3611b40565b90506108db883084896108d69190612c1f565b6112f1565b60008214806109165750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156109355761093088838861092b9190612c1f565b61187e565b61094b565b61093f888761187e565b61094a88828461137d565b5b60019250505095945050505050565b60003073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146109965760006109ca565b61099e61064b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6109c99190612e62565b5b9050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a216116aa565b610a2b6000611b45565b565b610a3f82610a39611120565b836112f1565b610a49828261187e565b5050565b6000610a96600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611112565b9050919050565b600060608060008060006060610add600a7f0000000000000000000000000000000000000000000000000000000000000000611c0b90919063ffffffff16565b610b11600b7f0000000000000000000000000000000000000000000000000000000000000000611c0b90919063ffffffff16565b46306000801b600067ffffffffffffffff811115610b3257610b31612e96565b5b604051908082528060200260200182016040528015610b605781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610bd890612bbf565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0490612bbf565b8015610c515780601f10610c2657610100808354040283529160200191610c51565b820191906000526020600020905b815481529060010190602001808311610c3457829003601f168201915b5050505050905090565b610c636116aa565b610c6b611cbb565b50565b6000806000610c7e846006611a4b565b9150915081610c9457610c8f61064b565b610c96565b805b92505050919050565b600080610caa611120565b90506000610cb88286610efd565b905083811015610cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf490612f37565b60405180910390fd5b610d0a8286868403611128565b60019250505092915050565b600080610d21611120565b9050610d2e81858561137d565b600191505092915050565b83421115610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7390612fa3565b60405180910390fd5b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610dab8c611d11565b89604051602001610dc196959493929190612fc3565b6040516020818303038152906040528051906020012090506000610de482611d6f565b90506000610df482878787611d89565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610e64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5b90613070565b60405180910390fd5b610e6f8a8a8a611128565b50505050505050505050565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee2906130dc565b60405180910390fd5b610ef58383611db4565b905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f8c6116aa565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ffb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff29061316e565b60405180910390fd5b61100481611b45565b50565b60006020835110156110235761101c83611dbc565b9050611045565b8261102d8361104b565b600001908161103c919061333a565b5060ff60001b90505b92915050565b6000819050919050565b61106083838361110d565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110aa5761109d82611e24565b6110a5611e77565b611108565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110f4576110e783611e24565b6110ef611e77565b611107565b6110fd83611e24565b61110682611e24565b5b5b505050565b505050565b600081600001549050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611197576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118e9061347e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fd90613510565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112e49190612651565b60405180910390a3505050565b60006112fd8484610efd565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146113775781811015611369576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113609061357c565b60405180910390fd5b6113768484848403611128565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e39061360e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361145b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611452906136a0565b60405180910390fd5b611466838383611e8b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e390613732565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115da9190612651565b60405180910390a36115ed848484611e9b565b50505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614801561166f57507f000000000000000000000000000000000000000000000000000000000000000046145b1561169c577f000000000000000000000000000000000000000000000000000000000000000090506116a7565b6116a4611ea0565b90505b90565b6116b2611120565b73ffffffffffffffffffffffffffffffffffffffff166116d0610b9f565b73ffffffffffffffffffffffffffffffffffffffff1614611726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171d9061379e565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178e9061380a565b60405180910390fd5b6117a360008383611e8b565b80600260008282546117b59190612c1f565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118669190612651565b60405180910390a361187a60008383611e9b565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e49061389c565b60405180910390fd5b6118f982600083611e8b565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561197f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119769061392e565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a329190612651565b60405180910390a3611a4683600084611e9b565b505050565b60008060008411611a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a889061399a565b60405180910390fd5b611a99611f36565b841115611adb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad290613a06565b60405180910390fd5b6000611af38585600001611f4790919063ffffffff16565b905083600001805490508103611b10576000809250925050611b39565b6001846001018281548110611b2857611b27613a26565b5b906000526020600020015492509250505b9250929050565b600090565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b606060ff60001b8314611c2857611c2183612000565b9050611cb5565b818054611c3490612bbf565b80601f0160208091040260200160405190810160405280929190818152602001828054611c6090612bbf565b8015611cad5780601f10611c8257610100808354040283529160200191611cad565b820191906000526020600020905b815481529060010190602001808311611c9057829003601f168201915b505050505090505b92915050565b6000611cc76008612074565b6000611cd1611f36565b90507f8030e83b04d87bef53480e26263266d6ca66863aa8506aca6f2559d18aa1cb6781604051611d029190612651565b60405180910390a18091505090565b600080600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050611d5e81611112565b9150611d6981612074565b50919050565b6000611d82611d7c6115f3565b8361208a565b9050919050565b6000806000611d9a878787876120cb565b91509150611da7816121ad565b8192505050949350505050565b600092915050565b600080829050601f81511115611e0957826040517f305a27a9000000000000000000000000000000000000000000000000000000008152600401611e00919061250c565b60405180910390fd5b805181611e1590613a85565b60001c1760001b915050919050565b611e74600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611e6f836109d1565b612313565b50565b611e896006611e8461064b565b612313565b565b611e96838383611055565b505050565b505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000004630604051602001611f1b959493929190613aec565b60405160208183030381529060405280519060200120905090565b6000611f426008611112565b905090565b600080838054905003611f5d5760009050611ffa565b600080848054905090505b80821015611fb1576000611f7c838361238e565b905084611f8987836123b4565b600001541115611f9b57809150611fab565b600181611fa89190612c1f565b92505b50611f68565b600082118015611fd9575083611fd386600185611fce9190612e62565b6123b4565b60000154145b15611ff457600182611feb9190612e62565b92505050611ffa565b81925050505b92915050565b6060600061200d836123d6565b90506000602067ffffffffffffffff81111561202c5761202b612e96565b5b6040519080825280601f01601f19166020018201604052801561205e5781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b6001816000016000828254019250508190555050565b60006040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c11156121065760006003915091506121a4565b60006001878787876040516000815260200160405260405161212b9493929190613b3f565b6020604051602081039080840390855afa15801561214d573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361219b576000600192509250506121a4565b80600092509250505b94509492505050565b600060048111156121c1576121c0613b84565b5b8160048111156121d4576121d3613b84565b5b031561231057600160048111156121ee576121ed613b84565b5b81600481111561220157612200613b84565b5b03612241576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223890613bff565b60405180910390fd5b6002600481111561225557612254613b84565b5b81600481111561226857612267613b84565b5b036122a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229f90613c6b565b60405180910390fd5b600360048111156122bc576122bb613b84565b5b8160048111156122cf576122ce613b84565b5b0361230f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230690613cfd565b60405180910390fd5b5b50565b600061231d611f36565b90508061232c84600001612426565b10156123895782600001819080600181540180825580915050600190039060005260206000200160009091909190915055826001018290806001815401808255809150506001900390600052602060002001600090919091909150555b505050565b6000600282841861239f9190613d4c565b8284166123ac9190612c1f565b905092915050565b600080836000528260206000200190506123cd81612472565b91505092915050565b60008060ff8360001c169050601f81111561241d576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b60008082805490500361243c576000905061246d565b816001838054905061244e9190612e62565b8154811061245f5761245e613a26565b5b906000526020600020015490505b919050565b6000819050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124b657808201518184015260208101905061249b565b60008484015250505050565b6000601f19601f8301169050919050565b60006124de8261247c565b6124e88185612487565b93506124f8818560208601612498565b612501816124c2565b840191505092915050565b6000602082019050818103600083015261252681846124d3565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061256382612538565b9050919050565b61257381612558565b811461257e57600080fd5b50565b6000813590506125908161256a565b92915050565b6000819050919050565b6125a981612596565b81146125b457600080fd5b50565b6000813590506125c6816125a0565b92915050565b600080604083850312156125e3576125e261252e565b5b60006125f185828601612581565b9250506020612602858286016125b7565b9150509250929050565b60008115159050919050565b6126218161260c565b82525050565b600060208201905061263c6000830184612618565b92915050565b61264b81612596565b82525050565b60006020820190506126666000830184612642565b92915050565b6000806000606084860312156126855761268461252e565b5b600061269386828701612581565b93505060206126a486828701612581565b92505060406126b5868287016125b7565b9150509250925092565b600060ff82169050919050565b6126d5816126bf565b82525050565b60006020820190506126f060008301846126cc565b92915050565b6000819050919050565b612709816126f6565b82525050565b60006020820190506127246000830184612700565b92915050565b6000602082840312156127405761273f61252e565b5b600061274e848285016125b7565b91505092915050565b600061276282612558565b9050919050565b61277281612757565b811461277d57600080fd5b50565b60008135905061278f81612769565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126127ba576127b9612795565b5b8235905067ffffffffffffffff8111156127d7576127d661279a565b5b6020830191508360018202830111156127f3576127f261279f565b5b9250929050565b6000806000806000608086880312156128165761281561252e565b5b600061282488828901612780565b955050602061283588828901612581565b9450506040612846888289016125b7565b935050606086013567ffffffffffffffff81111561286757612866612533565b5b612873888289016127a4565b92509250509295509295909350565b6000602082840312156128985761289761252e565b5b60006128a684828501612581565b91505092915050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6128e4816128af565b82525050565b6128f381612558565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61292e81612596565b82525050565b60006129408383612925565b60208301905092915050565b6000602082019050919050565b6000612964826128f9565b61296e8185612904565b935061297983612915565b8060005b838110156129aa5781516129918882612934565b975061299c8361294c565b92505060018101905061297d565b5085935050505092915050565b600060e0820190506129cc600083018a6128db565b81810360208301526129de81896124d3565b905081810360408301526129f281886124d3565b9050612a016060830187612642565b612a0e60808301866128ea565b612a1b60a0830185612700565b81810360c0830152612a2d8184612959565b905098975050505050505050565b6000602082019050612a5060008301846128ea565b92915050565b612a5f816126bf565b8114612a6a57600080fd5b50565b600081359050612a7c81612a56565b92915050565b612a8b816126f6565b8114612a9657600080fd5b50565b600081359050612aa881612a82565b92915050565b600080600080600080600060e0888a031215612acd57612acc61252e565b5b6000612adb8a828b01612581565b9750506020612aec8a828b01612581565b9650506040612afd8a828b016125b7565b9550506060612b0e8a828b016125b7565b9450506080612b1f8a828b01612a6d565b93505060a0612b308a828b01612a99565b92505060c0612b418a828b01612a99565b91505092959891949750929550565b60008060408385031215612b6757612b6661252e565b5b6000612b7585828601612581565b9250506020612b8685828601612581565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612bd757607f821691505b602082108103612bea57612be9612b90565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c2a82612596565b9150612c3583612596565b9250828201905080821115612c4d57612c4c612bf0565b5b92915050565b7f4552433230466c6173684d696e743a20616d6f756e742065786365656473206d60008201527f6178466c6173684c6f616e000000000000000000000000000000000000000000602082015250565b6000612caf602b83612487565b9150612cba82612c53565b604082019050919050565b60006020820190508181036000830152612cde81612ca2565b9050919050565b600082825260208201905092915050565b82818337600083830152505050565b6000612d118385612ce5565b9350612d1e838584612cf6565b612d27836124c2565b840190509392505050565b600060a082019050612d4760008301896128ea565b612d5460208301886128ea565b612d616040830187612642565b612d6e6060830186612642565b8181036080830152612d81818486612d05565b9050979650505050505050565b600081519050612d9d81612a82565b92915050565b600060208284031215612db957612db861252e565b5b6000612dc784828501612d8e565b91505092915050565b7f4552433230466c6173684d696e743a20696e76616c69642072657475726e207660008201527f616c756500000000000000000000000000000000000000000000000000000000602082015250565b6000612e2c602483612487565b9150612e3782612dd0565b604082019050919050565b60006020820190508181036000830152612e5b81612e1f565b9050919050565b6000612e6d82612596565b9150612e7883612596565b9250828203905081811115612e9057612e8f612bf0565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612f21602583612487565b9150612f2c82612ec5565b604082019050919050565b60006020820190508181036000830152612f5081612f14565b9050919050565b7f45524332305065726d69743a206578706972656420646561646c696e65000000600082015250565b6000612f8d601d83612487565b9150612f9882612f57565b602082019050919050565b60006020820190508181036000830152612fbc81612f80565b9050919050565b600060c082019050612fd86000830189612700565b612fe560208301886128ea565b612ff260408301876128ea565b612fff6060830186612642565b61300c6080830185612642565b61301960a0830184612642565b979650505050505050565b7f45524332305065726d69743a20696e76616c6964207369676e61747572650000600082015250565b600061305a601e83612487565b915061306582613024565b602082019050919050565b600060208201905081810360008301526130898161304d565b9050919050565b7f4552433230466c6173684d696e743a2077726f6e6720746f6b656e0000000000600082015250565b60006130c6601b83612487565b91506130d182613090565b602082019050919050565b600060208201905081810360008301526130f5816130b9565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613158602683612487565b9150613163826130fc565b604082019050919050565b600060208201905081810360008301526131878161314b565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026131f07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826131b3565b6131fa86836131b3565b95508019841693508086168417925050509392505050565b6000819050919050565b600061323761323261322d84612596565b613212565b612596565b9050919050565b6000819050919050565b6132518361321c565b61326561325d8261323e565b8484546131c0565b825550505050565b600090565b61327a61326d565b613285818484613248565b505050565b5b818110156132a95761329e600082613272565b60018101905061328b565b5050565b601f8211156132ee576132bf8161318e565b6132c8846131a3565b810160208510156132d7578190505b6132eb6132e3856131a3565b83018261328a565b50505b505050565b600082821c905092915050565b6000613311600019846008026132f3565b1980831691505092915050565b600061332a8383613300565b9150826002028217905092915050565b6133438261247c565b67ffffffffffffffff81111561335c5761335b612e96565b5b6133668254612bbf565b6133718282856132ad565b600060209050601f8311600181146133a45760008415613392578287015190505b61339c858261331e565b865550613404565b601f1984166133b28661318e565b60005b828110156133da578489015182556001820191506020850194506020810190506133b5565b868310156133f757848901516133f3601f891682613300565b8355505b6001600288020188555050505b505050505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613468602483612487565b91506134738261340c565b604082019050919050565b600060208201905081810360008301526134978161345b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006134fa602283612487565b91506135058261349e565b604082019050919050565b60006020820190508181036000830152613529816134ed565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613566601d83612487565b915061357182613530565b602082019050919050565b6000602082019050818103600083015261359581613559565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006135f8602583612487565b91506136038261359c565b604082019050919050565b60006020820190508181036000830152613627816135eb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061368a602383612487565b91506136958261362e565b604082019050919050565b600060208201905081810360008301526136b98161367d565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061371c602683612487565b9150613727826136c0565b604082019050919050565b6000602082019050818103600083015261374b8161370f565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613788602083612487565b915061379382613752565b602082019050919050565b600060208201905081810360008301526137b78161377b565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006137f4601f83612487565b91506137ff826137be565b602082019050919050565b60006020820190508181036000830152613823816137e7565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613886602183612487565b91506138918261382a565b604082019050919050565b600060208201905081810360008301526138b581613879565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613918602283612487565b9150613923826138bc565b604082019050919050565b600060208201905081810360008301526139478161390b565b9050919050565b7f4552433230536e617073686f743a206964206973203000000000000000000000600082015250565b6000613984601683612487565b915061398f8261394e565b602082019050919050565b600060208201905081810360008301526139b381613977565b9050919050565b7f4552433230536e617073686f743a206e6f6e6578697374656e74206964000000600082015250565b60006139f0601d83612487565b91506139fb826139ba565b602082019050919050565b60006020820190508181036000830152613a1f816139e3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b6000819050602082019050919050565b6000613a7c82516126f6565b80915050919050565b6000613a9082613a55565b82613a9a84613a60565b9050613aa581613a70565b92506020821015613ae557613ae07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff836020036008026131b3565b831692505b5050919050565b600060a082019050613b016000830188612700565b613b0e6020830187612700565b613b1b6040830186612700565b613b286060830185612642565b613b3560808301846128ea565b9695505050505050565b6000608082019050613b546000830187612700565b613b6160208301866126cc565b613b6e6040830185612700565b613b7b6060830184612700565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b6000613be9601883612487565b9150613bf482613bb3565b602082019050919050565b60006020820190508181036000830152613c1881613bdc565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b6000613c55601f83612487565b9150613c6082613c1f565b602082019050919050565b60006020820190508181036000830152613c8481613c48565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ce7602283612487565b9150613cf282613c8b565b604082019050919050565b60006020820190508181036000830152613d1681613cda565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d5782612596565b9150613d6283612596565b925082613d7257613d71613d1d565b5b82820490509291505056fea2646970667358221220cb769a8b7860fc86cc3367a21e41bfd98cb9bd196edfc8bcb30531d4c523430964736f6c63430008120033