60806040523480156200001157600080fd5b50336040518060400160405280600781526020017f426d775f336572000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f424d573300000000000000000000000000000000000000000000000000000000815250816000908162000090919062000538565b508060019081620000a2919062000538565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200011a5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040162000111919062000664565b60405180910390fd5b6200012b81620001f860201b60201c565b5033600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000681565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200034057607f821691505b602082108103620003565762000355620002f8565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000381565b620003cc868362000381565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000419620004136200040d84620003e4565b620003ee565b620003e4565b9050919050565b6000819050919050565b6200043583620003f8565b6200044d620004448262000420565b8484546200038e565b825550505050565b600090565b6200046462000455565b620004718184846200042a565b505050565b5b8181101562000499576200048d6000826200045a565b60018101905062000477565b5050565b601f821115620004e857620004b2816200035c565b620004bd8462000371565b81016020851015620004cd578190505b620004e5620004dc8562000371565b83018262000476565b50505b505050565b600082821c905092915050565b60006200050d60001984600802620004ed565b1980831691505092915050565b6000620005288383620004fa565b9150826002028217905092915050565b6200054382620002be565b67ffffffffffffffff8111156200055f576200055e620002c9565b5b6200056b825462000327565b620005788282856200049d565b600060209050601f831160018114620005b057600084156200059b578287015190505b620005a785826200051a565b86555062000617565b601f198416620005c0866200035c565b60005b82811015620005ea57848901518255600182019150602085019450602081019050620005c3565b868310156200060a578489015162000606601f891682620004fa565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200064c826200061f565b9050919050565b6200065e816200063f565b82525050565b60006020820190506200067b600083018462000653565b92915050565b61363780620006916000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063715018a611610104578063b88d4fde116100a2578063de2f773811610071578063de2f77381461052b578063e154ecdb14610549578063e985e9c514610565578063f2fde38b14610595576101cf565b8063b88d4fde1461048e578063c354b780146104aa578063c87b56dd146104c8578063ce9c1f5e146104f8576101cf565b80638e9df157116100de5780638e9df1571461041c57806395d89b4114610438578063a22cb46514610456578063b59fe97914610472576101cf565b8063715018a6146103d6578063832ba64f146103e05780638da5cb5b146103fe576101cf565b806323b872dd11610171578063436db8ae1161014b578063436db8ae1461032a578063503a8c9a1461035a5780636352211e1461037657806370a08231146103a6576101cf565b806323b872dd146102d6578063296c2b3a146102f257806342842e0e1461030e576101cf565b8063095ea7b3116101ad578063095ea7b31461025257806313a1506c1461026e57806313aa90251461029e578063209b2209146102ba576101cf565b806301ffc9a7146101d457806306fdde0314610204578063081812fc14610222575b600080fd5b6101ee60048036038101906101e991906126b3565b6105b1565b6040516101fb91906126fb565b60405180910390f35b61020c6105c3565b60405161021991906127a6565b60405180910390f35b61023c600480360381019061023791906127fe565b610655565b604051610249919061286c565b60405180910390f35b61026c600480360381019061026791906128b3565b610671565b005b610288600480360381019061028391906128f3565b610687565b604051610295919061286c565b60405180910390f35b6102b860048036038101906102b39190612a68565b6106d5565b005b6102d460048036038101906102cf9190612a68565b61081b565b005b6102f060048036038101906102eb9190612ac4565b610961565b005b61030c60048036038101906103079190612b17565b610a63565b005b61032860048036038101906103239190612ac4565b610baf565b005b610344600480360381019061033f91906127fe565b610bcf565b604051610351919061286c565b60405180910390f35b610374600480360381019061036f9190612cca565b610c0e565b005b610390600480360381019061038b91906127fe565b610ced565b60405161039d919061286c565b60405180910390f35b6103c060048036038101906103bb9190612d13565b610cff565b6040516103cd9190612d4f565b60405180910390f35b6103de610db9565b005b6103e8610dcd565b6040516103f59190612d4f565b60405180910390f35b610406610dd3565b604051610413919061286c565b60405180910390f35b61043660048036038101906104319190612ac4565b610dfd565b005b610440610e91565b60405161044d91906127a6565b60405180910390f35b610470600480360381019061046b9190612d96565b610f23565b005b61048c60048036038101906104879190612a68565b610f39565b005b6104a860048036038101906104a39190612e77565b610f79565b005b6104b2610f96565b6040516104bf9190612d4f565b60405180910390f35b6104e260048036038101906104dd91906127fe565b610f9c565b6040516104ef91906127a6565b60405180910390f35b610512600480360381019061050d91906127fe565b610fae565b6040516105229493929190612efa565b60405180910390f35b6105336111fe565b6040516105409190612d4f565b60405180910390f35b610563600480360381019061055e9190612a68565b611204565b005b61057f600480360381019061057a9190612f5b565b61134a565b60405161058c91906126fb565b60405180910390f35b6105af60048036038101906105aa9190612d13565b6113de565b005b60006105bc82611464565b9050919050565b6060600080546105d290612fca565b80601f01602080910402602001604051908101604052809291908181526020018280546105fe90612fca565b801561064b5780601f106106205761010080835404028352916020019161064b565b820191906000526020600020905b81548152906001019060200180831161062e57829003601f168201915b5050505050905090565b6000610660826114c5565b5061066a8261154d565b9050919050565b610683828261067e61158a565b611592565b5050565b600f60205281600052604060002081815481106106a357600080fd5b906000526020600020016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005b600a8054905081101561079b57600a81815481106106f9576106f8612ffb565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610788576040517f5f45315f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808061079390613059565b9150506106d8565b506000600e60008481526020019081526020016000209050818160030190816107c4919061324d565b50600d60008154809291906107d890613059565b91905055507fdb5c466fbaabf90f9649a0614f088a53597218e007874abf77b1a692b49313b4338360405161080e92919061331f565b60405180910390a1505050565b60005b600a805490508110156108e157600a818154811061083f5761083e612ffb565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108ce576040517f5f45315f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80806108d990613059565b91505061081e565b506000600e600084815260200190815260200160002090508181600101908161090a919061324d565b50600b600081548092919061091e90613059565b91905055507f3ca066920c9dc5e0d1e821a21948563dcfc35cabb3a8e5faa74fe78af2d96de2338360405161095492919061331f565b60405180910390a1505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109d35760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016109ca919061286c565b60405180910390fd5b60006109e783836109e261158a565b6115a4565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a5d578382826040517f64283d7b000000000000000000000000000000000000000000000000000000008152600401610a549392919061334f565b60405180910390fd5b50505050565b610a6b6117be565b610a7785600954611845565b610a8360095485611863565b6000604051806080016040528086815260200185815260200184815260200183815250905080600e600060095481526020019081526020016000206000820151816000019081610ad3919061324d565b506020820151816001019081610ae9919061324d565b506040820151816002019081610aff919061324d565b506060820151816003019081610b15919061324d565b50905050600f60006009548152602001908152602001600020869080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060096000815480929190610ba290613059565b9190505550505050505050565b610bca83838360405180602001604052806000815250610f79565b505050565b600a8181548110610bdf57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c166117be565b60005b8151811015610cb257600a828281518110610c3757610c36612ffb565b5b60200260200101519080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508080610caa90613059565b915050610c19565b507f92e137b7ac4a8126b0f834e90173e6d6ed66486719d4946cd93b6c1e3615966d81604051610ce29190613444565b60405180910390a150565b6000610cf8826114c5565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d725760006040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610d69919061286c565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dc16117be565b610dcb60006118bf565b565b600c5481565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610e1883838360405180602001604052806000815250610f79565b600f6000828152602001908152602001600020829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b606060018054610ea090612fca565b80601f0160208091040260200160405190810160405280929190818152602001828054610ecc90612fca565b8015610f195780601f10610eee57610100808354040283529160200191610f19565b820191906000526020600020905b815481529060010190602001808311610efc57829003601f168201915b5050505050905090565b610f35610f2e61158a565b8383611985565b5050565b610f416117be565b610f4b8282611863565b6000600e6000848152602001908152602001600020905081816000019081610f73919061324d565b50505050565b610f84848484610961565b610f9084848484611af4565b50505050565b600b5481565b6060610fa782611cab565b9050919050565b600e602052806000526040600020600091509050806000018054610fd190612fca565b80601f0160208091040260200160405190810160405280929190818152602001828054610ffd90612fca565b801561104a5780601f1061101f5761010080835404028352916020019161104a565b820191906000526020600020905b81548152906001019060200180831161102d57829003601f168201915b50505050509080600101805461105f90612fca565b80601f016020809104026020016040519081016040528092919081815260200182805461108b90612fca565b80156110d85780601f106110ad576101008083540402835291602001916110d8565b820191906000526020600020905b8154815290600101906020018083116110bb57829003601f168201915b5050505050908060020180546110ed90612fca565b80601f016020809104026020016040519081016040528092919081815260200182805461111990612fca565b80156111665780601f1061113b57610100808354040283529160200191611166565b820191906000526020600020905b81548152906001019060200180831161114957829003601f168201915b50505050509080600301805461117b90612fca565b80601f01602080910402602001604051908101604052809291908181526020018280546111a790612fca565b80156111f45780601f106111c9576101008083540402835291602001916111f4565b820191906000526020600020905b8154815290600101906020018083116111d757829003601f168201915b5050505050905084565b600d5481565b60005b600a805490508110156112ca57600a818154811061122857611227612ffb565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112b7576040517f5f45315f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80806112c290613059565b915050611207565b506000600e60008481526020019081526020016000209050818160020190816112f3919061324d565b50600c600081548092919061130790613059565b91905055507f0869ca3c355149c663c482fa31e00d26ac203ec324a7c538413bd223a6e8febf338360405161133d92919061331f565b60405180910390a1505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6113e66117be565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114585760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161144f919061286c565b60405180910390fd5b611461816118bf565b50565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806114be57506114bd82611dbe565b5b9050919050565b6000806114d183611ea0565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361154457826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161153b9190612d4f565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b61159f8383836001611edd565b505050565b6000806115b084611ea0565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146115f2576115f18184866120a2565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461168357611634600085600080611edd565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611706576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b6117c661158a565b73ffffffffffffffffffffffffffffffffffffffff166117e4610dd3565b73ffffffffffffffffffffffffffffffffffffffff16146118435761180761158a565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161183a919061286c565b60405180910390fd5b565b61185f828260405180602001604052806000815250612166565b5050565b80600660008481526020019081526020016000209081611883919061324d565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516118b39190612d4f565b60405180910390a15050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119f657816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016119ed919061286c565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611ae791906126fb565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115611ca5578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02611b3861158a565b8685856040518563ffffffff1660e01b8152600401611b5a94939291906134bb565b6020604051808303816000875af1925050508015611b9657506040513d601f19601f82011682018060405250810190611b93919061351c565b60015b611c1a573d8060008114611bc6576040519150601f19603f3d011682016040523d82523d6000602084013e611bcb565b606091505b506000815103611c1257836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611c09919061286c565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611ca357836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611c9a919061286c565b60405180910390fd5b505b50505050565b6060611cb6826114c5565b506000600660008481526020019081526020016000208054611cd790612fca565b80601f0160208091040260200160405190810160405280929190818152602001828054611d0390612fca565b8015611d505780601f10611d2557610100808354040283529160200191611d50565b820191906000526020600020905b815481529060010190602001808311611d3357829003601f168201915b505050505090506000611d61612182565b90506000815103611d76578192505050611db9565b600082511115611dab578082604051602001611d93929190613585565b60405160208183030381529060405292505050611db9565b611db484612199565b925050505b919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611e8957507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611e995750611e9882612202565b5b9050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080611f165750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561204a576000611f26846114c5565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f9157508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611fa45750611fa2818461134a565b155b15611fe657826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611fdd919061286c565b60405180910390fd5b811561204857838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6120ad83838361226c565b61216157600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361212257806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016121199190612d4f565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016121589291906135a9565b60405180910390fd5b505050565b612170838361232d565b61217d6000848484611af4565b505050565b606060405180602001604052806000815250905090565b60606121a4826114c5565b5060006121af612182565b905060008151116121cf57604051806020016040528060008152506121fa565b806121d984612426565b6040516020016121ea929190613585565b6040516020818303038152906040525b915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561232457508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806122e557506122e4848461134a565b5b8061232357508273ffffffffffffffffffffffffffffffffffffffff1661230b8361154d565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361239f5760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401612396919061286c565b60405180910390fd5b60006123ad838360006115a4565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146124215760006040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401612418919061286c565b60405180910390fd5b505050565b606060006001612435846124f4565b01905060008167ffffffffffffffff8111156124545761245361293d565b5b6040519080825280601f01601f1916602001820160405280156124865781602001600182028036833780820191505090505b509050600082602001820190505b6001156124e9578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816124dd576124dc6135d2565b5b04945060008503612494575b819350505050919050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612552577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612548576125476135d2565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061258f576d04ee2d6d415b85acef81000000008381612585576125846135d2565b5b0492506020810190505b662386f26fc1000083106125be57662386f26fc1000083816125b4576125b36135d2565b5b0492506010810190505b6305f5e10083106125e7576305f5e10083816125dd576125dc6135d2565b5b0492506008810190505b612710831061260c576127108381612602576126016135d2565b5b0492506004810190505b6064831061262f5760648381612625576126246135d2565b5b0492506002810190505b600a831061263e576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6126908161265b565b811461269b57600080fd5b50565b6000813590506126ad81612687565b92915050565b6000602082840312156126c9576126c8612651565b5b60006126d78482850161269e565b91505092915050565b60008115159050919050565b6126f5816126e0565b82525050565b600060208201905061271060008301846126ec565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612750578082015181840152602081019050612735565b60008484015250505050565b6000601f19601f8301169050919050565b600061277882612716565b6127828185612721565b9350612792818560208601612732565b61279b8161275c565b840191505092915050565b600060208201905081810360008301526127c0818461276d565b905092915050565b6000819050919050565b6127db816127c8565b81146127e657600080fd5b50565b6000813590506127f8816127d2565b92915050565b60006020828403121561281457612813612651565b5b6000612822848285016127e9565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128568261282b565b9050919050565b6128668161284b565b82525050565b6000602082019050612881600083018461285d565b92915050565b6128908161284b565b811461289b57600080fd5b50565b6000813590506128ad81612887565b92915050565b600080604083850312156128ca576128c9612651565b5b60006128d88582860161289e565b92505060206128e9858286016127e9565b9150509250929050565b6000806040838503121561290a57612909612651565b5b6000612918858286016127e9565b9250506020612929858286016127e9565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6129758261275c565b810181811067ffffffffffffffff821117156129945761299361293d565b5b80604052505050565b60006129a7612647565b90506129b3828261296c565b919050565b600067ffffffffffffffff8211156129d3576129d261293d565b5b6129dc8261275c565b9050602081019050919050565b82818337600083830152505050565b6000612a0b612a06846129b8565b61299d565b905082815260208101848484011115612a2757612a26612938565b5b612a328482856129e9565b509392505050565b600082601f830112612a4f57612a4e612933565b5b8135612a5f8482602086016129f8565b91505092915050565b60008060408385031215612a7f57612a7e612651565b5b6000612a8d858286016127e9565b925050602083013567ffffffffffffffff811115612aae57612aad612656565b5b612aba85828601612a3a565b9150509250929050565b600080600060608486031215612add57612adc612651565b5b6000612aeb8682870161289e565b9350506020612afc8682870161289e565b9250506040612b0d868287016127e9565b9150509250925092565b600080600080600060a08688031215612b3357612b32612651565b5b6000612b418882890161289e565b955050602086013567ffffffffffffffff811115612b6257612b61612656565b5b612b6e88828901612a3a565b945050604086013567ffffffffffffffff811115612b8f57612b8e612656565b5b612b9b88828901612a3a565b935050606086013567ffffffffffffffff811115612bbc57612bbb612656565b5b612bc888828901612a3a565b925050608086013567ffffffffffffffff811115612be957612be8612656565b5b612bf588828901612a3a565b9150509295509295909350565b600067ffffffffffffffff821115612c1d57612c1c61293d565b5b602082029050602081019050919050565b600080fd5b6000612c46612c4184612c02565b61299d565b90508083825260208201905060208402830185811115612c6957612c68612c2e565b5b835b81811015612c925780612c7e888261289e565b845260208401935050602081019050612c6b565b5050509392505050565b600082601f830112612cb157612cb0612933565b5b8135612cc1848260208601612c33565b91505092915050565b600060208284031215612ce057612cdf612651565b5b600082013567ffffffffffffffff811115612cfe57612cfd612656565b5b612d0a84828501612c9c565b91505092915050565b600060208284031215612d2957612d28612651565b5b6000612d378482850161289e565b91505092915050565b612d49816127c8565b82525050565b6000602082019050612d646000830184612d40565b92915050565b612d73816126e0565b8114612d7e57600080fd5b50565b600081359050612d9081612d6a565b92915050565b60008060408385031215612dad57612dac612651565b5b6000612dbb8582860161289e565b9250506020612dcc85828601612d81565b9150509250929050565b600067ffffffffffffffff821115612df157612df061293d565b5b612dfa8261275c565b9050602081019050919050565b6000612e1a612e1584612dd6565b61299d565b905082815260208101848484011115612e3657612e35612938565b5b612e418482856129e9565b509392505050565b600082601f830112612e5e57612e5d612933565b5b8135612e6e848260208601612e07565b91505092915050565b60008060008060808587031215612e9157612e90612651565b5b6000612e9f8782880161289e565b9450506020612eb08782880161289e565b9350506040612ec1878288016127e9565b925050606085013567ffffffffffffffff811115612ee257612ee1612656565b5b612eee87828801612e49565b91505092959194509250565b60006080820190508181036000830152612f14818761276d565b90508181036020830152612f28818661276d565b90508181036040830152612f3c818561276d565b90508181036060830152612f50818461276d565b905095945050505050565b60008060408385031215612f7257612f71612651565b5b6000612f808582860161289e565b9250506020612f918582860161289e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612fe257607f821691505b602082108103612ff557612ff4612f9b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613064826127c8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130965761309561302a565b5b600182019050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026131037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826130c6565b61310d86836130c6565b95508019841693508086168417925050509392505050565b6000819050919050565b600061314a613145613140846127c8565b613125565b6127c8565b9050919050565b6000819050919050565b6131648361312f565b61317861317082613151565b8484546130d3565b825550505050565b600090565b61318d613180565b61319881848461315b565b505050565b5b818110156131bc576131b1600082613185565b60018101905061319e565b5050565b601f821115613201576131d2816130a1565b6131db846130b6565b810160208510156131ea578190505b6131fe6131f6856130b6565b83018261319d565b50505b505050565b600082821c905092915050565b600061322460001984600802613206565b1980831691505092915050565b600061323d8383613213565b9150826002028217905092915050565b61325682612716565b67ffffffffffffffff81111561326f5761326e61293d565b5b6132798254612fca565b6132848282856131c0565b600060209050601f8311600181146132b757600084156132a5578287015190505b6132af8582613231565b865550613317565b601f1984166132c5866130a1565b60005b828110156132ed578489015182556001820191506020850194506020810190506132c8565b8683101561330a5784890151613306601f891682613213565b8355505b6001600288020188555050505b505050505050565b6000604082019050613334600083018561285d565b8181036020830152613346818461276d565b90509392505050565b6000606082019050613364600083018661285d565b6133716020830185612d40565b61337e604083018461285d565b949350505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133bb8161284b565b82525050565b60006133cd83836133b2565b60208301905092915050565b6000602082019050919050565b60006133f182613386565b6133fb8185613391565b9350613406836133a2565b8060005b8381101561343757815161341e88826133c1565b9750613429836133d9565b92505060018101905061340a565b5085935050505092915050565b6000602082019050818103600083015261345e81846133e6565b905092915050565b600081519050919050565b600082825260208201905092915050565b600061348d82613466565b6134978185613471565b93506134a7818560208601612732565b6134b08161275c565b840191505092915050565b60006080820190506134d0600083018761285d565b6134dd602083018661285d565b6134ea6040830185612d40565b81810360608301526134fc8184613482565b905095945050505050565b60008151905061351681612687565b92915050565b60006020828403121561353257613531612651565b5b600061354084828501613507565b91505092915050565b600081905092915050565b600061355f82612716565b6135698185613549565b9350613579818560208601612732565b80840191505092915050565b60006135918285613554565b915061359d8284613554565b91508190509392505050565b60006040820190506135be600083018561285d565b6135cb6020830184612d40565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea2646970667358221220daf5ec00c83ca2e0314d626705e15ba3fabce44d9d6573fc28d862359e2c3c2d64736f6c63430008140033