608060405234801561000f575f80fd5b5060405180602001604052805f81525061002e8161003460201b60201c565b50610350565b80600290816100439190610281565b5050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806100c257607f821691505b6020821081036100d5576100d461007e565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826100fc565b61014186836100fc565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61018561018061017b84610159565b610162565b610159565b9050919050565b5f819050919050565b61019e8361016b565b6101b26101aa8261018c565b848454610108565b825550505050565b5f90565b6101c66101ba565b6101d1818484610195565b505050565b5b818110156101f4576101e95f826101be565b6001810190506101d7565b5050565b601f8211156102395761020a816100db565b610213846100ed565b81016020851015610222578190505b61023661022e856100ed565b8301826101d6565b50505b505050565b5f82821c905092915050565b5f6102595f198460080261023e565b1980831691505092915050565b5f610271838361024a565b9150826002028217905092915050565b61028a82610047565b67ffffffffffffffff8111156102a3576102a2610051565b5b6102ad82546100ab565b6102b88282856101f8565b5f60209050601f8311600181146102e9575f84156102d7578287015190505b6102e18582610266565b865550610348565b601f1984166102f7866100db565b5f5b8281101561031e578489015182556001820191506020850194506020810190506102f9565b8683101561033b5784890151610337601f89168261024a565b8355505b6001600288020188555050505b505050505050565b6131738061035d5f395ff3fe608060405234801561000f575f80fd5b506004361061013f575f3560e01c80637f574f88116100b6578063bd85b0391161007a578063bd85b039146103cf578063d48e638a146103ff578063e0391b091461042f578063e7619fad1461044f578063e985e9c51461046d578063f242432a1461049d5761013f565b80637f574f8814610307578063a22cb46514610337578063a30b4db914610353578063b2a999c71461036f578063b6d36af61461039f5761013f565b80632ff57da8116101085780632ff57da81461020b5780634e1273f41461023b578063657d19311461026b57806377097fc81461029b5780637d6aab0a146102cb5780637e1c0c09146102e95761013f565b8062fdd58e1461014357806301ffc9a71461017357806305751204146101a35780630e89341c146101bf5780632eb2c2d6146101ef575b5f80fd5b61015d60048036038101906101589190611fff565b6104b9565b60405161016a919061204c565b60405180910390f35b61018d600480360381019061018891906120ba565b61050e565b60405161019a91906120ff565b60405180910390f35b6101bd60048036038101906101b89190612254565b61051f565b005b6101d960048036038101906101d491906122ae565b61052d565b6040516101e69190612339565b60405180910390f35b610209600480360381019061020491906124bb565b6105ce565b005b61022560048036038101906102209190612586565b610675565b604051610232919061204c565b60405180910390f35b61025560048036038101906102509190612671565b6106c2565b604051610262919061279e565b60405180910390f35b61028560048036038101906102809190612586565b6107c9565b604051610292919061279e565b60405180910390f35b6102b560048036038101906102b09190612254565b610871565b6040516102c2919061204c565b60405180910390f35b6102d3610a80565b6040516102e0919061204c565b60405180910390f35b6102f1610a86565b6040516102fe919061204c565b60405180910390f35b610321600480360381019061031c9190611fff565b610a96565b60405161032e919061204c565b60405180910390f35b610351600480360381019061034c91906127e8565b610aee565b005b61036d600480360381019061036891906122ae565b610b04565b005b610389600480360381019061038491906122ae565b610b56565b6040516103969190612835565b60405180910390f35b6103b960048036038101906103b491906122ae565b610b86565b6040516103c6919061204c565b60405180910390f35b6103e960048036038101906103e491906122ae565b610ba2565b6040516103f6919061204c565b60405180910390f35b610419600480360381019061041491906122ae565b610bbc565b6040516104269190612835565b60405180910390f35b610437610bf5565b60405161044693929190612a08565b60405180910390f35b610457610f2c565b604051610464919061279e565b60405180910390f35b61048760048036038101906104829190612a52565b610fd2565b60405161049491906120ff565b60405180910390f35b6104b760048036038101906104b29190612a90565b611060565b005b5f805f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f61051882611107565b9050919050565b61052982826111e8565b5050565b606060055f8381526020019081526020015f20805461054b90612b50565b80601f016020809104026020016040519081016040528092919081815260200182805461057790612b50565b80156105c25780601f10610599576101008083540402835291602001916105c2565b820191905f5260205f20905b8154815290600101906020018083116105a557829003601f168201915b50505050509050919050565b5f6105d761120b565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561061c575061061a8682610fd2565b155b156106605780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610657929190612b80565b60405180910390fd5b61066d8686868686611212565b505050505050565b5f6106bb60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20611306565b9050919050565b6060815183511461070e57815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401610705929190612ba7565b60405180910390fd5b5f835167ffffffffffffffff81111561072a57610729612130565b5b6040519080825280602002602001820160405280156107585781602001602082028036833780820191505090505b5090505f5b84518110156107be5761079461077c828761131990919063ffffffff16565b61078f838761132c90919063ffffffff16565b6104b9565b8282815181106107a7576107a6612bce565b5b60200260200101818152505080600101905061075d565b508091505092915050565b60605f6107d583610675565b90505f8167ffffffffffffffff8111156107f2576107f1612130565b5b6040519080825280602002602001820160405280156108205781602001602082028036833780820191505090505b5090505f5b82811015610866575f6108388683610a96565b90508083838151811061084e5761084d612bce565b5b60200260200101818152505050806001019050610825565b508092505050919050565b5f8060045f60035481526020019081526020015f205414610890575f80fd5b600283101580156108a35750610bb88311155b6108e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d990612c45565b60405180910390fd5b61092533600354856040518060400160405280600181526020017f200000000000000000000000000000000000000000000000000000000000000081525061133f565b610931600354836111e8565b8260045f60035481526020019081526020015f205f8282546109539190612c90565b925050819055506109ab60035460075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206113d490919063ffffffff16565b506109c260035460096113d490919063ffffffff16565b508260065f60035481526020019081526020015f20819055506109e361120b565b60085f60035481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003547ff00d28232b285f24f2e38415deb2ceb31069e70d4505838b3911b4f02058502e60405160405180910390a260035f815480929190610a7490612cc3565b91905055905092915050565b60035481565b5f610a916009611306565b905090565b5f610ae68260075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206113eb90919063ffffffff16565b905092915050565b610b00610af961120b565b8383611402565b5050565b3360085f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6008602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610b9b8260096113eb90919063ffffffff16565b9050919050565b5f60045f8381526020019081526020015f20549050919050565b5f60085f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60608060605f610c056009611306565b67ffffffffffffffff811115610c1e57610c1d612130565b5b604051908082528060200260200182016040528015610c4c5781602001602082028036833780820191505090505b5090505f610c5a6009611306565b67ffffffffffffffff811115610c7357610c72612130565b5b604051908082528060200260200182016040528015610ca657816020015b6060815260200190600190039081610c915790505b5090505f610cb46009611306565b67ffffffffffffffff811115610ccd57610ccc612130565b5b604051908082528060200260200182016040528015610cfb5781602001602082028036833780820191505090505b5090505f610d096009611306565b67ffffffffffffffff811115610d2257610d21612130565b5b604051908082528060200260200182016040528015610d505781602001602082028036833780820191505090505b5090505f5b610d5f6009611306565b811015610f19575f610d7b8260096113eb90919063ffffffff16565b905080868381518110610d9157610d90612bce565b5b60200260200101818152505060055f8281526020019081526020015f208054610db990612b50565b80601f0160208091040260200160405190810160405280929190818152602001828054610de590612b50565b8015610e305780601f10610e0757610100808354040283529160200191610e30565b820191905f5260205f20905b815481529060010190602001808311610e1357829003601f168201915b5050505050858381518110610e4857610e47612bce565b5b602002602001018190525060085f8281526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848381518110610e9757610e96612bce565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050828181518110610ee457610ee3612bce565b5b6020026020010151838381518110610eff57610efe612bce565b5b602002602001018181525050508080600101915050610d55565b5083838396509650965050505050909192565b60605f610f396009611306565b90505f8167ffffffffffffffff811115610f5657610f55612130565b5b604051908082528060200260200182016040528015610f845781602001602082028036833780820191505090505b5090505f5b82811015610fc9575f610f9b82610b86565b905080838381518110610fb157610fb0612bce565b5b60200260200101818152505050806001019050610f89565b50809250505090565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f61106961120b565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156110ae57506110ac8682610fd2565b155b156110f25780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016110e9929190612b80565b60405180910390fd5b6110ff868686868661156b565b505050505050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806111d157507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806111e157506111e082611671565b5b9050919050565b8060055f8481526020019081526020015f2090816112069190612ea7565b505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611282575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016112799190612835565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036112f2575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016112e99190612835565b60405180910390fd5b6112ff85858585856116da565b5050505050565b5f611312825f01611786565b9050919050565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036113af575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016113a69190612835565b60405180910390fd5b5f806113bb8585611795565b915091506113cc5f878484876116da565b505050505050565b5f6113e3835f01835f1b6117c5565b905092915050565b5f6113f8835f018361182c565b5f1c905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611472575f6040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016114699190612835565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161155e91906120ff565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115db575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016115d29190612835565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361164b575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016116429190612835565b60405180910390fd5b5f806116578585611795565b9150915061166887878484876116da565b50505050505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6116e685858585611853565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461177f575f61172261120b565b9050600184510361176e575f6117415f8661132c90919063ffffffff16565b90505f6117575f8661132c90919063ffffffff16565b9050611767838989858589611be3565b505061177d565b61177c818787878787611d92565b5b505b5050505050565b5f815f01805490509050919050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b5f6117d08383611f41565b61182257825f0182908060018154018082558091505060019003905f5260205f20015f9091909190915055825f0180549050836001015f8481526020019081526020015f208190555060019050611826565b5f90505b92915050565b5f825f01828154811061184257611841612bce565b5b905f5260205f200154905092915050565b805182511461189d57815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611894929190612ba7565b60405180910390fd5b5f6118a661120b565b90505f5b8351811015611aa2575f6118c7828661132c90919063ffffffff16565b90505f6118dd838661132c90919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611a00575f805f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156119ac57888183856040517f03dee4c50000000000000000000000000000000000000000000000000000000081526004016119a39493929190612f76565b60405180910390fd5b8181035f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611a9557805f808481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611a8d9190612c90565b925050819055505b50508060010190506118aa565b506001835103611b5d575f611ac05f8561132c90919063ffffffff16565b90505f611ad65f8561132c90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611b4e929190612ba7565b60405180910390a45050611bdc565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611bd3929190612fb9565b60405180910390a45b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115611d8a578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611c43959493929190613040565b6020604051808303815f875af1925050508015611c7e57506040513d601f19601f82011682018060405250810190611c7b91906130ac565b60015b611cff573d805f8114611cac576040519150601f19603f3d011682016040523d82523d5f602084013e611cb1565b606091505b505f815103611cf757846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611cee9190612835565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611d8857846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611d7f9190612835565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115611f39578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611df29594939291906130d7565b6020604051808303815f875af1925050508015611e2d57506040513d601f19601f82011682018060405250810190611e2a91906130ac565b60015b611eae573d805f8114611e5b576040519150601f19603f3d011682016040523d82523d5f602084013e611e60565b606091505b505f815103611ea657846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611e9d9190612835565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f3757846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611f2e9190612835565b60405180910390fd5b505b505050505050565b5f80836001015f8481526020019081526020015f20541415905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f9b82611f72565b9050919050565b611fab81611f91565b8114611fb5575f80fd5b50565b5f81359050611fc681611fa2565b92915050565b5f819050919050565b611fde81611fcc565b8114611fe8575f80fd5b50565b5f81359050611ff981611fd5565b92915050565b5f806040838503121561201557612014611f6a565b5b5f61202285828601611fb8565b925050602061203385828601611feb565b9150509250929050565b61204681611fcc565b82525050565b5f60208201905061205f5f83018461203d565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61209981612065565b81146120a3575f80fd5b50565b5f813590506120b481612090565b92915050565b5f602082840312156120cf576120ce611f6a565b5b5f6120dc848285016120a6565b91505092915050565b5f8115159050919050565b6120f9816120e5565b82525050565b5f6020820190506121125f8301846120f0565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61216682612120565b810181811067ffffffffffffffff8211171561218557612184612130565b5b80604052505050565b5f612197611f61565b90506121a3828261215d565b919050565b5f67ffffffffffffffff8211156121c2576121c1612130565b5b6121cb82612120565b9050602081019050919050565b828183375f83830152505050565b5f6121f86121f3846121a8565b61218e565b9050828152602081018484840111156122145761221361211c565b5b61221f8482856121d8565b509392505050565b5f82601f83011261223b5761223a612118565b5b813561224b8482602086016121e6565b91505092915050565b5f806040838503121561226a57612269611f6a565b5b5f61227785828601611feb565b925050602083013567ffffffffffffffff81111561229857612297611f6e565b5b6122a485828601612227565b9150509250929050565b5f602082840312156122c3576122c2611f6a565b5b5f6122d084828501611feb565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f61230b826122d9565b61231581856122e3565b93506123258185602086016122f3565b61232e81612120565b840191505092915050565b5f6020820190508181035f8301526123518184612301565b905092915050565b5f67ffffffffffffffff82111561237357612372612130565b5b602082029050602081019050919050565b5f80fd5b5f61239a61239584612359565b61218e565b905080838252602082019050602084028301858111156123bd576123bc612384565b5b835b818110156123e657806123d28882611feb565b8452602084019350506020810190506123bf565b5050509392505050565b5f82601f83011261240457612403612118565b5b8135612414848260208601612388565b91505092915050565b5f67ffffffffffffffff82111561243757612436612130565b5b61244082612120565b9050602081019050919050565b5f61245f61245a8461241d565b61218e565b90508281526020810184848401111561247b5761247a61211c565b5b6124868482856121d8565b509392505050565b5f82601f8301126124a2576124a1612118565b5b81356124b284826020860161244d565b91505092915050565b5f805f805f60a086880312156124d4576124d3611f6a565b5b5f6124e188828901611fb8565b95505060206124f288828901611fb8565b945050604086013567ffffffffffffffff81111561251357612512611f6e565b5b61251f888289016123f0565b935050606086013567ffffffffffffffff8111156125405761253f611f6e565b5b61254c888289016123f0565b925050608086013567ffffffffffffffff81111561256d5761256c611f6e565b5b6125798882890161248e565b9150509295509295909350565b5f6020828403121561259b5761259a611f6a565b5b5f6125a884828501611fb8565b91505092915050565b5f67ffffffffffffffff8211156125cb576125ca612130565b5b602082029050602081019050919050565b5f6125ee6125e9846125b1565b61218e565b9050808382526020820190506020840283018581111561261157612610612384565b5b835b8181101561263a57806126268882611fb8565b845260208401935050602081019050612613565b5050509392505050565b5f82601f83011261265857612657612118565b5b81356126688482602086016125dc565b91505092915050565b5f806040838503121561268757612686611f6a565b5b5f83013567ffffffffffffffff8111156126a4576126a3611f6e565b5b6126b085828601612644565b925050602083013567ffffffffffffffff8111156126d1576126d0611f6e565b5b6126dd858286016123f0565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61271981611fcc565b82525050565b5f61272a8383612710565b60208301905092915050565b5f602082019050919050565b5f61274c826126e7565b61275681856126f1565b935061276183612701565b805f5b83811015612791578151612778888261271f565b975061278383612736565b925050600181019050612764565b5085935050505092915050565b5f6020820190508181035f8301526127b68184612742565b905092915050565b6127c7816120e5565b81146127d1575f80fd5b50565b5f813590506127e2816127be565b92915050565b5f80604083850312156127fe576127fd611f6a565b5b5f61280b85828601611fb8565b925050602061281c858286016127d4565b9150509250929050565b61282f81611f91565b82525050565b5f6020820190506128485f830184612826565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f82825260208201905092915050565b5f612891826122d9565b61289b8185612877565b93506128ab8185602086016122f3565b6128b481612120565b840191505092915050565b5f6128ca8383612887565b905092915050565b5f602082019050919050565b5f6128e88261284e565b6128f28185612858565b93508360208202850161290485612868565b805f5b8581101561293f578484038952815161292085826128bf565b945061292b836128d2565b925060208a01995050600181019050612907565b50829750879550505050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61298381611f91565b82525050565b5f612994838361297a565b60208301905092915050565b5f602082019050919050565b5f6129b682612951565b6129c0818561295b565b93506129cb8361296b565b805f5b838110156129fb5781516129e28882612989565b97506129ed836129a0565b9250506001810190506129ce565b5085935050505092915050565b5f6060820190508181035f830152612a208186612742565b90508181036020830152612a3481856128de565b90508181036040830152612a4881846129ac565b9050949350505050565b5f8060408385031215612a6857612a67611f6a565b5b5f612a7585828601611fb8565b9250506020612a8685828601611fb8565b9150509250929050565b5f805f805f60a08688031215612aa957612aa8611f6a565b5b5f612ab688828901611fb8565b9550506020612ac788828901611fb8565b9450506040612ad888828901611feb565b9350506060612ae988828901611feb565b925050608086013567ffffffffffffffff811115612b0a57612b09611f6e565b5b612b168882890161248e565b9150509295509295909350565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612b6757607f821691505b602082108103612b7a57612b79612b23565b5b50919050565b5f604082019050612b935f830185612826565b612ba06020830184612826565b9392505050565b5f604082019050612bba5f83018561203d565b612bc7602083018461203d565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f616d6f756e7420627477203220616e64203330303000000000000000000000005f82015250565b5f612c2f6015836122e3565b9150612c3a82612bfb565b602082019050919050565b5f6020820190508181035f830152612c5c81612c23565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612c9a82611fcc565b9150612ca583611fcc565b9250828201905080821115612cbd57612cbc612c63565b5b92915050565b5f612ccd82611fcc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612cff57612cfe612c63565b5b600182019050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612d667fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612d2b565b612d708683612d2b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612dab612da6612da184611fcc565b612d88565b611fcc565b9050919050565b5f819050919050565b612dc483612d91565b612dd8612dd082612db2565b848454612d37565b825550505050565b5f90565b612dec612de0565b612df7818484612dbb565b505050565b5b81811015612e1a57612e0f5f82612de4565b600181019050612dfd565b5050565b601f821115612e5f57612e3081612d0a565b612e3984612d1c565b81016020851015612e48578190505b612e5c612e5485612d1c565b830182612dfc565b50505b505050565b5f82821c905092915050565b5f612e7f5f1984600802612e64565b1980831691505092915050565b5f612e978383612e70565b9150826002028217905092915050565b612eb0826122d9565b67ffffffffffffffff811115612ec957612ec8612130565b5b612ed38254612b50565b612ede828285612e1e565b5f60209050601f831160018114612f0f575f8415612efd578287015190505b612f078582612e8c565b865550612f6e565b601f198416612f1d86612d0a565b5f5b82811015612f4457848901518255600182019150602085019450602081019050612f1f565b86831015612f615784890151612f5d601f891682612e70565b8355505b6001600288020188555050505b505050505050565b5f608082019050612f895f830187612826565b612f96602083018661203d565b612fa3604083018561203d565b612fb0606083018461203d565b95945050505050565b5f6040820190508181035f830152612fd18185612742565b90508181036020830152612fe58184612742565b90509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f61301282612fee565b61301c8185612ff8565b935061302c8185602086016122f3565b61303581612120565b840191505092915050565b5f60a0820190506130535f830188612826565b6130606020830187612826565b61306d604083018661203d565b61307a606083018561203d565b818103608083015261308c8184613008565b90509695505050505050565b5f815190506130a681612090565b92915050565b5f602082840312156130c1576130c0611f6a565b5b5f6130ce84828501613098565b91505092915050565b5f60a0820190506130ea5f830188612826565b6130f76020830187612826565b81810360408301526131098186612742565b9050818103606083015261311d8185612742565b905081810360808301526131318184613008565b9050969550505050505056fea26469706673582212205da5d9f452c164d694579be7db1c7358371965ba7e3fa179fc5f24b0103b41ae64736f6c63430008190033