60806040523480156200001157600080fd5b506040518060200160405280600081525062000033816200003a60201b60201c565b50620003b0565b80600290816200004b9190620002c9565b5050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620000d157607f821691505b602082108103620000e757620000e662000089565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000112565b6200015d868362000112565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620001aa620001a46200019e8462000175565b6200017f565b62000175565b9050919050565b6000819050919050565b620001c68362000189565b620001de620001d582620001b1565b8484546200011f565b825550505050565b600090565b620001f5620001e6565b62000202818484620001bb565b505050565b5b818110156200022a576200021e600082620001eb565b60018101905062000208565b5050565b601f82111562000279576200024381620000ed565b6200024e8462000102565b810160208510156200025e578190505b620002766200026d8562000102565b83018262000207565b50505b505050565b600082821c905092915050565b60006200029e600019846008026200027e565b1980831691505092915050565b6000620002b983836200028b565b9150826002028217905092915050565b620002d4826200004f565b67ffffffffffffffff811115620002f057620002ef6200005a565b5b620002fc8254620000b8565b620003098282856200022e565b600060209050601f8311600181146200034157600084156200032c578287015190505b620003388582620002ab565b865550620003a8565b601f1984166200035186620000ed565b60005b828110156200037b5784890151825560018201915060208501945060208101905062000354565b868310156200039b578489015162000397601f8916826200028b565b8355505b6001600288020188555050505b505050505050565b615c8580620003c06000396000f3fe608060405234801561001057600080fd5b50600436106101575760003560e01c806396ee52ae116100c3578063c7608f711161007c578063c7608f711461044a578063e985e9c514610466578063f0ad42f114610496578063f242432a146104c6578063f995df9e146104e2578063fccbbc9d1461051757610157565b806396ee52ae14610370578063a22cb465146103a4578063a50fdefd146103c0578063a6d86818146103de578063ab0ca44b146103fc578063b2845c511461041a57610157565b80635809d30f116101155780635809d30f14610254578063598680d0146102885780636beb7959146102b85780637903a617146102d657806385ecb87f1461030657806390d3be191461033b57610157565b8062fdd58e1461015c57806301ffc9a71461018c5780630e89341c146101bc5780632eb2c2d6146101ec5780634e1273f4146102085780634e70bf0714610238575b600080fd5b61017660048036038101906101719190613a0e565b610533565b6040516101839190613a5d565b60405180910390f35b6101a660048036038101906101a19190613ad0565b6105fb565b6040516101b39190613b18565b60405180910390f35b6101d660048036038101906101d19190613b33565b6106dd565b6040516101e39190613bf0565b60405180910390f35b61020660048036038101906102019190613e0f565b610771565b005b610222600480360381019061021d9190613fa1565b610812565b60405161022f91906140d7565b60405180910390f35b610252600480360381019061024d91906144bd565b61092b565b005b61026e60048036038101906102699190614548565b610e37565b60405161027f959493929190614584565b60405180910390f35b6102a2600480360381019061029d9190614548565b610fb9565b6040516102af91906145e5565b60405180910390f35b6102c0610fe0565b6040516102cd9190613bf0565b60405180910390f35b6102f060048036038101906102eb9190614548565b61106e565b6040516102fd919061460f565b60405180910390f35b610320600480360381019061031b919061462a565b6110a1565b6040516103329695949392919061467d565b60405180910390f35b6103556004803603810190610350919061462a565b611173565b6040516103679695949392919061467d565b60405180910390f35b61038a600480360381019061038591906146de565b611245565b60405161039b95949392919061471e565b60405180910390f35b6103be60048036038101906103b9919061479d565b6112f0565b005b6103c8611306565b6040516103d591906145e5565b60405180910390f35b6103e6611320565b6040516103f391906145e5565b60405180910390f35b61040461133a565b60405161041191906147f9565b60405180910390f35b610434600480360381019061042f9190614548565b61133f565b60405161044191906145e5565b60405180910390f35b610464600480360381019061045f9190614814565b611366565b005b610480600480360381019061047b919061487b565b611fe5565b60405161048d9190613b18565b60405180910390f35b6104b060048036038101906104ab91906148bb565b612079565b6040516104bd9190613bf0565b60405180910390f35b6104e060048036038101906104db91906148fb565b612132565b005b6104fc60048036038101906104f79190614548565b6121d3565b60405161050e969594939291906149b0565b60405180910390f35b610531600480360381019061052c9190614bde565b6123d5565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059a90614cf7565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106c657507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806106d657506106d582612ae7565b5b9050919050565b6060600280546106ec90614d46565b80601f016020809104026020016040519081016040528092919081815260200182805461071890614d46565b80156107655780601f1061073a57610100808354040283529160200191610765565b820191906000526020600020905b81548152906001019060200180831161074857829003601f168201915b50505050509050919050565b610779612b51565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806107bf57506107be856107b9612b51565b611fe5565b5b6107fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f590614de9565b60405180910390fd5b61080b8585858585612b59565b5050505050565b60608151835114610858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084f90614e7b565b60405180910390fd5b6000835167ffffffffffffffff81111561087557610874613c17565b5b6040519080825280602002602001820160405280156108a35781602001602082028036833780820191505090505b50905060005b8451811015610920576108f08582815181106108c8576108c7614e9b565b5b60200260200101518583815181106108e3576108e2614e9b565b5b6020026020010151610533565b82828151811061090357610902614e9b565b5b6020026020010181815250508061091990614ef9565b90506108a9565b508091505092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600a60008567ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d790614f8d565b60405180910390fd5b60008290508060000151600660008667ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206000019081610a209190615159565b508060200151600660008667ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206001019081610a5c9190615159565b508060400151600660008667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060020160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508060600151600660008667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508060800151600760008667ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206000019081610b429190615159565b508060a00151600760008667ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206001019081610b7e9190615159565b508060c00151600760008667ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206002019081610bba9190615159565b508060e00151600760008667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060030160006101000a81548163ffffffff021916908363ffffffff160217905550806101000151600760008667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060030160046101000a81548163ffffffff021916908363ffffffff160217905550806101200151600760008667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060030160086101000a81548161ffff021916908361ffff1602179055506000836040015167ffffffffffffffff16118015610ccc57506000836060015167ffffffffffffffff16115b8015610ce2575060008360e0015163ffffffff16115b8015610cf8575060648360e0015163ffffffff16105b8015610d0f5750600083610100015163ffffffff16115b8015610d265750606483610100015163ffffffff16105b8015610d3c5750600083610120015161ffff1610155b8015610d5257506103e883610120015161ffff16105b610d91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d889061529d565b60405180910390fd5b81600960008667ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000209080519060200190610dcc92919061388c565b50600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fa572efbd2d19ac1e29f4ddfd2494d1ba0a7893b282a7c2787531356a071cfb7160405160405180910390a350505050565b6006602052806000526040600020600091509050806000018054610e5a90614d46565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8690614d46565b8015610ed35780601f10610ea857610100808354040283529160200191610ed3565b820191906000526020600020905b815481529060010190602001808311610eb657829003601f168201915b505050505090806001018054610ee890614d46565b80601f0160208091040260200160405190810160405280929190818152602001828054610f1490614d46565b8015610f615780601f10610f3657610100808354040283529160200191610f61565b820191906000526020600020905b815481529060010190602001808311610f4457829003601f168201915b5050505050908060020160009054906101000a900467ffffffffffffffff16908060020160089054906101000a900467ffffffffffffffff16908060020160109054906101000a900467ffffffffffffffff16905085565b60086020528060005260406000206000915054906101000a900467ffffffffffffffff1681565b60048054610fed90614d46565b80601f016020809104026020016040519081016040528092919081815260200182805461101990614d46565b80156110665780601f1061103b57610100808354040283529160200191611066565b820191906000526020600020905b81548152906001019060200180831161104957829003601f168201915b505050505081565b600a6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60205282600052604060002060205281600052604060002060205280600052604060002060009250925050508060000160009054906101000a900467ffffffffffffffff16908060000160089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900467ffffffffffffffff16908060010160089054906101000a900467ffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154905086565b600f60205282600052604060002060205281600052604060002060205280600052604060002060009250925050508060000160009054906101000a900467ffffffffffffffff16908060000160089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900467ffffffffffffffff16908060010160089054906101000a900467ffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154905086565b600d602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900467ffffffffffffffff16908060000160089054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160149054906101000a900467ffffffffffffffff16908060020154905085565b6113026112fb612b51565b8383612e7a565b5050565b600360009054906101000a900467ffffffffffffffff1681565b600560009054906101000a900467ffffffffffffffff1681565b600181565b600b6020528060005260406000206000915054906101000a900467ffffffffffffffff1681565b60006040518060400160405280600481526020017f30786162000000000000000000000000000000000000000000000000000000008152509050600080600190508367ffffffffffffffff166113c6878967ffffffffffffffff16610533565b1015611407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fe90615355565b60405180910390fd5b8367ffffffffffffffff16600c60008967ffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156114ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a5906153c1565b60405180910390fd5b6114cf86868967ffffffffffffffff168767ffffffffffffffff1687612132565b6114da8560016112f0565b8367ffffffffffffffff16600c60008967ffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461154e91906153e1565b925050819055508367ffffffffffffffff16600c60008967ffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115c99190615415565b925050819055506005600081819054906101000a900467ffffffffffffffff166115f290615449565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060006040518060a00160405280600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1681526020018667ffffffffffffffff16815260200142815250905060006040518060c00160405280600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1681526020018767ffffffffffffffff1681526020018560ff1667ffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff16815260200142815250905080600e60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206000600560009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060208201518160000160086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060608201518160010160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060808201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a0820151816003015590505060006040518060c00160405280600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff1681526020018a73ffffffffffffffffffffffffffffffffffffffff1681526020018867ffffffffffffffff1681526020018560ff1667ffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff16815260200142815250905080600e60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206000600560009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060208201518160000160086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060608201518160010160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060808201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a0820151816003015590505080600f60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206000600560009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060208201518160000160086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060608201518160010160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060808201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a0820151816003015590505082600d6000600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206000600560009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060208201518160000160086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550608082015181600201559050508660086000600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060008282829054906101000a900467ffffffffffffffff16611f2d9190615479565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f4d76ee6fdba0b93457d0613a4f234d3b811bf62a20aaeb54ad347eca632a93218a604051611fd191906145e5565b60405180910390a450505050505050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6009602052816000526040600020818154811061209557600080fd5b906000526020600020016000915091505080546120b190614d46565b80601f01602080910402602001604051908101604052809291908181526020018280546120dd90614d46565b801561212a5780601f106120ff5761010080835404028352916020019161212a565b820191906000526020600020905b81548152906001019060200180831161210d57829003601f168201915b505050505081565b61213a612b51565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480612180575061217f8561217a612b51565b611fe5565b5b6121bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b690614de9565b60405180910390fd5b6121cc8585858585612fe6565b5050505050565b60076020528060005260406000206000915090508060000180546121f690614d46565b80601f016020809104026020016040519081016040528092919081815260200182805461222290614d46565b801561226f5780601f106122445761010080835404028352916020019161226f565b820191906000526020600020905b81548152906001019060200180831161225257829003601f168201915b50505050509080600101805461228490614d46565b80601f01602080910402602001604051908101604052809291908181526020018280546122b090614d46565b80156122fd5780601f106122d2576101008083540402835291602001916122fd565b820191906000526020600020905b8154815290600101906020018083116122e057829003601f168201915b50505050509080600201805461231290614d46565b80601f016020809104026020016040519081016040528092919081815260200182805461233e90614d46565b801561238b5780601f106123605761010080835404028352916020019161238b565b820191906000526020600020905b81548152906001019060200180831161236e57829003601f168201915b5050505050908060030160009054906101000a900463ffffffff16908060030160049054906101000a900463ffffffff16908060030160089054906101000a900461ffff16905086565b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603612444576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243b90615527565b60405180910390fd5b6000836040015167ffffffffffffffff1611801561247057506000836060015167ffffffffffffffff16115b801561248a57506000836080015167ffffffffffffffff16115b80156124a057506000826060015163ffffffff16115b80156124b657506064826060015163ffffffff16105b80156124cc57506000826080015163ffffffff16115b80156124e257506064826080015163ffffffff16105b80156124f7575060008260a0015161ffff1610155b801561250c57506103e88260a0015161ffff16105b61254b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125429061529d565b60405180910390fd5b600083905060008390506000856080015167ffffffffffffffff1610156125a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259e906155b9565b60405180910390fd5b6003600081819054906101000a900467ffffffffffffffff166125c990615449565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160066000600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060008201518160000190816126429190615159565b5060208201518160010190816126589190615159565b5060408201518160020160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060608201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060808201518160020160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050508060076000600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff168152602001908152602001600020600082015181600001908161273c9190615159565b5060208201518160010190816127529190615159565b5060408201518160020190816127689190615159565b5060608201518160030160006101000a81548163ffffffff021916908363ffffffff16021790555060808201518160030160046101000a81548163ffffffff021916908363ffffffff16021790555060a08201518160030160086101000a81548161ffff021916908361ffff16021790555090505061284c33600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff16876080015167ffffffffffffffff166040518060400160405280600181526020017f2000000000000000000000000000000000000000000000000000000000000000815250613281565b846080015167ffffffffffffffff16600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f45cb06800ef86f2198c818ff1aa517473fcefada84b9980518925b682cacff4b60405160405180910390a48260096000600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff168152602001908152602001600020908051906020019061291092919061388c565b50846080015167ffffffffffffffff16600c6000600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550846080015160086000600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508460800151600b6000600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555033600a6000600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b8151835114612b9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b949061564b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c03906156dd565b60405180910390fd5b6000612c16612b51565b9050612c26818787878787613431565b60005b8451811015612dd7576000858281518110612c4757612c46614e9b565b5b602002602001015190506000858381518110612c6657612c65614e9b565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cfe9061576f565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612dbc9190615415565b9250508190555050505080612dd090614ef9565b9050612c29565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051612e4e92919061578f565b60405180910390a4612e64818787878787613439565b612e72818787878787613441565b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612edf90615838565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612fd99190613b18565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603613055576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161304c906156dd565b60405180910390fd5b600061305f612b51565b9050600061306c85613618565b9050600061307985613618565b9050613089838989858589613431565b600080600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905085811015613120576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131179061576f565b60405180910390fd5b85810360008089815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560008089815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131d59190615415565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628a8a604051613252929190615858565b60405180910390a4613268848a8a86868a613439565b613276848a8a8a8a8a613692565b505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036132f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132e7906158f3565b60405180910390fd5b60006132fa612b51565b9050600061330785613618565b9050600061331485613618565b905061332583600089858589613431565b8460008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133849190615415565b925050819055508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628989604051613402929190615858565b60405180910390a461341983600089858589613439565b61342883600089898989613692565b50505050505050565b505050505050565b505050505050565b6134608473ffffffffffffffffffffffffffffffffffffffff16613869565b15613610578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016134a6959493929190615968565b6020604051808303816000875af19250505080156134e257506040513d601f19601f820116820180604052508101906134df91906159e5565b60015b613587576134ee615a1f565b806308c379a00361354a5750613502615a41565b8061350d575061354c565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135419190613bf0565b60405180910390fd5b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161357e90615b43565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461360e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161360590615bd5565b60405180910390fd5b505b505050505050565b60606000600167ffffffffffffffff81111561363757613636613c17565b5b6040519080825280602002602001820160405280156136655781602001602082028036833780820191505090505b509050828160008151811061367d5761367c614e9b565b5b60200260200101818152505080915050919050565b6136b18473ffffffffffffffffffffffffffffffffffffffff16613869565b15613861578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b81526004016136f7959493929190615bf5565b6020604051808303816000875af192505050801561373357506040513d601f19601f8201168201806040525081019061373091906159e5565b60015b6137d85761373f615a1f565b806308c379a00361379b5750613753615a41565b8061375e575061379d565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137929190613bf0565b60405180910390fd5b505b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137cf90615b43565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461385f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161385690615bd5565b60405180910390fd5b505b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b8280548282559060005260206000209081019282156138d4579160200282015b828111156138d35782518290816138c39190615159565b50916020019190600101906138ac565b5b5090506138e191906138e5565b5090565b5b8082111561390557600081816138fc9190613909565b506001016138e6565b5090565b50805461391590614d46565b6000825580601f106139275750613946565b601f0160209004906000526020600020908101906139459190613949565b5b50565b5b8082111561396257600081600090555060010161394a565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006139a58261397a565b9050919050565b6139b58161399a565b81146139c057600080fd5b50565b6000813590506139d2816139ac565b92915050565b6000819050919050565b6139eb816139d8565b81146139f657600080fd5b50565b600081359050613a08816139e2565b92915050565b60008060408385031215613a2557613a24613970565b5b6000613a33858286016139c3565b9250506020613a44858286016139f9565b9150509250929050565b613a57816139d8565b82525050565b6000602082019050613a726000830184613a4e565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613aad81613a78565b8114613ab857600080fd5b50565b600081359050613aca81613aa4565b92915050565b600060208284031215613ae657613ae5613970565b5b6000613af484828501613abb565b91505092915050565b60008115159050919050565b613b1281613afd565b82525050565b6000602082019050613b2d6000830184613b09565b92915050565b600060208284031215613b4957613b48613970565b5b6000613b57848285016139f9565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613b9a578082015181840152602081019050613b7f565b60008484015250505050565b6000601f19601f8301169050919050565b6000613bc282613b60565b613bcc8185613b6b565b9350613bdc818560208601613b7c565b613be581613ba6565b840191505092915050565b60006020820190508181036000830152613c0a8184613bb7565b905092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613c4f82613ba6565b810181811067ffffffffffffffff82111715613c6e57613c6d613c17565b5b80604052505050565b6000613c81613966565b9050613c8d8282613c46565b919050565b600067ffffffffffffffff821115613cad57613cac613c17565b5b602082029050602081019050919050565b600080fd5b6000613cd6613cd184613c92565b613c77565b90508083825260208201905060208402830185811115613cf957613cf8613cbe565b5b835b81811015613d225780613d0e88826139f9565b845260208401935050602081019050613cfb565b5050509392505050565b600082601f830112613d4157613d40613c12565b5b8135613d51848260208601613cc3565b91505092915050565b600080fd5b600067ffffffffffffffff821115613d7a57613d79613c17565b5b613d8382613ba6565b9050602081019050919050565b82818337600083830152505050565b6000613db2613dad84613d5f565b613c77565b905082815260208101848484011115613dce57613dcd613d5a565b5b613dd9848285613d90565b509392505050565b600082601f830112613df657613df5613c12565b5b8135613e06848260208601613d9f565b91505092915050565b600080600080600060a08688031215613e2b57613e2a613970565b5b6000613e39888289016139c3565b9550506020613e4a888289016139c3565b945050604086013567ffffffffffffffff811115613e6b57613e6a613975565b5b613e7788828901613d2c565b935050606086013567ffffffffffffffff811115613e9857613e97613975565b5b613ea488828901613d2c565b925050608086013567ffffffffffffffff811115613ec557613ec4613975565b5b613ed188828901613de1565b9150509295509295909350565b600067ffffffffffffffff821115613ef957613ef8613c17565b5b602082029050602081019050919050565b6000613f1d613f1884613ede565b613c77565b90508083825260208201905060208402830185811115613f4057613f3f613cbe565b5b835b81811015613f695780613f5588826139c3565b845260208401935050602081019050613f42565b5050509392505050565b600082601f830112613f8857613f87613c12565b5b8135613f98848260208601613f0a565b91505092915050565b60008060408385031215613fb857613fb7613970565b5b600083013567ffffffffffffffff811115613fd657613fd5613975565b5b613fe285828601613f73565b925050602083013567ffffffffffffffff81111561400357614002613975565b5b61400f85828601613d2c565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61404e816139d8565b82525050565b60006140608383614045565b60208301905092915050565b6000602082019050919050565b600061408482614019565b61408e8185614024565b935061409983614035565b8060005b838110156140ca5781516140b18882614054565b97506140bc8361406c565b92505060018101905061409d565b5085935050505092915050565b600060208201905081810360008301526140f18184614079565b905092915050565b600067ffffffffffffffff82169050919050565b614116816140f9565b811461412157600080fd5b50565b6000813590506141338161410d565b92915050565b600080fd5b600080fd5b600067ffffffffffffffff82111561415e5761415d613c17565b5b61416782613ba6565b9050602081019050919050565b600061418761418284614143565b613c77565b9050828152602081018484840111156141a3576141a2613d5a565b5b6141ae848285613d90565b509392505050565b600082601f8301126141cb576141ca613c12565b5b81356141db848260208601614174565b91505092915050565b600063ffffffff82169050919050565b6141fd816141e4565b811461420857600080fd5b50565b60008135905061421a816141f4565b92915050565b600061ffff82169050919050565b61423781614220565b811461424257600080fd5b50565b6000813590506142548161422e565b92915050565b6000610140828403121561427157614270614139565b5b61427c610140613c77565b9050600082013567ffffffffffffffff81111561429c5761429b61413e565b5b6142a8848285016141b6565b600083015250602082013567ffffffffffffffff8111156142cc576142cb61413e565b5b6142d8848285016141b6565b60208301525060406142ec84828501614124565b604083015250606061430084828501614124565b606083015250608082013567ffffffffffffffff8111156143245761432361413e565b5b614330848285016141b6565b60808301525060a082013567ffffffffffffffff8111156143545761435361413e565b5b614360848285016141b6565b60a08301525060c082013567ffffffffffffffff8111156143845761438361413e565b5b614390848285016141b6565b60c08301525060e06143a48482850161420b565b60e0830152506101006143b98482850161420b565b610100830152506101206143cf84828501614245565b6101208301525092915050565b600067ffffffffffffffff8211156143f7576143f6613c17565b5b602082029050602081019050919050565b600061441b614416846143dc565b613c77565b9050808382526020820190506020840283018581111561443e5761443d613cbe565b5b835b8181101561448557803567ffffffffffffffff81111561446357614462613c12565b5b80860161447089826141b6565b85526020850194505050602081019050614440565b5050509392505050565b600082601f8301126144a4576144a3613c12565b5b81356144b4848260208601614408565b91505092915050565b6000806000606084860312156144d6576144d5613970565b5b60006144e486828701614124565b935050602084013567ffffffffffffffff81111561450557614504613975565b5b6145118682870161425a565b925050604084013567ffffffffffffffff81111561453257614531613975565b5b61453e8682870161448f565b9150509250925092565b60006020828403121561455e5761455d613970565b5b600061456c84828501614124565b91505092915050565b61457e816140f9565b82525050565b600060a082019050818103600083015261459e8188613bb7565b905081810360208301526145b28187613bb7565b90506145c16040830186614575565b6145ce6060830185614575565b6145db6080830184614575565b9695505050505050565b60006020820190506145fa6000830184614575565b92915050565b6146098161399a565b82525050565b60006020820190506146246000830184614600565b92915050565b60008060006060848603121561464357614642613970565b5b6000614651868287016139c3565b935050602061466286828701614124565b925050604061467386828701614124565b9150509250925092565b600060c0820190506146926000830189614575565b61469f6020830188614600565b6146ac6040830187614575565b6146b96060830186614575565b6146c66080830185614600565b6146d360a0830184613a4e565b979650505050505050565b600080604083850312156146f5576146f4613970565b5b600061470385828601614124565b925050602061471485828601614124565b9150509250929050565b600060a0820190506147336000830188614575565b6147406020830187614600565b61474d6040830186614600565b61475a6060830185614575565b6147676080830184613a4e565b9695505050505050565b61477a81613afd565b811461478557600080fd5b50565b60008135905061479781614771565b92915050565b600080604083850312156147b4576147b3613970565b5b60006147c2858286016139c3565b92505060206147d385828601614788565b9150509250929050565b600060ff82169050919050565b6147f3816147dd565b82525050565b600060208201905061480e60008301846147ea565b92915050565b6000806000806080858703121561482e5761482d613970565b5b600061483c87828801614124565b945050602061484d878288016139c3565b935050604061485e878288016139c3565b925050606061486f87828801614124565b91505092959194509250565b6000806040838503121561489257614891613970565b5b60006148a0858286016139c3565b92505060206148b1858286016139c3565b9150509250929050565b600080604083850312156148d2576148d1613970565b5b60006148e085828601614124565b92505060206148f1858286016139f9565b9150509250929050565b600080600080600060a0868803121561491757614916613970565b5b6000614925888289016139c3565b9550506020614936888289016139c3565b9450506040614947888289016139f9565b9350506060614958888289016139f9565b925050608086013567ffffffffffffffff81111561497957614978613975565b5b61498588828901613de1565b9150509295509295909350565b61499b816141e4565b82525050565b6149aa81614220565b82525050565b600060c08201905081810360008301526149ca8189613bb7565b905081810360208301526149de8188613bb7565b905081810360408301526149f28187613bb7565b9050614a016060830186614992565b614a0e6080830185614992565b614a1b60a08301846149a1565b979650505050505050565b600060a08284031215614a3c57614a3b614139565b5b614a4660a0613c77565b9050600082013567ffffffffffffffff811115614a6657614a6561413e565b5b614a72848285016141b6565b600083015250602082013567ffffffffffffffff811115614a9657614a9561413e565b5b614aa2848285016141b6565b6020830152506040614ab684828501614124565b6040830152506060614aca84828501614124565b6060830152506080614ade84828501614124565b60808301525092915050565b600060c08284031215614b0057614aff614139565b5b614b0a60c0613c77565b9050600082013567ffffffffffffffff811115614b2a57614b2961413e565b5b614b36848285016141b6565b600083015250602082013567ffffffffffffffff811115614b5a57614b5961413e565b5b614b66848285016141b6565b602083015250604082013567ffffffffffffffff811115614b8a57614b8961413e565b5b614b96848285016141b6565b6040830152506060614baa8482850161420b565b6060830152506080614bbe8482850161420b565b60808301525060a0614bd284828501614245565b60a08301525092915050565b600080600060608486031215614bf757614bf6613970565b5b600084013567ffffffffffffffff811115614c1557614c14613975565b5b614c2186828701614a26565b935050602084013567ffffffffffffffff811115614c4257614c41613975565b5b614c4e86828701614aea565b925050604084013567ffffffffffffffff811115614c6f57614c6e613975565b5b614c7b8682870161448f565b9150509250925092565b7f455243313135353a2061646472657373207a65726f206973206e6f742061207660008201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b6000614ce1602a83613b6b565b9150614cec82614c85565b604082019050919050565b60006020820190508181036000830152614d1081614cd4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614d5e57607f821691505b602082108103614d7157614d70614d17565b5b50919050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60008201527f6572206f7220617070726f766564000000000000000000000000000000000000602082015250565b6000614dd3602e83613b6b565b9150614dde82614d77565b604082019050919050565b60006020820190508181036000830152614e0281614dc6565b9050919050565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b6000614e65602983613b6b565b9150614e7082614e09565b604082019050919050565b60006020820190508181036000830152614e9481614e58565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614f04826139d8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614f3657614f35614eca565b5b600182019050919050565b7f596f7520617265206e6f74206f776e6572206f66207468697320686f7573653a600082015250565b6000614f77602083613b6b565b9150614f8282614f41565b602082019050919050565b60006020820190508181036000830152614fa681614f6a565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261500f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614fd2565b6150198683614fd2565b95508019841693508086168417925050509392505050565b6000819050919050565b600061505661505161504c846139d8565b615031565b6139d8565b9050919050565b6000819050919050565b6150708361503b565b61508461507c8261505d565b848454614fdf565b825550505050565b600090565b61509961508c565b6150a4818484615067565b505050565b5b818110156150c8576150bd600082615091565b6001810190506150aa565b5050565b601f82111561510d576150de81614fad565b6150e784614fc2565b810160208510156150f6578190505b61510a61510285614fc2565b8301826150a9565b50505b505050565b600082821c905092915050565b600061513060001984600802615112565b1980831691505092915050565b6000615149838361511f565b9150826002028217905092915050565b61516282613b60565b67ffffffffffffffff81111561517b5761517a613c17565b5b6151858254614d46565b6151908282856150cc565b600060209050601f8311600181146151c357600084156151b1578287015190505b6151bb858261513d565b865550615223565b601f1984166151d186614fad565b60005b828110156151f9578489015182556001820191506020850194506020810190506151d4565b868310156152165784890151615212601f89168261511f565b8355505b6001600288020188555050505b505050505050565b7f5468657365206c6f7420646f6573206e6f74206d65657420746865207265717560008201527f6972656d656e7473000000000000000000000000000000000000000000000000602082015250565b6000615287602883613b6b565b91506152928261522b565b604082019050919050565b600060208201905081810360008301526152b68161527a565b9050919050565b7f20496e73756666696369656e742062616c616e636520746f207472616e73666560008201527f72206f7220796f75206172652074727920746f2073656e64206d6f726520616d60208201527f6f756e74207468616e20796f75206f776e200000000000000000000000000000604082015250565b600061533f605283613b6b565b915061534a826152bd565b606082019050919050565b6000602082019050818103600083015261536e81615332565b9050919050565b7f496e73756666696369656e74206172656120746f207472616e73666572000000600082015250565b60006153ab601d83613b6b565b91506153b682615375565b602082019050919050565b600060208201905081810360008301526153da8161539e565b9050919050565b60006153ec826139d8565b91506153f7836139d8565b925082820390508181111561540f5761540e614eca565b5b92915050565b6000615420826139d8565b915061542b836139d8565b925082820190508082111561544357615442614eca565b5b92915050565b6000615454826140f9565b915067ffffffffffffffff820361546e5761546d614eca565b5b600182019050919050565b6000615484826140f9565b915061548f836140f9565b9250828203905067ffffffffffffffff8111156154af576154ae614eca565b5b92915050565b7f4d696e74696e672066726f6d207a65726f2061646472657373206973206e6f7460008201527f20416c6c6f7765642e2e2e000000000000000000000000000000000000000000602082015250565b6000615511602b83613b6b565b915061551c826154b5565b604082019050919050565b6000602082019050818103600083015261554081615504565b9050919050565b7f20546f74616c50726f706572747953697a65206d75737420626520677265617460008201527f6572207468616e205a65726f0000000000000000000000000000000000000000602082015250565b60006155a3602c83613b6b565b91506155ae82615547565b604082019050919050565b600060208201905081810360008301526155d281615596565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b6000615635602883613b6b565b9150615640826155d9565b604082019050919050565b6000602082019050818103600083015261566481615628565b9050919050565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006156c7602583613b6b565b91506156d28261566b565b604082019050919050565b600060208201905081810360008301526156f6816156ba565b9050919050565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b6000615759602a83613b6b565b9150615764826156fd565b604082019050919050565b600060208201905081810360008301526157888161574c565b9050919050565b600060408201905081810360008301526157a98185614079565b905081810360208301526157bd8184614079565b90509392505050565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b6000615822602983613b6b565b915061582d826157c6565b604082019050919050565b6000602082019050818103600083015261585181615815565b9050919050565b600060408201905061586d6000830185613a4e565b61587a6020830184613a4e565b9392505050565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006158dd602183613b6b565b91506158e882615881565b604082019050919050565b6000602082019050818103600083015261590c816158d0565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061593a82615913565b615944818561591e565b9350615954818560208601613b7c565b61595d81613ba6565b840191505092915050565b600060a08201905061597d6000830188614600565b61598a6020830187614600565b818103604083015261599c8186614079565b905081810360608301526159b08185614079565b905081810360808301526159c4818461592f565b90509695505050505050565b6000815190506159df81613aa4565b92915050565b6000602082840312156159fb576159fa613970565b5b6000615a09848285016159d0565b91505092915050565b60008160e01c9050919050565b600060033d1115615a3e5760046000803e615a3b600051615a12565b90505b90565b600060443d10615ace57615a53613966565b60043d036004823e80513d602482011167ffffffffffffffff82111715615a7b575050615ace565b808201805167ffffffffffffffff811115615a995750505050615ace565b80602083010160043d038501811115615ab6575050505050615ace565b615ac582602001850186613c46565b82955050505050505b90565b7f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b6000615b2d603483613b6b565b9150615b3882615ad1565b604082019050919050565b60006020820190508181036000830152615b5c81615b20565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b6000615bbf602883613b6b565b9150615bca82615b63565b604082019050919050565b60006020820190508181036000830152615bee81615bb2565b9050919050565b600060a082019050615c0a6000830188614600565b615c176020830187614600565b615c246040830186613a4e565b615c316060830185613a4e565b8181036080830152615c43818461592f565b9050969550505050505056fea26469706673582212201de4efcab236a1af565d8e06e4775103ec440f9384fccc3dca65fbc968aae52164736f6c63430008100033