608060405260405180606001604052806036815260200162003fff60369139600890816200002e9190620004f5565b506101f460095573349560b18af0ac8474dfa15221c5430a94a5e3c6600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801562000095575f80fd5b50336040518060400160405280600a81526020017f4e6f6e616d65636c7562000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4e4e4300000000000000000000000000000000000000000000000000000000008152508160019081620001149190620004f5565b508060029081620001269190620004f5565b5062000137620001ca60201b60201c565b60048190555050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001b2575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620001a991906200061c565b60405180910390fd5b620001c381620001ce60201b60201c565b5062000637565b5f90565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200030d57607f821691505b602082108103620003235762000322620002c8565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200034a565b6200039386836200034a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620003dd620003d7620003d184620003ab565b620003b4565b620003ab565b9050919050565b5f819050919050565b620003f883620003bd565b620004106200040782620003e4565b84845462000356565b825550505050565b5f90565b6200042662000418565b62000433818484620003ed565b505050565b5b818110156200045a576200044e5f826200041c565b60018101905062000439565b5050565b601f821115620004a957620004738162000329565b6200047e846200033b565b810160208510156200048e578190505b620004a66200049d856200033b565b83018262000438565b50505b505050565b5f82821c905092915050565b5f620004cb5f1984600802620004ae565b1980831691505092915050565b5f620004e58383620004ba565b9150826002028217905092915050565b620005008262000291565b67ffffffffffffffff8111156200051c576200051b6200029b565b5b620005288254620002f5565b620005358282856200045e565b5f60209050601f8311600181146200056b575f841562000556578287015190505b620005628582620004d8565b865550620005d1565b601f1984166200057b8662000329565b5f5b82811015620005a4578489015182556001820191506020850194506020810190506200057d565b86831015620005c45784890151620005c0601f891682620004ba565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200060482620005d9565b9050919050565b6200061681620005f8565b82525050565b5f602082019050620006315f8301846200060b565b92915050565b6139ba80620006455f395ff3fe60806040526004361061019b575f3560e01c80636f8b44b0116100eb578063a22cb46511610089578063ba4e955e11610063578063ba4e955e1461056d578063c87b56dd14610595578063e985e9c5146105d1578063f2fde38b1461060d5761019b565b8063a22cb465146104f3578063ae5224c41461051b578063b88d4fde146105455761019b565b80638462151c116100c55780638462151c1461043b5780638da5cb5b14610477578063915f2ca2146104a157806395d89b41146104c95761019b565b80636f8b44b0146103c157806370a08231146103e9578063715018a6146104255761019b565b806332cb6b0c1161015857806342842e0e1161013257806342842e0e1461030b57806355f804b3146103335780636352211e1461035b5780636c0360eb146103975761019b565b806332cb6b0c146102bb5780633ccfd60b146102e557806340c10f19146102ef5761019b565b806301ffc9a71461019f57806306fdde03146101db578063081812fc14610205578063095ea7b31461024157806318160ddd1461026957806323b872dd14610293575b5f80fd5b3480156101aa575f80fd5b506101c560048036038101906101c0919061237c565b610635565b6040516101d291906123c1565b60405180910390f35b3480156101e6575f80fd5b506101ef610716565b6040516101fc9190612464565b60405180910390f35b348015610210575f80fd5b5061022b600480360381019061022691906124b7565b6107a6565b6040516102389190612521565b60405180910390f35b34801561024c575f80fd5b5061026760048036038101906102629190612564565b610827565b005b348015610274575f80fd5b5061027d61093d565b60405161028a91906125b1565b60405180910390f35b34801561029e575f80fd5b506102b960048036038101906102b491906125ca565b61094b565b005b3480156102c6575f80fd5b506102cf6109ab565b6040516102dc91906125b1565b60405180910390f35b6102ed6109b1565b005b61030960048036038101906103049190612564565b610a06565b005b348015610316575f80fd5b50610331600480360381019061032c91906125ca565b610a73565b005b34801561033e575f80fd5b5061035960048036038101906103549190612746565b610a92565b005b348015610366575f80fd5b50610381600480360381019061037c91906124b7565b610aad565b60405161038e9190612521565b60405180910390f35b3480156103a2575f80fd5b506103ab610ac4565b6040516103b89190612464565b60405180910390f35b3480156103cc575f80fd5b506103e760048036038101906103e291906124b7565b610b50565b005b3480156103f4575f80fd5b5061040f600480360381019061040a919061278d565b610b62565b60405161041c91906125b1565b60405180910390f35b348015610430575f80fd5b50610439610c59565b005b348015610446575f80fd5b50610461600480360381019061045c919061278d565b610c6c565b60405161046e919061286f565b60405180910390f35b348015610482575f80fd5b5061048b610d62565b6040516104989190612521565b60405180910390f35b3480156104ac575f80fd5b506104c760048036038101906104c29190612564565b610d8a565b005b3480156104d4575f80fd5b506104dd610e7e565b6040516104ea9190612464565b60405180910390f35b3480156104fe575f80fd5b50610519600480360381019061051491906128b9565b610f0e565b005b348015610526575f80fd5b5061052f611089565b60405161053c9190612521565b60405180910390f35b348015610550575f80fd5b5061056b60048036038101906105669190612995565b6110b9565b005b348015610578575f80fd5b50610593600480360381019061058e919061278d565b61111b565b005b3480156105a0575f80fd5b506105bb60048036038101906105b691906124b7565b611166565b6040516105c89190612464565b60405180910390f35b3480156105dc575f80fd5b506105f760048036038101906105f29190612a15565b61120a565b60405161060491906123c1565b60405180910390f35b348015610618575f80fd5b50610633600480360381019061062e919061278d565b611298565b005b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106ff57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061070f575061070e8261131c565b5b9050919050565b60606001805461072590612a80565b80601f016020809104026020016040519081016040528092919081815260200182805461075190612a80565b801561079c5780601f106107735761010080835404028352916020019161079c565b820191905f5260205f20905b81548152906001019060200180831161077f57829003601f168201915b5050505050905090565b5f6107b082611385565b6107ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e690612b20565b60405180910390fd5b60055f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f61083182610aad565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089890612bae565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108c06113aa565b73ffffffffffffffffffffffffffffffffffffffff1614806108ef57506108ee816108e96113aa565b61120a565b5b61092e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092590612c3c565b60405180910390fd5b61093883836113b1565b505050565b5f610946611467565b905090565b61095c6109566113aa565b82611482565b61099b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099290612cca565b60405180910390fd5b6109a683838361155e565b505050565b60095481565b6109b96117d8565b6109c1610d62565b73ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610a03573d5f803e3d5ffd5b50565b610a0e6117d8565b60095481610a1a61093d565b610a249190612d15565b1115610a65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5c90612d92565b60405180910390fd5b610a6f828261185f565b5050565b610a8d83838360405180602001604052805f8152506110b9565b505050565b610a9a6117d8565b8060089081610aa99190612f4d565b5050565b5f80610ab88361187c565b50905080915050919050565b60088054610ad190612a80565b80601f0160208091040260200160405190810160405280929190818152602001828054610afd90612a80565b8015610b485780601f10610b1f57610100808354040283529160200191610b48565b820191905f5260205f20905b815481529060010190602001808311610b2b57829003601f168201915b505050505081565b610b586117d8565b8060098190555050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc89061308c565b60405180910390fd5b5f80610bdb611909565b90505b610be661190d565b811015610c4f57610bf681611385565b15610c4457610c0481610aad565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c435781610c40906130aa565b91505b5b806001019050610bde565b5080915050919050565b610c616117d8565b610c6a5f611916565b565b60605f80610c7984610b62565b90505f8167ffffffffffffffff811115610c9657610c95612622565b5b604051908082528060200260200182016040528015610cc45781602001602082028036833780820191505090505b5090505f610cd0611909565b90505b828414610d5657610ce381611385565b15610d4b578573ffffffffffffffffffffffffffffffffffffffff16610d0882610aad565b73ffffffffffffffffffffffffffffffffffffffff1603610d4a5780828580600101965081518110610d3d57610d3c6130f1565b5b6020026020010181815250505b5b806001019050610cd3565b50809350505050919050565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1090613168565b60405180910390fd5b60095481610e2561093d565b610e2f9190612d15565b1115610e70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6790612d92565b60405180910390fd5b610e7a828261185f565b5050565b606060028054610e8d90612a80565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb990612a80565b8015610f045780601f10610edb57610100808354040283529160200191610f04565b820191905f5260205f20905b815481529060010190602001808311610ee757829003601f168201915b5050505050905090565b610f166113aa565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7a906131d0565b60405180910390fd5b8060065f610f8f6113aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166110386113aa565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161107d91906123c1565b60405180910390a35050565b5f6110926117d8565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110ca6110c46113aa565b83611482565b611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090612cca565b60405180910390fd5b611115848484846119d9565b50505050565b6111236117d8565b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606061117182611385565b6111b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a79061325e565b60405180910390fd5b5f6111b9611a37565b90505f8151116111d75760405180602001604052805f815250611202565b806111e184611ac7565b6040516020016111f29291906132b6565b6040516020818303038152906040525b915050919050565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b6112a06117d8565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611310575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016113079190612521565b60405180910390fd5b61131981611916565b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f61138e61190d565b821080156113a35750816113a0611909565b11155b9050919050565b5f33905090565b8160055f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661142183610aad565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f611470611909565b60045461147d91906132d9565b905090565b5f61148c82611385565b6114cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c29061337c565b60405180910390fd5b5f6114d583610aad565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061154457508373ffffffffffffffffffffffffffffffffffffffff1661152c846107a6565b73ffffffffffffffffffffffffffffffffffffffff16145b806115555750611554818561120a565b5b91505092915050565b5f806115698361187c565b915091508473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146115db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d29061340a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611649576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164090613498565b60405180910390fd5b6116568585856001611b91565b6116605f846113b1565b5f60018461166e9190612d15565b9050611683815f611b9790919063ffffffff16565b158015611696575061169361190d565b81105b156116fe578560035f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506116fd815f611bec90919063ffffffff16565b5b8460035f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081841461176857611767845f611bec90919063ffffffff16565b5b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46117d08686866001611c43565b505050505050565b6117e06113aa565b73ffffffffffffffffffffffffffffffffffffffff166117fe610d62565b73ffffffffffffffffffffffffffffffffffffffff161461185d576118216113aa565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016118549190612521565b60405180910390fd5b565b611878828260405180602001604052805f815250611c49565b5050565b5f8061188783611385565b6118c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bd90613526565b60405180910390fd5b6118cf83611cb0565b905060035f8281526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150915091565b5f90565b5f600454905090565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6119e484848461155e565b6119f2848484600185611ccb565b611a31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a28906135b4565b60405180910390fd5b50505050565b606060088054611a4690612a80565b80601f0160208091040260200160405190810160405280929190818152602001828054611a7290612a80565b8015611abd5780601f10611a9457610100808354040283529160200191611abd565b820191905f5260205f20905b815481529060010190602001808311611aa057829003601f168201915b5050505050905090565b60605f6001611ad584611e6c565b0190505f8167ffffffffffffffff811115611af357611af2612622565b5b6040519080825280601f01601f191660200182016040528015611b255781602001600182028036833780820191505090505b5090505f82602001820190505b600115611b86578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611b7b57611b7a6135d2565b5b0494505f8503611b32575b819350505050919050565b50505050565b5f80600883901c90505f60ff84167f8000000000000000000000000000000000000000000000000000000000000000901c90505f81865f015f8581526020019081526020015f20541614159250505092915050565b5f600882901c90505f60ff83167f8000000000000000000000000000000000000000000000000000000000000000901c905080845f015f8481526020019081526020015f205f828254179250508190555050505050565b50505050565b5f611c5261190d565b9050611c5e8484611fbd565b611c6b5f85838686611ccb565b611caa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca1906135b4565b60405180910390fd5b50505050565b5f611cc4825f6121a090919063ffffffff16565b9050919050565b5f80853b90505f811115611e5d57600191505f8590505b8486611cee9190612d15565b811015611e56578673ffffffffffffffffffffffffffffffffffffffff1663150b7a02611d196113aa565b8a84886040518563ffffffff1660e01b8152600401611d3b9493929190613651565b6020604051808303815f875af1925050508015611d7657506040513d601f19601f82011682018060405250810190611d7391906136af565b60015b611df5573d805f8114611da4576040519150601f19603f3d011682016040523d82523d5f602084013e611da9565b606091505b505f815103611ded576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de4906135b4565b60405180910390fd5b805181602001fd5b838015611e46575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9350508080600101915050611ce2565b5050611e63565b60019150505b95945050505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611ec8577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611ebe57611ebd6135d2565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611f05576d04ee2d6d415b85acef81000000008381611efb57611efa6135d2565b5b0492506020810190505b662386f26fc100008310611f3457662386f26fc100008381611f2a57611f296135d2565b5b0492506010810190505b6305f5e1008310611f5d576305f5e1008381611f5357611f526135d2565b5b0492506008810190505b6127108310611f82576127108381611f7857611f776135d2565b5b0492506004810190505b60648310611fa55760648381611f9b57611f9a6135d2565b5b0492506002810190505b600a8310611fb4576001810190505b80915050919050565b5f611fc661190d565b90505f821161200a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120019061374a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612078576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206f906137d8565b60405180910390fd5b6120845f848385611b91565b8160045f8282546120959190612d15565b925050819055508260035f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506120fe815f611bec90919063ffffffff16565b5f80838361210c9190612d15565b905073ffffffffffffffffffffffffffffffffffffffff8516915082825f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4600183015b81811461218c5780835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4600181019050612153565b506121995f868587611c43565b5050505050565b5f80600883901c90505f60ff841690505f855f015f8481526020019081526020015f205490508160ff1881901c90505f8111156121f2576121e08161228d565b60ff168203600884901b179350612284565b5b600115612283575f831161223c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223390613866565b60405180910390fd5b828060019003935050855f015f8481526020019081526020015f205490505f81111561227e5761226b8161228d565b60ff0360ff16600884901b179350612283565b6121f3565b5b50505092915050565b5f6040518061012001604052806101008152602001613885610100913960f87e818283848586878898a8b8c8d8e8f929395969799a9b9d9e9faaeb6bedeeff6122d5856122fe565b02901c815181106122e9576122e86130f1565b5b602001015160f81c60f81b60f81c9050919050565b5f80821161230a575f80fd5b815f0382169050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61235b81612327565b8114612365575f80fd5b50565b5f8135905061237681612352565b92915050565b5f602082840312156123915761239061231f565b5b5f61239e84828501612368565b91505092915050565b5f8115159050919050565b6123bb816123a7565b82525050565b5f6020820190506123d45f8301846123b2565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156124115780820151818401526020810190506123f6565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612436826123da565b61244081856123e4565b93506124508185602086016123f4565b6124598161241c565b840191505092915050565b5f6020820190508181035f83015261247c818461242c565b905092915050565b5f819050919050565b61249681612484565b81146124a0575f80fd5b50565b5f813590506124b18161248d565b92915050565b5f602082840312156124cc576124cb61231f565b5b5f6124d9848285016124a3565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61250b826124e2565b9050919050565b61251b81612501565b82525050565b5f6020820190506125345f830184612512565b92915050565b61254381612501565b811461254d575f80fd5b50565b5f8135905061255e8161253a565b92915050565b5f806040838503121561257a5761257961231f565b5b5f61258785828601612550565b9250506020612598858286016124a3565b9150509250929050565b6125ab81612484565b82525050565b5f6020820190506125c45f8301846125a2565b92915050565b5f805f606084860312156125e1576125e061231f565b5b5f6125ee86828701612550565b93505060206125ff86828701612550565b9250506040612610868287016124a3565b9150509250925092565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6126588261241c565b810181811067ffffffffffffffff8211171561267757612676612622565b5b80604052505050565b5f612689612316565b9050612695828261264f565b919050565b5f67ffffffffffffffff8211156126b4576126b3612622565b5b6126bd8261241c565b9050602081019050919050565b828183375f83830152505050565b5f6126ea6126e58461269a565b612680565b9050828152602081018484840111156127065761270561261e565b5b6127118482856126ca565b509392505050565b5f82601f83011261272d5761272c61261a565b5b813561273d8482602086016126d8565b91505092915050565b5f6020828403121561275b5761275a61231f565b5b5f82013567ffffffffffffffff81111561277857612777612323565b5b61278484828501612719565b91505092915050565b5f602082840312156127a2576127a161231f565b5b5f6127af84828501612550565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6127ea81612484565b82525050565b5f6127fb83836127e1565b60208301905092915050565b5f602082019050919050565b5f61281d826127b8565b61282781856127c2565b9350612832836127d2565b805f5b8381101561286257815161284988826127f0565b975061285483612807565b925050600181019050612835565b5085935050505092915050565b5f6020820190508181035f8301526128878184612813565b905092915050565b612898816123a7565b81146128a2575f80fd5b50565b5f813590506128b38161288f565b92915050565b5f80604083850312156128cf576128ce61231f565b5b5f6128dc85828601612550565b92505060206128ed858286016128a5565b9150509250929050565b5f67ffffffffffffffff82111561291157612910612622565b5b61291a8261241c565b9050602081019050919050565b5f612939612934846128f7565b612680565b9050828152602081018484840111156129555761295461261e565b5b6129608482856126ca565b509392505050565b5f82601f83011261297c5761297b61261a565b5b813561298c848260208601612927565b91505092915050565b5f805f80608085870312156129ad576129ac61231f565b5b5f6129ba87828801612550565b94505060206129cb87828801612550565b93505060406129dc878288016124a3565b925050606085013567ffffffffffffffff8111156129fd576129fc612323565b5b612a0987828801612968565b91505092959194509250565b5f8060408385031215612a2b57612a2a61231f565b5b5f612a3885828601612550565b9250506020612a4985828601612550565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a9757607f821691505b602082108103612aaa57612aa9612a53565b5b50919050565b7f4552433732315073693a20617070726f76656420717565727920666f72206e6f5f8201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b5f612b0a602f836123e4565b9150612b1582612ab0565b604082019050919050565b5f6020820190508181035f830152612b3781612afe565b9050919050565b7f4552433732315073693a20617070726f76616c20746f2063757272656e74206f5f8201527f776e657200000000000000000000000000000000000000000000000000000000602082015250565b5f612b986024836123e4565b9150612ba382612b3e565b604082019050919050565b5f6020820190508181035f830152612bc581612b8c565b9050919050565b7f4552433732315073693a20617070726f76652063616c6c6572206973206e6f745f8201527f206f776e6572206e6f7220617070726f76656420666f7220616c6c0000000000602082015250565b5f612c26603b836123e4565b9150612c3182612bcc565b604082019050919050565b5f6020820190508181035f830152612c5381612c1a565b9050919050565b7f4552433732315073693a207472616e736665722063616c6c6572206973206e6f5f8201527f74206f776e6572206e6f7220617070726f766564000000000000000000000000602082015250565b5f612cb46034836123e4565b9150612cbf82612c5a565b604082019050919050565b5f6020820190508181035f830152612ce181612ca8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612d1f82612484565b9150612d2a83612484565b9250828201905080821115612d4257612d41612ce8565b5b92915050565b7f4e6f7420656e6f75676820746f6b656e73206c656674000000000000000000005f82015250565b5f612d7c6016836123e4565b9150612d8782612d48565b602082019050919050565b5f6020820190508181035f830152612da981612d70565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612e0c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612dd1565b612e168683612dd1565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612e51612e4c612e4784612484565b612e2e565b612484565b9050919050565b5f819050919050565b612e6a83612e37565b612e7e612e7682612e58565b848454612ddd565b825550505050565b5f90565b612e92612e86565b612e9d818484612e61565b505050565b5b81811015612ec057612eb55f82612e8a565b600181019050612ea3565b5050565b601f821115612f0557612ed681612db0565b612edf84612dc2565b81016020851015612eee578190505b612f02612efa85612dc2565b830182612ea2565b50505b505050565b5f82821c905092915050565b5f612f255f1984600802612f0a565b1980831691505092915050565b5f612f3d8383612f16565b9150826002028217905092915050565b612f56826123da565b67ffffffffffffffff811115612f6f57612f6e612622565b5b612f798254612a80565b612f84828285612ec4565b5f60209050601f831160018114612fb5575f8415612fa3578287015190505b612fad8582612f32565b865550613014565b601f198416612fc386612db0565b5f5b82811015612fea57848901518255600182019150602085019450602081019050612fc5565b868310156130075784890151613003601f891682612f16565b8355505b6001600288020188555050505b505050505050565b7f4552433732315073693a2062616c616e636520717565727920666f72207468655f8201527f207a65726f206164647265737300000000000000000000000000000000000000602082015250565b5f613076602d836123e4565b91506130818261301c565b604082019050919050565b5f6020820190508181035f8301526130a38161306a565b9050919050565b5f6130b482612484565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130e6576130e5612ce8565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f43616c6c6572206973206e6f74206d696e7465720000000000000000000000005f82015250565b5f6131526014836123e4565b915061315d8261311e565b602082019050919050565b5f6020820190508181035f83015261317f81613146565b9050919050565b7f4552433732315073693a20617070726f766520746f2063616c6c6572000000005f82015250565b5f6131ba601c836123e4565b91506131c582613186565b602082019050919050565b5f6020820190508181035f8301526131e7816131ae565b9050919050565b7f4552433732315073693a2055524920717565727920666f72206e6f6e657869735f8201527f74656e7420746f6b656e00000000000000000000000000000000000000000000602082015250565b5f613248602a836123e4565b9150613253826131ee565b604082019050919050565b5f6020820190508181035f8301526132758161323c565b9050919050565b5f81905092915050565b5f613290826123da565b61329a818561327c565b93506132aa8185602086016123f4565b80840191505092915050565b5f6132c18285613286565b91506132cd8284613286565b91508190509392505050565b5f6132e382612484565b91506132ee83612484565b925082820390508181111561330657613305612ce8565b5b92915050565b7f4552433732315073693a206f70657261746f7220717565727920666f72206e6f5f8201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b5f613366602f836123e4565b91506133718261330c565b604082019050919050565b5f6020820190508181035f8301526133938161335a565b9050919050565b7f4552433732315073693a207472616e73666572206f6620746f6b656e207468615f8201527f74206973206e6f74206f776e0000000000000000000000000000000000000000602082015250565b5f6133f4602c836123e4565b91506133ff8261339a565b604082019050919050565b5f6020820190508181035f830152613421816133e8565b9050919050565b7f4552433732315073693a207472616e7366657220746f20746865207a65726f205f8201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b5f6134826027836123e4565b915061348d82613428565b604082019050919050565b5f6020820190508181035f8301526134af81613476565b9050919050565b7f4552433732315073693a206f776e657220717565727920666f72206e6f6e65785f8201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b5f613510602c836123e4565b915061351b826134b6565b604082019050919050565b5f6020820190508181035f83015261353d81613504565b9050919050565b7f4552433732315073693a207472616e7366657220746f206e6f6e2045524337325f8201527f31526563656976657220696d706c656d656e7465720000000000000000000000602082015250565b5f61359e6035836123e4565b91506135a982613544565b604082019050919050565b5f6020820190508181035f8301526135cb81613592565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f613623826135ff565b61362d8185613609565b935061363d8185602086016123f4565b6136468161241c565b840191505092915050565b5f6080820190506136645f830187612512565b6136716020830186612512565b61367e60408301856125a2565b81810360608301526136908184613619565b905095945050505050565b5f815190506136a981612352565b92915050565b5f602082840312156136c4576136c361231f565b5b5f6136d18482850161369b565b91505092915050565b7f4552433732315073693a207175616e74697479206d75737420626520677265615f8201527f7465722030000000000000000000000000000000000000000000000000000000602082015250565b5f6137346025836123e4565b915061373f826136da565b604082019050919050565b5f6020820190508181035f83015261376181613728565b9050919050565b7f4552433732315073693a206d696e7420746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6137c26023836123e4565b91506137cd82613768565b604082019050919050565b5f6020820190508181035f8301526137ef816137b6565b9050919050565b7f4269744d6170733a205468652073657420626974206265666f726520746865205f8201527f696e64657820646f65736e27742065786973742e000000000000000000000000602082015250565b5f6138506034836123e4565b915061385b826137f6565b604082019050919050565b5f6020820190508181035f83015261387d81613844565b905091905056fe0001020903110a19042112290b311a3905412245134d2a550c5d32651b6d3a7506264262237d468514804e8d2b95569d0d495ea533a966b11c886eb93bc176c9071727374353637324837e9b47af86c7155181ad4fd18ed32c9096db57d59ee30e2e4a6a5f92a6be3498aae067ddb2eb1d5989b56fd7baf33ca0c2ee77e5caf7ff0810182028303840444c545c646c7425617c847f8c949c48a4a8b087b8c0c816365272829aaec650acd0d28fdad4e22d6991bd97dfdcea58b4d6f29fede4f6fe0f1f2f3f4b5b6b607b8b93a3a7b7bf357199c5abcfd9e168bcdee9b3f1ecf5fd1e3e5a7a8aa2b670c4ced8bbe8f0f4fc3d79a1c3cde7effb78cce6facbf9f8a2646970667358221220a95494e7ada207ca240e0b1ccf7252213e301fd0ac1e881b5693f83a6014f2d464736f6c63430008160033697066733a2f2f516d6362315034356137554c6532336f4875426a4173795835343877797974796e4a715256565238434e6e4c62312f