60806040526040518060400160405280600d81526020017f506c6179626f7920536869626100000000000000000000000000000000000000815250600d908051906020019062000051929190620009c8565b506040518060400160405280600581526020017f5053484942000000000000000000000000000000000000000000000000000000815250600e90805190602001906200009f929190620009c8565b506009600f60006101000a81548160ff021916908360ff160217905550348015620000c957600080fd5b5060405162003b1838038062003b188339818101604052810190620000ef919062000a8f565b6000620001016200049860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550683635c9adc5dea00000600b81905550600b5460001962000202919062000d24565b60001962000211919062000bf1565b600a81905550683635c9adc5dea0000060016000620002356200049860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002836200049860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b54604051620002e4919062000b80565b60405180910390a36200034b60026000620003046200049860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620004a060201b60201c565b600360006200035f6200049860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620003b36200049860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006620004166200049860201b60201c565b9080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960006101000a81548160ff0219169083151502179055505062000e97565b600033905090565b6000600a54821115620004ea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004e19062000b5e565b60405180910390fd5b6000620004fc6200052060201b60201c565b90506200051881846200055a60201b620010541790919060201c565b915050919050565b600080600062000535620005ac60201b60201c565b915091506200055381836200055a60201b620010541790919060201c565b9250505090565b6000620005a483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620008a560201b60201c565b905092915050565b6000806000600a5490506000683635c9adc5dea00000905060005b6006805490508110156200085157826002600060068481548110620005f157620005f062000de9565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180620006e357508160036000600684815481106200067b576200067a62000de9565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156200070357600a54683635c9adc5dea0000094509450505050620008a1565b6200079d600260006006848154811062000722576200072162000de9565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846200090d60201b6200109e1790919060201c565b9250620008396003600060068481548110620007be57620007bd62000de9565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836200090d60201b6200109e1790919060201c565b91508080620008489062000cd6565b915050620005c7565b5062000877683635c9adc5dea00000600a546200055a60201b620010541790919060201c565b8210156200089857600a54683635c9adc5dea00000935093505050620008a1565b81819350935050505b9091565b60008083118290620008ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008e6919062000b3a565b60405180910390fd5b506000838562000900919062000bb9565b9050809150509392505050565b60006200095783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506200095f60201b60201c565b905092915050565b6000838311158290620009aa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009a1919062000b3a565b60405180910390fd5b5060008385620009bb919062000bf1565b9050809150509392505050565b828054620009d69062000ca0565b90600052602060002090601f016020900481019282620009fa576000855562000a46565b82601f1062000a1557805160ff191683800117855562000a46565b8280016001018555821562000a46579182015b8281111562000a4557825182559160200191906001019062000a28565b5b50905062000a55919062000a59565b5090565b5b8082111562000a7457600081600090555060010162000a5a565b5090565b60008151905062000a898162000e7d565b92915050565b60006020828403121562000aa85762000aa762000e18565b5b600062000ab88482850162000a78565b91505092915050565b600062000ace8262000b9d565b62000ada818562000ba8565b935062000aec81856020860162000c6a565b62000af78162000e1d565b840191505092915050565b600062000b11602a8362000ba8565b915062000b1e8262000e2e565b604082019050919050565b62000b348162000c60565b82525050565b6000602082019050818103600083015262000b56818462000ac1565b905092915050565b6000602082019050818103600083015262000b798162000b02565b9050919050565b600060208201905062000b97600083018462000b29565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000bc68262000c60565b915062000bd38362000c60565b92508262000be65762000be562000d8b565b5b828204905092915050565b600062000bfe8262000c60565b915062000c0b8362000c60565b92508282101562000c215762000c2062000d5c565b5b828203905092915050565b600062000c398262000c40565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000c8a57808201518184015260208101905062000c6d565b8381111562000c9a576000848401525b50505050565b6000600282049050600182168062000cb957607f821691505b6020821081141562000cd05762000ccf62000dba565b5b50919050565b600062000ce38262000c60565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141562000d195762000d1862000d5c565b5b600182019050919050565b600062000d318262000c60565b915062000d3e8362000c60565b92508262000d515762000d5062000d8b565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b62000e888162000c2c565b811462000e9457600080fd5b50565b612c718062000ea76000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80634549b039116100b85780639d346ac41161007c5780639d346ac414610366578063a457c2d714610396578063a9059cbb146103c6578063dd62ed3e146103f6578063ebad8f1614610426578063fbf080cb1461043057610137565b80634549b039146102ae5780635ff1b181146102de57806367368170146102fc57806370a082311461031857806395d89b411461034857610137565b806323b872dd116100ff57806323b872dd146101e25780632d3e69ea146102125780632d83811914610230578063313ce56714610260578063395093511461027e57610137565b8063053ab1821461013c57806306fdde0314610158578063081d2b3c14610176578063095ea7b31461019457806318160ddd146101c4575b600080fd5b610156600480360381019061015191906120ca565b61044c565b005b6101606105c6565b60405161016d91906123af565b60405180910390f35b61017e610658565b60405161018b9190612350565b60405180910390f35b6101ae60048036038101906101a9919061208a565b61067e565b6040516101bb9190612394565b60405180910390f35b6101cc61069c565b6040516101d99190612551565b60405180910390f35b6101fc60048036038101906101f79190612037565b6106ad565b6040516102099190612394565b60405180910390f35b61021a610786565b6040516102279190612394565b60405180910390f35b61024a600480360381019061024591906120ca565b61079d565b6040516102579190612551565b60405180910390f35b61026861080b565b604051610275919061256c565b60405180910390f35b6102986004803603810190610293919061208a565b610822565b6040516102a59190612394565b60405180910390f35b6102c860048036038101906102c391906120f7565b6108d5565b6040516102d59190612551565b60405180910390f35b6102e661095e565b6040516102f39190612551565b60405180910390f35b6103166004803603810190610311919061208a565b610968565b005b610332600480360381019061032d9190611fca565b610a96565b60405161033f9190612551565b60405180910390f35b610350610adf565b60405161035d91906123af565b60405180910390f35b610380600480360381019061037b9190611fca565b610b71565b60405161038d9190612394565b60405180910390f35b6103b060048036038101906103ab919061208a565b610bc7565b6040516103bd9190612394565b60405180910390f35b6103e060048036038101906103db919061208a565b610c94565b6040516103ed9190612394565b60405180910390f35b610410600480360381019061040b9190611ff7565b610cb2565b60405161041d9190612551565b60405180910390f35b61042e610d39565b005b61044a60048036038101906104459190611fca565b610e28565b005b60006104566110e8565b9050600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156104e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104dc90612531565b60405180910390fd5b60006104f0836110f0565b50505050905061054881600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461109e90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506105a081600a5461109e90919063ffffffff16565b600a819055506105bb8360085461114890919063ffffffff16565b600881905550505050565b6060600d80546105d590612740565b80601f016020809104026020016040519081016040528092919081815260200182805461060190612740565b801561064e5780601f106106235761010080835404028352916020019161064e565b820191906000526020600020905b81548152906001019060200180831161063157829003601f168201915b5050505050905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061069261068b6110e8565b84846111a6565b6001905092915050565b6000683635c9adc5dea00000905090565b60006106ba848484611371565b61077b846106c66110e8565b61077685604051806060016040528060288152602001612bef60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061072c6110e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a759092919063ffffffff16565b6111a6565b600190509392505050565b6000600960009054906101000a900460ff16905090565b6000600a548211156107e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107db906123f1565b60405180910390fd5b60006107ee611ad9565b9050610803818461105490919063ffffffff16565b915050919050565b6000600f60009054906101000a900460ff16905090565b60006108cb61082f6110e8565b846108c685600460006108406110e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114890919063ffffffff16565b6111a6565b6001905092915050565b6000683635c9adc5dea00000831115610923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091a90612451565b60405180910390fd5b81610942576000610933846110f0565b50505050905080915050610958565b600061094d846110f0565b505050915050809150505b92915050565b6000600854905090565b6109706110e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f490612491565b60405180910390fd5b610a4f81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114890919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600e8054610aee90612740565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1a90612740565b8015610b675780601f10610b3c57610100808354040283529160200191610b67565b820191906000526020600020905b815481529060010190602001808311610b4a57829003601f168201915b5050505050905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000610c8a610bd46110e8565b84610c8585604051806060016040528060258152602001612c176025913960046000610bfe6110e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a759092919063ffffffff16565b6111a6565b6001905092915050565b6000610ca8610ca16110e8565b8484611371565b6001905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d416110e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc590612491565b60405180910390fd5b60011515600960009054906101000a900460ff1615151415610e0a576000600960006101000a81548160ff021916908315150217905550610e26565b6001600960006101000a81548160ff0219169083151502179055505b565b610e306110e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb490612491565b60405180910390fd5b60011515600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610f73576000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611051565b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f1d2288ff481fd28dcc877dd640cc5729f3d0a091e9e2bfff38f6214c00e2ae5f81600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660405161104892919061236b565b60405180910390a15b50565b600061109683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b04565b905092915050565b60006110e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a75565b905092915050565b600033905090565b600080600080600080600061110488611b67565b915091506000611112611ad9565b905060008060006111248c8686611bba565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b600080828461115791906125a3565b90508381101561119c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119390612431565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120d90612511565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127d90612411565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113649190612551565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d8906124d1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611451576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611448906123d1565b60405180910390fd5b60008111611494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148b906124b1565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115355750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561157e576000811461157d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611574906124f1565b60405180910390fd5b5b60011515600960009054906101000a900460ff16151514806115d257506115a3611c18565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8061160f57506115e0611c18565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611a1957600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156116b75750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561186a5761172881604051806060016040528060268152602001612bc960269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a759092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117bd81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114890919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161185d9190612551565b60405180910390a3611a14565b6118d681604051806060016040528060268152602001612bc960269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a759092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061196b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114890919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a0b9190612551565b60405180910390a35b611a70565b60011515600960009054906101000a900460ff16151514611a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a66906124f1565b60405180910390fd5b5b505050565b6000838311158290611abd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab491906123af565b60405180910390fd5b5060008385611acc9190612684565b9050809150509392505050565b6000806000611ae6611c41565b91509150611afd818361105490919063ffffffff16565b9250505090565b60008083118290611b4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4291906123af565b60405180910390fd5b5060008385611b5a91906125f9565b9050809150509392505050565b6000806000611b946002611b866103e88761105490919063ffffffff16565b611f1090919063ffffffff16565b90506000611bab828661109e90919063ffffffff16565b90508082935093505050915091565b600080600080611bd38588611f1090919063ffffffff16565b90506000611bea8688611f1090919063ffffffff16565b90506000611c01828461109e90919063ffffffff16565b905082818395509550955050505093509350939050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000806000600a5490506000683635c9adc5dea00000905060005b600680549050811015611ec557826002600060068481548110611c8257611c81612848565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180611d705750816003600060068481548110611d0857611d07612848565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15611d8e57600a54683635c9adc5dea0000094509450505050611f0c565b611e1e6002600060068481548110611da957611da8612848565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461109e90919063ffffffff16565b9250611eb06003600060068481548110611e3b57611e3a612848565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361109e90919063ffffffff16565b91508080611ebd90612772565b915050611c5c565b50611ee4683635c9adc5dea00000600a5461105490919063ffffffff16565b821015611f0357600a54683635c9adc5dea00000935093505050611f0c565b81819350935050505b9091565b600080831415611f235760009050611f85565b60008284611f31919061262a565b9050828482611f4091906125f9565b14611f80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7790612471565b60405180910390fd5b809150505b92915050565b600081359050611f9a81612b83565b92915050565b600081359050611faf81612b9a565b92915050565b600081359050611fc481612bb1565b92915050565b600060208284031215611fe057611fdf612877565b5b6000611fee84828501611f8b565b91505092915050565b6000806040838503121561200e5761200d612877565b5b600061201c85828601611f8b565b925050602061202d85828601611f8b565b9150509250929050565b6000806000606084860312156120505761204f612877565b5b600061205e86828701611f8b565b935050602061206f86828701611f8b565b925050604061208086828701611fb5565b9150509250925092565b600080604083850312156120a1576120a0612877565b5b60006120af85828601611f8b565b92505060206120c085828601611fb5565b9150509250929050565b6000602082840312156120e0576120df612877565b5b60006120ee84828501611fb5565b91505092915050565b6000806040838503121561210e5761210d612877565b5b600061211c85828601611fb5565b925050602061212d85828601611fa0565b9150509250929050565b612140816126b8565b82525050565b61214f816126ca565b82525050565b600061216082612587565b61216a8185612592565b935061217a81856020860161270d565b6121838161287c565b840191505092915050565b600061219b602383612592565b91506121a68261288d565b604082019050919050565b60006121be602a83612592565b91506121c9826128dc565b604082019050919050565b60006121e1602283612592565b91506121ec8261292b565b604082019050919050565b6000612204601b83612592565b915061220f8261297a565b602082019050919050565b6000612227601f83612592565b9150612232826129a3565b602082019050919050565b600061224a602183612592565b9150612255826129cc565b604082019050919050565b600061226d602083612592565b915061227882612a1b565b602082019050919050565b6000612290602983612592565b915061229b82612a44565b604082019050919050565b60006122b3602583612592565b91506122be82612a93565b604082019050919050565b60006122d6600083612592565b91506122e182612ae2565b600082019050919050565b60006122f9602483612592565b915061230482612ae5565b604082019050919050565b600061231c602c83612592565b915061232782612b34565b604082019050919050565b61233b816126f6565b82525050565b61234a81612700565b82525050565b60006020820190506123656000830184612137565b92915050565b60006040820190506123806000830185612137565b61238d6020830184612146565b9392505050565b60006020820190506123a96000830184612146565b92915050565b600060208201905081810360008301526123c98184612155565b905092915050565b600060208201905081810360008301526123ea8161218e565b9050919050565b6000602082019050818103600083015261240a816121b1565b9050919050565b6000602082019050818103600083015261242a816121d4565b9050919050565b6000602082019050818103600083015261244a816121f7565b9050919050565b6000602082019050818103600083015261246a8161221a565b9050919050565b6000602082019050818103600083015261248a8161223d565b9050919050565b600060208201905081810360008301526124aa81612260565b9050919050565b600060208201905081810360008301526124ca81612283565b9050919050565b600060208201905081810360008301526124ea816122a6565b9050919050565b6000602082019050818103600083015261250a816122c9565b9050919050565b6000602082019050818103600083015261252a816122ec565b9050919050565b6000602082019050818103600083015261254a8161230f565b9050919050565b60006020820190506125666000830184612332565b92915050565b60006020820190506125816000830184612341565b92915050565b600081519050919050565b600082825260208201905092915050565b60006125ae826126f6565b91506125b9836126f6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156125ee576125ed6127bb565b5b828201905092915050565b6000612604826126f6565b915061260f836126f6565b92508261261f5761261e6127ea565b5b828204905092915050565b6000612635826126f6565b9150612640836126f6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612679576126786127bb565b5b828202905092915050565b600061268f826126f6565b915061269a836126f6565b9250828210156126ad576126ac6127bb565b5b828203905092915050565b60006126c3826126d6565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561272b578082015181840152602081019050612710565b8381111561273a576000848401525b50505050565b6000600282049050600182168061275857607f821691505b6020821081141561276c5761276b612819565b5b50919050565b600061277d826126f6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156127b0576127af6127bb565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b612b8c816126b8565b8114612b9757600080fd5b50565b612ba3816126ca565b8114612bae57600080fd5b50565b612bba816126f6565b8114612bc557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c01518611325b255d0c1f35c2d0900eced9cfd3642c4c42ef7a2b64650e21d4464736f6c634300080600330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d