0x60a06040523060805234801561001457600080fd5b506000805462ff000019169055608051613f9161005860003960008181610596015281816105df01528181610785015281816107c501526108410152613f916000f3fe6080604052600436106101cd5760003560e01c8063663261d7116100f7578063bd3ce6b011610095578063e37259e911610064578063e37259e9146104c7578063e492ebbc146104e7578063f8ab6f7a14610508578063f9e69cb61461052857600080fd5b8063bd3ce6b01461048a578063bdb6dead1461049e578063c4ae3168146104b2578063d240f3cf1461028c57600080fd5b80636f30b5d4116100d15780636f30b5d41461041857806390d834801461043f5780639a8a05921461045f578063aaf10f421461047557600080fd5b8063663261d7146103cd578063665da0b9146103e25780636e9960c31461040357600080fd5b8063423de2941161016f57806355fa3d8c1161013e57806355fa3d8c1461036257806357e3382e146103825780635b4b3dcc146102075780635c975abb146103af57600080fd5b8063423de294146102eb5780634dd18bf51461031a5780634f1ef2861461033a57806352d1902d1461034d57600080fd5b80632df2a514116101ab5780632df2a51414610268578063330115fc1461028c5780633659cfe6146102ac5780633fa9a8de146102cc57600080fd5b80630fddfc44146101d257806316dc5270146102075780632678224714610236575b600080fd5b3480156101de57600080fd5b506101f26101ed3660046131fb565b610548565b60405190151581526020015b60405180910390f35b34801561021357600080fd5b5061022761022236600461332a565b610551565b6040516101fe939291906133ae565b34801561024257600080fd5b506002546001600160a01b03165b6040516001600160a01b0390911681526020016101fe565b34801561027457600080fd5b5061027d610574565b6040516101fe939291906133db565b34801561029857600080fd5b506102aa6102a736600461332a565b50565b005b3480156102b857600080fd5b506102aa6102c7366004613455565b61058c565b3480156102d857600080fd5b506003545b6040519081526020016101fe565b3480156102f757600080fd5b5061030b610306366004613470565b61065a565b6040516101fe939291906134cd565b34801561032657600080fd5b506102aa610335366004613455565b61067f565b6102aa610348366004613567565b61077b565b34801561035957600080fd5b506102dd610834565b34801561036e57600080fd5b506102aa61037d3660046135b4565b6108e7565b34801561038e57600080fd5b506103a261039d3660046135cd565b6109b5565b6040516101fe9190613607565b3480156103bb57600080fd5b5060005462010000900460ff166101f2565b3480156103d957600080fd5b506102aa6109de565b3480156103ee57600080fd5b506103a26103fd36600461332a565b50606090565b34801561040f57600080fd5b50610250610a8c565b34801561042457600080fd5b5060005461025090630100000090046001600160a01b031681565b34801561044b57600080fd5b506102aa61045a366004613567565b610a9b565b34801561046b57600080fd5b506102dd60015481565b34801561048157600080fd5b50610250610ae1565b34801561049657600080fd5b5060606103a2565b3480156104aa57600080fd5b5060006102dd565b3480156104be57600080fd5b506102aa610aeb565b3480156104d357600080fd5b506102aa6104e236600461361a565b610b43565b3480156104f357600080fd5b506040805160008082526020820152016101fe565b34801561051457600080fd5b5061030b61052336600461365e565b610d76565b34801561053457600080fd5b506102aa61054336600461368e565b610d99565b60015b92915050565b600060608061055e610f0c565b61056784610f58565b9250925092509193909250565b6000806060610581611079565b925092509250909192565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105dd5760405162461bcd60e51b81526004016105d49061370c565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661060f6110d0565b6001600160a01b0316146106355760405162461bcd60e51b81526004016105d490613758565b61063e816110f1565b604080516000808252602082019092526102a791839190611163565b600060606106666131d1565b61067085856112d3565b92509250925093509350939050565b610687611402565b6001600160a01b0316336001600160a01b0316146106b75760405162461bcd60e51b81526004016105d4906137a4565b6001600160a01b03811661071f5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c653a2070656e64696e6741646d696e20697320746865207a65726044820152686f206164647265737360b81b60648201526084016105d4565b6002546040516001600160a01b038084169216907fc294d940164d749e976ac50c543f95eeefc74a98d2ce60ba4157b711892152ae90600090a3600280546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107c35760405162461bcd60e51b81526004016105d49061370c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107f56110d0565b6001600160a01b03161461081b5760405162461bcd60e51b81526004016105d490613758565b610824826110f1565b61083082826001611163565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108d45760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016105d4565b50600080516020613ef583398151915290565b6108ef611402565b6001600160a01b0316336001600160a01b03161461091f5760405162461bcd60e51b81526004016105d4906137a4565b806004148061092e5750806005145b61097a5760405162461bcd60e51b815260206004820152601c60248201527f4c696768744e6f64653a20696e76616c6964206e6f646520747970650000000060448201526064016105d4565b60038190556040518181527f21253d6086a29a4f964df4aee56d599d5146ba7929099f24915d9ce573d02f039060200160405180910390a150565b6060816040516020016109c891906138cc565b6040516020818303038152906040529050919050565b6002546001600160a01b03163314610a2c5760405162461bcd60e51b815260206004820152601160248201527037b7363c903832b73234b733a0b236b4b760791b60448201526064016105d4565b6002546001600160a01b0316610a40611402565b6001600160a01b03167ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec660405160405180910390a3600254610a8a906001600160a01b031661142a565b565b6000610a96611402565b905090565b43826001600160a01b03167f7063ee7ac21ca792eb7d62d3a65598a5c986c4b0f7bd701aa453eb8a1387c95683604051610ad59190613607565b60405180910390a35050565b6000610a966110d0565b610af3611402565b6001600160a01b0316336001600160a01b031614610b235760405162461bcd60e51b81526004016105d4906137a4565b60005462010000900460ff16610b3b57610a8a61147e565b610a8a6114dc565b600054610100900460ff1615808015610b635750600054600160ff909116105b80610b7d5750303b158015610b7d575060005460ff166001145b610be05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105d4565b6000805460ff191660011790558015610c03576000805461ff0019166101001790555b60008511610c465760405162461bcd60e51b815260206004820152601060248201526f1a5b9d985b1a590817d8da185a5b925960821b60448201526064016105d4565b6001600160a01b038416610c9c5760405162461bcd60e51b815260206004820152601860248201527f5f636f6e74726f6c6c6572207a65726f2061646472657373000000000000000060448201526064016105d4565b6001600160a01b038316610cf25760405162461bcd60e51b815260206004820152601760248201527f5f6d7074566572696679207a65726f206164647265737300000000000000000060448201526064016105d4565b6001859055600080546301000000600160b81b03191663010000006001600160a01b038616021790556003829055610d298461142a565b8015610d6f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60006060610d826131d1565b610d8c85856112d3565b9250925092509250925092565b610da1611402565b6001600160a01b0316336001600160a01b031614610dd15760405162461bcd60e51b81526004016105d4906137a4565b610ddb6000611517565b6000610de5611563565b805190915060005b81811015610e2957610e17838281518110610e0a57610e0a613997565b6020026020010151611591565b80610e21816139c3565b915050610ded565b508260005b81811015610e7757610e65868683818110610e4b57610e4b613997565b9050602002016020810190610e609190613455565b611611565b80610e6f816139c3565b915050610e2e565b50610e8186611517565b6000868686604051602001610e98939291906139dc565b604051602081830303815290604052805190602001209050610ec681600080516020613f3c83398151915255565b7f176e974620214a84869e0e8d901b12662bea90d40328c1d9c28c0e688c9e604081888888604051610efb9493929190613a16565b60405180910390a150505050505050565b60005462010000900460ff1615610a8a5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105d4565b6000606080600084806020019051810190610f739190613b4a565b9050610f8f816040015182602001516001548460600151611682565b600081516001811115610fa457610fa46137e8565b036110185760008160800151806020019051810190610fc39190613c03565b9050610fd5826040015182600061180b565b90955092508461101257604051806040016040528060178152602001761b5c1d081d995c9a599a58d85d1a5bdb8819985a5b1959604a1b81525093505b50611071565b80604001518160800151805190602001200361103e576001935080608001519150611071565b6000935060405180604001604052806013815260200172696e76616c6964206576656e7420627974657360681b81525092505b509193909250565b600080516020613f3c83398151915280547f361038e55a7e4ee2039d84670b090156834de40f6814e0436947f398075fbcb35490916060906110c8600080516020613ed583398151915261183e565b915050909192565b6000600080516020613ef58339815191525b546001600160a01b0316919050565b6110f9611402565b6001600160a01b0316336001600160a01b0316146102a75760405162461bcd60e51b815260206004820152602160248201527f4c696768744e6f64653a206f6e6c792041646d696e2063616e207570677261646044820152606560f81b60648201526084016105d4565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561119b57611196836118a4565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156111f5575060408051601f3d908101601f191682019092526111f291810190613cc1565b60015b6112585760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016105d4565b600080516020613ef583398151915281146112c75760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016105d4565b50611196838383611943565b600060606112df6131d1565b6000848060200190518101906112f59190613b4a565b9050611311816040015182602001516001548460600151611682565b600081516001811115611326576113266137e8565b0361139957600081608001518060200190518101906113459190613c03565b90506113568783604001518361196e565b90955092508461139357604051806040016040528060178152602001761b5c1d081d995c9a599a58d85d1a5bdb8819985a5b1959604a1b81525093505b506113fa565b8060400151816080015180519060200120036113c757600193506113c0816080015161199d565b91506113fa565b6000935060405180604001604052806013815260200172696e76616c6964206576656e7420627974657360681b81525092505b509250925092565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036110e2565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f611453611402565b604080516001600160a01b03928316815291841660208301520160405180910390a16102a781611ac1565b611486610f0c565b6000805462ff00001916620100001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586114bf3390565b6040516001600160a01b03909116815260200160405180910390a1565b6114e4611b4d565b6000805462ff0000191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336114bf565b600080516020613f3c83398151915261153d600080516020613ed5833981519152611b9c565b82111561155d5760405163106abba760e01b815260040160405180910390fd5b60010155565b6060600080516020613f3c83398151915261158b600080516020613ed583398151915261183e565b91505090565b600080516020613f3c83398151915260016115b9600080516020613ed5833981519152611b9c565b6115c39190613cda565b816001015411156115e75760405163106abba760e01b815260040160405180910390fd5b6115f46002820183611ba6565b6108305760405163652def2360e01b815260040160405180910390fd5b600080516020613f3c83398151915261010061163a600080516020613ed5833981519152611b9c565b10611658576040516372342a6160e11b815260040160405180910390fd5b6116656002820183611bc2565b610830576040516301159cdd60e31b815260040160405180910390fd5b80517f361038e55a7e4ee2039d84670b090156834de40f6814e0436947f398075fbcb354600080516020613f3c8339815191529110156116d5576040516324d5d9b760e11b815260040160405180910390fd5b6000805b83518110156118025760006117998583815181106116f9576116f9613997565b6020908102919091018101518654604080519384018d9052830152606082018a905260808201899052906117939060a001604051602081830303815290604052805190602001206040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b90611bd7565b905060006117aa6002860183611bfb565b905061010081106117ce5760405163a17d6a8560e01b815260040160405180910390fd5b6001811b848116156117f35760405163b67f0b9160e01b815260040160405180910390fd5b939093179250506001016116d9565b50505050505050565b600060606118198585611c1f565b915081156118365761183384602001518560000151611c4c565b90505b935093915050565b8054604080516020808402820181019092528281526060928492839291839183018282801561189657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611878575b505050505092505050919050565b6001600160a01b0381163b6119115760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016105d4565b80600080516020613ef58339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b61194c83611c8f565b6000825111806119595750805b15611196576119688383611ccf565b50505050565b60006119786131d1565b6119828484611c1f565b91508115611836576118338584602001518560000151611cf4565b6119a56131d1565b6020825110156119f75760405162461bcd60e51b815260206004820152601760248201527f696e76616c6964206c6f674279746573206c656e67746800000000000000000060448201526064016105d4565b60208281018051606081901c8085529263ffffffff9082901c811692911690826001600160401b03811115611a2e57611a2e61321d565b604051908082528060200260200182016040528015611a57578160200160208202803683370190505b50602086015260005b83811015611ab057611a73602083613ced565b91506000825190508087602001518381518110611a9257611a92613997565b60209081029190910101525080611aa8816139c3565b915050611a60565b509081526040840152509092915050565b6001600160a01b038116611b265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016105d4565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103611922565b60005462010000900460ff16610a8a5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105d4565b600061054b825490565b6000611bbb836001600160a01b038416611d53565b9392505050565b6000611bbb836001600160a01b038416611e18565b6000806000611be68585611e5b565b91509150611bf381611ea0565b509392505050565b6001600160a01b038116600090815260018301602052604081205460001901611bbb565b6000808260000151805190602001209050611c44818460400151856060015187612056565b949350505050565b606060008315611c5d576001611c60565b60005b60ff1690506000611c7184836122e5565b9050611c86611c81826003612327565b61245f565b95945050505050565b611c98816118a4565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060611bbb8383604051806060016040528060278152602001613f1560279139612483565b611cfc6131d1565b60008315611d0b576001611d0e565b60005b60ff1690506000611d1f84836122e5565b90506000611d2e826003612327565b90506000611d3c8289612327565b9050611d4781612560565b98975050505050505050565b60008181526001830160205260408120548015611e1157835460009085906000198101908110611d8557611d85613997565b9060005260206000200154905080856000016001840381548110611dab57611dab613997565b6000918252602080832090910192909255918252600186019052604090208190558354849080611ddd57611ddd613d00565b6001900381819060005260206000200160009055905583600101600084815260200190815260200160002060009055600191505b5092915050565b600081815260018301602052604081205461054b575081546001808201845560008481526020808220909301849055845493815293810190915260409092205590565b6000808251604103611e915760208301516040840151606085015160001a611e85878285856126f7565b94509450505050611e99565b506000905060025b9250929050565b6000816004811115611eb457611eb46137e8565b03611ebc5750565b6001816004811115611ed057611ed06137e8565b03611f1d5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016105d4565b6002816004811115611f3157611f316137e8565b03611f7e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016105d4565b6003816004811115611f9257611f926137e8565b03611fea5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016105d4565b6004816004811115611ffe57611ffe6137e8565b036102a75760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016105d4565b60006060806000849050600080889050805160000361207d57600095505050505050611c44565b60005b88518110156122d45781518311156120a15760009650505050505050611c44565b8881815181106120b3576120b3613997565b60200260200101519550858051906020012084146120da5760009650505050505050611c44565b61212c6121278a83815181106120f2576120f2613997565b602002602001015160408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6127e4565b945084516011036121f75781518303612186578a6121638660108151811061215657612156613997565b602002602001015161292b565b036121775760019650505050505050611c44565b60009650505050505050611c44565b600082848151811061219a5761219a613997565b016020015160f81c905060108111156121bd576000975050505050505050611c44565b6121e2868260ff16815181106121d5576121d5613997565b6020026020010151612943565b94506121ef600185613ced565b9350506122c2565b845160020361217757600061222f6122288760008151811061221b5761221b613997565b60200260200101516129b4565b8486612a67565b835190915061223e8286613ced565b0361227f578b61225a8760018151811061215657612156613997565b0361226f576001975050505050505050611c44565b6000975050505050505050611c44565b80600003612297576000975050505050505050611c44565b6122a18185613ced565b93506122b9866001815181106121d5576121d5613997565b94506122c29050565b806122cc816139c3565b915050612080565b5060009a9950505050505050505050565b604080518082019091526000808252602082015260006020830184019050604051806040016040528061231783612b6f565b8152602001919091529392505050565b604080518082019091526000808252602082015261234483612c13565b61237f5760405162461bcd60e51b815260206004820152600c60248201526b1a5cc81b1a5cdd0819985a5b60a21b60448201526064016105d4565b8251602084015160009161239291613ced565b905060006123a38560200151612c4e565b85602001516123b29190613ced565b90506000805b858110156123e9576123c983612b6f565b91506123d58284613ced565b9250806123e1816139c3565b9150506123b8565b506123f382612b6f565b9050826124008284613ced565b11156124425760405162461bcd60e51b8152602060048201526011602482015270524c50206974656d206f766572666c6f7760781b60448201526064016105d4565b604080518082019091529081526020810191909152949350505050565b805160609060000361247057919050565b508051602090910151601f190190815290565b60606001600160a01b0384163b6124eb5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016105d4565b600080856001600160a01b0316856040516125069190613d16565b600060405180830381855af49150503d8060008114612541576040519150601f19603f3d011682016040523d82523d6000602084013e612546565b606091505b5091509150612556828286612cc9565b9695505050505050565b6125686131d1565b6000612573836127e4565b90506003815110156125bb5760405162461bcd60e51b81526020600482015260116024820152706c6f67206c656e67746820746f206c6f7760781b60448201526064016105d4565b60006125e0826001815181106125d3576125d3613997565b60200260200101516127e4565b9050600081516001600160401b038111156125fd576125fd61321d565b604051908082528060200260200182016040528015612626578160200160208202803683370190505b50905060005b82518110156126865761265783828151811061264a5761264a613997565b6020026020010151612d02565b82828151811061266957612669613997565b60209081029190910101528061267e816139c3565b91505061262c565b5060405180606001604052806126b5856000815181106126a8576126a8613997565b6020026020010151612d4c565b6001600160a01b031681526020018281526020016126ec856002815181106126df576126df613997565b6020026020010151612d9e565b905295945050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561272e57506000905060036127db565b8460ff16601b1415801561274657508460ff16601c14155b1561275757506000905060046127db565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127ab573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166127d4576000600192509250506127db565b9150600090505b94509492505050565b60606127ef82612c13565b61282a5760405162461bcd60e51b815260206004820152600c60248201526b1a5cc81b1a5cdd0819985a5b60a21b60448201526064016105d4565b600061283583612dcc565b90506000816001600160401b038111156128515761285161321d565b60405190808252806020026020018201604052801561289657816020015b604080518082019091526000808252602082015281526020019060019003908161286f5790505b50905060006128a88560200151612c4e565b85602001516128b79190613ced565b90506000805b84811015612920576128ce83612b6f565b91506040518060400160405280838152602001848152508482815181106128f7576128f7613997565b602090810291909101015261290c8284613ced565b925080612918816139c3565b9150506128bd565b509195945050505050565b600080600061293984612e51565b9020949350505050565b80516000906021146129975760405162461bcd60e51b815260206004820152601760248201527f6974656d206973206e6f742075696e742073747269637400000000000000000060448201526064016105d4565b600080836020015160016129ab9190613ced565b51949350505050565b80516060906129f85760405162461bcd60e51b815260206004820152601060248201526f6974656d206c656e206973207a65726f60801b60448201526064016105d4565b600080612a0484612e51565b915091506000816001600160401b03811115612a2257612a2261321d565b6040519080825280601f01601f191660200182016040528015612a4c576020820181803683370190505b50905060208101612a5e848285612e98565b50949350505050565b6000806000612a7586612f1a565b9050600081516001600160401b03811115612a9257612a9261321d565b6040519080825280601f01601f191660200182016040528015612abc576020820181803683370190505b509050845b8251612acd9087613ced565b811015612b40576000878281518110612ae857612ae8613997565b01602001516001600160f81b03191690508083612b058985613cda565b81518110612b1557612b15613997565b60200101906001600160f81b031916908160001a905350508080612b38906139c3565b915050612ac1565b508080519060200120828051906020012003612b5f5781519250612b64565b600092505b509095945050505050565b80516000908190811a6080811015612b8a5760019150611e11565b60b8811015612bb057612b9e608082613cda565b612ba9906001613ced565b9150611e11565b60c0811015612bdd5760b78103600185019450806020036101000a85510460018201810193505050611e11565b60f8811015612bf157612b9e60c082613cda565b60019390930151602084900360f7016101000a900490920160f5190192915050565b80516000908103612c2657506000919050565b6020820151805160001a9060c0821015612c44575060009392505050565b5060019392505050565b8051600090811a6080811015612c675750600092915050565b60b8811080612c82575060c08110801590612c82575060f881105b15612c905750600192915050565b60c0811015612cbd57612ca5600160b8613d32565b612cb29060ff1682613cda565b611bbb906001613ced565b612ca5600160f8613d32565b60608315612cd8575081611bbb565b825115612ce85782518084602001fd5b8160405162461bcd60e51b81526004016105d49190613607565b80516000906021146129975760405162461bcd60e51b815260206004820152601360248201527234ba32b69034b9903737ba10313cba32b9999960691b60448201526064016105d4565b8051600090601514612d955760405162461bcd60e51b81526020600482015260126024820152716974656d206c656e206973206e6f7420323160701b60448201526064016105d4565b61054b826130c9565b8051606090600003612daf57919050565b600080612dbb84612e51565b601f19909101908152949350505050565b80516000908103612ddf57506000919050565b600080612def8460200151612c4e565b8460200151612dfe9190613ced565b9050600084600001518560200151612e169190613ced565b90505b80821015612e4857612e2a82612b6f565b612e349083613ced565b915082612e40816139c3565b935050612e19565b50909392505050565b6000806000612e638460200151612c4e565b90506000818560200151612e779190613ced565b90506000828660000151612e8b9190613cda565b9196919550909350505050565b80600003612ea557505050565b60208110612edd5782518252612ebc602084613ced565b9250612ec9602083613ced565b9150612ed6602082613cda565b9050612ea5565b80156111965760006001612ef2836020613cda565b612efe90610100613e2f565b612f089190613cda565b84518451821691191617835250505050565b60608060008351111561054b57600080612f35600086613150565b60f81c90506001811480612f4c57508060ff166003145b15612ff357600185516002612f619190613e3b565b612f6b9190613cda565b6001600160401b03811115612f8257612f8261321d565b6040519080825280601f01601f191660200182016040528015612fac576020820181803683370190505b5092506000612fbc600187613150565b90508084600081518110612fd257612fd2613997565b60200101906001600160f81b031916908160001a9053506001925050613056565b6002855160026130039190613e3b565b61300d9190613cda565b6001600160401b038111156130245761302461321d565b6040519080825280601f01601f19166020018201604052801561304e576020820181803683370190505b509250600091505b60ff82165b83518110156130c05761308561307460ff851683613cda565b61307f906002613ced565b87613150565b84828151811061309757613097613997565b60200101906001600160f81b031916908160001a905350806130b8816139c3565b91505061305b565b50505092915050565b8051600090158015906130de57508151602110155b6131215760405162461bcd60e51b81526020600482015260146024820152731a5d195b481b195b881a5cc81b9bdd081d5a5b9d60621b60448201526064016105d4565b60008061312d84612e51565b815191935091506020821015611c445760208290036101000a9004949350505050565b600061315d600284613e68565b1561319757601082613170600286613e7c565b8151811061318057613180613997565b0160200151613192919060f81c613e90565b6131c7565b6010826131a5600286613e7c565b815181106131b5576131b5613997565b01602001516131c7919060f81c613eb2565b60f81b9392505050565b604051806060016040528060006001600160a01b0316815260200160608152602001606081525090565b6000806040838503121561320e57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b03811182821017156132555761325561321d565b60405290565b604051608081016001600160401b03811182821017156132555761325561321d565b604051601f8201601f191681016001600160401b03811182821017156132a5576132a561321d565b604052919050565b60006001600160401b038211156132c6576132c661321d565b50601f01601f191660200190565b600082601f8301126132e557600080fd5b81356132f86132f3826132ad565b61327d565b81815284602083860101111561330d57600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561333c57600080fd5b81356001600160401b0381111561335257600080fd5b611c44848285016132d4565b60005b83811015613379578181015183820152602001613361565b50506000910152565b6000815180845261339a81602086016020860161335e565b601f01601f19169290920160200192915050565b83151581526060602082015260006133c96060830185613382565b82810360408401526125568185613382565b6000606082018583526020858185015260606040850152818551808452608086019150828701935060005b8181101561342b5784516001600160a01b031683529383019391830191600101613406565b509098975050505050505050565b80356001600160a01b038116811461345057600080fd5b919050565b60006020828403121561346757600080fd5b611bbb82613439565b60008060006060848603121561348557600080fd5b8335801515811461349557600080fd5b92506020840135915060408401356001600160401b038111156134b757600080fd5b6134c3868287016132d4565b9150509250925092565b8315158152600060206060818401526134e96060840186613382565b838103604085015284516001600160a01b0316815281850151606083830181905281519083018190529083019060009060808401905b8083101561353f578351825292850192600192909201919085019061351f565b506040880151945083810360408501526135598186613382565b9a9950505050505050505050565b6000806040838503121561357a57600080fd5b61358383613439565b915060208301356001600160401b0381111561359e57600080fd5b6135aa858286016132d4565b9150509250929050565b6000602082840312156135c657600080fd5b5035919050565b6000602082840312156135df57600080fd5b81356001600160401b038111156135f557600080fd5b820160a08185031215611bbb57600080fd5b602081526000611bbb6020830184613382565b6000806000806080858703121561363057600080fd5b8435935061364060208601613439565b925061364e60408601613439565b9396929550929360600135925050565b6000806040838503121561367157600080fd5b8235915060208301356001600160401b0381111561359e57600080fd5b6000806000604084860312156136a357600080fd5b8335925060208401356001600160401b03808211156136c157600080fd5b818601915086601f8301126136d557600080fd5b8135818111156136e457600080fd5b8760208260051b85010111156136f957600080fd5b6020830194508093505050509250925092565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60208082526017908201527f6c696768746e6f6465203a3a206f6e6c792061646d696e000000000000000000604082015260600190565b600281106102a757600080fd5b634e487b7160e01b600052602160045260246000fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000808335601e1984360301811261383e57600080fd5b83016020810192503590506001600160401b0381111561385d57600080fd5b803603821315611e9957600080fd5b60008383855260208086019550808560051b8301018460005b878110156138bf57848303601f190189526138a08288613827565b6138ab8582846137fe565b9a86019a9450505090830190600101613885565b5090979650505050505050565b60208152600082356138dd816137db565b600281106138fb57634e487b7160e01b600052602160045260246000fd5b8060208401525060208301356040830152604083013560608301526060830135601e1984360301811261392d57600080fd5b83016020810190356001600160401b0381111561394957600080fd5b8060051b360382131561395b57600080fd5b60a0608085015261397060c08501828461386c565b9150506139806080850185613827565b848303601f190160a08601526125568382846137fe565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016139d5576139d56139ad565b5060010190565b838152600060208083018560005b868110156138bf576001600160a01b03613a0383613439565b16835291830191908301906001016139ea565b84815260208082018590526060604083018190528201839052600090849060808401835b86811015613a66576001600160a01b03613a5385613439565b1682529282019290820190600101613a3a565b5098975050505050505050565b600082601f830112613a8457600080fd5b8151613a926132f3826132ad565b818152846020838601011115613aa757600080fd5b611c4482602083016020870161335e565b600082601f830112613ac957600080fd5b815160206001600160401b0380831115613ae557613ae561321d565b8260051b613af483820161327d565b9384528581018301938381019088861115613b0e57600080fd5b84880192505b85831015611d4757825184811115613b2c5760008081fd5b613b3a8a87838c0101613a73565b8352509184019190840190613b14565b600060208284031215613b5c57600080fd5b81516001600160401b0380821115613b7357600080fd5b9083019060a08286031215613b8757600080fd5b613b8f613233565b8251613b9a816137db565b808252506020830151602082015260408301516040820152606083015182811115613bc457600080fd5b613bd087828601613ab8565b606083015250608083015182811115613be857600080fd5b613bf487828601613a73565b60808301525095945050505050565b600060208284031215613c1557600080fd5b81516001600160401b0380821115613c2c57600080fd5b9083019060808286031215613c4057600080fd5b613c4861325b565b825182811115613c5757600080fd5b613c6387828601613a73565b82525060208301516020820152604083015182811115613c8257600080fd5b613c8e87828601613a73565b604083015250606083015182811115613ca657600080fd5b613cb287828601613ab8565b60608301525095945050505050565b600060208284031215613cd357600080fd5b5051919050565b8181038181111561054b5761054b6139ad565b8082018082111561054b5761054b6139ad565b634e487b7160e01b600052603160045260246000fd5b60008251613d2881846020870161335e565b9190910192915050565b60ff828116828216039081111561054b5761054b6139ad565b600181815b80851115613d86578160001904821115613d6c57613d6c6139ad565b80851615613d7957918102915b93841c9390800290613d50565b509250929050565b600082613d9d5750600161054b565b81613daa5750600061054b565b8160018114613dc05760028114613dca57613de6565b600191505061054b565b60ff841115613ddb57613ddb6139ad565b50506001821b61054b565b5060208310610133831016604e8410600b8410161715613e09575081810a61054b565b613e138383613d4b565b8060001904821115613e2757613e276139ad565b029392505050565b6000611bbb8383613d8e565b808202811582820484141761054b5761054b6139ad565b634e487b7160e01b600052601260045260246000fd5b600082613e7757613e77613e52565b500690565b600082613e8b57613e8b613e52565b500490565b600060ff831680613ea357613ea3613e52565b8060ff84160691505092915050565b600060ff831680613ec557613ec5613e52565b8060ff8416049150509291505056fe361038e55a7e4ee2039d84670b090156834de40f6814e0436947f398075fbcb4360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564361038e55a7e4ee2039d84670b090156834de40f6814e0436947f398075fbcb2a2646970667358221220ba4a52d542f1f491f82a950ca3d1366cb4494f0e3478333316b0b5f4f868fbaa64736f6c63430008140033