0x6080604052674563918244f400006002553480156200001d57600080fd5b5060405162003953380380620039538339818101604052810190620000439190620003e4565b62000063620000576200011960201b60201c565b6200012160201b60201c565b60008060146101000a81548160ff02191690831515021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200011083620001e560201b60201c565b5050506200055b565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620001f56200027b60201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000267576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200025e90620004c7565b60405180910390fd5b62000278816200012160201b60201c565b50565b6200028b6200011960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620002b16200030c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200030a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003019062000539565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000367826200033a565b9050919050565b62000379816200035a565b81146200038557600080fd5b50565b60008151905062000399816200036e565b92915050565b6000620003ac826200035a565b9050919050565b620003be816200039f565b8114620003ca57600080fd5b50565b600081519050620003de81620003b3565b92915050565b6000806000606084860312156200040057620003ff62000335565b5b6000620004108682870162000388565b9350506020620004238682870162000388565b92505060406200043686828701620003cd565b9150509250925092565b600082825260208201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000620004af60268362000440565b9150620004bc8262000451565b604082019050919050565b60006020820190508181036000830152620004e281620004a0565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200052160208362000440565b91506200052e82620004e9565b602082019050919050565b60006020820190508181036000830152620005548162000512565b9050919050565b6133e8806200056b6000396000f3fe6080604052600436106101095760003560e01c8063504fc7ec116100955780638456cb59116100645780638456cb591461030c5780638da5cb5b14610323578063e5a6b10f1461034e578063f2fde38b14610379578063f4f3b200146103a257610109565b8063504fc7ec146102855780635c975abb146102ae578063715018a6146102d9578063810a3415146102f057610109565b80633a5381b5116100dc5780633a5381b5146101e75780633ccfd60b146102125780633f4ba83a1461022957806344a0d68a146102405780634dd722301461026957610109565b806309d2427f1461010e57806313faede614610152578063238cf3521461017d578063297719dc146101be575b600080fd5b34801561011a57600080fd5b5061013560048036038101906101309190612043565b6103cb565b604051610149989796959493929190612180565b60405180910390f35b34801561015e57600080fd5b50610167610586565b604051610174919061220c565b60405180910390f35b34801561018957600080fd5b506101a4600480360381019061019f919061227f565b61058c565b6040516101b59594939291906122bf565b60405180910390f35b3480156101ca57600080fd5b506101e560048036038101906101e091906123d4565b6105fc565b005b3480156101f357600080fd5b506101fc6106e2565b6040516102099190612427565b60405180910390f35b34801561021e57600080fd5b50610227610708565b005b34801561023557600080fd5b5061023e61075f565b005b34801561024c57600080fd5b5061026760048036038101906102629190612442565b610771565b005b610283600480360381019061027e91906124cf565b610783565b005b34801561029157600080fd5b506102ac60048036038101906102a791906126b8565b610f23565b005b3480156102ba57600080fd5b506102c3611049565b6040516102d09190612730565b60405180910390f35b3480156102e557600080fd5b506102ee61105f565b005b61030a600480360381019061030591906124cf565b611073565b005b34801561031857600080fd5b506103216116d0565b005b34801561032f57600080fd5b506103386116e2565b6040516103459190612427565b60405180910390f35b34801561035a57600080fd5b5061036361170b565b60405161037091906127aa565b60405180910390f35b34801561038557600080fd5b506103a0600480360381019061039b91906127c5565b611731565b005b3480156103ae57600080fd5b506103c960048036038101906103c491906127c5565b6117b4565b005b6005818051602081018201805184825260208301602085012081835280955050505050506000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600201549080600301805461045690612821565b80601f016020809104026020016040519081016040528092919081815260200182805461048290612821565b80156104cf5780601f106104a4576101008083540402835291602001916104cf565b820191906000526020600020905b8154815290600101906020018083116104b257829003601f168201915b5050505050908060040180546104e490612821565b80601f016020809104026020016040519081016040528092919081815260200182805461051090612821565b801561055d5780601f106105325761010080835404028352916020019161055d565b820191906000526020600020905b81548152906001019060200180831161054057829003601f168201915b5050505050908060050154908060060154908060070160009054906101000a900460ff16905088565b60025481565b6004602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154908060040160009054906101000a900460ff16905085565b6106046118b7565b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a81548160ff021916908315150217905550905050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107106118b7565b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561075b573d6000803e3d6000fd5b5050565b6107676118b7565b61076f611935565b565b6107796118b7565b8060028190555050565b61078b611997565b846001600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000898152602001908152602001600020600201546107ec9190612881565b1461082c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082390612901565b60405180910390fd5b600254600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b815260040161088c929190612921565b602060405180830381865afa1580156108a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cd919061295f565b101561090e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610905906129d8565b60405180910390fd5b60058460405161091e9190612a34565b908152602001604051809103902060070160009054906101000a900460ff161561097d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097490612a97565b60405180910390fd5b6109cf878787878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506119e1565b610a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0590612b03565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33306002546040518463ffffffff1660e01b8152600401610a6f93929190612b23565b6020604051808303816000875af1158015610a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab29190612b6f565b50600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087815260200190815260200160002060040160009054906101000a900460ff16610c6f5786600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000888152602001908152602001600020600101819055506001600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088815260200190815260200160002060040160006101000a81548160ff0219169083151502179055505b6040518061010001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff16815260200187815260200185815260200184815260200142815260200186815260200160011515815250600585604051610ce89190612a34565b908152602001604051809103902060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201556060820151816003019081610da39190612d3e565b506080820151816004019081610db99190612d3e565b5060a0820151816005015560c0820151816006015560e08201518160070160006101000a81548160ff0219169083151502179055509050506001600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008881526020019081526020016000206002016000828254610e559190612881565b9250508190555042600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088815260200190815260200160002060030181905550858773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f96bf14f5030cc7103d0c2e8d57cb4dc9d099301cff40d028b21f61fdf60f13c087604051610f129190612e10565b60405180910390a450505050505050565b610f2b6118b7565b80600583604051610f3c9190612a34565b908152602001604051809103902060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201556060820151816003019081610ff79190612d3e565b50608082015181600401908161100d9190612d3e565b5060a0820151816005015560c0820151816006015560e08201518160070160006101000a81548160ff0219169083151502179055509050505050565b60008060149054906101000a900460ff16905090565b6110676118b7565b6110716000611a81565b565b61107b611997565b846001600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000898152602001908152602001600020600201546110dc9190612881565b1461111c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111390612901565b60405180910390fd5b6002543414611160576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115790612e7e565b60405180910390fd5b6005846040516111709190612a34565b908152602001604051809103902060070160009054906101000a900460ff16156111cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c690612a97565b60405180910390fd5b611221878787878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506119e1565b611260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125790612b03565b60405180910390fd5b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087815260200190815260200160002060040160009054906101000a900460ff1661141c5786600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000888152602001908152602001600020600101819055506001600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088815260200190815260200160002060040160006101000a81548160ff0219169083151502179055505b6040518061010001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff168152602001878152602001858152602001848152602001428152602001868152602001600115158152506005856040516114959190612a34565b908152602001604051809103902060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015560608201518160030190816115509190612d3e565b5060808201518160040190816115669190612d3e565b5060a0820151816005015560c0820151816006015560e08201518160070160006101000a81548160ff0219169083151502179055509050506001600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088815260200190815260200160002060020160008282546116029190612881565b9250508190555042600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088815260200190815260200160002060030181905550858773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f96bf14f5030cc7103d0c2e8d57cb4dc9d099301cff40d028b21f61fdf60f13c0876040516116bf9190612e10565b60405180910390a450505050505050565b6116d86118b7565b6116e0611b45565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117396118b7565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179f90612f10565b60405180910390fd5b6117b181611a81565b50565b6117bc6118b7565b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118129190612427565b602060405180830381865afa15801561182f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611853919061295f565b6040518363ffffffff1660e01b8152600401611870929190612f30565b6020604051808303816000875af115801561188f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118b39190612b6f565b5050565b6118bf611ba8565b73ffffffffffffffffffffffffffffffffffffffff166118dd6116e2565b73ffffffffffffffffffffffffffffffffffffffff1614611933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192a90612fa5565b60405180910390fd5b565b61193d611bb0565b60008060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611980611ba8565b60405161198d9190612427565b60405180910390a1565b61199f611049565b156119df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d690613011565b60405180910390fd5b565b6000611a25611a1f338989898989604051602001611a0496959493929190613031565b60405160208183030381529060405280519060200120611bf9565b83611c29565b73ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161490509695505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611b4d611997565b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611b91611ba8565b604051611b9e9190612427565b60405180910390a1565b600033905090565b611bb8611049565b611bf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bee906130ec565b60405180910390fd5b565b600081604051602001611c0c9190613183565b604051602081830303815290604052805190602001209050919050565b6000806000611c388585611c50565b91509150611c4581611ca1565b819250505092915050565b6000806041835103611c915760008060006020860151925060408601519150606086015160001a9050611c8587828585611e07565b94509450505050611c9a565b60006002915091505b9250929050565b60006004811115611cb557611cb46131a9565b5b816004811115611cc857611cc76131a9565b5b0315611e045760016004811115611ce257611ce16131a9565b5b816004811115611cf557611cf46131a9565b5b03611d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2c90613224565b60405180910390fd5b60026004811115611d4957611d486131a9565b5b816004811115611d5c57611d5b6131a9565b5b03611d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9390613290565b60405180910390fd5b60036004811115611db057611daf6131a9565b5b816004811115611dc357611dc26131a9565b5b03611e03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfa90613322565b60405180910390fd5b5b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c1115611e42576000600391509150611ee0565b600060018787878760405160008152602001604052604051611e67949392919061336d565b6020604051602081039080840390855afa158015611e89573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ed757600060019250925050611ee0565b80600092509250505b94509492505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611f5082611f07565b810181811067ffffffffffffffff82111715611f6f57611f6e611f18565b5b80604052505050565b6000611f82611ee9565b9050611f8e8282611f47565b919050565b600067ffffffffffffffff821115611fae57611fad611f18565b5b611fb782611f07565b9050602081019050919050565b82818337600083830152505050565b6000611fe6611fe184611f93565b611f78565b90508281526020810184848401111561200257612001611f02565b5b61200d848285611fc4565b509392505050565b600082601f83011261202a57612029611efd565b5b813561203a848260208601611fd3565b91505092915050565b60006020828403121561205957612058611ef3565b5b600082013567ffffffffffffffff81111561207757612076611ef8565b5b61208384828501612015565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120b78261208c565b9050919050565b6120c7816120ac565b82525050565b6000819050919050565b6120e0816120cd565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612120578082015181840152602081019050612105565b60008484015250505050565b6000612137826120e6565b61214181856120f1565b9350612151818560208601612102565b61215a81611f07565b840191505092915050565b60008115159050919050565b61217a81612165565b82525050565b600061010082019050612196600083018b6120be565b6121a3602083018a6120be565b6121b060408301896120d7565b81810360608301526121c2818861212c565b905081810360808301526121d6818761212c565b90506121e560a08301866120d7565b6121f260c08301856120d7565b6121ff60e0830184612171565b9998505050505050505050565b600060208201905061222160008301846120d7565b92915050565b612230816120ac565b811461223b57600080fd5b50565b60008135905061224d81612227565b92915050565b61225c816120cd565b811461226757600080fd5b50565b60008135905061227981612253565b92915050565b6000806040838503121561229657612295611ef3565b5b60006122a48582860161223e565b92505060206122b58582860161226a565b9150509250929050565b600060a0820190506122d460008301886120be565b6122e160208301876120d7565b6122ee60408301866120d7565b6122fb60608301856120d7565b6123086080830184612171565b9695505050505050565b600080fd5b600080fd5b61232581612165565b811461233057600080fd5b50565b6000813590506123428161231c565b92915050565b600060a0828403121561235e5761235d612312565b5b61236860a0611f78565b905060006123788482850161223e565b600083015250602061238c8482850161226a565b60208301525060406123a08482850161226a565b60408301525060606123b48482850161226a565b60608301525060806123c884828501612333565b60808301525092915050565b600080600060e084860312156123ed576123ec611ef3565b5b60006123fb8682870161223e565b935050602061240c8682870161226a565b925050604061241d86828701612348565b9150509250925092565b600060208201905061243c60008301846120be565b92915050565b60006020828403121561245857612457611ef3565b5b60006124668482850161226a565b91505092915050565b600080fd5b600080fd5b60008083601f84011261248f5761248e611efd565b5b8235905067ffffffffffffffff8111156124ac576124ab61246f565b5b6020830191508360018202830111156124c8576124c7612474565b5b9250929050565b600080600080600080600060c0888a0312156124ee576124ed611ef3565b5b60006124fc8a828b0161223e565b975050602061250d8a828b0161226a565b965050604061251e8a828b0161226a565b955050606088013567ffffffffffffffff81111561253f5761253e611ef8565b5b61254b8a828b01612015565b945050608088013567ffffffffffffffff81111561256c5761256b611ef8565b5b6125788a828b01612015565b93505060a088013567ffffffffffffffff81111561259957612598611ef8565b5b6125a58a828b01612479565b925092505092959891949750929550565b600061010082840312156125cd576125cc612312565b5b6125d8610100611f78565b905060006125e88482850161223e565b60008301525060206125fc8482850161223e565b60208301525060406126108482850161226a565b604083015250606082013567ffffffffffffffff81111561263457612633612317565b5b61264084828501612015565b606083015250608082013567ffffffffffffffff81111561266457612663612317565b5b61267084828501612015565b60808301525060a06126848482850161226a565b60a08301525060c06126988482850161226a565b60c08301525060e06126ac84828501612333565b60e08301525092915050565b600080604083850312156126cf576126ce611ef3565b5b600083013567ffffffffffffffff8111156126ed576126ec611ef8565b5b6126f985828601612015565b925050602083013567ffffffffffffffff81111561271a57612719611ef8565b5b612726858286016125b6565b9150509250929050565b60006020820190506127456000830184612171565b92915050565b6000819050919050565b600061277061276b6127668461208c565b61274b565b61208c565b9050919050565b600061278282612755565b9050919050565b600061279482612777565b9050919050565b6127a481612789565b82525050565b60006020820190506127bf600083018461279b565b92915050565b6000602082840312156127db576127da611ef3565b5b60006127e98482850161223e565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061283957607f821691505b60208210810361284c5761284b6127f2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061288c826120cd565b9150612897836120cd565b92508282019050808211156128af576128ae612852565b5b92915050565b7f696e76616c696420636f756e7400000000000000000000000000000000000000600082015250565b60006128eb600d836120f1565b91506128f6826128b5565b602082019050919050565b6000602082019050818103600083015261291a816128de565b9050919050565b600060408201905061293660008301856120be565b61294360208301846120be565b9392505050565b60008151905061295981612253565b92915050565b60006020828403121561297557612974611ef3565b5b60006129838482850161294a565b91505092915050565b7f6d75737420626520617070726f76656400000000000000000000000000000000600082015250565b60006129c26010836120f1565b91506129cd8261298c565b602082019050919050565b600060208201905081810360008301526129f1816129b5565b9050919050565b600081905092915050565b6000612a0e826120e6565b612a1881856129f8565b9350612a28818560208601612102565b80840191505092915050565b6000612a408284612a03565b915081905092915050565b7f616c726561647920706169640000000000000000000000000000000000000000600082015250565b6000612a81600c836120f1565b9150612a8c82612a4b565b602082019050919050565b60006020820190508181036000830152612ab081612a74565b9050919050565b7f56616c696461746f722061646472657373206d69736d617463682e0000000000600082015250565b6000612aed601b836120f1565b9150612af882612ab7565b602082019050919050565b60006020820190508181036000830152612b1c81612ae0565b9050919050565b6000606082019050612b3860008301866120be565b612b4560208301856120be565b612b5260408301846120d7565b949350505050565b600081519050612b698161231c565b92915050565b600060208284031215612b8557612b84611ef3565b5b6000612b9384828501612b5a565b91505092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612bfe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612bc1565b612c088683612bc1565b95508019841693508086168417925050509392505050565b6000612c3b612c36612c31846120cd565b61274b565b6120cd565b9050919050565b6000819050919050565b612c5583612c20565b612c69612c6182612c42565b848454612bce565b825550505050565b600090565b612c7e612c71565b612c89818484612c4c565b505050565b5b81811015612cad57612ca2600082612c76565b600181019050612c8f565b5050565b601f821115612cf257612cc381612b9c565b612ccc84612bb1565b81016020851015612cdb578190505b612cef612ce785612bb1565b830182612c8e565b50505b505050565b600082821c905092915050565b6000612d1560001984600802612cf7565b1980831691505092915050565b6000612d2e8383612d04565b9150826002028217905092915050565b612d47826120e6565b67ffffffffffffffff811115612d6057612d5f611f18565b5b612d6a8254612821565b612d75828285612cb1565b600060209050601f831160018114612da85760008415612d96578287015190505b612da08582612d22565b865550612e08565b601f198416612db686612b9c565b60005b82811015612dde57848901518255600182019150602085019450602081019050612db9565b86831015612dfb5784890151612df7601f891682612d04565b8355505b6001600288020188555050505b505050505050565b60006020820190508181036000830152612e2a818461212c565b905092915050565b7f696e76616c696420707269636500000000000000000000000000000000000000600082015250565b6000612e68600d836120f1565b9150612e7382612e32565b602082019050919050565b60006020820190508181036000830152612e9781612e5b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612efa6026836120f1565b9150612f0582612e9e565b604082019050919050565b60006020820190508181036000830152612f2981612eed565b9050919050565b6000604082019050612f4560008301856120be565b612f5260208301846120d7565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f8f6020836120f1565b9150612f9a82612f59565b602082019050919050565b60006020820190508181036000830152612fbe81612f82565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000612ffb6010836120f1565b915061300682612fc5565b602082019050919050565b6000602082019050818103600083015261302a81612fee565b9050919050565b600060c08201905061304660008301896120be565b61305360208301886120be565b61306060408301876120d7565b61306d60608301866120d7565b818103608083015261307f818561212c565b905081810360a0830152613093818461212c565b9050979650505050505050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006130d66014836120f1565b91506130e1826130a0565b602082019050919050565b60006020820190508181036000830152613105816130c9565b9050919050565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600082015250565b6000613142601c836129f8565b915061314d8261310c565b601c82019050919050565b6000819050919050565b6000819050919050565b61317d61317882613158565b613162565b82525050565b600061318e82613135565b915061319a828461316c565b60208201915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b600061320e6018836120f1565b9150613219826131d8565b602082019050919050565b6000602082019050818103600083015261323d81613201565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b600061327a601f836120f1565b915061328582613244565b602082019050919050565b600060208201905081810360008301526132a98161326d565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b600061330c6022836120f1565b9150613317826132b0565b604082019050919050565b6000602082019050818103600083015261333b816132ff565b9050919050565b61334b81613158565b82525050565b600060ff82169050919050565b61336781613351565b82525050565b60006080820190506133826000830187613342565b61338f602083018661335e565b61339c6040830185613342565b6133a96060830184613342565b9594505050505056fea2646970667358221220d709f704344dbabe06d4a430b8535def0376aad0b31623a6e827228cd004d45c64736f6c63430008110033000000000000000000000000d42d5037a8e5f9f3fb8cef408b1707001dd623d70000000000000000000000000a84ae7a7f239d390bf22958ee52f1efde7db39e000000000000000000000000deaddeaddeaddeaddeaddeaddeaddeaddead0000
0x6080604052600436106101095760003560e01c8063504fc7ec116100955780638456cb59116100645780638456cb591461030c5780638da5cb5b14610323578063e5a6b10f1461034e578063f2fde38b14610379578063f4f3b200146103a257610109565b8063504fc7ec146102855780635c975abb146102ae578063715018a6146102d9578063810a3415146102f057610109565b80633a5381b5116100dc5780633a5381b5146101e75780633ccfd60b146102125780633f4ba83a1461022957806344a0d68a146102405780634dd722301461026957610109565b806309d2427f1461010e57806313faede614610152578063238cf3521461017d578063297719dc146101be575b600080fd5b34801561011a57600080fd5b5061013560048036038101906101309190612043565b6103cb565b604051610149989796959493929190612180565b60405180910390f35b34801561015e57600080fd5b50610167610586565b604051610174919061220c565b60405180910390f35b34801561018957600080fd5b506101a4600480360381019061019f919061227f565b61058c565b6040516101b59594939291906122bf565b60405180910390f35b3480156101ca57600080fd5b506101e560048036038101906101e091906123d4565b6105fc565b005b3480156101f357600080fd5b506101fc6106e2565b6040516102099190612427565b60405180910390f35b34801561021e57600080fd5b50610227610708565b005b34801561023557600080fd5b5061023e61075f565b005b34801561024c57600080fd5b5061026760048036038101906102629190612442565b610771565b005b610283600480360381019061027e91906124cf565b610783565b005b34801561029157600080fd5b506102ac60048036038101906102a791906126b8565b610f23565b005b3480156102ba57600080fd5b506102c3611049565b6040516102d09190612730565b60405180910390f35b3480156102e557600080fd5b506102ee61105f565b005b61030a600480360381019061030591906124cf565b611073565b005b34801561031857600080fd5b506103216116d0565b005b34801561032f57600080fd5b506103386116e2565b6040516103459190612427565b60405180910390f35b34801561035a57600080fd5b5061036361170b565b60405161037091906127aa565b60405180910390f35b34801561038557600080fd5b506103a0600480360381019061039b91906127c5565b611731565b005b3480156103ae57600080fd5b506103c960048036038101906103c491906127c5565b6117b4565b005b6005818051602081018201805184825260208301602085012081835280955050505050506000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600201549080600301805461045690612821565b80601f016020809104026020016040519081016040528092919081815260200182805461048290612821565b80156104cf5780601f106104a4576101008083540402835291602001916104cf565b820191906000526020600020905b8154815290600101906020018083116104b257829003601f168201915b5050505050908060040180546104e490612821565b80601f016020809104026020016040519081016040528092919081815260200182805461051090612821565b801561055d5780601f106105325761010080835404028352916020019161055d565b820191906000526020600020905b81548152906001019060200180831161054057829003601f168201915b5050505050908060050154908060060154908060070160009054906101000a900460ff16905088565b60025481565b6004602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154908060040160009054906101000a900460ff16905085565b6106046118b7565b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a81548160ff021916908315150217905550905050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107106118b7565b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561075b573d6000803e3d6000fd5b5050565b6107676118b7565b61076f611935565b565b6107796118b7565b8060028190555050565b61078b611997565b846001600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000898152602001908152602001600020600201546107ec9190612881565b1461082c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082390612901565b60405180910390fd5b600254600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b815260040161088c929190612921565b602060405180830381865afa1580156108a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cd919061295f565b101561090e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610905906129d8565b60405180910390fd5b60058460405161091e9190612a34565b908152602001604051809103902060070160009054906101000a900460ff161561097d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097490612a97565b60405180910390fd5b6109cf878787878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506119e1565b610a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0590612b03565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33306002546040518463ffffffff1660e01b8152600401610a6f93929190612b23565b6020604051808303816000875af1158015610a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab29190612b6f565b50600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087815260200190815260200160002060040160009054906101000a900460ff16610c6f5786600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000888152602001908152602001600020600101819055506001600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088815260200190815260200160002060040160006101000a81548160ff0219169083151502179055505b6040518061010001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff16815260200187815260200185815260200184815260200142815260200186815260200160011515815250600585604051610ce89190612a34565b908152602001604051809103902060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201556060820151816003019081610da39190612d3e565b506080820151816004019081610db99190612d3e565b5060a0820151816005015560c0820151816006015560e08201518160070160006101000a81548160ff0219169083151502179055509050506001600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008881526020019081526020016000206002016000828254610e559190612881565b9250508190555042600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088815260200190815260200160002060030181905550858773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f96bf14f5030cc7103d0c2e8d57cb4dc9d099301cff40d028b21f61fdf60f13c087604051610f129190612e10565b60405180910390a450505050505050565b610f2b6118b7565b80600583604051610f3c9190612a34565b908152602001604051809103902060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201556060820151816003019081610ff79190612d3e565b50608082015181600401908161100d9190612d3e565b5060a0820151816005015560c0820151816006015560e08201518160070160006101000a81548160ff0219169083151502179055509050505050565b60008060149054906101000a900460ff16905090565b6110676118b7565b6110716000611a81565b565b61107b611997565b846001600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000898152602001908152602001600020600201546110dc9190612881565b1461111c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111390612901565b60405180910390fd5b6002543414611160576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115790612e7e565b60405180910390fd5b6005846040516111709190612a34565b908152602001604051809103902060070160009054906101000a900460ff16156111cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c690612a97565b60405180910390fd5b611221878787878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506119e1565b611260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125790612b03565b60405180910390fd5b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087815260200190815260200160002060040160009054906101000a900460ff1661141c5786600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000888152602001908152602001600020600101819055506001600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088815260200190815260200160002060040160006101000a81548160ff0219169083151502179055505b6040518061010001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff168152602001878152602001858152602001848152602001428152602001868152602001600115158152506005856040516114959190612a34565b908152602001604051809103902060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015560608201518160030190816115509190612d3e565b5060808201518160040190816115669190612d3e565b5060a0820151816005015560c0820151816006015560e08201518160070160006101000a81548160ff0219169083151502179055509050506001600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088815260200190815260200160002060020160008282546116029190612881565b9250508190555042600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088815260200190815260200160002060030181905550858773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f96bf14f5030cc7103d0c2e8d57cb4dc9d099301cff40d028b21f61fdf60f13c0876040516116bf9190612e10565b60405180910390a450505050505050565b6116d86118b7565b6116e0611b45565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117396118b7565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179f90612f10565b60405180910390fd5b6117b181611a81565b50565b6117bc6118b7565b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118129190612427565b602060405180830381865afa15801561182f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611853919061295f565b6040518363ffffffff1660e01b8152600401611870929190612f30565b6020604051808303816000875af115801561188f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118b39190612b6f565b5050565b6118bf611ba8565b73ffffffffffffffffffffffffffffffffffffffff166118dd6116e2565b73ffffffffffffffffffffffffffffffffffffffff1614611933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192a90612fa5565b60405180910390fd5b565b61193d611bb0565b60008060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611980611ba8565b60405161198d9190612427565b60405180910390a1565b61199f611049565b156119df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d690613011565b60405180910390fd5b565b6000611a25611a1f338989898989604051602001611a0496959493929190613031565b60405160208183030381529060405280519060200120611bf9565b83611c29565b73ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161490509695505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611b4d611997565b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611b91611ba8565b604051611b9e9190612427565b60405180910390a1565b600033905090565b611bb8611049565b611bf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bee906130ec565b60405180910390fd5b565b600081604051602001611c0c9190613183565b604051602081830303815290604052805190602001209050919050565b6000806000611c388585611c50565b91509150611c4581611ca1565b819250505092915050565b6000806041835103611c915760008060006020860151925060408601519150606086015160001a9050611c8587828585611e07565b94509450505050611c9a565b60006002915091505b9250929050565b60006004811115611cb557611cb46131a9565b5b816004811115611cc857611cc76131a9565b5b0315611e045760016004811115611ce257611ce16131a9565b5b816004811115611cf557611cf46131a9565b5b03611d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2c90613224565b60405180910390fd5b60026004811115611d4957611d486131a9565b5b816004811115611d5c57611d5b6131a9565b5b03611d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9390613290565b60405180910390fd5b60036004811115611db057611daf6131a9565b5b816004811115611dc357611dc26131a9565b5b03611e03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfa90613322565b60405180910390fd5b5b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c1115611e42576000600391509150611ee0565b600060018787878760405160008152602001604052604051611e67949392919061336d565b6020604051602081039080840390855afa158015611e89573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ed757600060019250925050611ee0565b80600092509250505b94509492505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611f5082611f07565b810181811067ffffffffffffffff82111715611f6f57611f6e611f18565b5b80604052505050565b6000611f82611ee9565b9050611f8e8282611f47565b919050565b600067ffffffffffffffff821115611fae57611fad611f18565b5b611fb782611f07565b9050602081019050919050565b82818337600083830152505050565b6000611fe6611fe184611f93565b611f78565b90508281526020810184848401111561200257612001611f02565b5b61200d848285611fc4565b509392505050565b600082601f83011261202a57612029611efd565b5b813561203a848260208601611fd3565b91505092915050565b60006020828403121561205957612058611ef3565b5b600082013567ffffffffffffffff81111561207757612076611ef8565b5b61208384828501612015565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120b78261208c565b9050919050565b6120c7816120ac565b82525050565b6000819050919050565b6120e0816120cd565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612120578082015181840152602081019050612105565b60008484015250505050565b6000612137826120e6565b61214181856120f1565b9350612151818560208601612102565b61215a81611f07565b840191505092915050565b60008115159050919050565b61217a81612165565b82525050565b600061010082019050612196600083018b6120be565b6121a3602083018a6120be565b6121b060408301896120d7565b81810360608301526121c2818861212c565b905081810360808301526121d6818761212c565b90506121e560a08301866120d7565b6121f260c08301856120d7565b6121ff60e0830184612171565b9998505050505050505050565b600060208201905061222160008301846120d7565b92915050565b612230816120ac565b811461223b57600080fd5b50565b60008135905061224d81612227565b92915050565b61225c816120cd565b811461226757600080fd5b50565b60008135905061227981612253565b92915050565b6000806040838503121561229657612295611ef3565b5b60006122a48582860161223e565b92505060206122b58582860161226a565b9150509250929050565b600060a0820190506122d460008301886120be565b6122e160208301876120d7565b6122ee60408301866120d7565b6122fb60608301856120d7565b6123086080830184612171565b9695505050505050565b600080fd5b600080fd5b61232581612165565b811461233057600080fd5b50565b6000813590506123428161231c565b92915050565b600060a0828403121561235e5761235d612312565b5b61236860a0611f78565b905060006123788482850161223e565b600083015250602061238c8482850161226a565b60208301525060406123a08482850161226a565b60408301525060606123b48482850161226a565b60608301525060806123c884828501612333565b60808301525092915050565b600080600060e084860312156123ed576123ec611ef3565b5b60006123fb8682870161223e565b935050602061240c8682870161226a565b925050604061241d86828701612348565b9150509250925092565b600060208201905061243c60008301846120be565b92915050565b60006020828403121561245857612457611ef3565b5b60006124668482850161226a565b91505092915050565b600080fd5b600080fd5b60008083601f84011261248f5761248e611efd565b5b8235905067ffffffffffffffff8111156124ac576124ab61246f565b5b6020830191508360018202830111156124c8576124c7612474565b5b9250929050565b600080600080600080600060c0888a0312156124ee576124ed611ef3565b5b60006124fc8a828b0161223e565b975050602061250d8a828b0161226a565b965050604061251e8a828b0161226a565b955050606088013567ffffffffffffffff81111561253f5761253e611ef8565b5b61254b8a828b01612015565b945050608088013567ffffffffffffffff81111561256c5761256b611ef8565b5b6125788a828b01612015565b93505060a088013567ffffffffffffffff81111561259957612598611ef8565b5b6125a58a828b01612479565b925092505092959891949750929550565b600061010082840312156125cd576125cc612312565b5b6125d8610100611f78565b905060006125e88482850161223e565b60008301525060206125fc8482850161223e565b60208301525060406126108482850161226a565b604083015250606082013567ffffffffffffffff81111561263457612633612317565b5b61264084828501612015565b606083015250608082013567ffffffffffffffff81111561266457612663612317565b5b61267084828501612015565b60808301525060a06126848482850161226a565b60a08301525060c06126988482850161226a565b60c08301525060e06126ac84828501612333565b60e08301525092915050565b600080604083850312156126cf576126ce611ef3565b5b600083013567ffffffffffffffff8111156126ed576126ec611ef8565b5b6126f985828601612015565b925050602083013567ffffffffffffffff81111561271a57612719611ef8565b5b612726858286016125b6565b9150509250929050565b60006020820190506127456000830184612171565b92915050565b6000819050919050565b600061277061276b6127668461208c565b61274b565b61208c565b9050919050565b600061278282612755565b9050919050565b600061279482612777565b9050919050565b6127a481612789565b82525050565b60006020820190506127bf600083018461279b565b92915050565b6000602082840312156127db576127da611ef3565b5b60006127e98482850161223e565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061283957607f821691505b60208210810361284c5761284b6127f2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061288c826120cd565b9150612897836120cd565b92508282019050808211156128af576128ae612852565b5b92915050565b7f696e76616c696420636f756e7400000000000000000000000000000000000000600082015250565b60006128eb600d836120f1565b91506128f6826128b5565b602082019050919050565b6000602082019050818103600083015261291a816128de565b9050919050565b600060408201905061293660008301856120be565b61294360208301846120be565b9392505050565b60008151905061295981612253565b92915050565b60006020828403121561297557612974611ef3565b5b60006129838482850161294a565b91505092915050565b7f6d75737420626520617070726f76656400000000000000000000000000000000600082015250565b60006129c26010836120f1565b91506129cd8261298c565b602082019050919050565b600060208201905081810360008301526129f1816129b5565b9050919050565b600081905092915050565b6000612a0e826120e6565b612a1881856129f8565b9350612a28818560208601612102565b80840191505092915050565b6000612a408284612a03565b915081905092915050565b7f616c726561647920706169640000000000000000000000000000000000000000600082015250565b6000612a81600c836120f1565b9150612a8c82612a4b565b602082019050919050565b60006020820190508181036000830152612ab081612a74565b9050919050565b7f56616c696461746f722061646472657373206d69736d617463682e0000000000600082015250565b6000612aed601b836120f1565b9150612af882612ab7565b602082019050919050565b60006020820190508181036000830152612b1c81612ae0565b9050919050565b6000606082019050612b3860008301866120be565b612b4560208301856120be565b612b5260408301846120d7565b949350505050565b600081519050612b698161231c565b92915050565b600060208284031215612b8557612b84611ef3565b5b6000612b9384828501612b5a565b91505092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612bfe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612bc1565b612c088683612bc1565b95508019841693508086168417925050509392505050565b6000612c3b612c36612c31846120cd565b61274b565b6120cd565b9050919050565b6000819050919050565b612c5583612c20565b612c69612c6182612c42565b848454612bce565b825550505050565b600090565b612c7e612c71565b612c89818484612c4c565b505050565b5b81811015612cad57612ca2600082612c76565b600181019050612c8f565b5050565b601f821115612cf257612cc381612b9c565b612ccc84612bb1565b81016020851015612cdb578190505b612cef612ce785612bb1565b830182612c8e565b50505b505050565b600082821c905092915050565b6000612d1560001984600802612cf7565b1980831691505092915050565b6000612d2e8383612d04565b9150826002028217905092915050565b612d47826120e6565b67ffffffffffffffff811115612d6057612d5f611f18565b5b612d6a8254612821565b612d75828285612cb1565b600060209050601f831160018114612da85760008415612d96578287015190505b612da08582612d22565b865550612e08565b601f198416612db686612b9c565b60005b82811015612dde57848901518255600182019150602085019450602081019050612db9565b86831015612dfb5784890151612df7601f891682612d04565b8355505b6001600288020188555050505b505050505050565b60006020820190508181036000830152612e2a818461212c565b905092915050565b7f696e76616c696420707269636500000000000000000000000000000000000000600082015250565b6000612e68600d836120f1565b9150612e7382612e32565b602082019050919050565b60006020820190508181036000830152612e9781612e5b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612efa6026836120f1565b9150612f0582612e9e565b604082019050919050565b60006020820190508181036000830152612f2981612eed565b9050919050565b6000604082019050612f4560008301856120be565b612f5260208301846120d7565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f8f6020836120f1565b9150612f9a82612f59565b602082019050919050565b60006020820190508181036000830152612fbe81612f82565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000612ffb6010836120f1565b915061300682612fc5565b602082019050919050565b6000602082019050818103600083015261302a81612fee565b9050919050565b600060c08201905061304660008301896120be565b61305360208301886120be565b61306060408301876120d7565b61306d60608301866120d7565b818103608083015261307f818561212c565b905081810360a0830152613093818461212c565b9050979650505050505050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006130d66014836120f1565b91506130e1826130a0565b602082019050919050565b60006020820190508181036000830152613105816130c9565b9050919050565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600082015250565b6000613142601c836129f8565b915061314d8261310c565b601c82019050919050565b6000819050919050565b6000819050919050565b61317d61317882613158565b613162565b82525050565b600061318e82613135565b915061319a828461316c565b60208201915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b600061320e6018836120f1565b9150613219826131d8565b602082019050919050565b6000602082019050818103600083015261323d81613201565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b600061327a601f836120f1565b915061328582613244565b602082019050919050565b600060208201905081810360008301526132a98161326d565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b600061330c6022836120f1565b9150613317826132b0565b604082019050919050565b6000602082019050818103600083015261333b816132ff565b9050919050565b61334b81613158565b82525050565b600060ff82169050919050565b61336781613351565b82525050565b60006080820190506133826000830187613342565b61338f602083018661335e565b61339c6040830185613342565b6133a96060830184613342565b9594505050505056fea2646970667358221220d709f704344dbabe06d4a430b8535def0376aad0b31623a6e827228cd004d45c64736f6c63430008110033