608060405234801562000010575f80fd5b506200001c3362000078565b60088054336001600160a01b031991821681179092556103e86009556001805480820182555f919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180549091169091179055620000c7565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6136c580620000d55f395ff3fe608060405234801561000f575f80fd5b50600436106101cf575f3560e01c80635f27d785116100fe578063b8f883f91161009e578063f357063d1161006e578063f357063d146104c1578063f5298aca146104d4578063f6eb127a146104e7578063f8707ab5146104fa575f80fd5b8063b8f883f91461045b578063e985e9c51461046e578063f242432a1461049b578063f2fde38b146104ae575f80fd5b806383a75cd7116100d957806383a75cd7146103e35780638da5cb5b14610418578063983b2d5614610435578063a22cb46514610448575f80fd5b80635f27d785146103815780636d2bce34146103b9578063715018a6146103db575f80fd5b80632a55205a11610174578063404899cd11610144578063404899cd14610328578063448ea7af1461033b5780634d564dc01461034e5780634e1273f414610361575f80fd5b80632a55205a146102b05780632a6d9e92146102ef5780632eb2c2d61461030257806333373cea14610315575f80fd5b80630e89341c116101af5780630e89341c1461024857806312efaf1c146102685780631f72d8311461028a578063263488f31461029d575f80fd5b80629ee39c146101d3578062fdd58e146101e857806301ffc9a714610225575b5f80fd5b6101e66101e136600461292d565b61050d565b005b6102126101f636600461294f565b600260209081525f928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b6102386102333660046129a6565b6105db565b604051901515815260200161021c565b61025b6102563660046129c1565b61070b565b60405161021c9190612a43565b6102386102763660046129c1565b60046020525f908152604090205460ff1681565b6101e66102983660046129c1565b61088f565b6101e66102ab366004612b8c565b610916565b6102c36102be366004612c2f565b610a74565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835260208301919091520161021c565b6101e66102fd366004612c4f565b610ae3565b6101e6610310366004612ce5565b610c04565b6101e6610323366004612c2f565b610fa3565b6101e6610336366004612d9c565b611036565b6101e6610349366004612ddb565b61112b565b6101e661035c366004612d9c565b6113a0565b61037461036f366004612ddb565b611490565b60405161021c9190612e7c565b61039461038f3660046129c1565b6115e9565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161021c565b6102386103c73660046129c1565b60056020525f908152604090205460ff1681565b6101e661161e565b6103946103f13660046129c1565b60066020525f908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b5f5473ffffffffffffffffffffffffffffffffffffffff16610394565b6101e661044336600461292d565b6116ab565b6101e6610456366004612e8e565b6117a2565b6101e661046936600461294f565b611838565b61023861047c366004612ec9565b600360209081525f928352604080842090915290825290205460ff1681565b6101e66104a9366004612ef5565b611917565b6101e66104bc36600461292d565b611bdf565b6101e66104cf366004612f6c565b611cf6565b6101e66104e2366004612ff1565b611e59565b6101e66104f5366004613023565b611f03565b6101e6610508366004612ddb565b611fad565b3361052c5f5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16146105945760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061066d57507fd9b67a26000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b806106b957507f0e89341c000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b8061070557507f2a55205a000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f8181526006602052604090205460609073ffffffffffffffffffffffffffffffffffffffff16156107f4575f82815260066020526040908190205490517f894b4c2e0000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff9091169063894b4c2e906024015f60405180830381865afa1580156107af573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526107059190810190613094565b5f828152600760205260409020805461080c90613138565b80601f016020809104026020016040519081016040528092919081815260200182805461083890613138565b80156108835780601f1061085a57610100808354040283529160200191610883565b820191905f5260205f20905b81548152906001019060200180831161086657829003601f168201915b50505050509050919050565b336108ae5f5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16146109115760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161058b565b600955565b6001818154811061092957610929613189565b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff1633146109985760405162461bcd60e51b815260206004820152601060248201527f4d696e746572206e6f742076616c696400000000000000000000000000000000604482015260640161058b565b5f5b8551811015610a2a5760055f8783815181106109b8576109b8613189565b60209081029190910181015182528101919091526040015f205460ff1615610a225760405162461bcd60e51b815260206004820152601760248201527f4e6f206d6f7265206d696e74696e6720616c6c6f776564000000000000000000604482015260640161058b565b60010161099a565b50610a6c86868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506121dd92505050565b505050505050565b5f828152600a60205260408120548190819015610a9f57505f848152600a6020526040902054610aa4565b506009545b5f612710610ab283876131e3565b610abc91906131fa565b60085473ffffffffffffffffffffffffffffffffffffffff169450925050505b9250929050565b60018181548110610af657610af6613189565b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff163314610b655760405162461bcd60e51b815260206004820152601060248201527f4d696e746572206e6f742076616c696400000000000000000000000000000000604482015260640161058b565b5f8581526005602052604090205460ff1615610bc35760405162461bcd60e51b815260206004820152601760248201527f4e6f206d6f7265206d696e74696e6720616c6c6f776564000000000000000000604482015260640161058b565b610a6c86868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061249992505050565b848314610c535760405162461bcd60e51b815260206004820152600f60248201527f4c454e4754485f4d49534d415443480000000000000000000000000000000000604482015260640161058b565b3373ffffffffffffffffffffffffffffffffffffffff89161480610ca6575073ffffffffffffffffffffffffffffffffffffffff88165f90815260036020908152604080832033845290915290205460ff165b610cf25760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a4544000000000000000000000000000000000000604482015260640161058b565b5f805f5b87811015610dc757888882818110610d1057610d10613189565b905060200201359250868682818110610d2b57610d2b613189565b73ffffffffffffffffffffffffffffffffffffffff8e165f90815260026020908152604080832089845282528220805493909102949094013595508593925090610d76908490613232565b909155505073ffffffffffffffffffffffffffffffffffffffff8a165f90815260026020908152604080832086845290915281208054849290610dba908490613245565b9091555050600101610cf6565b508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8b8b8b8b604051610e4294939291906132a1565b60405180910390a473ffffffffffffffffffffffffffffffffffffffff89163b15610f31576040517fbc197c81000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff8b169063bc197c8190610ec99033908f908e908e908e908e908e908e9060040161330e565b6020604051808303815f875af1158015610ee5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f09919061337e565b7fffffffff000000000000000000000000000000000000000000000000000000001614610f4b565b73ffffffffffffffffffffffffffffffffffffffff891615155b610f975760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e5400000000000000000000000000000000604482015260640161058b565b50505050505050505050565b33610fc25f5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16146110255760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161058b565b5f918252600a602052604090912055565b336110555f5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16146110b85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161058b565b5f5b8181101561112657600160045f8585858181106110d9576110d9613189565b602090810292909201358352508101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790556001016110ba565b505050565b3361114a5f5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16146111ad5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161058b565b8281146111fc5760405162461bcd60e51b815260206004820152600f60248201527f4c656e677468206d69736d617463680000000000000000000000000000000000604482015260640161058b565b5f5b838110156113995760045f86868481811061121b5761121b613189565b602090810292909201358352508101919091526040015f205460ff16156112845760405162461bcd60e51b815260206004820152600a60248201527f555249206c6f636b656400000000000000000000000000000000000000000000604482015260640161058b565b82828281811061129657611296613189565b90506020020160208101906112ab919061292d565b60065f8787858181106112c0576112c0613189565b9050602002013581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084848281811061132357611323613189565b905060200201357f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b604051611389906020808252600a908201527f437573746f6d2055524900000000000000000000000000000000000000000000604082015260600190565b60405180910390a26001016111fe565b5050505050565b336113bf5f5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16146114225760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161058b565b5f5b8181101561112657600160055f85858581811061144357611443613189565b602090810292909201358352508101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101611424565b60608382146114e15760405162461bcd60e51b815260206004820152600f60248201527f4c454e4754485f4d49534d415443480000000000000000000000000000000000604482015260640161058b565b8367ffffffffffffffff8111156114fa576114fa612a55565b604051908082528060200260200182016040528015611523578160200160208202803683370190505b5090505f5b848110156115e05760025f87878481811061154557611545613189565b905060200201602081019061155a919061292d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8585848181106115a6576115a6613189565b9050602002013581526020019081526020015f20548282815181106115cd576115cd613189565b6020908102919091010152600101611528565b50949350505050565b600181815481106115f8575f80fd5b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b3361163d5f5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16146116a05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161058b565b6116a95f61267f565b565b336116ca5f5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff161461172d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161058b565b6001805480820182555f919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b335f81815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b336118575f5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16146118ba5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161058b565b81600182815481106118ce576118ce613189565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3373ffffffffffffffffffffffffffffffffffffffff8716148061196a575073ffffffffffffffffffffffffffffffffffffffff86165f90815260036020908152604080832033845290915290205460ff165b6119b65760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a4544000000000000000000000000000000000000604482015260640161058b565b73ffffffffffffffffffffffffffffffffffffffff86165f908152600260209081526040808320878452909152812080548592906119f5908490613232565b909155505073ffffffffffffffffffffffffffffffffffffffff85165f90815260026020908152604080832087845290915281208054859290611a39908490613245565b9091555050604080518581526020810185905273ffffffffffffffffffffffffffffffffffffffff808816929089169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a473ffffffffffffffffffffffffffffffffffffffff85163b15611b79576040517ff23a6e61000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff87169063f23a6e6190611b119033908b908a908a908a908a90600401613399565b6020604051808303815f875af1158015611b2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b51919061337e565b7fffffffff000000000000000000000000000000000000000000000000000000001614611b93565b73ffffffffffffffffffffffffffffffffffffffff851615155b610a6c5760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e5400000000000000000000000000000000604482015260640161058b565b33611bfe5f5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614611c615760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161058b565b73ffffffffffffffffffffffffffffffffffffffff8116611cea5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161058b565b611cf38161267f565b50565b60018181548110611d0957611d09613189565b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff163314611d785760405162461bcd60e51b815260206004820152601060248201527f4d696e746572206e6f742076616c696400000000000000000000000000000000604482015260640161058b565b5f8581526005602052604090205460ff1615611dd65760405162461bcd60e51b815260206004820152601760248201527f4e6f206d6f7265206d696e74696e6720616c6c6f776564000000000000000000604482015260640161058b565b5f5b86811015611e4f57611e47888883818110611df557611df5613189565b9050602002016020810190611e0a919061292d565b878787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061249992505050565b600101611dd8565b5050505050505050565b3373ffffffffffffffffffffffffffffffffffffffff84161480611eac575073ffffffffffffffffffffffffffffffffffffffff83165f90815260036020908152604080832033845290915290205460ff165b611ef85760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a4544000000000000000000000000000000000000604482015260640161058b565b6111268383836126f3565b3373ffffffffffffffffffffffffffffffffffffffff84161480611f56575073ffffffffffffffffffffffffffffffffffffffff83165f90815260036020908152604080832033845290915290205460ff165b611fa25760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a4544000000000000000000000000000000000000604482015260640161058b565b611126838383612791565b33611fcc5f5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff161461202f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161058b565b82811461207e5760405162461bcd60e51b815260206004820152600f60248201527f4c656e677468206d69736d617463680000000000000000000000000000000000604482015260640161058b565b5f5b838110156113995760045f86868481811061209d5761209d613189565b602090810292909201358352508101919091526040015f205460ff16156121065760405162461bcd60e51b815260206004820152600a60248201527f555249206c6f636b656400000000000000000000000000000000000000000000604482015260640161058b565b82828281811061211857612118613189565b905060200281019061212a91906133ea565b60075f88888681811061213f5761213f613189565b9050602002013581526020019081526020015f20918261216092919061348f565b5084848281811061217357612173613189565b905060200201357f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b8484848181106121ad576121ad613189565b90506020028101906121bf91906133ea565b6040516121cd9291906135a5565b60405180910390a2600101612080565b82518251811461222f5760405162461bcd60e51b815260206004820152600f60248201527f4c454e4754485f4d49534d415443480000000000000000000000000000000000604482015260640161058b565b5f5b818110156122d35783818151811061224b5761224b613189565b602002602001015160025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8784815181106122a3576122a3613189565b602002602001015181526020019081526020015f205f8282546122c69190613245565b9091555050600101612231565b508473ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161234a9291906135c0565b60405180910390a473ffffffffffffffffffffffffffffffffffffffff85163b15612433576040517fbc197c81000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff87169063bc197c81906123cb9033905f908a908a908a906004016135ed565b6020604051808303815f875af11580156123e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061240b919061337e565b7fffffffff00000000000000000000000000000000000000000000000000000000161461244d565b73ffffffffffffffffffffffffffffffffffffffff851615155b6113995760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e5400000000000000000000000000000000604482015260640161058b565b73ffffffffffffffffffffffffffffffffffffffff84165f908152600260209081526040808320868452909152812080548492906124d8908490613245565b9091555050604080518481526020810184905273ffffffffffffffffffffffffffffffffffffffff8616915f9133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a473ffffffffffffffffffffffffffffffffffffffff84163b15612613576040517ff23a6e61000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff86169063f23a6e61906125ab9033905f9089908990899060040161364b565b6020604051808303815f875af11580156125c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125eb919061337e565b7fffffffff00000000000000000000000000000000000000000000000000000000161461262d565b73ffffffffffffffffffffffffffffffffffffffff841615155b6126795760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e5400000000000000000000000000000000604482015260640161058b565b50505050565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260026020908152604080832085845290915281208054839290612732908490613232565b909155505060408051838152602081018390525f9173ffffffffffffffffffffffffffffffffffffffff86169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4505050565b8151815181146127e35760405162461bcd60e51b815260206004820152600f60248201527f4c454e4754485f4d49534d415443480000000000000000000000000000000000604482015260640161058b565b5f5b81811015612887578281815181106127ff576127ff613189565b602002602001015160025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f86848151811061285757612857613189565b602002602001015181526020019081526020015f205f82825461287a9190613232565b90915550506001016127e5565b505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516128fe9291906135c0565b60405180910390a450505050565b73ffffffffffffffffffffffffffffffffffffffff81168114611cf3575f80fd5b5f6020828403121561293d575f80fd5b81356129488161290c565b9392505050565b5f8060408385031215612960575f80fd5b823561296b8161290c565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114611cf3575f80fd5b5f602082840312156129b6575f80fd5b813561294881612979565b5f602082840312156129d1575f80fd5b5035919050565b5f5b838110156129f25781810151838201526020016129da565b50505f910152565b5f8151808452612a118160208601602086016129d8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f61294860208301846129fa565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612ac957612ac9612a55565b604052919050565b5f82601f830112612ae0575f80fd5b8135602067ffffffffffffffff821115612afc57612afc612a55565b8160051b612b0b828201612a82565b9283528481018201928281019087851115612b24575f80fd5b83870192505b84831015612b4357823582529183019190830190612b2a565b979650505050505050565b5f8083601f840112612b5e575f80fd5b50813567ffffffffffffffff811115612b75575f80fd5b602083019150836020828501011115610adc575f80fd5b5f805f805f8060a08789031215612ba1575f80fd5b8635612bac8161290c565b9550602087013567ffffffffffffffff80821115612bc8575f80fd5b612bd48a838b01612ad1565b96506040890135915080821115612be9575f80fd5b612bf58a838b01612ad1565b95506060890135915080821115612c0a575f80fd5b50612c1789828a01612b4e565b979a9699509497949695608090950135949350505050565b5f8060408385031215612c40575f80fd5b50508035926020909101359150565b5f805f805f8060a08789031215612c64575f80fd5b8635612c6f8161290c565b95506020870135945060408701359350606087013567ffffffffffffffff811115612c98575f80fd5b612c1789828a01612b4e565b5f8083601f840112612cb4575f80fd5b50813567ffffffffffffffff811115612ccb575f80fd5b6020830191508360208260051b8501011115610adc575f80fd5b5f805f805f805f8060a0898b031215612cfc575f80fd5b8835612d078161290c565b97506020890135612d178161290c565b9650604089013567ffffffffffffffff80821115612d33575f80fd5b612d3f8c838d01612ca4565b909850965060608b0135915080821115612d57575f80fd5b612d638c838d01612ca4565b909650945060808b0135915080821115612d7b575f80fd5b50612d888b828c01612b4e565b999c989b5096995094979396929594505050565b5f8060208385031215612dad575f80fd5b823567ffffffffffffffff811115612dc3575f80fd5b612dcf85828601612ca4565b90969095509350505050565b5f805f8060408587031215612dee575f80fd5b843567ffffffffffffffff80821115612e05575f80fd5b612e1188838901612ca4565b90965094506020870135915080821115612e29575f80fd5b50612e3687828801612ca4565b95989497509550505050565b5f815180845260208085019450602084015f5b83811015612e7157815187529582019590820190600101612e55565b509495945050505050565b602081525f6129486020830184612e42565b5f8060408385031215612e9f575f80fd5b8235612eaa8161290c565b915060208301358015158114612ebe575f80fd5b809150509250929050565b5f8060408385031215612eda575f80fd5b8235612ee58161290c565b91506020830135612ebe8161290c565b5f805f805f8060a08789031215612f0a575f80fd5b8635612f158161290c565b95506020870135612f258161290c565b94506040870135935060608701359250608087013567ffffffffffffffff811115612f4e575f80fd5b612f5a89828a01612b4e565b979a9699509497509295939492505050565b5f805f805f805f60a0888a031215612f82575f80fd5b873567ffffffffffffffff80821115612f99575f80fd5b612fa58b838c01612ca4565b909950975060208a0135965060408a0135955060608a0135915080821115612fcb575f80fd5b50612fd88a828b01612b4e565b989b979a50959894979596608090950135949350505050565b5f805f60608486031215613003575f80fd5b833561300e8161290c565b95602085013595506040909401359392505050565b5f805f60608486031215613035575f80fd5b83356130408161290c565b9250602084013567ffffffffffffffff8082111561305c575f80fd5b61306887838801612ad1565b9350604086013591508082111561307d575f80fd5b5061308a86828701612ad1565b9150509250925092565b5f602082840312156130a4575f80fd5b815167ffffffffffffffff808211156130bb575f80fd5b818401915084601f8301126130ce575f80fd5b8151818111156130e0576130e0612a55565b61311160207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601612a82565b9150808252856020828501011115613127575f80fd5b6115e08160208401602086016129d8565b600181811c9082168061314c57607f821691505b602082108103613183577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082028115828204841417610705576107056131b6565b5f8261322d577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b81810381811115610705576107056131b6565b80820180821115610705576107056131b6565b8183525f7f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115613288575f80fd5b8260051b80836020870137939093016020019392505050565b604081525f6132b4604083018688613258565b8281036020840152612b43818587613258565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff808b168352808a1660208401525060a0604083015261334760a08301888a613258565b828103606084015261335a818789613258565b9050828103608084015261336f8185876132c7565b9b9a5050505050505050505050565b5f6020828403121561338e575f80fd5b815161294881612979565b5f73ffffffffffffffffffffffffffffffffffffffff808916835280881660208401525085604083015284606083015260a060808301526133de60a0830184866132c7565b98975050505050505050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261341d575f80fd5b83018035915067ffffffffffffffff821115613437575f80fd5b602001915036819003821315610adc575f80fd5b601f82111561112657805f5260205f20601f840160051c810160208510156134705750805b601f840160051c820191505b81811015611399575f815560010161347c565b67ffffffffffffffff8311156134a7576134a7612a55565b6134bb836134b58354613138565b8361344b565b5f601f84116001811461350b575f85156134d55750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355611399565b5f838152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08716915b828110156135585786850135825560209485019460019092019101613538565b5086821015613593577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b602081525f6135b86020830184866132c7565b949350505050565b604081525f6135d26040830185612e42565b82810360208401526135e48185612e42565b95945050505050565b5f73ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525060a0604083015261362560a0830186612e42565b82810360608401526136378186612e42565b905082810360808401526133de81856129fa565b5f73ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015283606083015260a06080830152612b4360a08301846129fa56fea2646970667358221220e1746f67b94e5b4e716c2babe89ff7df27af08114264e87f29a1cd436b3c904b64736f6c63430008160033