6080604052610150600e55611091600f556123286010556003601155734d224452801aced8b2f0aebe155379bb5d594381601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073debe620609674f21b1089042527f420372ea98a5601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620000d257600080fd5b5060405162006afb38038062006afb8339818101604052810190620000f8919062000b78565b838381600290816200010b919062000e92565b5080600390816200011d919062000e92565b506200012e620008a960201b60201c565b6000819055505050620001566200014a620008b260201b60201c565b620008ba60201b60201c565b81600b908162000167919062000e92565b5080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600061032a60186000836004811115620001c857620001c762000f79565b5b6004811115620001dd57620001dc62000f79565b5b81526020019081526020016000208190555067063eb89da4ed00006014600083600481111562000212576200021162000f79565b5b600481111562000227576200022662000f79565b5b81526020019081526020016000208190555067058d15e176280000601560008360048111156200025c576200025b62000f79565b5b600481111562000271576200027062000f79565b5b8152602001908152602001600020819055506363a1b1d060166000836004811115620002a257620002a162000f79565b5b6004811115620002b757620002b662000f79565b5b8152602001908152602001600020819055506363a3035060176000836004811115620002e857620002e762000f79565b5b6004811115620002fd57620002fc62000f79565b5b815260200190815260200160002081905550600190506101f46018600083600481111562000330576200032f62000f79565b5b600481111562000345576200034462000f79565b5b8152602001908152602001600020819055506706f05b59d3b20000601460008360048111156200037a576200037962000f79565b5b60048111156200038f576200038e62000f79565b5b81526020019081526020016000208190555067063eb89da4ed000060156000836004811115620003c457620003c362000f79565b5b6004811115620003d957620003d862000f79565b5b8152602001908152602001600020819055506363a30350601660008360048111156200040a576200040962000f79565b5b60048111156200041f576200041e62000f79565b5b8152602001908152602001600020819055506363a454d06017600083600481111562000450576200044f62000f79565b5b600481111562000465576200046462000f79565b5b815260200190815260200160002081905550600290506105dc6018600083600481111562000498576200049762000f79565b5b6004811115620004ad57620004ac62000f79565b5b8152602001908152602001600020819055506705e5e73f8d8a800060146000836004811115620004e257620004e162000f79565b5b6004811115620004f757620004f662000f79565b5b81526020019081526020016000208190555067053444835ec58000601560008360048111156200052c576200052b62000f79565b5b600481111562000541576200054062000f79565b5b8152602001908152602001600020819055506363a454d06016600083600481111562000572576200057162000f79565b5b600481111562000587576200058662000f79565b5b8152602001908152602001600020819055506363a5a65060176000836004811115620005b857620005b762000f79565b5b6004811115620005cd57620005cc62000f79565b5b815260200190815260200160002081905550600390506107d0601860008360048111156200060057620005ff62000f79565b5b600481111562000615576200061462000f79565b5b8152602001908152602001600020819055506705e5e73f8d8a8000601460008360048111156200064a576200064962000f79565b5b60048111156200065f576200065e62000f79565b5b8152602001908152602001600020819055506705e5e73f8d8a80006015600083600481111562000694576200069362000f79565b5b6004811115620006a957620006a862000f79565b5b8152602001908152602001600020819055506363a5a65060166000836004811115620006da57620006d962000f79565b5b6004811115620006ef57620006ee62000f79565b5b81526020019081526020016000208190555063641c4d506017600083600481111562000720576200071f62000f79565b5b600481111562000735576200073462000f79565b5b8152602001908152602001600020819055506004905061105e6018600083600481111562000768576200076762000f79565b5b60048111156200077d576200077c62000f79565b5b815260200190815260200160002081905550600060146000836004811115620007ab57620007aa62000f79565b5b6004811115620007c057620007bf62000f79565b5b815260200190815260200160002081905550600060156000836004811115620007ee57620007ed62000f79565b5b600481111562000803576200080262000f79565b5b81526020019081526020016000208190555060006016600083600481111562000831576200083062000f79565b5b600481111562000846576200084562000f79565b5b81526020019081526020016000208190555063641c4d506017600083600481111562000877576200087662000f79565b5b60048111156200088c576200088b62000f79565b5b815260200190815260200160002081905550505050505062000fa8565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620009e9826200099e565b810181811067ffffffffffffffff8211171562000a0b5762000a0a620009af565b5b80604052505050565b600062000a2062000980565b905062000a2e8282620009de565b919050565b600067ffffffffffffffff82111562000a515762000a50620009af565b5b62000a5c826200099e565b9050602081019050919050565b60005b8381101562000a8957808201518184015260208101905062000a6c565b60008484015250505050565b600062000aac62000aa68462000a33565b62000a14565b90508281526020810184848401111562000acb5762000aca62000999565b5b62000ad884828562000a69565b509392505050565b600082601f83011262000af85762000af762000994565b5b815162000b0a84826020860162000a95565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b408262000b13565b9050919050565b62000b528162000b33565b811462000b5e57600080fd5b50565b60008151905062000b728162000b47565b92915050565b6000806000806080858703121562000b955762000b946200098a565b5b600085015167ffffffffffffffff81111562000bb65762000bb56200098f565b5b62000bc48782880162000ae0565b945050602085015167ffffffffffffffff81111562000be85762000be76200098f565b5b62000bf68782880162000ae0565b935050604085015167ffffffffffffffff81111562000c1a5762000c196200098f565b5b62000c288782880162000ae0565b925050606062000c3b8782880162000b61565b91505092959194509250565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000c9a57607f821691505b60208210810362000cb05762000caf62000c52565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000d1a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000cdb565b62000d26868362000cdb565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000d7362000d6d62000d678462000d3e565b62000d48565b62000d3e565b9050919050565b6000819050919050565b62000d8f8362000d52565b62000da762000d9e8262000d7a565b84845462000ce8565b825550505050565b600090565b62000dbe62000daf565b62000dcb81848462000d84565b505050565b5b8181101562000df35762000de760008262000db4565b60018101905062000dd1565b5050565b601f82111562000e425762000e0c8162000cb6565b62000e178462000ccb565b8101602085101562000e27578190505b62000e3f62000e368562000ccb565b83018262000dd0565b50505b505050565b600082821c905092915050565b600062000e676000198460080262000e47565b1980831691505092915050565b600062000e82838362000e54565b9150826002028217905092915050565b62000e9d8262000c47565b67ffffffffffffffff81111562000eb95762000eb8620009af565b5b62000ec5825462000c81565b62000ed282828562000df7565b600060209050601f83116001811462000f0a576000841562000ef5578287015190505b62000f01858262000e74565b86555062000f71565b601f19841662000f1a8662000cb6565b60005b8281101562000f445784890151825560018201915060208501945060208101905062000f1d565b8683101562000f64578489015162000f60601f89168262000e54565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b615b438062000fb86000396000f3fe6080604052600436106103b85760003560e01c80637e126be2116101f2578063b88d4fde1161010d578063e0d5082c116100a0578063e985e9c51161006f578063e985e9c514610ded578063ea842c0e14610e2a578063f2fde38b14610e53578063ff6d826814610e7c576103b8565b8063e0d5082c14610d47578063e80507fa14610d70578063e831574214610d99578063e8fa923314610dc4576103b8565b8063d19a11d6116100dc578063d19a11d614610c8b578063d354f6dd14610cb4578063d76fc6c314610cdf578063dc521a1014610d1c576103b8565b8063b88d4fde14610be0578063bf97180b14610bfc578063c5bf21c014610c25578063c87b56dd14610c4e576103b8565b806393a43eb111610185578063a5e0fa4e11610154578063a5e0fa4e14610b49578063a677b67d14610b72578063b3ab66b014610b9b578063b7b24dab14610bb7576103b8565b806393a43eb114610a8f57806395d89b4114610acc578063962bf6b814610af7578063a22cb46514610b20576103b8565b80638da5cb5b116101c15780638da5cb5b146109e7578063913cd58914610a125780639191552414610a3b578063931688cb14610a66576103b8565b80637e126be214610947578063816b7bca14610984578063884fa0b9146109a05780638d2eab8f146109bc576103b8565b80633237b96a116102e25780635599fee01161027557806370a082311161024457806370a082311461088b57806370e2f827146108c8578063715018a6146108f357806375ee2a5d1461090a576103b8565b80635599fee0146107d15780636352211e146107fa578063642c05b5146108375780636c0360eb14610860576103b8565b806342842e0e116102b157806342842e0e1461073857806342966c68146107545780634782f7791461077d57806352a51c15146107a6576103b8565b80633237b96a1461067c57806332ca156c146106a757806335bc78b0146106e457806338af3eed1461070d576103b8565b8063175e81201161035a578063239365371161032957806323936537146105cd57806323b872dd1461060a5780632c3db79e146106265780632e1ef41314610651576103b8565b8063175e8120146104fd57806318160ddd1461053a5780631f1d588a146105655780632383b49414610590576103b8565b806306fdde031161039657806306fdde031461044e578063081812fc14610479578063095ea7b3146104b65780630d0a57d5146104d2576103b8565b806301e33667146103bd57806301ffc9a7146103e6578063058d000d14610423575b600080fd5b3480156103c957600080fd5b506103e460048036038101906103df91906143b7565b610e98565b005b3480156103f257600080fd5b5061040d60048036038101906104089190614462565b610f70565b60405161041a91906144aa565b60405180910390f35b34801561042f57600080fd5b50610438610f82565b60405161044591906144d4565b60405180910390f35b34801561045a57600080fd5b50610463610fa8565b604051610470919061457f565b60405180910390f35b34801561048557600080fd5b506104a0600480360381019061049b91906145a1565b61103a565b6040516104ad91906144d4565b60405180910390f35b6104d060048036038101906104cb91906145ce565b6110b9565b005b3480156104de57600080fd5b506104e76111fd565b6040516104f4919061461d565b60405180910390f35b34801561050957600080fd5b50610524600480360381019061051f9190614638565b611203565b604051610531919061461d565b60405180910390f35b34801561054657600080fd5b5061054f61121b565b60405161055c919061461d565b60405180910390f35b34801561057157600080fd5b5061057a611232565b60405161058791906144d4565b60405180910390f35b34801561059c57600080fd5b506105b760048036038101906105b2919061468a565b61124a565b6040516105c4919061461d565b60405180910390f35b3480156105d957600080fd5b506105f460048036038101906105ef919061468a565b611262565b604051610601919061461d565b60405180910390f35b610624600480360381019061061f91906146b7565b61127a565b005b34801561063257600080fd5b5061063b61159c565b6040516106489190614723565b60405180910390f35b34801561065d57600080fd5b506106666115a2565b60405161067391906144d4565b60405180910390f35b34801561068857600080fd5b506106916115ba565b60405161069e91906144d4565b60405180910390f35b3480156106b357600080fd5b506106ce60048036038101906106c9919061468a565b6115d2565b6040516106db919061461d565b60405180910390f35b3480156106f057600080fd5b5061070b600480360381019061070691906145a1565b6115ea565b005b34801561071957600080fd5b50610722611609565b60405161072f919061474d565b60405180910390f35b610752600480360381019061074d91906146b7565b61162f565b005b34801561076057600080fd5b5061077b600480360381019061077691906145a1565b61164f565b005b34801561078957600080fd5b506107a4600480360381019061079f9190614768565b6116eb565b005b3480156107b257600080fd5b506107bb6117e7565b6040516107c891906144d4565b60405180910390f35b3480156107dd57600080fd5b506107f860048036038101906107f391906145ce565b61180d565b005b34801561080657600080fd5b50610821600480360381019061081c91906145a1565b611a3d565b60405161082e91906144d4565b60405180910390f35b34801561084357600080fd5b5061085e600480360381019061085991906145a1565b611a4f565b005b34801561086c57600080fd5b50610875611a61565b604051610882919061457f565b60405180910390f35b34801561089757600080fd5b506108b260048036038101906108ad9190614638565b611aef565b6040516108bf919061461d565b60405180910390f35b3480156108d457600080fd5b506108dd611ba7565b6040516108ea919061461d565b60405180910390f35b3480156108ff57600080fd5b50610908611bad565b005b34801561091657600080fd5b50610931600480360381019061092c919061468a565b611bc1565b60405161093e919061461d565b60405180910390f35b34801561095357600080fd5b5061096e60048036038101906109699190614638565b611bd9565b60405161097b919061461d565b60405180910390f35b61099e600480360381019061099991906145a1565b611bf1565b005b6109ba60048036038101906109b5919061480d565b611f26565b005b3480156109c857600080fd5b506109d161225f565b6040516109de9190614723565b60405180910390f35b3480156109f357600080fd5b506109fc612265565b604051610a0991906144d4565b60405180910390f35b348015610a1e57600080fd5b50610a396004803603810190610a349190614638565b61228f565b005b348015610a4757600080fd5b50610a506122db565b604051610a5d919061461d565b60405180910390f35b348015610a7257600080fd5b50610a8d6004803603810190610a88919061499d565b6122e1565b005b348015610a9b57600080fd5b50610ab66004803603810190610ab1919061468a565b6122fc565b604051610ac3919061461d565b60405180910390f35b348015610ad857600080fd5b50610ae1612314565b604051610aee919061457f565b60405180910390f35b348015610b0357600080fd5b50610b1e6004803603810190610b1991906149e6565b6123a6565b005b348015610b2c57600080fd5b50610b476004803603810190610b429190614a52565b6123ee565b005b348015610b5557600080fd5b50610b706004803603810190610b6b9190614638565b6124f9565b005b348015610b7e57600080fd5b50610b996004803603810190610b9491906149e6565b612545565b005b610bb56004803603810190610bb091906145a1565b61259a565b005b348015610bc357600080fd5b50610bde6004803603810190610bd991906149e6565b612816565b005b610bfa6004803603810190610bf59190614b33565b61286b565b005b348015610c0857600080fd5b50610c236004803603810190610c1e91906145a1565b6128de565b005b348015610c3157600080fd5b50610c4c6004803603810190610c479190614638565b6128f0565b005b348015610c5a57600080fd5b50610c756004803603810190610c7091906145a1565b61293c565b604051610c82919061457f565b60405180910390f35b348015610c9757600080fd5b50610cb26004803603810190610cad9190614be2565b61294e565b005b348015610cc057600080fd5b50610cc96129c7565b604051610cd691906144d4565b60405180910390f35b348015610ceb57600080fd5b50610d066004803603810190610d01919061468a565b6129ed565b604051610d13919061461d565b60405180910390f35b348015610d2857600080fd5b50610d31612a05565b604051610d3e91906144d4565b60405180910390f35b348015610d5357600080fd5b50610d6e6004803603810190610d6991906145a1565b612a1d565b005b348015610d7c57600080fd5b50610d976004803603810190610d929190614c22565b612a3c565b005b348015610da557600080fd5b50610dae612ac1565b604051610dbb919061461d565b60405180910390f35b348015610dd057600080fd5b50610deb6004803603810190610de69190614c75565b612ac7565b005b348015610df957600080fd5b50610e146004803603810190610e0f9190614ca2565b612b13565b604051610e2191906144aa565b60405180910390f35b348015610e3657600080fd5b50610e516004803603810190610e4c9190614ce2565b612ba7565b005b348015610e5f57600080fd5b50610e7a6004803603810190610e759190614638565b612bda565b005b610e966004803603810190610e91919061480d565b612c5d565b005b610ea0612fab565b600082905060008173ffffffffffffffffffffffffffffffffffffffff166323b872dd3087866040518463ffffffff1660e01b8152600401610ee493929190614d81565b6020604051808303816000875af1158015610f03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f279190614dcd565b905080610f69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6090614e46565b60405180910390fd5b5050505050565b6000610f7b82613029565b9050919050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060028054610fb790614e95565b80601f0160208091040260200160405190810160405280929190818152602001828054610fe390614e95565b80156110305780601f1061100557610100808354040283529160200191611030565b820191906000526020600020905b81548152906001019060200180831161101357829003601f168201915b5050505050905090565b6000611045826130bb565b61107b576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006110c482611a3d565b90508073ffffffffffffffffffffffffffffffffffffffff166110e561311a565b73ffffffffffffffffffffffffffffffffffffffff1614611148576111118161110c61311a565b612b13565b611147576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600f5481565b601a6020528060005260406000206000915090505481565b6000611225613122565b6001546000540303905090565b7360e4d786628fea6478f785a6d7e704777c86a7c681565b60156020528060005260406000206000915090505481565b60166020528060005260406000206000915090505481565b60006112858261312b565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146112ec576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806112f8846131f7565b9150915061130e818761130961311a565b61321e565b61135a576113238661131e61311a565b612b13565b611359576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036113c0576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113cd8686866001613262565b80156113d857600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154600101919050819055506114a685611482888887613268565b7c020000000000000000000000000000000000000000000000000000000017613290565b600460008681526020019081526020016000208190555060007c020000000000000000000000000000000000000000000000000000000084160361152c576000600185019050600060046000838152602001908152602001600020540361152a576000548114611529578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461159486868660016132bb565b505050505050565b600c5481565b7382f371b47cc5b9cf23af60a9a31a9e7a6bef8a2d81565b73ba30e5f9bb24caa003e9f2f0497ad287fdf9562381565b60196020528060005260406000206000915090505481565b6115f2612fab565b600081116115ff57600080fd5b80600e8190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61164a8383836040518060200160405280600081525061286b565b505050565b3373ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d690614f12565b60405180910390fd5b6116e8816132c1565b50565b6116f3612fab565b47811115611736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172d90614f7e565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161175c90614fcf565b60006040518083038185875af1925050503d8060008114611799576040519150601f19603f3d011682016040523d82523d6000602084013e61179e565b606091505b50509050806117e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d990615030565b60405180910390fd5b505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046016600082600481111561182657611825615050565b5b600481111561183857611837615050565b5b815260200190815260200160002054421015611889576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611880906150cb565b60405180910390fd5b601760008260048111156118a05761189f615050565b5b60048111156118b2576118b1615050565b5b815260200190815260200160002054421115611903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fa906150cb565b60405180910390fd5b600482601054816119126132cf565b61191c919061511a565b111561195d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119549061519a565b60405180910390fd5b6018600083600481111561197457611973615050565b5b600481111561198657611985615050565b5b81526020019081526020016000205481601960008560048111156119ad576119ac615050565b5b60048111156119bf576119be615050565b5b8152602001908152602001600020546119d8919061511a565b1115611a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1090615206565b60405180910390fd5b611a21612fab565b611a2c6004856132e2565b611a368585613334565b5050505050565b6000611a488261312b565b9050919050565b611a57612fab565b8060118190555050565b600b8054611a6e90614e95565b80601f0160208091040260200160405190810160405280929190818152602001828054611a9a90614e95565b8015611ae75780601f10611abc57610100808354040283529160200191611ae7565b820191906000526020600020905b815481529060010190602001808311611aca57829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b56576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b60115481565b611bb5612fab565b611bbf6000613352565b565b60146020528060005260406000206000915090505481565b601b6020528060005260406000206000915090505481565b600360166000826004811115611c0a57611c09615050565b5b6004811115611c1c57611c1b615050565b5b815260200190815260200160002054421015611c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c64906150cb565b60405180910390fd5b60176000826004811115611c8457611c83615050565b5b6004811115611c9657611c95615050565b5b815260200190815260200160002054421115611ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cde906150cb565b60405180910390fd5b60038260105481611cf66132cf565b611d00919061511a565b1115611d41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d389061519a565b60405180910390fd5b60186000836004811115611d5857611d57615050565b5b6004811115611d6a57611d69615050565b5b8152602001908152602001600020548160196000856004811115611d9157611d90615050565b5b6004811115611da357611da2615050565b5b815260200190815260200160002054611dbc919061511a565b1115611dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df490615206565b60405180910390fd5b6000600390506000611e0e82613418565b905060008111611e53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4a90615272565b60405180910390fd5b8086601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e9f919061511a565b1115611eaa57600080fd5b611eb482876136e6565b611ebe82876132e2565b611ec83387613334565b85601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f17919061511a565b92505081905550505050505050565b600060166000826004811115611f3f57611f3e615050565b5b6004811115611f5157611f50615050565b5b815260200190815260200160002054421015611fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f99906150cb565b60405180910390fd5b60176000826004811115611fb957611fb8615050565b5b6004811115611fcb57611fca615050565b5b81526020019081526020016000205442111561201c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612013906150cb565b60405180910390fd5b6000846010548161202b6132cf565b612035919061511a565b1115612076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206d9061519a565b60405180910390fd5b6018600083600481111561208d5761208c615050565b5b600481111561209f5761209e615050565b5b81526020019081526020016000205481601960008560048111156120c6576120c5615050565b5b60048111156120d8576120d7615050565b5b8152602001908152602001600020546120f1919061511a565b1115612132576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212990615206565b60405180910390fd5b8484600c5460003360405160200161214a91906152da565b6040516020818303038152906040528051906020012090506121ae848480806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508383613a87565b6121ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e490615341565b60405180910390fd5b6011548a1115612232576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612229906153ad565b60405180910390fd5b600061223e818c6136e6565b612248818c6132e2565b612252338c613334565b5050505050505050505050565b600d5481565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b612297612fab565b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e5481565b6122e9612fab565b80600b90816122f8919061556f565b5050565b60186020528060005260406000206000915090505481565b60606003805461232390614e95565b80601f016020809104026020016040519081016040528092919081815260200182805461234f90614e95565b801561239c5780601f106123715761010080835404028352916020019161239c565b820191906000526020600020905b81548152906001019060200180831161237f57829003601f168201915b5050505050905090565b6123ae612fab565b80601860008460048111156123c6576123c5615050565b5b60048111156123d8576123d7615050565b5b8152602001908152602001600020819055505050565b80600760006123fb61311a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166124a861311a565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516124ed91906144aa565b60405180910390a35050565b612501612fab565b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61254d612fab565b6000811161255a57600080fd5b806015600084600481111561257257612571615050565b5b600481111561258457612583615050565b5b8152602001908152602001600020819055505050565b6001601660008260048111156125b3576125b2615050565b5b60048111156125c5576125c4615050565b5b815260200190815260200160002054421015612616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260d906150cb565b60405180910390fd5b6017600082600481111561262d5761262c615050565b5b600481111561263f5761263e615050565b5b815260200190815260200160002054421115612690576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612687906150cb565b60405180910390fd5b6001826010548161269f6132cf565b6126a9919061511a565b11156126ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e19061519a565b60405180910390fd5b6018600083600481111561270157612700615050565b5b600481111561271357612712615050565b5b815260200190815260200160002054816019600085600481111561273a57612739615050565b5b600481111561274c5761274b615050565b5b815260200190815260200160002054612765919061511a565b11156127a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279d90615206565b60405180910390fd5b6011548411156127eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e2906153ad565b60405180910390fd5b6000600190506127fb81866136e6565b61280581866132e2565b61280f3386613334565b5050505050565b61281e612fab565b6000811161282b57600080fd5b806014600084600481111561284357612842615050565b5b600481111561285557612854615050565b5b8152602001908152602001600020819055505050565b61287684848461127a565b60008373ffffffffffffffffffffffffffffffffffffffff163b146128d8576128a184848484613a9e565b6128d7576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b6128e6612fab565b8060108190555050565b6128f8612fab565b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606061294782613bee565b9050919050565b612956612fab565b6000600481111561296a57612969615050565b5b82600481111561297d5761297c615050565b5b0361298e5780600c819055506129c3565b600260048111156129a2576129a1615050565b5b8260048111156129b5576129b4615050565b5b036129c25780600d819055505b5b5050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60176020528060005260406000206000915090505481565b73bc4ca0eda7647a8ab7c2061c2e118a18a936f13d81565b612a25612fab565b60008111612a3257600080fd5b80600f8190555050565b612a44612fab565b8160166000856004811115612a5c57612a5b615050565b5b6004811115612a6e57612a6d615050565b5b8152602001908152602001600020819055508060176000856004811115612a9857612a97615050565b5b6004811115612aaa57612aa9615050565b5b815260200190815260200160002081905550505050565b60105481565b612acf612fab565b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b612baf612fab565b600082118015612bbf5750600081115b612bc857600080fd5b81600e8190555080600f819055505050565b612be2612fab565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c48906156b3565b60405180910390fd5b612c5a81613352565b50565b600260166000826004811115612c7657612c75615050565b5b6004811115612c8857612c87615050565b5b815260200190815260200160002054421015612cd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cd0906150cb565b60405180910390fd5b60176000826004811115612cf057612cef615050565b5b6004811115612d0257612d01615050565b5b815260200190815260200160002054421115612d53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d4a906150cb565b60405180910390fd5b60028460105481612d626132cf565b612d6c919061511a565b1115612dad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612da49061519a565b60405180910390fd5b60186000836004811115612dc457612dc3615050565b5b6004811115612dd657612dd5615050565b5b8152602001908152602001600020548160196000856004811115612dfd57612dfc615050565b5b6004811115612e0f57612e0e615050565b5b815260200190815260200160002054612e28919061511a565b1115612e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e6090615206565b60405180910390fd5b8484600d54600033604051602001612e8191906152da565b604051602081830303815290604052805190602001209050612ee5848480806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508383613a87565b612f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f1b90615341565b60405180910390fd5b600060029050612f34818c6136e6565b612f3e818c6132e2565b612f48338c613334565b8a601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612f97919061511a565b925050819055505050505050505050505050565b612fb3613c8c565b73ffffffffffffffffffffffffffffffffffffffff16612fd1612265565b73ffffffffffffffffffffffffffffffffffffffff1614613027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161301e9061571f565b60405180910390fd5b565b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061308457506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806130b45750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6000816130c6613122565b111580156130d5575060005482105b8015613113575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b60006001905090565b6000808290508061313a613122565b116131c0576000548110156131bf5760006004600083815260200190815260200160002054905060007c01000000000000000000000000000000000000000000000000000000008216036131bd575b600081036131b3576004600083600190039350838152602001908152602001600020549050613189565b80925050506131f2565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e861327f868684613c94565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b6132cc816000613c9d565b50565b60006132d9613122565b60005403905090565b80601960008460048111156132fa576132f9615050565b5b600481111561330c5761330b615050565b5b81526020019081526020016000206000828254613329919061511a565b925050819055505050565b61334e828260405180602001604052806000815250613eef565b5050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006002600481111561342e5761342d615050565b5b82600481111561344157613440615050565b5b036134e15760007382f371b47cc5b9cf23af60a9a31a9e7a6bef8a2d90508073ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b815260040161349891906144d4565b602060405180830381865afa1580156134b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134d99190615754565b9150506136e1565b600360048111156134f5576134f4615050565b5b82600481111561350857613507615050565b5b036136e057600073bc4ca0eda7647a8ab7c2061c2e118a18a936f13d905060007360e4d786628fea6478f785a6d7e704777c86a7c69050600073ba30e5f9bb24caa003e9f2f0497ad287fdf9562390508073ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b815260040161359191906144d4565b602060405180830381865afa1580156135ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135d29190615754565b8273ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b815260040161360b91906144d4565b602060405180830381865afa158015613628573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061364c9190615754565b8473ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b815260040161368591906144d4565b602060405180830381865afa1580156136a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136c69190615754565b6136d0919061511a565b6136da919061511a565b93505050505b5b919050565b600034146138af576000816014600085600481111561370857613707615050565b5b600481111561371a57613719615050565b5b8152602001908152602001600020546137339190615781565b905080341015613778576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161376f90615827565b60405180910390fd5b600081346137869190615847565b90506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516137d090614fcf565b60006040518083038185875af1925050503d806000811461380d576040519150601f19603f3d011682016040523d82523d6000602084013e613812565b606091505b5050905080613856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161384d906158c7565b60405180910390fd5b60008211156138a7573373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156138a5573d6000803e3d6000fd5b505b505050613a83565b60008082601560008660048111156138ca576138c9615050565b5b60048111156138dc576138db615050565b5b8152602001908152602001600020546138f59190615781565b905060006003600481111561390d5761390c615050565b5b8560048111156139205761391f615050565b5b0361395f57600e54826139339190615781565b9150601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050613995565b600f548261396d9190615781565b9150601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b60008190508073ffffffffffffffffffffffffffffffffffffffff166323b872dd33600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866040518463ffffffff1660e01b81526004016139f993929190614d81565b6020604051808303816000875af1158015613a18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a3c9190614dcd565b935083613a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a7590615933565b60405180910390fd5b505050505b5050565b600082613a948584613f8c565b1490509392505050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02613ac461311a565b8786866040518563ffffffff1660e01b8152600401613ae694939291906159a8565b6020604051808303816000875af1925050508015613b2257506040513d601f19601f82011682018060405250810190613b1f9190615a09565b60015b613b9b573d8060008114613b52576040519150601f19603f3d011682016040523d82523d6000602084013e613b57565b606091505b506000815103613b93576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6060613bf9826130bb565b613c2f576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000613c39613fe2565b90506000815103613c595760405180602001604052806000815250613c84565b80613c6384614074565b604051602001613c74929190615a72565b6040516020818303038152906040525b915050919050565b600033905090565b60009392505050565b6000613ca88361312b565b90506000819050600080613cbb866131f7565b915091508415613d2457613cd78184613cd261311a565b61321e565b613d2357613cec83613ce761311a565b612b13565b613d22576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5b613d32836000886001613262565b8015613d3d57600082555b600160806001901b03600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550613de583613da285600088613268565b7c02000000000000000000000000000000000000000000000000000000007c01000000000000000000000000000000000000000000000000000000001717613290565b600460008881526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000851603613e6b5760006001870190506000600460008381526020019081526020016000205403613e69576000548114613e68578460046000838152602001908152602001600020819055505b5b505b85600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4613ed58360008860016132bb565b600160008154809291906001019190505550505050505050565b613ef983836140c4565b60008373ffffffffffffffffffffffffffffffffffffffff163b14613f8757600080549050600083820390505b613f396000868380600101945086613a9e565b613f6f576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818110613f26578160005414613f8457600080fd5b50505b505050565b60008082905060005b8451811015613fd757613fc282868381518110613fb557613fb4615a96565b5b602002602001015161427f565b91508080613fcf90615ac5565b915050613f95565b508091505092915050565b6060600b8054613ff190614e95565b80601f016020809104026020016040519081016040528092919081815260200182805461401d90614e95565b801561406a5780601f1061403f5761010080835404028352916020019161406a565b820191906000526020600020905b81548152906001019060200180831161404d57829003601f168201915b5050505050905090565b606060a060405101806040526020810391506000825281835b6001156140af57600184039350600a81066030018453600a810490508061408d575b50828103602084039350808452505050919050565b60008054905060008203614104576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6141116000848385613262565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550614188836141796000866000613268565b614182856142aa565b17613290565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b81811461422957808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a46001810190506141ee565b5060008203614264576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600081905550505061427a60008483856132bb565b505050565b60008183106142975761429282846142ba565b6142a2565b6142a183836142ba565b5b905092915050565b60006001821460e11b9050919050565b600082600052816020526040600020905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000614310826142e5565b9050919050565b61432081614305565b811461432b57600080fd5b50565b60008135905061433d81614317565b92915050565b600061434e826142e5565b9050919050565b61435e81614343565b811461436957600080fd5b50565b60008135905061437b81614355565b92915050565b6000819050919050565b61439481614381565b811461439f57600080fd5b50565b6000813590506143b18161438b565b92915050565b6000806000606084860312156143d0576143cf6142db565b5b60006143de8682870161432e565b93505060206143ef8682870161436c565b9250506040614400868287016143a2565b9150509250925092565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61443f8161440a565b811461444a57600080fd5b50565b60008135905061445c81614436565b92915050565b600060208284031215614478576144776142db565b5b60006144868482850161444d565b91505092915050565b60008115159050919050565b6144a48161448f565b82525050565b60006020820190506144bf600083018461449b565b92915050565b6144ce81614343565b82525050565b60006020820190506144e960008301846144c5565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561452957808201518184015260208101905061450e565b60008484015250505050565b6000601f19601f8301169050919050565b6000614551826144ef565b61455b81856144fa565b935061456b81856020860161450b565b61457481614535565b840191505092915050565b600060208201905081810360008301526145998184614546565b905092915050565b6000602082840312156145b7576145b66142db565b5b60006145c5848285016143a2565b91505092915050565b600080604083850312156145e5576145e46142db565b5b60006145f38582860161436c565b9250506020614604858286016143a2565b9150509250929050565b61461781614381565b82525050565b6000602082019050614632600083018461460e565b92915050565b60006020828403121561464e5761464d6142db565b5b600061465c8482850161436c565b91505092915050565b6005811061467257600080fd5b50565b60008135905061468481614665565b92915050565b6000602082840312156146a05761469f6142db565b5b60006146ae84828501614675565b91505092915050565b6000806000606084860312156146d0576146cf6142db565b5b60006146de8682870161436c565b93505060206146ef8682870161436c565b9250506040614700868287016143a2565b9150509250925092565b6000819050919050565b61471d8161470a565b82525050565b60006020820190506147386000830184614714565b92915050565b61474781614305565b82525050565b6000602082019050614762600083018461473e565b92915050565b6000806040838503121561477f5761477e6142db565b5b600061478d8582860161432e565b925050602061479e858286016143a2565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126147cd576147cc6147a8565b5b8235905067ffffffffffffffff8111156147ea576147e96147ad565b5b602083019150836020820283011115614806576148056147b2565b5b9250929050565b600080600060408486031215614826576148256142db565b5b6000614834868287016143a2565b935050602084013567ffffffffffffffff811115614855576148546142e0565b5b614861868287016147b7565b92509250509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6148aa82614535565b810181811067ffffffffffffffff821117156148c9576148c8614872565b5b80604052505050565b60006148dc6142d1565b90506148e882826148a1565b919050565b600067ffffffffffffffff82111561490857614907614872565b5b61491182614535565b9050602081019050919050565b82818337600083830152505050565b600061494061493b846148ed565b6148d2565b90508281526020810184848401111561495c5761495b61486d565b5b61496784828561491e565b509392505050565b600082601f830112614984576149836147a8565b5b813561499484826020860161492d565b91505092915050565b6000602082840312156149b3576149b26142db565b5b600082013567ffffffffffffffff8111156149d1576149d06142e0565b5b6149dd8482850161496f565b91505092915050565b600080604083850312156149fd576149fc6142db565b5b6000614a0b85828601614675565b9250506020614a1c858286016143a2565b9150509250929050565b614a2f8161448f565b8114614a3a57600080fd5b50565b600081359050614a4c81614a26565b92915050565b60008060408385031215614a6957614a686142db565b5b6000614a778582860161436c565b9250506020614a8885828601614a3d565b9150509250929050565b600067ffffffffffffffff821115614aad57614aac614872565b5b614ab682614535565b9050602081019050919050565b6000614ad6614ad184614a92565b6148d2565b905082815260208101848484011115614af257614af161486d565b5b614afd84828561491e565b509392505050565b600082601f830112614b1a57614b196147a8565b5b8135614b2a848260208601614ac3565b91505092915050565b60008060008060808587031215614b4d57614b4c6142db565b5b6000614b5b8782880161436c565b9450506020614b6c8782880161436c565b9350506040614b7d878288016143a2565b925050606085013567ffffffffffffffff811115614b9e57614b9d6142e0565b5b614baa87828801614b05565b91505092959194509250565b614bbf8161470a565b8114614bca57600080fd5b50565b600081359050614bdc81614bb6565b92915050565b60008060408385031215614bf957614bf86142db565b5b6000614c0785828601614675565b9250506020614c1885828601614bcd565b9150509250929050565b600080600060608486031215614c3b57614c3a6142db565b5b6000614c4986828701614675565b9350506020614c5a868287016143a2565b9250506040614c6b868287016143a2565b9150509250925092565b600060208284031215614c8b57614c8a6142db565b5b6000614c998482850161432e565b91505092915050565b60008060408385031215614cb957614cb86142db565b5b6000614cc78582860161436c565b9250506020614cd88582860161436c565b9150509250929050565b60008060408385031215614cf957614cf86142db565b5b6000614d07858286016143a2565b9250506020614d18858286016143a2565b9150509250929050565b6000819050919050565b6000614d47614d42614d3d846142e5565b614d22565b6142e5565b9050919050565b6000614d5982614d2c565b9050919050565b6000614d6b82614d4e565b9050919050565b614d7b81614d60565b82525050565b6000606082019050614d9660008301866144c5565b614da36020830185614d72565b614db0604083018461460e565b949350505050565b600081519050614dc781614a26565b92915050565b600060208284031215614de357614de26142db565b5b6000614df184828501614db8565b91505092915050565b7f4661696c65642077697468647261772045524332300000000000000000000000600082015250565b6000614e306015836144fa565b9150614e3b82614dfa565b602082019050919050565b60006020820190508181036000830152614e5f81614e23565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614ead57607f821691505b602082108103614ec057614ebf614e66565b5b50919050565b7f57726f6e6720436f6e7472616374000000000000000000000000000000000000600082015250565b6000614efc600e836144fa565b9150614f0782614ec6565b602082019050919050565b60006020820190508181036000830152614f2b81614eef565b9050919050565b7f4f7665722062616c616e63650000000000000000000000000000000000000000600082015250565b6000614f68600c836144fa565b9150614f7382614f32565b602082019050919050565b60006020820190508181036000830152614f9781614f5b565b9050919050565b600081905092915050565b50565b6000614fb9600083614f9e565b9150614fc482614fa9565b600082019050919050565b6000614fda82614fac565b9150819050919050565b7f4661696c65642077697468647261772045544800000000000000000000000000600082015250565b600061501a6013836144fa565b915061502582614fe4565b602082019050919050565b600060208201905081810360008301526150498161500d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f53616c65206973206e6f74206f70656e00000000000000000000000000000000600082015250565b60006150b56010836144fa565b91506150c08261507f565b602082019050919050565b600060208201905081810360008301526150e4816150a8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061512582614381565b915061513083614381565b9250828201905080821115615148576151476150eb565b5b92915050565b7f416c6c204e46547320617265206d696e74656400000000000000000000000000600082015250565b60006151846013836144fa565b915061518f8261514e565b602082019050919050565b600060208201905081810360008301526151b381615177565b9050919050565b7f416c6c204e465420617265206d696e74656420666f722053616c655479706500600082015250565b60006151f0601f836144fa565b91506151fb826151ba565b602082019050919050565b6000602082019050818103600083015261521f816151e3565b9050919050565b7f30204e46542042616c616e636500000000000000000000000000000000000000600082015250565b600061525c600d836144fa565b915061526782615226565b602082019050919050565b6000602082019050818103600083015261528b8161524f565b9050919050565b60008160601b9050919050565b60006152aa82615292565b9050919050565b60006152bc8261529f565b9050919050565b6152d46152cf82614343565b6152b1565b82525050565b60006152e682846152c3565b60148201915081905092915050565b7f496e636f72726563742070726f6f660000000000000000000000000000000000600082015250565b600061532b600f836144fa565b9150615336826152f5565b602082019050919050565b6000602082019050818103600083015261535a8161531e565b9050919050565b7f4f766572204d696e74204c696d69740000000000000000000000000000000000600082015250565b6000615397600f836144fa565b91506153a282615361565b602082019050919050565b600060208201905081810360008301526153c68161538a565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261542f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826153f2565b61543986836153f2565b95508019841693508086168417925050509392505050565b600061546c61546761546284614381565b614d22565b614381565b9050919050565b6000819050919050565b61548683615451565b61549a61549282615473565b8484546153ff565b825550505050565b600090565b6154af6154a2565b6154ba81848461547d565b505050565b5b818110156154de576154d36000826154a7565b6001810190506154c0565b5050565b601f821115615523576154f4816153cd565b6154fd846153e2565b8101602085101561550c578190505b615520615518856153e2565b8301826154bf565b50505b505050565b600082821c905092915050565b600061554660001984600802615528565b1980831691505092915050565b600061555f8383615535565b9150826002028217905092915050565b615578826144ef565b67ffffffffffffffff81111561559157615590614872565b5b61559b8254614e95565b6155a68282856154e2565b600060209050601f8311600181146155d957600084156155c7578287015190505b6155d18582615553565b865550615639565b601f1984166155e7866153cd565b60005b8281101561560f578489015182556001820191506020850194506020810190506155ea565b8683101561562c5784890151615628601f891682615535565b8355505b6001600288020188555050505b505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061569d6026836144fa565b91506156a882615641565b604082019050919050565b600060208201905081810360008301526156cc81615690565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006157096020836144fa565b9150615714826156d3565b602082019050919050565b60006020820190508181036000830152615738816156fc565b9050919050565b60008151905061574e8161438b565b92915050565b60006020828403121561576a576157696142db565b5b60006157788482850161573f565b91505092915050565b600061578c82614381565b915061579783614381565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156157d0576157cf6150eb565b5b828202905092915050565b7f57652072657175697265206d6f72652065746865720000000000000000000000600082015250565b60006158116015836144fa565b915061581c826157db565b602082019050919050565b6000602082019050818103600083015261584081615804565b9050919050565b600061585282614381565b915061585d83614381565b9250828203905081811115615875576158746150eb565b5b92915050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b60006158b16014836144fa565b91506158bc8261587b565b602082019050919050565b600060208201905081810360008301526158e0816158a4565b9050919050565b7f4661696c656420746f2073656e6420546f6b656e000000000000000000000000600082015250565b600061591d6014836144fa565b9150615928826158e7565b602082019050919050565b6000602082019050818103600083015261594c81615910565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061597a82615953565b615984818561595e565b935061599481856020860161450b565b61599d81614535565b840191505092915050565b60006080820190506159bd60008301876144c5565b6159ca60208301866144c5565b6159d7604083018561460e565b81810360608301526159e9818461596f565b905095945050505050565b600081519050615a0381614436565b92915050565b600060208284031215615a1f57615a1e6142db565b5b6000615a2d848285016159f4565b91505092915050565b600081905092915050565b6000615a4c826144ef565b615a568185615a36565b9350615a6681856020860161450b565b80840191505092915050565b6000615a7e8285615a41565b9150615a8a8284615a41565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000615ad082614381565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615b0257615b016150eb565b5b60018201905091905056fea2646970667358221220a728ea4283b449b3bd694daee34fd00d78c3bbe57914cc81a49a8836de20c5b264736f6c63430008100033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000002ea46ef44dbb549fb45a65ba1a31543056d367a000000000000000000000000000000000000000000000000000000000000000d526561647920746f204241474300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d526561647920746f204241474300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003468747470733a2f2f6d696e742e626167632e616c746176612e636f6d2f76312f6d657461646174612f696e7669746174696f6e2f000000000000000000000000