h-agent-swap 1.6.2 → 1.6.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/abi/TokenMarket.json +145 -2
- package/src/agent-swap.js +40 -0
package/package.json
CHANGED
package/src/abi/TokenMarket.json
CHANGED
|
@@ -56,6 +56,31 @@
|
|
|
56
56
|
"name": "BackBuy",
|
|
57
57
|
"type": "event"
|
|
58
58
|
},
|
|
59
|
+
{
|
|
60
|
+
"anonymous": false,
|
|
61
|
+
"inputs": [
|
|
62
|
+
{
|
|
63
|
+
"indexed": false,
|
|
64
|
+
"internalType": "address",
|
|
65
|
+
"name": "sender",
|
|
66
|
+
"type": "address"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"indexed": false,
|
|
70
|
+
"internalType": "address",
|
|
71
|
+
"name": "token",
|
|
72
|
+
"type": "address"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"indexed": false,
|
|
76
|
+
"internalType": "uint256",
|
|
77
|
+
"name": "amount",
|
|
78
|
+
"type": "uint256"
|
|
79
|
+
}
|
|
80
|
+
],
|
|
81
|
+
"name": "Burn",
|
|
82
|
+
"type": "event"
|
|
83
|
+
},
|
|
59
84
|
{
|
|
60
85
|
"anonymous": false,
|
|
61
86
|
"inputs": [
|
|
@@ -93,6 +118,31 @@
|
|
|
93
118
|
"name": "Compensate",
|
|
94
119
|
"type": "event"
|
|
95
120
|
},
|
|
121
|
+
{
|
|
122
|
+
"anonymous": false,
|
|
123
|
+
"inputs": [
|
|
124
|
+
{
|
|
125
|
+
"indexed": false,
|
|
126
|
+
"internalType": "address",
|
|
127
|
+
"name": "sender",
|
|
128
|
+
"type": "address"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"indexed": false,
|
|
132
|
+
"internalType": "address",
|
|
133
|
+
"name": "token",
|
|
134
|
+
"type": "address"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"indexed": false,
|
|
138
|
+
"internalType": "uint256",
|
|
139
|
+
"name": "amount",
|
|
140
|
+
"type": "uint256"
|
|
141
|
+
}
|
|
142
|
+
],
|
|
143
|
+
"name": "Donate",
|
|
144
|
+
"type": "event"
|
|
145
|
+
},
|
|
96
146
|
{
|
|
97
147
|
"anonymous": false,
|
|
98
148
|
"inputs": [
|
|
@@ -248,6 +298,37 @@
|
|
|
248
298
|
"name": "Reward",
|
|
249
299
|
"type": "event"
|
|
250
300
|
},
|
|
301
|
+
{
|
|
302
|
+
"anonymous": false,
|
|
303
|
+
"inputs": [
|
|
304
|
+
{
|
|
305
|
+
"indexed": false,
|
|
306
|
+
"internalType": "uint256",
|
|
307
|
+
"name": "id",
|
|
308
|
+
"type": "uint256"
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
"indexed": false,
|
|
312
|
+
"internalType": "address",
|
|
313
|
+
"name": "wallet",
|
|
314
|
+
"type": "address"
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
"indexed": false,
|
|
318
|
+
"internalType": "address",
|
|
319
|
+
"name": "token",
|
|
320
|
+
"type": "address"
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
"indexed": false,
|
|
324
|
+
"internalType": "uint256",
|
|
325
|
+
"name": "amount",
|
|
326
|
+
"type": "uint256"
|
|
327
|
+
}
|
|
328
|
+
],
|
|
329
|
+
"name": "Send",
|
|
330
|
+
"type": "event"
|
|
331
|
+
},
|
|
251
332
|
{
|
|
252
333
|
"stateMutability": "payable",
|
|
253
334
|
"type": "fallback"
|
|
@@ -265,6 +346,63 @@
|
|
|
265
346
|
"stateMutability": "view",
|
|
266
347
|
"type": "function"
|
|
267
348
|
},
|
|
349
|
+
{
|
|
350
|
+
"inputs": [
|
|
351
|
+
{
|
|
352
|
+
"internalType": "uint256[]",
|
|
353
|
+
"name": "id",
|
|
354
|
+
"type": "uint256[]"
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
"internalType": "address[]",
|
|
358
|
+
"name": "wallet",
|
|
359
|
+
"type": "address[]"
|
|
360
|
+
},
|
|
361
|
+
{
|
|
362
|
+
"internalType": "address[]",
|
|
363
|
+
"name": "token",
|
|
364
|
+
"type": "address[]"
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
"internalType": "uint256[]",
|
|
368
|
+
"name": "amount",
|
|
369
|
+
"type": "uint256[]"
|
|
370
|
+
}
|
|
371
|
+
],
|
|
372
|
+
"name": "batchTransfer",
|
|
373
|
+
"outputs": [],
|
|
374
|
+
"stateMutability": "nonpayable",
|
|
375
|
+
"type": "function"
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
"inputs": [
|
|
379
|
+
{
|
|
380
|
+
"internalType": "address",
|
|
381
|
+
"name": "inToken",
|
|
382
|
+
"type": "address"
|
|
383
|
+
},
|
|
384
|
+
{
|
|
385
|
+
"internalType": "address",
|
|
386
|
+
"name": "outToken",
|
|
387
|
+
"type": "address"
|
|
388
|
+
}
|
|
389
|
+
],
|
|
390
|
+
"name": "calibration",
|
|
391
|
+
"outputs": [
|
|
392
|
+
{
|
|
393
|
+
"internalType": "uint256",
|
|
394
|
+
"name": "open",
|
|
395
|
+
"type": "uint256"
|
|
396
|
+
},
|
|
397
|
+
{
|
|
398
|
+
"internalType": "address",
|
|
399
|
+
"name": "pricing",
|
|
400
|
+
"type": "address"
|
|
401
|
+
}
|
|
402
|
+
],
|
|
403
|
+
"stateMutability": "view",
|
|
404
|
+
"type": "function"
|
|
405
|
+
},
|
|
268
406
|
{
|
|
269
407
|
"inputs": [],
|
|
270
408
|
"name": "close",
|
|
@@ -1170,6 +1308,11 @@
|
|
|
1170
1308
|
"internalType": "uint256",
|
|
1171
1309
|
"name": "_space",
|
|
1172
1310
|
"type": "uint256"
|
|
1311
|
+
},
|
|
1312
|
+
{
|
|
1313
|
+
"internalType": "uint256",
|
|
1314
|
+
"name": "_adjust",
|
|
1315
|
+
"type": "uint256"
|
|
1173
1316
|
}
|
|
1174
1317
|
],
|
|
1175
1318
|
"name": "updateSpace",
|
|
@@ -1241,8 +1384,8 @@
|
|
|
1241
1384
|
"type": "receive"
|
|
1242
1385
|
}
|
|
1243
1386
|
],
|
|
1244
|
-
"bytecode": "0x608060405262015180600a556000600b556305f5e100600d553480156200002557600080fd5b506040516200564e3803806200564e8339810160408190526200004891620001fb565b620000533362000085565b60018055600280546001600160a01b0319166001600160a01b0384161790556200007d81620000d5565b505062000258565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381166200013b5760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4d61726b65743a3a696e76616c696420726f757465206164647265604482015261737360f01b606482015260840160405180910390fd5b600580546001600160a01b0319166001600160a01b038316908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000195573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001bb919062000233565b600480546001600160a01b0319166001600160a01b039290921691909117905550565b80516001600160a01b0381168114620001f657600080fd5b919050565b600080604083850312156200020f57600080fd5b6200021a83620001de565b91506200022a60208401620001de565b90509250929050565b6000602082840312156200024657600080fd5b6200025182620001de565b9392505050565b6153e680620002686000396000f3fe6080604052600436106101c45760003560e01c80635ff530f2116100f65780638da5cb5b1161008f578063b180198611610061578063b180198614610720578063d96661ef14610736578063f2fde38b14610756578063fe8691b41461077657005b80638da5cb5b1461065c5780639065a9af1461067a578063a6a3694a146106ed578063aa5d448f1461070057005b8063715018a6116100c8578063715018a6146105d8578063744cfdd9146105ed5780637aaa9b021461060d57806381f3fdc31461062d57005b80635ff530f21461054757806362a76603146105675780636a59f833146105985780636f151a38146105b857005b806327af9e38116101685780633fc8cef31161013a5780633fc8cef3146104bc57806340216a83146104dc57806343d726d6146105115780635c8181211461052757005b806327af9e38146103425780632926e5de146103585780632bd2c18d1461045157806334e3f92d1461047157005b80630fcc40c4116101a15780630fcc40c41461029d5780631b153401146102ca5780631f8c24de146102ea578063238ac9331461030a57005b8063016eb8a8146101cd578063089afeae146102005780630d83b1e41461028757005b366101cb57005b005b3480156101d957600080fd5b506101ed6101e8366004614569565b6107b5565b6040519081526020015b60405180910390f35b34801561020c57600080fd5b5061025861021b3660046145b0565b600860209081526000928352604080842090915290825290208054600182015460028301546003909301546001600160a01b039283169391921684565b604080516001600160a01b039586168152602081019490945283019190915290911660608201526080016101f7565b34801561029357600080fd5b506101ed600d5481565b3480156102a957600080fd5b506102bd6102b836600461470b565b6107d6565b6040516101f7919061478c565b3480156102d657600080fd5b506101cb6102e536600461479f565b6108a6565b3480156102f657600080fd5b506101cb610305366004614850565b610961565b34801561031657600080fd5b5060025461032a906001600160a01b031681565b6040516001600160a01b0390911681526020016101f7565b34801561034e57600080fd5b506101ed600a5481565b34801561036457600080fd5b506103e76103733660046145b0565b6007602081815260009384526040808520909152918352912080546001820154600283015460038401546004850154600586015460068701549787015460088801546009890154600a8a0154600b909a01546001600160a01b03998a169b989a99909716989597949693959293919290918c565b604080516001600160a01b039d8e168152602081019c909c5299909b16988a01989098526060890196909652608088019490945260a087019290925260c086015260e0850152610100840152610120830152610140820152610160810191909152610180016101f7565b34801561045d57600080fd5b506101ed61046c3660046148bd565b6109e1565b34801561047d57600080fd5b506104ac61048c366004614914565b805160208183018101805160038252928201919093012091525460ff1681565b60405190151581526020016101f7565b3480156104c857600080fd5b5060045461032a906001600160a01b031681565b3480156104e857600080fd5b506104fc6104f73660046145b0565b610a36565b604080519283526020830191909152016101f7565b34801561051d57600080fd5b506101ed600c5481565b34801561053357600080fd5b506101ed610542366004614957565b610b82565b34801561055357600080fd5b506101ed610562366004614990565b610bca565b34801561057357600080fd5b506105876105823660046149d7565b610d0e565b6040516101f7959493929190614ae9565b3480156105a457600080fd5b506101cb6105b3366004614b1e565b610dd6565b3480156105c457600080fd5b506101cb6105d3366004614b37565b610e35565b3480156105e457600080fd5b506101cb610e9b565b3480156105f957600080fd5b506101ed610608366004614990565b610f01565b34801561061957600080fd5b506101cb610628366004614bcd565b61102b565b34801561063957600080fd5b5061064d610648366004614ce8565b6112e7565b6040516101f793929190614d4a565b34801561066857600080fd5b506000546001600160a01b031661032a565b34801561068657600080fd5b506106cd61069536600461479f565b600960209081526000938452604080852082529284528284209052825290208054600182015460028301546003909301549192909184565b6040805194855260208501939093529183015260608201526080016101f7565b6101cb6106fb366004614d6c565b6116b7565b34801561070c57600080fd5b506101cb61071b366004614b37565b6119ec565b34801561072c57600080fd5b506101ed600b5481565b34801561074257600080fd5b5060055461032a906001600160a01b031681565b34801561076257600080fd5b506101cb610771366004614b37565b611a4f565b34801561078257600080fd5b506104fc6107913660046145b0565b60066020908152600092835260408084209091529082529020805460019091015482565b600d546000906107cf906107c98585611b2e565b90611b40565b9392505050565b805160609060008167ffffffffffffffff8111156107f6576107f66145e9565b60405190808252806020026020018201604052801561081f578160200160208202803683370190505b5090506000825b6001811061089c578561083a600183614e00565b8151811061084a5761084a614e17565b602002602001015183838151811061086457610864614e17565b6001600160a01b03909216602092830291909101909101528161088681614e46565b925050808061089490614e60565b915050610826565b5090949350505050565b6000546001600160a01b031633146109055760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b610910838383611b4c565b61095c5760405162461bcd60e51b815260206004820152601660248201527f546f6b656e4d61726b65743a3a73656e64206661696c0000000000000000000060448201526064016108fc565b505050565b610969611b83565b6109768585858585611bdc565b61098285858584611dc8565b8142106109d15760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a4f726465722045787069726174696f6e00000060448201526064016108fc565b6109da60018055565b5050505050565b60008080848103610a0e576109f68787610bca565b9150610a0484836000610b82565b9150819250610a2c565b610a188787610f01565b9050610a2684826001610b82565b90508092505b5050949350505050565b6000806000600a54600b5442610a4c9190614e77565b610a569190614e8f565b6001600160a01b0380871660008181526007602081815260408084208b87168086529083528185208251610180810184528154891681526001820154818601526002820154909816888401526003810154606089015260048101546080890152600581015460a0890152600681015460c08901529384015460e08801526008840154610100880152600980850154610120890152600a850154610140890152600b909401546101608801529484529181528183209383529283528082208583529092529081205492935090919003610b3b578060200151935080606001519250610b79565b6001600160a01b0386811660009081526009602090815260408083209389168352928152828220858352905220600281015460039091015490945092505b50509250929050565b600060018215610ba057600d54610b999086611e37565b9050610bb0565b600d54610bad9086611e43565b90505b600d54610bc1906107c98684611b2e565b95945050505050565b6005546040517fd06ca61f00000000000000000000000000000000000000000000000000000000815260009182916001600160a01b039091169063d06ca61f90610c1a9087908790600401614eca565b600060405180830381865afa158015610c37573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c5f9190810190614ee3565b905080610c7760018351611e4390919063ffffffff16565b81518110610c8757610c87614e17565b6020026020010151915060008211610d075760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e4d61726b65743a3a6f7574416d6f756e742073686f756c6420626560448201527f2067726561746572207468616e2030000000000000000000000000000000000060648201526084016108fc565b5092915050565b610d8460405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600080600080600080610d998c8c8c8c611e4f565b92995090945092509050610daf8c8c8b8661203b565b9850610dbf8c8c8b8b8686612085565b989e919d509b509699509197509495505050505050565b6000546001600160a01b03163314610e305760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108fc565b600a55565b6000546001600160a01b03163314610e8f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108fc565b610e9881612322565b50565b6000546001600160a01b03163314610ef55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108fc565b610eff60006123d7565b565b6005546040517f1f00ca7400000000000000000000000000000000000000000000000000000000815260009182916001600160a01b0390911690631f00ca7490610f519087908790600401614eca565b600060405180830381865afa158015610f6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f969190810190614ee3565b905080600081518110610fab57610fab614e17565b6020026020010151915060008211610d075760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a696e416d6f756e742073686f756c642062652060448201527f67726561746572207468616e203000000000000000000000000000000000000060648201526084016108fc565b6000546001600160a01b031633146110855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108fc565b6000826060015112156110da5760405162461bcd60e51b815260206004820152601860248201527f546f6b656e4d61726b65743a3a726577617264203e3d2030000000000000000060448201526064016108fc565b60008260200151121561112f5760405162461bcd60e51b815260206004820152601960248201527f546f6b656e4d61726b65743a3a66656552617465203e3d20300000000000000060448201526064016108fc565b836001600160a01b031681606001516001600160a01b031614806111685750826001600160a01b031681606001516001600160a01b0316145b6111b45760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2070726963696e670000000060448201526064016108fc565b6001600160a01b03938416600081815260076020818152604080842097891680855297825280842087518154908b167fffffffffffffffffffffffff000000000000000000000000000000000000000091821617825583890151600180840191909155838a015160028085018054928f16928516929092179091556060808c015160038087019190915560808d0151600487015560a08d0151600587015560c08d0151600687015560e08d0151988601989098556101008c01516008808701919091556101208d015160098701556101408d0151600a870155610160909c0151600b909501949094559787529884528286209986529883529381902086518154908b16908a1617815591860151968201969096559484015192850192909255919091015191018054919093169116179055565b61135d60405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506001600160a01b03808416600081815260076020818152604080842088871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b015461016087015280517f313ce567000000000000000000000000000000000000000000000000000000008152905193948594909363313ce5679383820193909291908290030181865afa158015611459573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147d9190614f74565b60ff16915061149661149083600a61507b565b85610bca565b905060008082856080015111156114e8576101208501516080860151600d546114bf8683614e00565b6114c99190615087565b6114d39190614e8f565b6114dd9190614e8f565b905060009150611531565b8460800151831115611531576101208501516080860151600d5461150c8287614e00565b6115169190615087565b6115209190614e8f565b61152a9190614e8f565b9050600191505b60008113156116ac5760808501839052610140850151610160860151836115695761155b826150a6565b9150611566816150a6565b90505b600082126115ac57602087015161158084846150de565b61158a919061519a565b6020880181905260c088015112156115a75760c087015160208801525b611608565b86602001518760a00151846115c08561243f565b6115ca91906150de565b6115d4919061519a565b13156115e95760a08701516020880152611608565b60208701516115f884846150de565b611602919061519a565b60208801525b6000811261164d57606087015161161f84836150de565b611629919061519a565b6060880181905261010088015112156116485761010087015160608801525b6116a9565b86606001518760e00151846116618461243f565b61166b91906150de565b611675919061519a565b131561168a5760e087015160608801526116a9565b606087015161169984836150de565b6116a3919061519a565b60608801525b50505b505093509350939050565b6116bf611b83565b33321461170e5760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2063616c6c6572000000000060448201526064016108fc565b333b156117825760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a50726f686962697420636f6e7472616374206360448201527f616c6c730000000000000000000000000000000000000000000000000000000060648201526084016108fc565b826000036117a9576117948587610bca565b93506117a281856000610b82565b93506117c4565b6117b38487610f01565b94506117c181866001610b82565b94505b6000866000815181106117d9576117d9614e17565b60200260200101519050600087600189516117f49190614e00565b8151811061180457611804614e17565b6020908102919091018101513360009081526006835260408082206001600160a01b0387168352909352918220600101805491935089929091611848908490614e77565b92505081905550600060405180604001604052806118658561245b565b8152602001846001600160a01b031681525090506000604051806040016040528061188f8561245b565b81526001600160a01b03851660209091015282519091506003036118be576118b98433308c612494565b611933565b8834146119335760405162461bcd60e51b815260206004820152602660248201527f546f6b656e4d61726b65743a3a696e70757420657468206973206e6f7420616360448201527f637572617465000000000000000000000000000000000000000000000000000060648201526084016108fc565b61194282828b8b8e8c8c612604565b600061194f85858b6128ad565b905060008061196087878f8e6129f3565b9150915061196f87878f612c55565b604080513381526001600160a01b038981166020830152881681830152606081018e90526080810185905260a0810184905260c0810183905290517f38f821c5ea6d48d9d87fc7acd83a6b91f7e510b1e61861bdb0e4377af272d1b49181900360e00190a1505050505050506119e460018055565b505050505050565b6000546001600160a01b03163314611a465760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108fc565b610e9881612f26565b6000546001600160a01b03163314611aa95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108fc565b6001600160a01b038116611b255760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016108fc565b610e98816123d7565b60006107cf8284615087565b92915050565b60006107cf8284614e8f565b60006001600160a01b038416611b6e57611b66838361308b565b5060016107cf565b611b798484846131a4565b5060019392505050565b600260015403611bd55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108fc565b6002600155565b600381604051611bec919061523e565b9081526040519081900360200190205460ff1615611c4c5760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a6365727469666963617465206578706972656460448201526064016108fc565b60408051466020808301919091528183018890527fffffffffffffffffffffffffffffffffffffffff00000000000000000000000033606090811b82168185015288901b1660748301526088820186905260a88083018690528351808403909101815260c8830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000060e884015261010480840191909152835180840390910181526101249092019092528051910120600090611d10908361330c565b6002549091506001600160a01b03808316911614611d705760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a696e76616c696420636572746966696361746560448201526064016108fc565b6001600383604051611d82919061523e565b90815260405190819003602001902080549115157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00909216919091179055505050505050565b6001600160a01b038316611de557611de0338361308b565b611df0565b611df08333846131a4565b7f620ad9fc50d4bd40a79cb189cc547554eb4619554627f5ff4b98002f3269211d338585854286604051611e299695949392919061525a565b60405180910390a150505050565b60006107cf8284614e77565b60006107cf8284614e00565b611ec560405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506001600160a01b03808516600081815260076020818152604080842089871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b015461016087015280517f313ce5670000000000000000000000000000000000000000000000000000000081529051939485948594919363313ce5679380840193919291908290030181865afa158015611fc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe79190614f74565b60ff169150612000611ffa83600a61507b565b87610bca565b905060008061200f8a8a610a36565b6020880182905260608801819052909250905061202c87836107b5565b94505050945094509450949050565b6001600160a01b038085166000908152600860209081526040808320938716835292905290812060020154610bc1906120759085906107b5565b61207f8585611e43565b90611e43565b6001600160a01b0386811660009081526008602090815260408083208985168085529083528184208251608081018452815487168152600180830154828701526002830154828601526003909201548716606082015295891685526006845282852091855292528220908101549054919283928392116121145761210d8882602001516107b5565b9350612309565b6001600160a01b038781166000908152600660209081526040808320938d168352929052206001810154905461214b908a90614e77565b106121a0576001600160a01b038781166000908152600660209081526040808320938d168352929052206001810154905461210d919061218c908b90614e77565b6121969190614e00565b82602001516107b5565b60006121ad87600a61507b565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038a811660048301528891908e16906370a0823190602401602060405180830381865afa15801561220f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223391906152bd565b61223d9190615087565b6122479190614e8f565b6001600160a01b038981166000908152600660209081526040808320938f1683529290522060018101549054919250908290612284908c90614e77565b61228e9190614e77565b1015612307576001600160a01b038089166000908152600660209081526040808320938e168352929052205481906122c7908b90614e77565b6122d19190614e77565b6001600160a01b03808a166000908152600660209081526040808320938f16835292905220600101546123049190614e00565b93505b505b6123138885611e43565b91505096509650969350505050565b6001600160a01b03811661239d5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a696e76616c6964207369676e696e672061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016108fc565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008082121561245757612452826150a6565b611b3a565b5090565b600060036001600160a01b03831661247557506001611b3a565b6004546001600160a01b0390811690841603611b3a5750600292915050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790529151600092839290881691612526919061523e565b6000604051808303816000865af19150503d8060008114612563576040519150601f19603f3d011682016040523d82523d6000602084013e612568565b606091505b509150915081801561259257508051158061259257508080602001905181019061259291906152d6565b6119e45760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a20747260448201527f616e7366657246726f6d206661696c656400000000000000000000000000000060648201526084016108fc565b865160030361262957602087015160055461262991906001600160a01b031687613330565b8651600314801561263b575085516003145b8015612645575081155b156126e8576005546040517f38ed17390000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906338ed17399061269b90889088908890309088906004016152f3565b6000604051808303816000875af11580156126ba573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526126e29190810190614ee3565b506128a4565b865160031480156126fa575085516003145b80156127065750816001145b1561275c576005546040517f8803dbee0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690638803dbee9061269b90879089908890309088906004016152f3565b865160031480156127795750855160021480612779575085516001145b80156127855750816001145b156127db576005546040517f4a25d94a0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690634a25d94a9061269b90879089908890309088906004016152f3565b8651600214806127ec575086516001145b80156127f9575085516003145b80156128055750816001145b156128a4576005546040517ffb3bdb410000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063fb3bdb4190879061285b90889088903090889060040161532f565b60006040518083038185885af1158015612879573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f191682016040526128a29190810190614ee3565b505b50505050505050565b6001600160a01b038084166000908152600760208181526040808420878616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b9092015461016083015290816129648686610a36565b50905061297184826107b5565b9250600060405180604001604052806129898861245b565b81526001600160a01b03881660209091015280519091506003036129cc5782516001600160a01b031630146129c7576129c7868460000151866131a4565b6129e9565b82516001600160a01b031630146129e95782516129e99085613498565b5050509392505050565b6001600160a01b0380851660009081526008602090815260408083208785168452825280832081516080810183528154861681526001820154938101939093526002810154918301919091526003015490921660608301529081908180612a5c8989898961357b565b3360009081526006602090815260408083206001600160a01b038f168452909152902060018101549054939950919450925011612aa857612aa18684602001516107b5565b9450612be3565b3360009081526006602090815260408083206001600160a01b038c168452909152902060018101549054612add908890614e77565b10612b30573360009081526006602090815260408083206001600160a01b038c168452909152902060018101549054612aa19190612b1c908990614e77565b612b269190614e00565b84602001516107b5565b6000612b3d82600a61507b565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815233600482015284906001600160a01b038d16906370a0823190602401602060405180830381865afa158015612b9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bc091906152bd565b612bca9190615087565b612bd49190614e8f565b9050612be1898883613971565b505b612bed8686611e43565b93508415612c0457612c04888460000151876131a4565b612c0f8833866131a4565b3360009081526006602090815260408083206001600160a01b038c16845290915281208054869290612c42908490614e77565b9250508190555050505094509492505050565b6000600a54600b5442612c689190614e77565b612c729190614e8f565b6001600160a01b0380861660008181526009602081815260408084208a871680865290835281852088865283528185208251608080820185528254825260018084015483880152600280850154848801526003948501546060808601919091529a8a526007808952878b20968b529588529886902086516101808101885281548d1681529181015497820197909752978601549099169387019390935283015495850195909552600482015495840195909552600581015460a0840152600681015460c08401529283015460e08301526008830154610100830152820154610120820152600a820154610140820152600b9091015461016082015281519293509091158015612d815750600c54155b15612de1576080810180516001600160a01b038089166000818152600960208181526040808420958d168085529582528084208b855282528084209690965595519382528552838120918152908452828120878252909352912055612e3b565b8151600003612e3b57600c546001600160a01b038088166000818152600960208181526040808420958c168085529582528084208a8552825280842087905594835290815283822092825291825282812087825290915220555b6000612e48878787613ada565b6001600160a01b038089166000908152600960209081526040808320938b16835292815282822088835290522054909150612e868888848489613ccd565b50506001600160a01b038881166000818152600960208181526040808420958d168085529582528084208b855282528084206001908101899055958452918152818320938352928352808220898352835290819020909201849055600c84905581518781529081018490527fb9362b96e28efbb7a7e63bb4a97faf9924ec0394635feff8588a6ae2a5f784fe910160405180910390a15050505050505050565b6001600160a01b038116612fa25760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4d61726b65743a3a696e76616c696420726f75746520616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016108fc565b600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316908117909155604080517fad5c4648000000000000000000000000000000000000000000000000000000008152905163ad5c4648916004808201926020929091908290030181865afa15801561302c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130509190615364565b600480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b804710156130db5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108fc565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613128576040519150601f19603f3d011682016040523d82523d6000602084013e61312d565b606091505b505090508061095c5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108fc565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052915160009283929087169161322e919061523e565b6000604051808303816000865af19150503d806000811461326b576040519150601f19603f3d011682016040523d82523d6000602084013e613270565b606091505b509150915081801561329a57508051158061329a57508080602001905181019061329a91906152d6565b6109da5760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201527f616e73666572206661696c65640000000000000000000000000000000000000060648201526084016108fc565b600080600061331b8585613f4c565b9150915061332881613f91565b509392505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b30000000000000000000000000000000000000000000000000000000017905291516000928392908716916133ba919061523e565b6000604051808303816000865af19150503d80600081146133f7576040519150601f19603f3d011682016040523d82523d6000602084013e6133fc565b606091505b509150915081801561342657508051158061342657508080602001905181019061342691906152d6565b6109da5760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201527f726f7665206661696c656400000000000000000000000000000000000000000060648201526084016108fc565b604080516000808252602082019092526001600160a01b0384169083906040516134c2919061523e565b60006040518083038185875af1925050503d80600081146134ff576040519150601f19603f3d011682016040523d82523d6000602084013e613504565b606091505b505090508061095c5760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527f20455448207472616e73666572206661696c656400000000000000000000000060648201526084016108fc565b6001600160a01b038085166000908152600760208181526040808420888616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b90920154610160830152908190819081806136378a8a610a36565b9150915061364587826107b5565b60408085015190517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156136a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136cc91906152bd565b10156137405760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a52657761726420546f6b656e20496e7375666660448201527f696369656e742042616c616e636500000000000000000000000000000000000060648201526084016108fc565b600061374c88836107b5565b11156137c55761376a8360400151336137658a856107b5565b6131a4565b7f6b053894d8fdbdcc936dd753e21291f0c48e68ef12306eb39a63a374147ba4bd33846040015161379b8a856107b5565b604080516001600160a01b0394851681529390921660208401529082015260600160405180910390a15b6001600160a01b03808b1660009081526008602090815260408083208d8516845282528083208151608081018352815486168152600182015493810193909352600281015491830182905260030154909316606082015291613828908a906107b5565b11156138ba57600061384f6138418a84604001516107b5565b61384a8c6107d6565b6140f6565b90507f340b543910b47fe717183f8972077c5d42343802898948d4dffc9cc82a4f6099338c6138828c86604001516107b5565b604080516001600160a01b0394851681529284166020840152820152908e1660608201526080810183905260a00160405180910390a1505b8a6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156138f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061391c9190614f74565b60ff16945061393561392f86600a61507b565b8a610bca565b9550600061394389856107b5565b90506139606139568a84604001516107b5565b61207f8b84611e43565b975050505050509450945094915050565b3360009081526006602090815260408083206001600160a01b038716845290915290206001810154905482906139a8908590614e77565b6139b29190614e77565b101561095c573360009081526006602090815260408083206001600160a01b038716845290915281205482906139e9908590614e77565b6139f39190614e77565b3360009081526006602090815260408083206001600160a01b0389168452909152902060010154613a249190614e00565b90508015613a65573360009081526006602090815260408083206001600160a01b038816845290915281208054839290613a5f908490614e77565b90915550505b3360008181526006602090815260408083206001600160a01b03891680855290835292819020600181015490548251958652928501939093528301849052606083019190915260808201527f4e7e2735528d8c3e943fd545526d432a6f178a48e5e201186f897a1a865336539060a001611e29565b6001600160a01b038084166000818152600860209081526040808320878616845282528083208151608081018352815487168152600182015493810193909352600281015491830191909152600301549093166060840181905290929183919003613bc457846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613b7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ba19190614f74565b60ff169050613bbd613bb482600a61507b565b610562866107d6565b9250613cc4565b81606001516001600160a01b0316856001600160a01b031603613c5657856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613c1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c439190614f74565b60ff169050613bbd61149082600a61507b565b60405162461bcd60e51b815260206004820152602760248201527f546f6b656e4d61726b65743a3a496c6c6567616c2076616c756174696f6e206360448201527f757272656e63790000000000000000000000000000000000000000000000000060648201526084016108fc565b50509392505050565b6001600160a01b038086166000908152600760208181526040808420898616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e0820152600883015461010082015260098301546101208201819052600a840154610140830152600b909301546101608201529091829190613dcb5760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a636f6e6669672e72616e6765203e203000000060448201526064016108fc565b60008511613e1b5760405162461bcd60e51b815260206004820152601560248201527f546f6b656e4d61726b65743a3a6f70656e203e2030000000000000000000000060448201526064016108fc565b85851115613e6157610120810151600d548690613e388983614e00565b613e429190615087565b613e4c9190614e8f565b613e569190614e8f565b925060009150613ea3565b84861115613ea357610120810151600d548690613e7e828a614e00565b613e889190615087565b613e929190614e8f565b613e9c9190614e8f565b9250600191505b600080613eb28a8a87876141e6565b6001600160a01b038c81166000908152600960209081526040808320938f1683529281528282208b8352905220600281018390556003018190559092509050613efd898b87876141e6565b6001600160a01b039a8b1660009081526009602090815260408083209e909d1682529c8d528b812098815297909b52989095206002810198909855505060039095019590955550929391925050565b6000808251604103613f825760208301516040840151606085015160001a613f76878285856144a8565b94509450505050613f8a565b506000905060025b9250929050565b6000816004811115613fa557613fa5615381565b03613fad5750565b6001816004811115613fc157613fc1615381565b0361400e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016108fc565b600281600481111561402257614022615381565b0361406f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016108fc565b600381600481111561408357614083615381565b03610e985760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016108fc565b6000808260008151811061410c5761410c614e17565b60200260200101519050600083600185516141279190614e00565b8151811061413757614137614e17565b60200260200101519050600060405180604001604052806141578561245b565b8152602001846001600160a01b03168152509050600060405180604001604052806141818561245b565b8152602001846001600160a01b0316815250905061419f8787610bca565b94506141af612710866000610b82565b945060006141be42600a614e77565b90506141d083838a898b600087612604565b6141db8433886131a4565b505050505092915050565b600080600084131561446c576001600160a01b038681166000908152600760209081526040808320938916835292905220600a810154600b909101548461423e57614230826150a6565b915061423b816150a6565b90505b60006142498361243f565b13156142f45761425986836150de565b9350600082126142c4576001600160a01b038089166000908152600760209081526040808320938b16835292905220600601548413156142bf576001600160a01b038089166000908152600760209081526040808320938b168352929052206006015493505b614320565b6001600160a01b038089166000908152600760209081526040808320938b16835292905220600101549350614320565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206001015493505b600061432b8261243f565b1315614439576001600160a01b038089166000908152600760209081526040808320938b168352929052206003015461436487836150de565b61436e919061519a565b9250600081126143d9576001600160a01b038089166000908152600760209081526040808320938b16835292905220600801548313156143d4576001600160a01b038089166000908152600760209081526040808320938b168352929052206008015492505b614465565b6001600160a01b038089166000908152600760208181526040808420948c16845293905291902001548312156143d4576001600160a01b038089166000908152600760208181526040808420948c16845293905291902001549250614465565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206003015492505b505061449f565b50506001600160a01b03848116600090815260076020908152604080832093871683529290522060018101546003909101545b94509492505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156144df575060009050600361449f565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614533573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661455c5760006001925092505061449f565b9660009650945050505050565b6000806040838503121561457c57600080fd5b50508035926020909101359150565b6001600160a01b0381168114610e9857600080fd5b80356145ab8161458b565b919050565b600080604083850312156145c357600080fd5b82356145ce8161458b565b915060208301356145de8161458b565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610180810167ffffffffffffffff8111828210171561463c5761463c6145e9565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561466b5761466b6145e9565b604052919050565b600067ffffffffffffffff82111561468d5761468d6145e9565b5060051b60200190565b600082601f8301126146a857600080fd5b813560206146bd6146b883614673565b614642565b82815260059290921b840181019181810190868411156146dc57600080fd5b8286015b848110156147005780356146f38161458b565b83529183019183016146e0565b509695505050505050565b60006020828403121561471d57600080fd5b813567ffffffffffffffff81111561473457600080fd5b61474084828501614697565b949350505050565b600081518084526020808501945080840160005b838110156147815781516001600160a01b03168752958201959082019060010161475c565b509495945050505050565b6020815260006107cf6020830184614748565b6000806000606084860312156147b457600080fd5b83356147bf8161458b565b925060208401356147cf8161458b565b929592945050506040919091013590565b600082601f8301126147f157600080fd5b813567ffffffffffffffff81111561480b5761480b6145e9565b61481e6020601f19601f84011601614642565b81815284602083860101111561483357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561486857600080fd5b85359450602086013561487a8161458b565b93506040860135925060608601359150608086013567ffffffffffffffff8111156148a457600080fd5b6148b0888289016147e0565b9150509295509295909350565b600080600080608085870312156148d357600080fd5b84359350602085013567ffffffffffffffff8111156148f157600080fd5b6148fd87828801614697565b949794965050505060408301359260600135919050565b60006020828403121561492657600080fd5b813567ffffffffffffffff81111561493d57600080fd5b614740848285016147e0565b8015158114610e9857600080fd5b60008060006060848603121561496c57600080fd5b8335925060208401359150604084013561498581614949565b809150509250925092565b600080604083850312156149a357600080fd5b82359150602083013567ffffffffffffffff8111156149c157600080fd5b6149cd85828601614697565b9150509250929050565b600080600080600060a086880312156149ef57600080fd5b85356149fa8161458b565b94506020860135614a0a8161458b565b9350604086013567ffffffffffffffff811115614a2657600080fd5b614a3288828901614697565b935050606086013591506080860135614a4a8161458b565b809150509295509295909350565b80516001600160a01b03168252602081015160208301526040810151614a8960408401826001600160a01b03169052565b50606081810151908301526080808201519083015260a0808201519083015260c0808201519083015260e0808201519083015261010080820151908301526101208082015190830152610140808201519083015261016090810151910152565b6102008101614af88288614a58565b85610180830152846101a0830152836101c0830152826101e08301529695505050505050565b600060208284031215614b3057600080fd5b5035919050565b600060208284031215614b4957600080fd5b81356107cf8161458b565b600060808284031215614b6657600080fd5b6040516080810181811067ffffffffffffffff82111715614b8957614b896145e9565b6040529050808235614b9a8161458b565b8082525060208301356020820152604083013560408201526060830135614bc08161458b565b6060919091015292915050565b600080600080848603610240811215614be557600080fd5b8535614bf08161458b565b94506020860135614c008161458b565b93506101807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08201811315614c3457600080fd5b614c3c614618565b9150614c4a604088016145a0565b825260608701356020830152614c62608088016145a0565b604083015260a0870135606083015260c0870135608083015260e087013560a08301526101008088013560c08401526101208089013560e0850152610140808a0135838601526101609250828a013582860152838a01358186015250506101a088013581840152505080925050614cdd866101c08701614b54565b905092959194509250565b600080600060608486031215614cfd57600080fd5b8335614d088161458b565b92506020840135614d188161458b565b9150604084013567ffffffffffffffff811115614d3457600080fd5b614d4086828701614697565b9150509250925092565b6101c08101614d598286614a58565b6101808201939093526101a00152919050565b60008060008060008060c08789031215614d8557600080fd5b863567ffffffffffffffff811115614d9c57600080fd5b614da889828a01614697565b9960208901359950604089013598606081013598506080810135975060a0013595509350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015614e1257614e12614dd1565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006000198203614e5957614e59614dd1565b5060010190565b600081614e6f57614e6f614dd1565b506000190190565b60008219821115614e8a57614e8a614dd1565b500190565b600082614ec5577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8281526040602082015260006147406040830184614748565b60006020808385031215614ef657600080fd5b825167ffffffffffffffff811115614f0d57600080fd5b8301601f81018513614f1e57600080fd5b8051614f2c6146b882614673565b81815260059190911b82018301908381019087831115614f4b57600080fd5b928401925b82841015614f6957835182529284019290840190614f50565b979650505050505050565b600060208284031215614f8657600080fd5b815160ff811681146107cf57600080fd5b600181815b80851115614fd2578160001904821115614fb857614fb8614dd1565b80851615614fc557918102915b93841c9390800290614f9c565b509250929050565b600082614fe957506001611b3a565b81614ff657506000611b3a565b816001811461500c576002811461501657615032565b6001915050611b3a565b60ff84111561502757615027614dd1565b50506001821b611b3a565b5060208310610133831016604e8410600b8410161715615055575081810a611b3a565b61505f8383614f97565b806000190482111561507357615073614dd1565b029392505050565b60006107cf8383614fda565b60008160001904831182151516156150a1576150a1614dd1565b500290565b60007f800000000000000000000000000000000000000000000000000000000000000082036150d7576150d7614dd1565b5060000390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60008413600084138583048511828216161561511f5761511f614dd1565b7f8000000000000000000000000000000000000000000000000000000000000000600087128682058812818416161561515a5761515a614dd1565b6000871292508782058712848416161561517657615176614dd1565b8785058712818416161561518c5761518c614dd1565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038413811516156151d4576151d4614dd1565b827f800000000000000000000000000000000000000000000000000000000000000003841281161561520857615208614dd1565b50500190565b60005b83811015615229578181015183820152602001615211565b83811115615238576000848401525b50505050565b6000825161525081846020870161520e565b9190910192915050565b60006001600160a01b03808916835287602084015280871660408401525084606083015283608083015260c060a083015282518060c08401526152a48160e085016020870161520e565b601f01601f19169190910160e001979650505050505050565b6000602082840312156152cf57600080fd5b5051919050565b6000602082840312156152e857600080fd5b81516107cf81614949565b85815284602082015260a06040820152600061531260a0830186614748565b6001600160a01b0394909416606083015250608001529392505050565b8481526080602082015260006153486080830186614748565b6001600160a01b03949094166040830152506060015292915050565b60006020828403121561537657600080fd5b81516107cf8161458b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea2646970667358221220bc8587dc2c52d6e9df52b148511e405b4907b1c04efd7da597fadd20fcb2596a64736f6c634300080e0033",
|
|
1245
|
-
"deployedBytecode": "0x6080604052600436106101c45760003560e01c80635ff530f2116100f65780638da5cb5b1161008f578063b180198611610061578063b180198614610720578063d96661ef14610736578063f2fde38b14610756578063fe8691b41461077657005b80638da5cb5b1461065c5780639065a9af1461067a578063a6a3694a146106ed578063aa5d448f1461070057005b8063715018a6116100c8578063715018a6146105d8578063744cfdd9146105ed5780637aaa9b021461060d57806381f3fdc31461062d57005b80635ff530f21461054757806362a76603146105675780636a59f833146105985780636f151a38146105b857005b806327af9e38116101685780633fc8cef31161013a5780633fc8cef3146104bc57806340216a83146104dc57806343d726d6146105115780635c8181211461052757005b806327af9e38146103425780632926e5de146103585780632bd2c18d1461045157806334e3f92d1461047157005b80630fcc40c4116101a15780630fcc40c41461029d5780631b153401146102ca5780631f8c24de146102ea578063238ac9331461030a57005b8063016eb8a8146101cd578063089afeae146102005780630d83b1e41461028757005b366101cb57005b005b3480156101d957600080fd5b506101ed6101e8366004614569565b6107b5565b6040519081526020015b60405180910390f35b34801561020c57600080fd5b5061025861021b3660046145b0565b600860209081526000928352604080842090915290825290208054600182015460028301546003909301546001600160a01b039283169391921684565b604080516001600160a01b039586168152602081019490945283019190915290911660608201526080016101f7565b34801561029357600080fd5b506101ed600d5481565b3480156102a957600080fd5b506102bd6102b836600461470b565b6107d6565b6040516101f7919061478c565b3480156102d657600080fd5b506101cb6102e536600461479f565b6108a6565b3480156102f657600080fd5b506101cb610305366004614850565b610961565b34801561031657600080fd5b5060025461032a906001600160a01b031681565b6040516001600160a01b0390911681526020016101f7565b34801561034e57600080fd5b506101ed600a5481565b34801561036457600080fd5b506103e76103733660046145b0565b6007602081815260009384526040808520909152918352912080546001820154600283015460038401546004850154600586015460068701549787015460088801546009890154600a8a0154600b909a01546001600160a01b03998a169b989a99909716989597949693959293919290918c565b604080516001600160a01b039d8e168152602081019c909c5299909b16988a01989098526060890196909652608088019490945260a087019290925260c086015260e0850152610100840152610120830152610140820152610160810191909152610180016101f7565b34801561045d57600080fd5b506101ed61046c3660046148bd565b6109e1565b34801561047d57600080fd5b506104ac61048c366004614914565b805160208183018101805160038252928201919093012091525460ff1681565b60405190151581526020016101f7565b3480156104c857600080fd5b5060045461032a906001600160a01b031681565b3480156104e857600080fd5b506104fc6104f73660046145b0565b610a36565b604080519283526020830191909152016101f7565b34801561051d57600080fd5b506101ed600c5481565b34801561053357600080fd5b506101ed610542366004614957565b610b82565b34801561055357600080fd5b506101ed610562366004614990565b610bca565b34801561057357600080fd5b506105876105823660046149d7565b610d0e565b6040516101f7959493929190614ae9565b3480156105a457600080fd5b506101cb6105b3366004614b1e565b610dd6565b3480156105c457600080fd5b506101cb6105d3366004614b37565b610e35565b3480156105e457600080fd5b506101cb610e9b565b3480156105f957600080fd5b506101ed610608366004614990565b610f01565b34801561061957600080fd5b506101cb610628366004614bcd565b61102b565b34801561063957600080fd5b5061064d610648366004614ce8565b6112e7565b6040516101f793929190614d4a565b34801561066857600080fd5b506000546001600160a01b031661032a565b34801561068657600080fd5b506106cd61069536600461479f565b600960209081526000938452604080852082529284528284209052825290208054600182015460028301546003909301549192909184565b6040805194855260208501939093529183015260608201526080016101f7565b6101cb6106fb366004614d6c565b6116b7565b34801561070c57600080fd5b506101cb61071b366004614b37565b6119ec565b34801561072c57600080fd5b506101ed600b5481565b34801561074257600080fd5b5060055461032a906001600160a01b031681565b34801561076257600080fd5b506101cb610771366004614b37565b611a4f565b34801561078257600080fd5b506104fc6107913660046145b0565b60066020908152600092835260408084209091529082529020805460019091015482565b600d546000906107cf906107c98585611b2e565b90611b40565b9392505050565b805160609060008167ffffffffffffffff8111156107f6576107f66145e9565b60405190808252806020026020018201604052801561081f578160200160208202803683370190505b5090506000825b6001811061089c578561083a600183614e00565b8151811061084a5761084a614e17565b602002602001015183838151811061086457610864614e17565b6001600160a01b03909216602092830291909101909101528161088681614e46565b925050808061089490614e60565b915050610826565b5090949350505050565b6000546001600160a01b031633146109055760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b610910838383611b4c565b61095c5760405162461bcd60e51b815260206004820152601660248201527f546f6b656e4d61726b65743a3a73656e64206661696c0000000000000000000060448201526064016108fc565b505050565b610969611b83565b6109768585858585611bdc565b61098285858584611dc8565b8142106109d15760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a4f726465722045787069726174696f6e00000060448201526064016108fc565b6109da60018055565b5050505050565b60008080848103610a0e576109f68787610bca565b9150610a0484836000610b82565b9150819250610a2c565b610a188787610f01565b9050610a2684826001610b82565b90508092505b5050949350505050565b6000806000600a54600b5442610a4c9190614e77565b610a569190614e8f565b6001600160a01b0380871660008181526007602081815260408084208b87168086529083528185208251610180810184528154891681526001820154818601526002820154909816888401526003810154606089015260048101546080890152600581015460a0890152600681015460c08901529384015460e08801526008840154610100880152600980850154610120890152600a850154610140890152600b909401546101608801529484529181528183209383529283528082208583529092529081205492935090919003610b3b578060200151935080606001519250610b79565b6001600160a01b0386811660009081526009602090815260408083209389168352928152828220858352905220600281015460039091015490945092505b50509250929050565b600060018215610ba057600d54610b999086611e37565b9050610bb0565b600d54610bad9086611e43565b90505b600d54610bc1906107c98684611b2e565b95945050505050565b6005546040517fd06ca61f00000000000000000000000000000000000000000000000000000000815260009182916001600160a01b039091169063d06ca61f90610c1a9087908790600401614eca565b600060405180830381865afa158015610c37573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c5f9190810190614ee3565b905080610c7760018351611e4390919063ffffffff16565b81518110610c8757610c87614e17565b6020026020010151915060008211610d075760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e4d61726b65743a3a6f7574416d6f756e742073686f756c6420626560448201527f2067726561746572207468616e2030000000000000000000000000000000000060648201526084016108fc565b5092915050565b610d8460405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600080600080600080610d998c8c8c8c611e4f565b92995090945092509050610daf8c8c8b8661203b565b9850610dbf8c8c8b8b8686612085565b989e919d509b509699509197509495505050505050565b6000546001600160a01b03163314610e305760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108fc565b600a55565b6000546001600160a01b03163314610e8f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108fc565b610e9881612322565b50565b6000546001600160a01b03163314610ef55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108fc565b610eff60006123d7565b565b6005546040517f1f00ca7400000000000000000000000000000000000000000000000000000000815260009182916001600160a01b0390911690631f00ca7490610f519087908790600401614eca565b600060405180830381865afa158015610f6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f969190810190614ee3565b905080600081518110610fab57610fab614e17565b6020026020010151915060008211610d075760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a696e416d6f756e742073686f756c642062652060448201527f67726561746572207468616e203000000000000000000000000000000000000060648201526084016108fc565b6000546001600160a01b031633146110855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108fc565b6000826060015112156110da5760405162461bcd60e51b815260206004820152601860248201527f546f6b656e4d61726b65743a3a726577617264203e3d2030000000000000000060448201526064016108fc565b60008260200151121561112f5760405162461bcd60e51b815260206004820152601960248201527f546f6b656e4d61726b65743a3a66656552617465203e3d20300000000000000060448201526064016108fc565b836001600160a01b031681606001516001600160a01b031614806111685750826001600160a01b031681606001516001600160a01b0316145b6111b45760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2070726963696e670000000060448201526064016108fc565b6001600160a01b03938416600081815260076020818152604080842097891680855297825280842087518154908b167fffffffffffffffffffffffff000000000000000000000000000000000000000091821617825583890151600180840191909155838a015160028085018054928f16928516929092179091556060808c015160038087019190915560808d0151600487015560a08d0151600587015560c08d0151600687015560e08d0151988601989098556101008c01516008808701919091556101208d015160098701556101408d0151600a870155610160909c0151600b909501949094559787529884528286209986529883529381902086518154908b16908a1617815591860151968201969096559484015192850192909255919091015191018054919093169116179055565b61135d60405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506001600160a01b03808416600081815260076020818152604080842088871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b015461016087015280517f313ce567000000000000000000000000000000000000000000000000000000008152905193948594909363313ce5679383820193909291908290030181865afa158015611459573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147d9190614f74565b60ff16915061149661149083600a61507b565b85610bca565b905060008082856080015111156114e8576101208501516080860151600d546114bf8683614e00565b6114c99190615087565b6114d39190614e8f565b6114dd9190614e8f565b905060009150611531565b8460800151831115611531576101208501516080860151600d5461150c8287614e00565b6115169190615087565b6115209190614e8f565b61152a9190614e8f565b9050600191505b60008113156116ac5760808501839052610140850151610160860151836115695761155b826150a6565b9150611566816150a6565b90505b600082126115ac57602087015161158084846150de565b61158a919061519a565b6020880181905260c088015112156115a75760c087015160208801525b611608565b86602001518760a00151846115c08561243f565b6115ca91906150de565b6115d4919061519a565b13156115e95760a08701516020880152611608565b60208701516115f884846150de565b611602919061519a565b60208801525b6000811261164d57606087015161161f84836150de565b611629919061519a565b6060880181905261010088015112156116485761010087015160608801525b6116a9565b86606001518760e00151846116618461243f565b61166b91906150de565b611675919061519a565b131561168a5760e087015160608801526116a9565b606087015161169984836150de565b6116a3919061519a565b60608801525b50505b505093509350939050565b6116bf611b83565b33321461170e5760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2063616c6c6572000000000060448201526064016108fc565b333b156117825760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a50726f686962697420636f6e7472616374206360448201527f616c6c730000000000000000000000000000000000000000000000000000000060648201526084016108fc565b826000036117a9576117948587610bca565b93506117a281856000610b82565b93506117c4565b6117b38487610f01565b94506117c181866001610b82565b94505b6000866000815181106117d9576117d9614e17565b60200260200101519050600087600189516117f49190614e00565b8151811061180457611804614e17565b6020908102919091018101513360009081526006835260408082206001600160a01b0387168352909352918220600101805491935089929091611848908490614e77565b92505081905550600060405180604001604052806118658561245b565b8152602001846001600160a01b031681525090506000604051806040016040528061188f8561245b565b81526001600160a01b03851660209091015282519091506003036118be576118b98433308c612494565b611933565b8834146119335760405162461bcd60e51b815260206004820152602660248201527f546f6b656e4d61726b65743a3a696e70757420657468206973206e6f7420616360448201527f637572617465000000000000000000000000000000000000000000000000000060648201526084016108fc565b61194282828b8b8e8c8c612604565b600061194f85858b6128ad565b905060008061196087878f8e6129f3565b9150915061196f87878f612c55565b604080513381526001600160a01b038981166020830152881681830152606081018e90526080810185905260a0810184905260c0810183905290517f38f821c5ea6d48d9d87fc7acd83a6b91f7e510b1e61861bdb0e4377af272d1b49181900360e00190a1505050505050506119e460018055565b505050505050565b6000546001600160a01b03163314611a465760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108fc565b610e9881612f26565b6000546001600160a01b03163314611aa95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108fc565b6001600160a01b038116611b255760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016108fc565b610e98816123d7565b60006107cf8284615087565b92915050565b60006107cf8284614e8f565b60006001600160a01b038416611b6e57611b66838361308b565b5060016107cf565b611b798484846131a4565b5060019392505050565b600260015403611bd55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108fc565b6002600155565b600381604051611bec919061523e565b9081526040519081900360200190205460ff1615611c4c5760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a6365727469666963617465206578706972656460448201526064016108fc565b60408051466020808301919091528183018890527fffffffffffffffffffffffffffffffffffffffff00000000000000000000000033606090811b82168185015288901b1660748301526088820186905260a88083018690528351808403909101815260c8830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000060e884015261010480840191909152835180840390910181526101249092019092528051910120600090611d10908361330c565b6002549091506001600160a01b03808316911614611d705760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a696e76616c696420636572746966696361746560448201526064016108fc565b6001600383604051611d82919061523e565b90815260405190819003602001902080549115157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00909216919091179055505050505050565b6001600160a01b038316611de557611de0338361308b565b611df0565b611df08333846131a4565b7f620ad9fc50d4bd40a79cb189cc547554eb4619554627f5ff4b98002f3269211d338585854286604051611e299695949392919061525a565b60405180910390a150505050565b60006107cf8284614e77565b60006107cf8284614e00565b611ec560405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506001600160a01b03808516600081815260076020818152604080842089871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b015461016087015280517f313ce5670000000000000000000000000000000000000000000000000000000081529051939485948594919363313ce5679380840193919291908290030181865afa158015611fc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe79190614f74565b60ff169150612000611ffa83600a61507b565b87610bca565b905060008061200f8a8a610a36565b6020880182905260608801819052909250905061202c87836107b5565b94505050945094509450949050565b6001600160a01b038085166000908152600860209081526040808320938716835292905290812060020154610bc1906120759085906107b5565b61207f8585611e43565b90611e43565b6001600160a01b0386811660009081526008602090815260408083208985168085529083528184208251608081018452815487168152600180830154828701526002830154828601526003909201548716606082015295891685526006845282852091855292528220908101549054919283928392116121145761210d8882602001516107b5565b9350612309565b6001600160a01b038781166000908152600660209081526040808320938d168352929052206001810154905461214b908a90614e77565b106121a0576001600160a01b038781166000908152600660209081526040808320938d168352929052206001810154905461210d919061218c908b90614e77565b6121969190614e00565b82602001516107b5565b60006121ad87600a61507b565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038a811660048301528891908e16906370a0823190602401602060405180830381865afa15801561220f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223391906152bd565b61223d9190615087565b6122479190614e8f565b6001600160a01b038981166000908152600660209081526040808320938f1683529290522060018101549054919250908290612284908c90614e77565b61228e9190614e77565b1015612307576001600160a01b038089166000908152600660209081526040808320938e168352929052205481906122c7908b90614e77565b6122d19190614e77565b6001600160a01b03808a166000908152600660209081526040808320938f16835292905220600101546123049190614e00565b93505b505b6123138885611e43565b91505096509650969350505050565b6001600160a01b03811661239d5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a696e76616c6964207369676e696e672061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016108fc565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008082121561245757612452826150a6565b611b3a565b5090565b600060036001600160a01b03831661247557506001611b3a565b6004546001600160a01b0390811690841603611b3a5750600292915050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790529151600092839290881691612526919061523e565b6000604051808303816000865af19150503d8060008114612563576040519150601f19603f3d011682016040523d82523d6000602084013e612568565b606091505b509150915081801561259257508051158061259257508080602001905181019061259291906152d6565b6119e45760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a20747260448201527f616e7366657246726f6d206661696c656400000000000000000000000000000060648201526084016108fc565b865160030361262957602087015160055461262991906001600160a01b031687613330565b8651600314801561263b575085516003145b8015612645575081155b156126e8576005546040517f38ed17390000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906338ed17399061269b90889088908890309088906004016152f3565b6000604051808303816000875af11580156126ba573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526126e29190810190614ee3565b506128a4565b865160031480156126fa575085516003145b80156127065750816001145b1561275c576005546040517f8803dbee0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690638803dbee9061269b90879089908890309088906004016152f3565b865160031480156127795750855160021480612779575085516001145b80156127855750816001145b156127db576005546040517f4a25d94a0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690634a25d94a9061269b90879089908890309088906004016152f3565b8651600214806127ec575086516001145b80156127f9575085516003145b80156128055750816001145b156128a4576005546040517ffb3bdb410000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063fb3bdb4190879061285b90889088903090889060040161532f565b60006040518083038185885af1158015612879573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f191682016040526128a29190810190614ee3565b505b50505050505050565b6001600160a01b038084166000908152600760208181526040808420878616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b9092015461016083015290816129648686610a36565b50905061297184826107b5565b9250600060405180604001604052806129898861245b565b81526001600160a01b03881660209091015280519091506003036129cc5782516001600160a01b031630146129c7576129c7868460000151866131a4565b6129e9565b82516001600160a01b031630146129e95782516129e99085613498565b5050509392505050565b6001600160a01b0380851660009081526008602090815260408083208785168452825280832081516080810183528154861681526001820154938101939093526002810154918301919091526003015490921660608301529081908180612a5c8989898961357b565b3360009081526006602090815260408083206001600160a01b038f168452909152902060018101549054939950919450925011612aa857612aa18684602001516107b5565b9450612be3565b3360009081526006602090815260408083206001600160a01b038c168452909152902060018101549054612add908890614e77565b10612b30573360009081526006602090815260408083206001600160a01b038c168452909152902060018101549054612aa19190612b1c908990614e77565b612b269190614e00565b84602001516107b5565b6000612b3d82600a61507b565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815233600482015284906001600160a01b038d16906370a0823190602401602060405180830381865afa158015612b9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bc091906152bd565b612bca9190615087565b612bd49190614e8f565b9050612be1898883613971565b505b612bed8686611e43565b93508415612c0457612c04888460000151876131a4565b612c0f8833866131a4565b3360009081526006602090815260408083206001600160a01b038c16845290915281208054869290612c42908490614e77565b9250508190555050505094509492505050565b6000600a54600b5442612c689190614e77565b612c729190614e8f565b6001600160a01b0380861660008181526009602081815260408084208a871680865290835281852088865283528185208251608080820185528254825260018084015483880152600280850154848801526003948501546060808601919091529a8a526007808952878b20968b529588529886902086516101808101885281548d1681529181015497820197909752978601549099169387019390935283015495850195909552600482015495840195909552600581015460a0840152600681015460c08401529283015460e08301526008830154610100830152820154610120820152600a820154610140820152600b9091015461016082015281519293509091158015612d815750600c54155b15612de1576080810180516001600160a01b038089166000818152600960208181526040808420958d168085529582528084208b855282528084209690965595519382528552838120918152908452828120878252909352912055612e3b565b8151600003612e3b57600c546001600160a01b038088166000818152600960208181526040808420958c168085529582528084208a8552825280842087905594835290815283822092825291825282812087825290915220555b6000612e48878787613ada565b6001600160a01b038089166000908152600960209081526040808320938b16835292815282822088835290522054909150612e868888848489613ccd565b50506001600160a01b038881166000818152600960208181526040808420958d168085529582528084208b855282528084206001908101899055958452918152818320938352928352808220898352835290819020909201849055600c84905581518781529081018490527fb9362b96e28efbb7a7e63bb4a97faf9924ec0394635feff8588a6ae2a5f784fe910160405180910390a15050505050505050565b6001600160a01b038116612fa25760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4d61726b65743a3a696e76616c696420726f75746520616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016108fc565b600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316908117909155604080517fad5c4648000000000000000000000000000000000000000000000000000000008152905163ad5c4648916004808201926020929091908290030181865afa15801561302c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130509190615364565b600480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b804710156130db5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108fc565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613128576040519150601f19603f3d011682016040523d82523d6000602084013e61312d565b606091505b505090508061095c5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108fc565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052915160009283929087169161322e919061523e565b6000604051808303816000865af19150503d806000811461326b576040519150601f19603f3d011682016040523d82523d6000602084013e613270565b606091505b509150915081801561329a57508051158061329a57508080602001905181019061329a91906152d6565b6109da5760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201527f616e73666572206661696c65640000000000000000000000000000000000000060648201526084016108fc565b600080600061331b8585613f4c565b9150915061332881613f91565b509392505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b30000000000000000000000000000000000000000000000000000000017905291516000928392908716916133ba919061523e565b6000604051808303816000865af19150503d80600081146133f7576040519150601f19603f3d011682016040523d82523d6000602084013e6133fc565b606091505b509150915081801561342657508051158061342657508080602001905181019061342691906152d6565b6109da5760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201527f726f7665206661696c656400000000000000000000000000000000000000000060648201526084016108fc565b604080516000808252602082019092526001600160a01b0384169083906040516134c2919061523e565b60006040518083038185875af1925050503d80600081146134ff576040519150601f19603f3d011682016040523d82523d6000602084013e613504565b606091505b505090508061095c5760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527f20455448207472616e73666572206661696c656400000000000000000000000060648201526084016108fc565b6001600160a01b038085166000908152600760208181526040808420888616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b90920154610160830152908190819081806136378a8a610a36565b9150915061364587826107b5565b60408085015190517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156136a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136cc91906152bd565b10156137405760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a52657761726420546f6b656e20496e7375666660448201527f696369656e742042616c616e636500000000000000000000000000000000000060648201526084016108fc565b600061374c88836107b5565b11156137c55761376a8360400151336137658a856107b5565b6131a4565b7f6b053894d8fdbdcc936dd753e21291f0c48e68ef12306eb39a63a374147ba4bd33846040015161379b8a856107b5565b604080516001600160a01b0394851681529390921660208401529082015260600160405180910390a15b6001600160a01b03808b1660009081526008602090815260408083208d8516845282528083208151608081018352815486168152600182015493810193909352600281015491830182905260030154909316606082015291613828908a906107b5565b11156138ba57600061384f6138418a84604001516107b5565b61384a8c6107d6565b6140f6565b90507f340b543910b47fe717183f8972077c5d42343802898948d4dffc9cc82a4f6099338c6138828c86604001516107b5565b604080516001600160a01b0394851681529284166020840152820152908e1660608201526080810183905260a00160405180910390a1505b8a6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156138f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061391c9190614f74565b60ff16945061393561392f86600a61507b565b8a610bca565b9550600061394389856107b5565b90506139606139568a84604001516107b5565b61207f8b84611e43565b975050505050509450945094915050565b3360009081526006602090815260408083206001600160a01b038716845290915290206001810154905482906139a8908590614e77565b6139b29190614e77565b101561095c573360009081526006602090815260408083206001600160a01b038716845290915281205482906139e9908590614e77565b6139f39190614e77565b3360009081526006602090815260408083206001600160a01b0389168452909152902060010154613a249190614e00565b90508015613a65573360009081526006602090815260408083206001600160a01b038816845290915281208054839290613a5f908490614e77565b90915550505b3360008181526006602090815260408083206001600160a01b03891680855290835292819020600181015490548251958652928501939093528301849052606083019190915260808201527f4e7e2735528d8c3e943fd545526d432a6f178a48e5e201186f897a1a865336539060a001611e29565b6001600160a01b038084166000818152600860209081526040808320878616845282528083208151608081018352815487168152600182015493810193909352600281015491830191909152600301549093166060840181905290929183919003613bc457846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613b7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ba19190614f74565b60ff169050613bbd613bb482600a61507b565b610562866107d6565b9250613cc4565b81606001516001600160a01b0316856001600160a01b031603613c5657856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613c1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c439190614f74565b60ff169050613bbd61149082600a61507b565b60405162461bcd60e51b815260206004820152602760248201527f546f6b656e4d61726b65743a3a496c6c6567616c2076616c756174696f6e206360448201527f757272656e63790000000000000000000000000000000000000000000000000060648201526084016108fc565b50509392505050565b6001600160a01b038086166000908152600760208181526040808420898616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e0820152600883015461010082015260098301546101208201819052600a840154610140830152600b909301546101608201529091829190613dcb5760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a636f6e6669672e72616e6765203e203000000060448201526064016108fc565b60008511613e1b5760405162461bcd60e51b815260206004820152601560248201527f546f6b656e4d61726b65743a3a6f70656e203e2030000000000000000000000060448201526064016108fc565b85851115613e6157610120810151600d548690613e388983614e00565b613e429190615087565b613e4c9190614e8f565b613e569190614e8f565b925060009150613ea3565b84861115613ea357610120810151600d548690613e7e828a614e00565b613e889190615087565b613e929190614e8f565b613e9c9190614e8f565b9250600191505b600080613eb28a8a87876141e6565b6001600160a01b038c81166000908152600960209081526040808320938f1683529281528282208b8352905220600281018390556003018190559092509050613efd898b87876141e6565b6001600160a01b039a8b1660009081526009602090815260408083209e909d1682529c8d528b812098815297909b52989095206002810198909855505060039095019590955550929391925050565b6000808251604103613f825760208301516040840151606085015160001a613f76878285856144a8565b94509450505050613f8a565b506000905060025b9250929050565b6000816004811115613fa557613fa5615381565b03613fad5750565b6001816004811115613fc157613fc1615381565b0361400e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016108fc565b600281600481111561402257614022615381565b0361406f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016108fc565b600381600481111561408357614083615381565b03610e985760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016108fc565b6000808260008151811061410c5761410c614e17565b60200260200101519050600083600185516141279190614e00565b8151811061413757614137614e17565b60200260200101519050600060405180604001604052806141578561245b565b8152602001846001600160a01b03168152509050600060405180604001604052806141818561245b565b8152602001846001600160a01b0316815250905061419f8787610bca565b94506141af612710866000610b82565b945060006141be42600a614e77565b90506141d083838a898b600087612604565b6141db8433886131a4565b505050505092915050565b600080600084131561446c576001600160a01b038681166000908152600760209081526040808320938916835292905220600a810154600b909101548461423e57614230826150a6565b915061423b816150a6565b90505b60006142498361243f565b13156142f45761425986836150de565b9350600082126142c4576001600160a01b038089166000908152600760209081526040808320938b16835292905220600601548413156142bf576001600160a01b038089166000908152600760209081526040808320938b168352929052206006015493505b614320565b6001600160a01b038089166000908152600760209081526040808320938b16835292905220600101549350614320565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206001015493505b600061432b8261243f565b1315614439576001600160a01b038089166000908152600760209081526040808320938b168352929052206003015461436487836150de565b61436e919061519a565b9250600081126143d9576001600160a01b038089166000908152600760209081526040808320938b16835292905220600801548313156143d4576001600160a01b038089166000908152600760209081526040808320938b168352929052206008015492505b614465565b6001600160a01b038089166000908152600760208181526040808420948c16845293905291902001548312156143d4576001600160a01b038089166000908152600760208181526040808420948c16845293905291902001549250614465565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206003015492505b505061449f565b50506001600160a01b03848116600090815260076020908152604080832093871683529290522060018101546003909101545b94509492505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156144df575060009050600361449f565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614533573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661455c5760006001925092505061449f565b9660009650945050505050565b6000806040838503121561457c57600080fd5b50508035926020909101359150565b6001600160a01b0381168114610e9857600080fd5b80356145ab8161458b565b919050565b600080604083850312156145c357600080fd5b82356145ce8161458b565b915060208301356145de8161458b565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610180810167ffffffffffffffff8111828210171561463c5761463c6145e9565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561466b5761466b6145e9565b604052919050565b600067ffffffffffffffff82111561468d5761468d6145e9565b5060051b60200190565b600082601f8301126146a857600080fd5b813560206146bd6146b883614673565b614642565b82815260059290921b840181019181810190868411156146dc57600080fd5b8286015b848110156147005780356146f38161458b565b83529183019183016146e0565b509695505050505050565b60006020828403121561471d57600080fd5b813567ffffffffffffffff81111561473457600080fd5b61474084828501614697565b949350505050565b600081518084526020808501945080840160005b838110156147815781516001600160a01b03168752958201959082019060010161475c565b509495945050505050565b6020815260006107cf6020830184614748565b6000806000606084860312156147b457600080fd5b83356147bf8161458b565b925060208401356147cf8161458b565b929592945050506040919091013590565b600082601f8301126147f157600080fd5b813567ffffffffffffffff81111561480b5761480b6145e9565b61481e6020601f19601f84011601614642565b81815284602083860101111561483357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561486857600080fd5b85359450602086013561487a8161458b565b93506040860135925060608601359150608086013567ffffffffffffffff8111156148a457600080fd5b6148b0888289016147e0565b9150509295509295909350565b600080600080608085870312156148d357600080fd5b84359350602085013567ffffffffffffffff8111156148f157600080fd5b6148fd87828801614697565b949794965050505060408301359260600135919050565b60006020828403121561492657600080fd5b813567ffffffffffffffff81111561493d57600080fd5b614740848285016147e0565b8015158114610e9857600080fd5b60008060006060848603121561496c57600080fd5b8335925060208401359150604084013561498581614949565b809150509250925092565b600080604083850312156149a357600080fd5b82359150602083013567ffffffffffffffff8111156149c157600080fd5b6149cd85828601614697565b9150509250929050565b600080600080600060a086880312156149ef57600080fd5b85356149fa8161458b565b94506020860135614a0a8161458b565b9350604086013567ffffffffffffffff811115614a2657600080fd5b614a3288828901614697565b935050606086013591506080860135614a4a8161458b565b809150509295509295909350565b80516001600160a01b03168252602081015160208301526040810151614a8960408401826001600160a01b03169052565b50606081810151908301526080808201519083015260a0808201519083015260c0808201519083015260e0808201519083015261010080820151908301526101208082015190830152610140808201519083015261016090810151910152565b6102008101614af88288614a58565b85610180830152846101a0830152836101c0830152826101e08301529695505050505050565b600060208284031215614b3057600080fd5b5035919050565b600060208284031215614b4957600080fd5b81356107cf8161458b565b600060808284031215614b6657600080fd5b6040516080810181811067ffffffffffffffff82111715614b8957614b896145e9565b6040529050808235614b9a8161458b565b8082525060208301356020820152604083013560408201526060830135614bc08161458b565b6060919091015292915050565b600080600080848603610240811215614be557600080fd5b8535614bf08161458b565b94506020860135614c008161458b565b93506101807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08201811315614c3457600080fd5b614c3c614618565b9150614c4a604088016145a0565b825260608701356020830152614c62608088016145a0565b604083015260a0870135606083015260c0870135608083015260e087013560a08301526101008088013560c08401526101208089013560e0850152610140808a0135838601526101609250828a013582860152838a01358186015250506101a088013581840152505080925050614cdd866101c08701614b54565b905092959194509250565b600080600060608486031215614cfd57600080fd5b8335614d088161458b565b92506020840135614d188161458b565b9150604084013567ffffffffffffffff811115614d3457600080fd5b614d4086828701614697565b9150509250925092565b6101c08101614d598286614a58565b6101808201939093526101a00152919050565b60008060008060008060c08789031215614d8557600080fd5b863567ffffffffffffffff811115614d9c57600080fd5b614da889828a01614697565b9960208901359950604089013598606081013598506080810135975060a0013595509350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015614e1257614e12614dd1565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006000198203614e5957614e59614dd1565b5060010190565b600081614e6f57614e6f614dd1565b506000190190565b60008219821115614e8a57614e8a614dd1565b500190565b600082614ec5577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8281526040602082015260006147406040830184614748565b60006020808385031215614ef657600080fd5b825167ffffffffffffffff811115614f0d57600080fd5b8301601f81018513614f1e57600080fd5b8051614f2c6146b882614673565b81815260059190911b82018301908381019087831115614f4b57600080fd5b928401925b82841015614f6957835182529284019290840190614f50565b979650505050505050565b600060208284031215614f8657600080fd5b815160ff811681146107cf57600080fd5b600181815b80851115614fd2578160001904821115614fb857614fb8614dd1565b80851615614fc557918102915b93841c9390800290614f9c565b509250929050565b600082614fe957506001611b3a565b81614ff657506000611b3a565b816001811461500c576002811461501657615032565b6001915050611b3a565b60ff84111561502757615027614dd1565b50506001821b611b3a565b5060208310610133831016604e8410600b8410161715615055575081810a611b3a565b61505f8383614f97565b806000190482111561507357615073614dd1565b029392505050565b60006107cf8383614fda565b60008160001904831182151516156150a1576150a1614dd1565b500290565b60007f800000000000000000000000000000000000000000000000000000000000000082036150d7576150d7614dd1565b5060000390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60008413600084138583048511828216161561511f5761511f614dd1565b7f8000000000000000000000000000000000000000000000000000000000000000600087128682058812818416161561515a5761515a614dd1565b6000871292508782058712848416161561517657615176614dd1565b8785058712818416161561518c5761518c614dd1565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038413811516156151d4576151d4614dd1565b827f800000000000000000000000000000000000000000000000000000000000000003841281161561520857615208614dd1565b50500190565b60005b83811015615229578181015183820152602001615211565b83811115615238576000848401525b50505050565b6000825161525081846020870161520e565b9190910192915050565b60006001600160a01b03808916835287602084015280871660408401525084606083015283608083015260c060a083015282518060c08401526152a48160e085016020870161520e565b601f01601f19169190910160e001979650505050505050565b6000602082840312156152cf57600080fd5b5051919050565b6000602082840312156152e857600080fd5b81516107cf81614949565b85815284602082015260a06040820152600061531260a0830186614748565b6001600160a01b0394909416606083015250608001529392505050565b8481526080602082015260006153486080830186614748565b6001600160a01b03949094166040830152506060015292915050565b60006020828403121561537657600080fd5b81516107cf8161458b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea2646970667358221220bc8587dc2c52d6e9df52b148511e405b4907b1c04efd7da597fadd20fcb2596a64736f6c634300080e0033",
|
|
1387
|
+
"bytecode": "0x608060405262015180600a556000600b556305f5e100600d553480156200002557600080fd5b5060405162005ce838038062005ce88339810160408190526200004891620001fb565b620000533362000085565b60018055600280546001600160a01b0319166001600160a01b0384161790556200007d81620000d5565b505062000258565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381166200013b5760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4d61726b65743a3a696e76616c696420726f757465206164647265604482015261737360f01b606482015260840160405180910390fd5b600580546001600160a01b0319166001600160a01b038316908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000195573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001bb919062000233565b600480546001600160a01b0319166001600160a01b039290921691909117905550565b80516001600160a01b0381168114620001f657600080fd5b919050565b600080604083850312156200020f57600080fd5b6200021a83620001de565b91506200022a60208401620001de565b90509250929050565b6000602082840312156200024657600080fd5b6200025182620001de565b9392505050565b615a8080620002686000396000f3fe6080604052600436106101e75760003560e01c806362a766031161010e5780639bad44e8116100a7578063d738eba111610079578063eed8386c11610061578063eed8386c14610799578063f2fde38b146107d6578063fe8691b4146107f657005b8063d738eba114610759578063d96661ef1461077957005b80639bad44e8146106f0578063a6a3694a14610710578063aa5d448f14610723578063b18019861461074357005b80637aaa9b02116100e05780637aaa9b021461061057806381f3fdc3146106305780638da5cb5b1461065f5780639065a9af1461067d57005b806362a766031461058a5780636f151a38146105bb578063715018a6146105db578063744cfdd9146105f057005b80632926e5de1161018057806340216a831161015257806340216a83146104ff57806343d726d6146105345780635c8181211461054a5780635ff530f21461056a57005b80632926e5de1461037b5780632bd2c18d1461047457806334e3f92d146104945780633fc8cef3146104df57005b80631b153401116101b95780631b153401146102ed5780631f8c24de1461030d578063238ac9331461032d57806327af9e381461036557005b8063016eb8a8146101f0578063089afeae146102235780630d83b1e4146102aa5780630fcc40c4146102c057005b366101ee57005b005b3480156101fc57600080fd5b5061021061020b366004614b14565b610835565b6040519081526020015b60405180910390f35b34801561022f57600080fd5b5061027b61023e366004614b5b565b600860209081526000928352604080842090915290825290208054600182015460028301546003909301546001600160a01b039283169391921684565b604080516001600160a01b0395861681526020810194909452830191909152909116606082015260800161021a565b3480156102b657600080fd5b50610210600d5481565b3480156102cc57600080fd5b506102e06102db366004614cb6565b610856565b60405161021a9190614d37565b3480156102f957600080fd5b506101ee610308366004614d4a565b610926565b34801561031957600080fd5b506101ee610328366004614dfb565b6109e1565b34801561033957600080fd5b5060025461034d906001600160a01b031681565b6040516001600160a01b03909116815260200161021a565b34801561037157600080fd5b50610210600a5481565b34801561038757600080fd5b5061040a610396366004614b5b565b6007602081815260009384526040808520909152918352912080546001820154600283015460038401546004850154600586015460068701549787015460088801546009890154600a8a0154600b909a01546001600160a01b03998a169b989a99909716989597949693959293919290918c565b604080516001600160a01b039d8e168152602081019c909c5299909b16988a01989098526060890196909652608088019490945260a087019290925260c086015260e08501526101008401526101208301526101408201526101608101919091526101800161021a565b34801561048057600080fd5b5061021061048f366004614e68565b610a61565b3480156104a057600080fd5b506104cf6104af366004614ebf565b805160208183018101805160038252928201919093012091525460ff1681565b604051901515815260200161021a565b3480156104eb57600080fd5b5060045461034d906001600160a01b031681565b34801561050b57600080fd5b5061051f61051a366004614b5b565b610ab6565b6040805192835260208301919091520161021a565b34801561054057600080fd5b50610210600c5481565b34801561055657600080fd5b50610210610565366004614f02565b610c02565b34801561057657600080fd5b50610210610585366004614f3b565b610c4a565b34801561059657600080fd5b506105aa6105a5366004614f82565b610d8e565b60405161021a959493929190615094565b3480156105c757600080fd5b506101ee6105d63660046150c9565b610e56565b3480156105e757600080fd5b506101ee610ebc565b3480156105fc57600080fd5b5061021061060b366004614f3b565b610f22565b34801561061c57600080fd5b506101ee61062b36600461515f565b61104c565b34801561063c57600080fd5b5061065061064b36600461527a565b611308565b60405161021a939291906152dc565b34801561066b57600080fd5b506000546001600160a01b031661034d565b34801561068957600080fd5b506106d0610698366004614d4a565b600960209081526000938452604080852082529284528284209052825290208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161021a565b3480156106fc57600080fd5b506101ee61070b366004615359565b6116d8565b6101ee61071e366004615406565b61195a565b34801561072f57600080fd5b506101ee61073e3660046150c9565b611c8f565b34801561074f57600080fd5b50610210600b5481565b34801561076557600080fd5b506101ee610774366004614b14565b611cf2565b34801561078557600080fd5b5060055461034d906001600160a01b031681565b3480156107a557600080fd5b506107b96107b4366004614b5b565b611d57565b604080519283526001600160a01b0390911660208301520161021a565b3480156107e257600080fd5b506101ee6107f13660046150c9565b611edd565b34801561080257600080fd5b5061051f610811366004614b5b565b60066020908152600092835260408084209091529082529020805460019091015482565b600d5460009061084f906108498585611fbc565b90611fce565b9392505050565b805160609060008167ffffffffffffffff81111561087657610876614b94565b60405190808252806020026020018201604052801561089f578160200160208202803683370190505b5090506000825b6001811061091c57856108ba60018361549a565b815181106108ca576108ca6154b1565b60200260200101518383815181106108e4576108e46154b1565b6001600160a01b039092166020928302919091019091015281610906816154e0565b9250508080610914906154fa565b9150506108a6565b5090949350505050565b6000546001600160a01b031633146109855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b610990838383611fda565b6109dc5760405162461bcd60e51b815260206004820152601660248201527f546f6b656e4d61726b65743a3a73656e64206661696c00000000000000000000604482015260640161097c565b505050565b6109e9612011565b6109f6858585858561206a565b610a0285858584612256565b814210610a515760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a4f726465722045787069726174696f6e000000604482015260640161097c565b610a5a60018055565b5050505050565b60008080848103610a8e57610a768787610c4a565b9150610a8484836000610c02565b9150819250610aac565b610a988787610f22565b9050610aa684826001610c02565b90508092505b5050949350505050565b6000806000600a54600b5442610acc9190615511565b610ad69190615529565b6001600160a01b0380871660008181526007602081815260408084208b87168086529083528185208251610180810184528154891681526001820154818601526002820154909816888401526003810154606089015260048101546080890152600581015460a0890152600681015460c08901529384015460e08801526008840154610100880152600980850154610120890152600a850154610140890152600b909401546101608801529484529181528183209383529283528082208583529092529081205492935090919003610bbb578060200151935080606001519250610bf9565b6001600160a01b0386811660009081526009602090815260408083209389168352928152828220858352905220600281015460039091015490945092505b50509250929050565b600060018215610c2057600d54610c1990866122c5565b9050610c30565b600d54610c2d90866122d1565b90505b600d54610c41906108498684611fbc565b95945050505050565b6005546040517fd06ca61f00000000000000000000000000000000000000000000000000000000815260009182916001600160a01b039091169063d06ca61f90610c9a9087908790600401615564565b600060405180830381865afa158015610cb7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610cdf919081019061557d565b905080610cf7600183516122d190919063ffffffff16565b81518110610d0757610d076154b1565b6020026020010151915060008211610d875760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e4d61726b65743a3a6f7574416d6f756e742073686f756c6420626560448201527f2067726561746572207468616e20300000000000000000000000000000000000606482015260840161097c565b5092915050565b610e0460405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600080600080600080610e198c8c8c8c6122dd565b92995090945092509050610e2f8c8c8b866124c9565b9850610e3f8c8c8b8b8686612513565b989e919d509b509699509197509495505050505050565b6000546001600160a01b03163314610eb05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161097c565b610eb9816127b0565b50565b6000546001600160a01b03163314610f165760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161097c565b610f206000612865565b565b6005546040517f1f00ca7400000000000000000000000000000000000000000000000000000000815260009182916001600160a01b0390911690631f00ca7490610f729087908790600401615564565b600060405180830381865afa158015610f8f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fb7919081019061557d565b905080600081518110610fcc57610fcc6154b1565b6020026020010151915060008211610d875760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a696e416d6f756e742073686f756c642062652060448201527f67726561746572207468616e2030000000000000000000000000000000000000606482015260840161097c565b6000546001600160a01b031633146110a65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161097c565b6000826060015112156110fb5760405162461bcd60e51b815260206004820152601860248201527f546f6b656e4d61726b65743a3a726577617264203e3d20300000000000000000604482015260640161097c565b6000826020015112156111505760405162461bcd60e51b815260206004820152601960248201527f546f6b656e4d61726b65743a3a66656552617465203e3d203000000000000000604482015260640161097c565b836001600160a01b031681606001516001600160a01b031614806111895750826001600160a01b031681606001516001600160a01b0316145b6111d55760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2070726963696e6700000000604482015260640161097c565b6001600160a01b03938416600081815260076020818152604080842097891680855297825280842087518154908b167fffffffffffffffffffffffff000000000000000000000000000000000000000091821617825583890151600180840191909155838a015160028085018054928f16928516929092179091556060808c015160038087019190915560808d0151600487015560a08d0151600587015560c08d0151600687015560e08d0151988601989098556101008c01516008808701919091556101208d015160098701556101408d0151600a870155610160909c0151600b909501949094559787529884528286209986529883529381902086518154908b16908a1617815591860151968201969096559484015192850192909255919091015191018054919093169116179055565b61137e60405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506001600160a01b03808416600081815260076020818152604080842088871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b015461016087015280517f313ce567000000000000000000000000000000000000000000000000000000008152905193948594909363313ce5679383820193909291908290030181865afa15801561147a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149e919061560e565b60ff1691506114b76114b183600a615715565b85610c4a565b90506000808285608001511115611509576101208501516080860151600d546114e0868361549a565b6114ea9190615721565b6114f49190615529565b6114fe9190615529565b905060009150611552565b8460800151831115611552576101208501516080860151600d5461152d828761549a565b6115379190615721565b6115419190615529565b61154b9190615529565b9050600191505b60008113156116cd57608085018390526101408501516101608601518361158a5761157c82615740565b915061158781615740565b90505b600082126115cd5760208701516115a18484615778565b6115ab9190615834565b6020880181905260c088015112156115c85760c087015160208801525b611629565b86602001518760a00151846115e1856128cd565b6115eb9190615778565b6115f59190615834565b131561160a5760a08701516020880152611629565b60208701516116198484615778565b6116239190615834565b60208801525b6000811261166e5760608701516116408483615778565b61164a9190615834565b6060880181905261010088015112156116695761010087015160608801525b6116ca565b86606001518760e0015184611682846128cd565b61168c9190615778565b6116969190615834565b13156116ab5760e087015160608801526116ca565b60608701516116ba8483615778565b6116c49190615834565b60608801525b50505b505093509350939050565b6000546001600160a01b031633146117325760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161097c565b82518451146117835760405162461bcd60e51b815260206004820152601760248201527f546f6b656e4d61726b65743a3a206c656e67746820213d000000000000000000604482015260640161097c565b81518351146117d45760405162461bcd60e51b815260206004820152601760248201527f546f6b656e4d61726b65743a3a206c656e67746820213d000000000000000000604482015260640161097c565b80518251146118255760405162461bcd60e51b815260206004820152601760248201527f546f6b656e4d61726b65743a3a206c656e67746820213d000000000000000000604482015260640161097c565b60005b8451811015610a5a57611887838281518110611846576118466154b1565b6020026020010151858381518110611860576118606154b1565b602002602001015184848151811061187a5761187a6154b1565b60200260200101516128e9565b7fd854fbf5db341a7d003a14ee8ed089e806c8731c6aca5fb4b89095d0a230ccd08582815181106118ba576118ba6154b1565b60200260200101518583815181106118d4576118d46154b1565b60200260200101518584815181106118ee576118ee6154b1565b6020026020010151858581518110611908576119086154b1565b602002602001015160405161194094939291909384526001600160a01b03928316602085015291166040830152606082015260800190565b60405180910390a180611952816154e0565b915050611828565b611962612011565b3332146119b15760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2063616c6c65720000000000604482015260640161097c565b333b15611a255760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a50726f686962697420636f6e7472616374206360448201527f616c6c7300000000000000000000000000000000000000000000000000000000606482015260840161097c565b82600003611a4c57611a378587610c4a565b9350611a4581856000610c02565b9350611a67565b611a568487610f22565b9450611a6481866001610c02565b94505b600086600081518110611a7c57611a7c6154b1565b6020026020010151905060008760018951611a97919061549a565b81518110611aa757611aa76154b1565b6020908102919091018101513360009081526006835260408082206001600160a01b0387168352909352918220600101805491935089929091611aeb908490615511565b9250508190555060006040518060400160405280611b0885612a51565b8152602001846001600160a01b0316815250905060006040518060400160405280611b3285612a51565b81526001600160a01b0385166020909101528251909150600303611b6157611b5c8433308c612a8a565b611bd6565b883414611bd65760405162461bcd60e51b815260206004820152602660248201527f546f6b656e4d61726b65743a3a696e70757420657468206973206e6f7420616360448201527f6375726174650000000000000000000000000000000000000000000000000000606482015260840161097c565b611be582828b8b8e8c8c612bfa565b6000611bf285858b612ea3565b9050600080611c0387878f8e613059565b91509150611c1287878f613368565b604080513381526001600160a01b038981166020830152881681830152606081018e90526080810185905260a0810184905260c0810183905290517f38f821c5ea6d48d9d87fc7acd83a6b91f7e510b1e61861bdb0e4377af272d1b49181900360e00190a150505050505050611c8760018055565b505050505050565b6000546001600160a01b03163314611ce95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161097c565b610eb981613639565b6000546001600160a01b03163314611d4c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161097c565b600a91909155600b55565b6000806000600a54600b5442611d6d9190615511565b611d779190615529565b6001600160a01b0380871660008181526009602081815260408084208b871680865290835281852088865283528185208251608080820185528254825260018084015483880152600280850154848801526003948501546060808601919091529a8a526007808952878b20968b529588529886902086516101808101885281548d1681529181015497820197909752978601549099169387019390935283015495850195909552600482015495840195909552600581015460a0840152600681015460c08401529283015460e08301526008830154610100830152820154610120820152600a820154610140820152600b9091015461016082015281519293509091158015611e865750600c54155b15611e975780608001519450611ea6565b8151600003611ea657600c5494505b505050506001600160a01b039283166000908152600860209081526040808320948616835293905291909120600301549092911690565b6000546001600160a01b03163314611f375760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161097c565b6001600160a01b038116611fb35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161097c565b610eb981612865565b600061084f8284615721565b92915050565b600061084f8284615529565b60006001600160a01b038416611ffc57611ff4838361379e565b50600161084f565b6120078484846128e9565b5060019392505050565b6002600154036120635760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161097c565b6002600155565b60038160405161207a91906158d8565b9081526040519081900360200190205460ff16156120da5760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a63657274696669636174652065787069726564604482015260640161097c565b60408051466020808301919091528183018890527fffffffffffffffffffffffffffffffffffffffff00000000000000000000000033606090811b82168185015288901b1660748301526088820186905260a88083018690528351808403909101815260c8830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000060e88401526101048084019190915283518084039091018152610124909201909252805191012060009061219e90836138b7565b6002549091506001600160a01b038083169116146121fe5760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a696e76616c6964206365727469666963617465604482015260640161097c565b600160038360405161221091906158d8565b90815260405190819003602001902080549115157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00909216919091179055505050505050565b6001600160a01b0383166122735761226e338361379e565b61227e565b61227e8333846128e9565b7f620ad9fc50d4bd40a79cb189cc547554eb4619554627f5ff4b98002f3269211d3385858542866040516122b7969594939291906158f4565b60405180910390a150505050565b600061084f8284615511565b600061084f828461549a565b61235360405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506001600160a01b03808516600081815260076020818152604080842089871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b015461016087015280517f313ce5670000000000000000000000000000000000000000000000000000000081529051939485948594919363313ce5679380840193919291908290030181865afa158015612451573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612475919061560e565b60ff16915061248e61248883600a615715565b87610c4a565b905060008061249d8a8a610ab6565b602088018290526060880181905290925090506124ba8783610835565b94505050945094509450949050565b6001600160a01b038085166000908152600860209081526040808320938716835292905290812060020154610c4190612503908590610835565b61250d85856122d1565b906122d1565b6001600160a01b0386811660009081526008602090815260408083208985168085529083528184208251608081018452815487168152600180830154828701526002830154828601526003909201548716606082015295891685526006845282852091855292528220908101549054919283928392116125a25761259b888260200151610835565b9350612797565b6001600160a01b038781166000908152600660209081526040808320938d16835292905220600181015490546125d9908a90615511565b1061262e576001600160a01b038781166000908152600660209081526040808320938d168352929052206001810154905461259b919061261a908b90615511565b612624919061549a565b8260200151610835565b600061263b87600a615715565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038a811660048301528891908e16906370a0823190602401602060405180830381865afa15801561269d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126c19190615957565b6126cb9190615721565b6126d59190615529565b6001600160a01b038981166000908152600660209081526040808320938f1683529290522060018101549054919250908290612712908c90615511565b61271c9190615511565b1015612795576001600160a01b038089166000908152600660209081526040808320938e16835292905220548190612755908b90615511565b61275f9190615511565b6001600160a01b03808a166000908152600660209081526040808320938f1683529290522060010154612792919061549a565b93505b505b6127a188856122d1565b91505096509650969350505050565b6001600160a01b03811661282b5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a696e76616c6964207369676e696e672061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161097c565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000808212156128e5576128e082615740565b611fc8565b5090565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052915160009283929087169161297391906158d8565b6000604051808303816000865af19150503d80600081146129b0576040519150601f19603f3d011682016040523d82523d6000602084013e6129b5565b606091505b50915091508180156129df5750805115806129df5750808060200190518101906129df9190615970565b610a5a5760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201527f616e73666572206661696c656400000000000000000000000000000000000000606482015260840161097c565b600060036001600160a01b038316612a6b57506001611fc8565b6004546001600160a01b0390811690841603611fc85750600292915050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790529151600092839290881691612b1c91906158d8565b6000604051808303816000865af19150503d8060008114612b59576040519150601f19603f3d011682016040523d82523d6000602084013e612b5e565b606091505b5091509150818015612b88575080511580612b88575080806020019051810190612b889190615970565b611c875760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a20747260448201527f616e7366657246726f6d206661696c6564000000000000000000000000000000606482015260840161097c565b8651600303612c1f576020870151600554612c1f91906001600160a01b0316876138db565b86516003148015612c31575085516003145b8015612c3b575081155b15612cde576005546040517f38ed17390000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906338ed173990612c91908890889088903090889060040161598d565b6000604051808303816000875af1158015612cb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612cd8919081019061557d565b50612e9a565b86516003148015612cf0575085516003145b8015612cfc5750816001145b15612d52576005546040517f8803dbee0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690638803dbee90612c91908790899088903090889060040161598d565b86516003148015612d6f5750855160021480612d6f575085516001145b8015612d7b5750816001145b15612dd1576005546040517f4a25d94a0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690634a25d94a90612c91908790899088903090889060040161598d565b865160021480612de2575086516001145b8015612def575085516003145b8015612dfb5750816001145b15612e9a576005546040517ffb3bdb410000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063fb3bdb41908790612e519088908890309088906004016159c9565b60006040518083038185885af1158015612e6f573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052612e98919081019061557d565b505b50505050505050565b6001600160a01b038084166000908152600760208181526040808420878616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b909201546101608301529081612f5a8686610ab6565b509050612f678482610835565b925060006040518060400160405280612f7f88612a51565b81526001600160a01b03881660209091015280519091506003036130325782516001600160a01b0316301461302d57612fbd868460000151866128e9565b82516001600160a01b03161580612fde575082516001600160a01b03166001145b1561302d57604080513381526001600160a01b03881660208201529081018590527fbac40739b0d4ca32fa2d82fc91630465ba3eddd1598da6fca393b26fb63b94539060600160405180910390a15b61304f565b82516001600160a01b0316301461304f57825161304f9085613a43565b5050509392505050565b6001600160a01b03808516600090815260086020908152604080832087851684528252808320815160808101835281548616815260018201549381019390935260028101549183019190915260030154909216606083015290819081806130c289898989613b26565b3360009081526006602090815260408083206001600160a01b038f16845290915290206001810154905493995091945092501161310e57613107868460200151610835565b9450613249565b3360009081526006602090815260408083206001600160a01b038c168452909152902060018101549054613143908890615511565b10613196573360009081526006602090815260408083206001600160a01b038c1684529091529020600181015490546131079190613182908990615511565b61318c919061549a565b8460200151610835565b60006131a382600a615715565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815233600482015284906001600160a01b038d16906370a0823190602401602060405180830381865afa158015613202573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132269190615957565b6132309190615721565b61323a9190615529565b9050613247898883613f1c565b505b61325386866122d1565b935084156133175761326a888460000151876128e9565b848360200151600d548761327e9190615721565b6132889190615529565b613292919061549a565b3360009081526006602090815260408083206001600160a01b038d168452909152812060010180549091906132c8908490615511565b9091555050604080513381526001600160a01b038a1660208201529081018690527f88dcaca629d63d86330e97adc358b13dd0ebd703239aea96b7ea2fb331b16f4e9060600160405180910390a15b6133228833866128e9565b3360009081526006602090815260408083206001600160a01b038c16845290915281208054869290613355908490615511565b9250508190555050505094509492505050565b6000600a54600b544261337b9190615511565b6133859190615529565b6001600160a01b0380861660008181526009602081815260408084208a871680865290835281852088865283528185208251608080820185528254825260018084015483880152600280850154848801526003948501546060808601919091529a8a526007808952878b20968b529588529886902086516101808101885281548d1681529181015497820197909752978601549099169387019390935283015495850195909552600482015495840195909552600581015460a0840152600681015460c08401529283015460e08301526008830154610100830152820154610120820152600a820154610140820152600b90910154610160820152815192935090911580156134945750600c54155b156134f4576080810180516001600160a01b038089166000818152600960208181526040808420958d168085529582528084208b85528252808420969096559551938252855283812091815290845282812087825290935291205561354e565b815160000361354e57600c546001600160a01b038088166000818152600960208181526040808420958c168085529582528084208a8552825280842087905594835290815283822092825291825282812087825290915220555b600061355b878787614085565b6001600160a01b038089166000908152600960209081526040808320938b168352928152828220888352905220549091506135998888848489614278565b50506001600160a01b038881166000818152600960208181526040808420958d168085529582528084208b855282528084206001908101899055958452918152818320938352928352808220898352835290819020909201849055600c84905581518781529081018490527fb9362b96e28efbb7a7e63bb4a97faf9924ec0394635feff8588a6ae2a5f784fe910160405180910390a15050505050505050565b6001600160a01b0381166136b55760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4d61726b65743a3a696e76616c696420726f75746520616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161097c565b600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316908117909155604080517fad5c4648000000000000000000000000000000000000000000000000000000008152905163ad5c4648916004808201926020929091908290030181865afa15801561373f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061376391906159fe565b600480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b804710156137ee5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161097c565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461383b576040519150601f19603f3d011682016040523d82523d6000602084013e613840565b606091505b50509050806109dc5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161097c565b60008060006138c685856144f7565b915091506138d38161453c565b509392505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b300000000000000000000000000000000000000000000000000000000179052915160009283929087169161396591906158d8565b6000604051808303816000865af19150503d80600081146139a2576040519150601f19603f3d011682016040523d82523d6000602084013e6139a7565b606091505b50915091508180156139d15750805115806139d15750808060200190518101906139d19190615970565b610a5a5760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201527f726f7665206661696c6564000000000000000000000000000000000000000000606482015260840161097c565b604080516000808252602082019092526001600160a01b038416908390604051613a6d91906158d8565b60006040518083038185875af1925050503d8060008114613aaa576040519150601f19603f3d011682016040523d82523d6000602084013e613aaf565b606091505b50509050806109dc5760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527f20455448207472616e73666572206661696c6564000000000000000000000000606482015260840161097c565b6001600160a01b038085166000908152600760208181526040808420888616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b9092015461016083015290819081908180613be28a8a610ab6565b91509150613bf08782610835565b60408085015190517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015613c53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c779190615957565b1015613ceb5760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a52657761726420546f6b656e20496e7375666660448201527f696369656e742042616c616e6365000000000000000000000000000000000000606482015260840161097c565b6000613cf78883610835565b1115613d7057613d15836040015133613d108a85610835565b6128e9565b7f6b053894d8fdbdcc936dd753e21291f0c48e68ef12306eb39a63a374147ba4bd338460400151613d468a85610835565b604080516001600160a01b0394851681529390921660208401529082015260600160405180910390a15b6001600160a01b03808b1660009081526008602090815260408083208d8516845282528083208151608081018352815486168152600182015493810193909352600281015491830182905260030154909316606082015291613dd3908a90610835565b1115613e65576000613dfa613dec8a8460400151610835565b613df58c610856565b6146a1565b90507f340b543910b47fe717183f8972077c5d42343802898948d4dffc9cc82a4f6099338c613e2d8c8660400151610835565b604080516001600160a01b0394851681529284166020840152820152908e1660608201526080810183905260a00160405180910390a1505b8a6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613ea3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ec7919061560e565b60ff169450613ee0613eda86600a615715565b8a610c4a565b95506000613eee8985610835565b9050613f0b613f018a8460400151610835565b61250d8b846122d1565b975050505050509450945094915050565b3360009081526006602090815260408083206001600160a01b03871684529091529020600181015490548290613f53908590615511565b613f5d9190615511565b10156109dc573360009081526006602090815260408083206001600160a01b03871684529091528120548290613f94908590615511565b613f9e9190615511565b3360009081526006602090815260408083206001600160a01b0389168452909152902060010154613fcf919061549a565b90508015614010573360009081526006602090815260408083206001600160a01b03881684529091528120805483929061400a908490615511565b90915550505b3360008181526006602090815260408083206001600160a01b03891680855290835292819020600181015490548251958652928501939093528301849052606083019190915260808201527f4e7e2735528d8c3e943fd545526d432a6f178a48e5e201186f897a1a865336539060a0016122b7565b6001600160a01b03808416600081815260086020908152604080832087861684528252808320815160808101835281548716815260018201549381019390935260028101549183019190915260030154909316606084018190529092918391900361416f57846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015614128573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061414c919061560e565b60ff16905061416861415f82600a615715565b61058586610856565b925061426f565b81606001516001600160a01b0316856001600160a01b03160361420157856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156141ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141ee919061560e565b60ff1690506141686114b182600a615715565b60405162461bcd60e51b815260206004820152602760248201527f546f6b656e4d61726b65743a3a496c6c6567616c2076616c756174696f6e206360448201527f757272656e637900000000000000000000000000000000000000000000000000606482015260840161097c565b50509392505050565b6001600160a01b038086166000908152600760208181526040808420898616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e0820152600883015461010082015260098301546101208201819052600a840154610140830152600b9093015461016082015290918291906143765760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a636f6e6669672e72616e6765203e2030000000604482015260640161097c565b600085116143c65760405162461bcd60e51b815260206004820152601560248201527f546f6b656e4d61726b65743a3a6f70656e203e20300000000000000000000000604482015260640161097c565b8585111561440c57610120810151600d5486906143e3898361549a565b6143ed9190615721565b6143f79190615529565b6144019190615529565b92506000915061444e565b8486111561444e57610120810151600d548690614429828a61549a565b6144339190615721565b61443d9190615529565b6144479190615529565b9250600191505b60008061445d8a8a8787614791565b6001600160a01b038c81166000908152600960209081526040808320938f1683529281528282208b83529052206002810183905560030181905590925090506144a8898b8787614791565b6001600160a01b039a8b1660009081526009602090815260408083209e909d1682529c8d528b812098815297909b52989095206002810198909855505060039095019590955550929391925050565b600080825160410361452d5760208301516040840151606085015160001a61452187828585614a53565b94509450505050614535565b506000905060025b9250929050565b600081600481111561455057614550615a1b565b036145585750565b600181600481111561456c5761456c615a1b565b036145b95760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161097c565b60028160048111156145cd576145cd615a1b565b0361461a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161097c565b600381600481111561462e5761462e615a1b565b03610eb95760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f7565000000000000000000000000000000000000000000000000000000000000606482015260840161097c565b600080826000815181106146b7576146b76154b1565b60200260200101519050600083600185516146d2919061549a565b815181106146e2576146e26154b1565b602002602001015190506000604051806040016040528061470285612a51565b8152602001846001600160a01b031681525090506000604051806040016040528061472c85612a51565b8152602001846001600160a01b0316815250905061474a8787610c4a565b945061475a612710866000610c02565b9450600061476942600a615511565b905061477b83838a898b600087612bfa565b6147868433886128e9565b505050505092915050565b6000806000841315614a17576001600160a01b038681166000908152600760209081526040808320938916835292905220600a810154600b90910154846147e9576147db82615740565b91506147e681615740565b90505b60006147f4836128cd565b131561489f576148048683615778565b93506000821261486f576001600160a01b038089166000908152600760209081526040808320938b168352929052206006015484131561486a576001600160a01b038089166000908152600760209081526040808320938b168352929052206006015493505b6148cb565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206001015493506148cb565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206001015493505b60006148d6826128cd565b13156149e4576001600160a01b038089166000908152600760209081526040808320938b168352929052206003015461490f8783615778565b6149199190615834565b925060008112614984576001600160a01b038089166000908152600760209081526040808320938b168352929052206008015483131561497f576001600160a01b038089166000908152600760209081526040808320938b168352929052206008015492505b614a10565b6001600160a01b038089166000908152600760208181526040808420948c168452939052919020015483121561497f576001600160a01b038089166000908152600760208181526040808420948c16845293905291902001549250614a10565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206003015492505b5050614a4a565b50506001600160a01b03848116600090815260076020908152604080832093871683529290522060018101546003909101545b94509492505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115614a8a5750600090506003614a4a565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614ade573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116614b0757600060019250925050614a4a565b9660009650945050505050565b60008060408385031215614b2757600080fd5b50508035926020909101359150565b6001600160a01b0381168114610eb957600080fd5b8035614b5681614b36565b919050565b60008060408385031215614b6e57600080fd5b8235614b7981614b36565b91506020830135614b8981614b36565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610180810167ffffffffffffffff81118282101715614be757614be7614b94565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715614c1657614c16614b94565b604052919050565b600067ffffffffffffffff821115614c3857614c38614b94565b5060051b60200190565b600082601f830112614c5357600080fd5b81356020614c68614c6383614c1e565b614bed565b82815260059290921b84018101918181019086841115614c8757600080fd5b8286015b84811015614cab578035614c9e81614b36565b8352918301918301614c8b565b509695505050505050565b600060208284031215614cc857600080fd5b813567ffffffffffffffff811115614cdf57600080fd5b614ceb84828501614c42565b949350505050565b600081518084526020808501945080840160005b83811015614d2c5781516001600160a01b031687529582019590820190600101614d07565b509495945050505050565b60208152600061084f6020830184614cf3565b600080600060608486031215614d5f57600080fd5b8335614d6a81614b36565b92506020840135614d7a81614b36565b929592945050506040919091013590565b600082601f830112614d9c57600080fd5b813567ffffffffffffffff811115614db657614db6614b94565b614dc96020601f19601f84011601614bed565b818152846020838601011115614dde57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215614e1357600080fd5b853594506020860135614e2581614b36565b93506040860135925060608601359150608086013567ffffffffffffffff811115614e4f57600080fd5b614e5b88828901614d8b565b9150509295509295909350565b60008060008060808587031215614e7e57600080fd5b84359350602085013567ffffffffffffffff811115614e9c57600080fd5b614ea887828801614c42565b949794965050505060408301359260600135919050565b600060208284031215614ed157600080fd5b813567ffffffffffffffff811115614ee857600080fd5b614ceb84828501614d8b565b8015158114610eb957600080fd5b600080600060608486031215614f1757600080fd5b83359250602084013591506040840135614f3081614ef4565b809150509250925092565b60008060408385031215614f4e57600080fd5b82359150602083013567ffffffffffffffff811115614f6c57600080fd5b614f7885828601614c42565b9150509250929050565b600080600080600060a08688031215614f9a57600080fd5b8535614fa581614b36565b94506020860135614fb581614b36565b9350604086013567ffffffffffffffff811115614fd157600080fd5b614fdd88828901614c42565b935050606086013591506080860135614ff581614b36565b809150509295509295909350565b80516001600160a01b0316825260208101516020830152604081015161503460408401826001600160a01b03169052565b50606081810151908301526080808201519083015260a0808201519083015260c0808201519083015260e0808201519083015261010080820151908301526101208082015190830152610140808201519083015261016090810151910152565b61020081016150a38288615003565b85610180830152846101a0830152836101c0830152826101e08301529695505050505050565b6000602082840312156150db57600080fd5b813561084f81614b36565b6000608082840312156150f857600080fd5b6040516080810181811067ffffffffffffffff8211171561511b5761511b614b94565b604052905080823561512c81614b36565b808252506020830135602082015260408301356040820152606083013561515281614b36565b6060919091015292915050565b60008060008084860361024081121561517757600080fd5b853561518281614b36565b9450602086013561519281614b36565b93506101807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082018113156151c657600080fd5b6151ce614bc3565b91506151dc60408801614b4b565b8252606087013560208301526151f460808801614b4b565b604083015260a0870135606083015260c0870135608083015260e087013560a08301526101008088013560c08401526101208089013560e0850152610140808a0135838601526101609250828a013582860152838a01358186015250506101a08801358184015250508092505061526f866101c087016150e6565b905092959194509250565b60008060006060848603121561528f57600080fd5b833561529a81614b36565b925060208401356152aa81614b36565b9150604084013567ffffffffffffffff8111156152c657600080fd5b6152d286828701614c42565b9150509250925092565b6101c081016152eb8286615003565b6101808201939093526101a00152919050565b600082601f83011261530f57600080fd5b8135602061531f614c6383614c1e565b82815260059290921b8401810191818101908684111561533e57600080fd5b8286015b84811015614cab5780358352918301918301615342565b6000806000806080858703121561536f57600080fd5b843567ffffffffffffffff8082111561538757600080fd5b615393888389016152fe565b955060208701359150808211156153a957600080fd5b6153b588838901614c42565b945060408701359150808211156153cb57600080fd5b6153d788838901614c42565b935060608701359150808211156153ed57600080fd5b506153fa878288016152fe565b91505092959194509250565b60008060008060008060c0878903121561541f57600080fd5b863567ffffffffffffffff81111561543657600080fd5b61544289828a01614c42565b9960208901359950604089013598606081013598506080810135975060a0013595509350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156154ac576154ac61546b565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060001982036154f3576154f361546b565b5060010190565b6000816155095761550961546b565b506000190190565b600082198211156155245761552461546b565b500190565b60008261555f577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b828152604060208201526000614ceb6040830184614cf3565b6000602080838503121561559057600080fd5b825167ffffffffffffffff8111156155a757600080fd5b8301601f810185136155b857600080fd5b80516155c6614c6382614c1e565b81815260059190911b820183019083810190878311156155e557600080fd5b928401925b82841015615603578351825292840192908401906155ea565b979650505050505050565b60006020828403121561562057600080fd5b815160ff8116811461084f57600080fd5b600181815b8085111561566c5781600019048211156156525761565261546b565b8085161561565f57918102915b93841c9390800290615636565b509250929050565b60008261568357506001611fc8565b8161569057506000611fc8565b81600181146156a657600281146156b0576156cc565b6001915050611fc8565b60ff8411156156c1576156c161546b565b50506001821b611fc8565b5060208310610133831016604e8410600b84101617156156ef575081810a611fc8565b6156f98383615631565b806000190482111561570d5761570d61546b565b029392505050565b600061084f8383615674565b600081600019048311821515161561573b5761573b61546b565b500290565b60007f800000000000000000000000000000000000000000000000000000000000000082036157715761577161546b565b5060000390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000841360008413858304851182821616156157b9576157b961546b565b7f800000000000000000000000000000000000000000000000000000000000000060008712868205881281841616156157f4576157f461546b565b600087129250878205871284841616156158105761581061546b565b878505871281841616156158265761582661546b565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0384138115161561586e5761586e61546b565b827f80000000000000000000000000000000000000000000000000000000000000000384128116156158a2576158a261546b565b50500190565b60005b838110156158c35781810151838201526020016158ab565b838111156158d2576000848401525b50505050565b600082516158ea8184602087016158a8565b9190910192915050565b60006001600160a01b03808916835287602084015280871660408401525084606083015283608083015260c060a083015282518060c084015261593e8160e08501602087016158a8565b601f01601f19169190910160e001979650505050505050565b60006020828403121561596957600080fd5b5051919050565b60006020828403121561598257600080fd5b815161084f81614ef4565b85815284602082015260a0604082015260006159ac60a0830186614cf3565b6001600160a01b0394909416606083015250608001529392505050565b8481526080602082015260006159e26080830186614cf3565b6001600160a01b03949094166040830152506060015292915050565b600060208284031215615a1057600080fd5b815161084f81614b36565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea26469706673582212203de83265052ead73efab86aa8a382c0d77cc9835948ff7788e3bc188c426867464736f6c634300080e0033",
|
|
1388
|
+
"deployedBytecode": "0x6080604052600436106101e75760003560e01c806362a766031161010e5780639bad44e8116100a7578063d738eba111610079578063eed8386c11610061578063eed8386c14610799578063f2fde38b146107d6578063fe8691b4146107f657005b8063d738eba114610759578063d96661ef1461077957005b80639bad44e8146106f0578063a6a3694a14610710578063aa5d448f14610723578063b18019861461074357005b80637aaa9b02116100e05780637aaa9b021461061057806381f3fdc3146106305780638da5cb5b1461065f5780639065a9af1461067d57005b806362a766031461058a5780636f151a38146105bb578063715018a6146105db578063744cfdd9146105f057005b80632926e5de1161018057806340216a831161015257806340216a83146104ff57806343d726d6146105345780635c8181211461054a5780635ff530f21461056a57005b80632926e5de1461037b5780632bd2c18d1461047457806334e3f92d146104945780633fc8cef3146104df57005b80631b153401116101b95780631b153401146102ed5780631f8c24de1461030d578063238ac9331461032d57806327af9e381461036557005b8063016eb8a8146101f0578063089afeae146102235780630d83b1e4146102aa5780630fcc40c4146102c057005b366101ee57005b005b3480156101fc57600080fd5b5061021061020b366004614b14565b610835565b6040519081526020015b60405180910390f35b34801561022f57600080fd5b5061027b61023e366004614b5b565b600860209081526000928352604080842090915290825290208054600182015460028301546003909301546001600160a01b039283169391921684565b604080516001600160a01b0395861681526020810194909452830191909152909116606082015260800161021a565b3480156102b657600080fd5b50610210600d5481565b3480156102cc57600080fd5b506102e06102db366004614cb6565b610856565b60405161021a9190614d37565b3480156102f957600080fd5b506101ee610308366004614d4a565b610926565b34801561031957600080fd5b506101ee610328366004614dfb565b6109e1565b34801561033957600080fd5b5060025461034d906001600160a01b031681565b6040516001600160a01b03909116815260200161021a565b34801561037157600080fd5b50610210600a5481565b34801561038757600080fd5b5061040a610396366004614b5b565b6007602081815260009384526040808520909152918352912080546001820154600283015460038401546004850154600586015460068701549787015460088801546009890154600a8a0154600b909a01546001600160a01b03998a169b989a99909716989597949693959293919290918c565b604080516001600160a01b039d8e168152602081019c909c5299909b16988a01989098526060890196909652608088019490945260a087019290925260c086015260e08501526101008401526101208301526101408201526101608101919091526101800161021a565b34801561048057600080fd5b5061021061048f366004614e68565b610a61565b3480156104a057600080fd5b506104cf6104af366004614ebf565b805160208183018101805160038252928201919093012091525460ff1681565b604051901515815260200161021a565b3480156104eb57600080fd5b5060045461034d906001600160a01b031681565b34801561050b57600080fd5b5061051f61051a366004614b5b565b610ab6565b6040805192835260208301919091520161021a565b34801561054057600080fd5b50610210600c5481565b34801561055657600080fd5b50610210610565366004614f02565b610c02565b34801561057657600080fd5b50610210610585366004614f3b565b610c4a565b34801561059657600080fd5b506105aa6105a5366004614f82565b610d8e565b60405161021a959493929190615094565b3480156105c757600080fd5b506101ee6105d63660046150c9565b610e56565b3480156105e757600080fd5b506101ee610ebc565b3480156105fc57600080fd5b5061021061060b366004614f3b565b610f22565b34801561061c57600080fd5b506101ee61062b36600461515f565b61104c565b34801561063c57600080fd5b5061065061064b36600461527a565b611308565b60405161021a939291906152dc565b34801561066b57600080fd5b506000546001600160a01b031661034d565b34801561068957600080fd5b506106d0610698366004614d4a565b600960209081526000938452604080852082529284528284209052825290208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161021a565b3480156106fc57600080fd5b506101ee61070b366004615359565b6116d8565b6101ee61071e366004615406565b61195a565b34801561072f57600080fd5b506101ee61073e3660046150c9565b611c8f565b34801561074f57600080fd5b50610210600b5481565b34801561076557600080fd5b506101ee610774366004614b14565b611cf2565b34801561078557600080fd5b5060055461034d906001600160a01b031681565b3480156107a557600080fd5b506107b96107b4366004614b5b565b611d57565b604080519283526001600160a01b0390911660208301520161021a565b3480156107e257600080fd5b506101ee6107f13660046150c9565b611edd565b34801561080257600080fd5b5061051f610811366004614b5b565b60066020908152600092835260408084209091529082529020805460019091015482565b600d5460009061084f906108498585611fbc565b90611fce565b9392505050565b805160609060008167ffffffffffffffff81111561087657610876614b94565b60405190808252806020026020018201604052801561089f578160200160208202803683370190505b5090506000825b6001811061091c57856108ba60018361549a565b815181106108ca576108ca6154b1565b60200260200101518383815181106108e4576108e46154b1565b6001600160a01b039092166020928302919091019091015281610906816154e0565b9250508080610914906154fa565b9150506108a6565b5090949350505050565b6000546001600160a01b031633146109855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b610990838383611fda565b6109dc5760405162461bcd60e51b815260206004820152601660248201527f546f6b656e4d61726b65743a3a73656e64206661696c00000000000000000000604482015260640161097c565b505050565b6109e9612011565b6109f6858585858561206a565b610a0285858584612256565b814210610a515760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a4f726465722045787069726174696f6e000000604482015260640161097c565b610a5a60018055565b5050505050565b60008080848103610a8e57610a768787610c4a565b9150610a8484836000610c02565b9150819250610aac565b610a988787610f22565b9050610aa684826001610c02565b90508092505b5050949350505050565b6000806000600a54600b5442610acc9190615511565b610ad69190615529565b6001600160a01b0380871660008181526007602081815260408084208b87168086529083528185208251610180810184528154891681526001820154818601526002820154909816888401526003810154606089015260048101546080890152600581015460a0890152600681015460c08901529384015460e08801526008840154610100880152600980850154610120890152600a850154610140890152600b909401546101608801529484529181528183209383529283528082208583529092529081205492935090919003610bbb578060200151935080606001519250610bf9565b6001600160a01b0386811660009081526009602090815260408083209389168352928152828220858352905220600281015460039091015490945092505b50509250929050565b600060018215610c2057600d54610c1990866122c5565b9050610c30565b600d54610c2d90866122d1565b90505b600d54610c41906108498684611fbc565b95945050505050565b6005546040517fd06ca61f00000000000000000000000000000000000000000000000000000000815260009182916001600160a01b039091169063d06ca61f90610c9a9087908790600401615564565b600060405180830381865afa158015610cb7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610cdf919081019061557d565b905080610cf7600183516122d190919063ffffffff16565b81518110610d0757610d076154b1565b6020026020010151915060008211610d875760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e4d61726b65743a3a6f7574416d6f756e742073686f756c6420626560448201527f2067726561746572207468616e20300000000000000000000000000000000000606482015260840161097c565b5092915050565b610e0460405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600080600080600080610e198c8c8c8c6122dd565b92995090945092509050610e2f8c8c8b866124c9565b9850610e3f8c8c8b8b8686612513565b989e919d509b509699509197509495505050505050565b6000546001600160a01b03163314610eb05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161097c565b610eb9816127b0565b50565b6000546001600160a01b03163314610f165760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161097c565b610f206000612865565b565b6005546040517f1f00ca7400000000000000000000000000000000000000000000000000000000815260009182916001600160a01b0390911690631f00ca7490610f729087908790600401615564565b600060405180830381865afa158015610f8f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fb7919081019061557d565b905080600081518110610fcc57610fcc6154b1565b6020026020010151915060008211610d875760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a696e416d6f756e742073686f756c642062652060448201527f67726561746572207468616e2030000000000000000000000000000000000000606482015260840161097c565b6000546001600160a01b031633146110a65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161097c565b6000826060015112156110fb5760405162461bcd60e51b815260206004820152601860248201527f546f6b656e4d61726b65743a3a726577617264203e3d20300000000000000000604482015260640161097c565b6000826020015112156111505760405162461bcd60e51b815260206004820152601960248201527f546f6b656e4d61726b65743a3a66656552617465203e3d203000000000000000604482015260640161097c565b836001600160a01b031681606001516001600160a01b031614806111895750826001600160a01b031681606001516001600160a01b0316145b6111d55760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2070726963696e6700000000604482015260640161097c565b6001600160a01b03938416600081815260076020818152604080842097891680855297825280842087518154908b167fffffffffffffffffffffffff000000000000000000000000000000000000000091821617825583890151600180840191909155838a015160028085018054928f16928516929092179091556060808c015160038087019190915560808d0151600487015560a08d0151600587015560c08d0151600687015560e08d0151988601989098556101008c01516008808701919091556101208d015160098701556101408d0151600a870155610160909c0151600b909501949094559787529884528286209986529883529381902086518154908b16908a1617815591860151968201969096559484015192850192909255919091015191018054919093169116179055565b61137e60405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506001600160a01b03808416600081815260076020818152604080842088871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b015461016087015280517f313ce567000000000000000000000000000000000000000000000000000000008152905193948594909363313ce5679383820193909291908290030181865afa15801561147a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149e919061560e565b60ff1691506114b76114b183600a615715565b85610c4a565b90506000808285608001511115611509576101208501516080860151600d546114e0868361549a565b6114ea9190615721565b6114f49190615529565b6114fe9190615529565b905060009150611552565b8460800151831115611552576101208501516080860151600d5461152d828761549a565b6115379190615721565b6115419190615529565b61154b9190615529565b9050600191505b60008113156116cd57608085018390526101408501516101608601518361158a5761157c82615740565b915061158781615740565b90505b600082126115cd5760208701516115a18484615778565b6115ab9190615834565b6020880181905260c088015112156115c85760c087015160208801525b611629565b86602001518760a00151846115e1856128cd565b6115eb9190615778565b6115f59190615834565b131561160a5760a08701516020880152611629565b60208701516116198484615778565b6116239190615834565b60208801525b6000811261166e5760608701516116408483615778565b61164a9190615834565b6060880181905261010088015112156116695761010087015160608801525b6116ca565b86606001518760e0015184611682846128cd565b61168c9190615778565b6116969190615834565b13156116ab5760e087015160608801526116ca565b60608701516116ba8483615778565b6116c49190615834565b60608801525b50505b505093509350939050565b6000546001600160a01b031633146117325760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161097c565b82518451146117835760405162461bcd60e51b815260206004820152601760248201527f546f6b656e4d61726b65743a3a206c656e67746820213d000000000000000000604482015260640161097c565b81518351146117d45760405162461bcd60e51b815260206004820152601760248201527f546f6b656e4d61726b65743a3a206c656e67746820213d000000000000000000604482015260640161097c565b80518251146118255760405162461bcd60e51b815260206004820152601760248201527f546f6b656e4d61726b65743a3a206c656e67746820213d000000000000000000604482015260640161097c565b60005b8451811015610a5a57611887838281518110611846576118466154b1565b6020026020010151858381518110611860576118606154b1565b602002602001015184848151811061187a5761187a6154b1565b60200260200101516128e9565b7fd854fbf5db341a7d003a14ee8ed089e806c8731c6aca5fb4b89095d0a230ccd08582815181106118ba576118ba6154b1565b60200260200101518583815181106118d4576118d46154b1565b60200260200101518584815181106118ee576118ee6154b1565b6020026020010151858581518110611908576119086154b1565b602002602001015160405161194094939291909384526001600160a01b03928316602085015291166040830152606082015260800190565b60405180910390a180611952816154e0565b915050611828565b611962612011565b3332146119b15760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2063616c6c65720000000000604482015260640161097c565b333b15611a255760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a50726f686962697420636f6e7472616374206360448201527f616c6c7300000000000000000000000000000000000000000000000000000000606482015260840161097c565b82600003611a4c57611a378587610c4a565b9350611a4581856000610c02565b9350611a67565b611a568487610f22565b9450611a6481866001610c02565b94505b600086600081518110611a7c57611a7c6154b1565b6020026020010151905060008760018951611a97919061549a565b81518110611aa757611aa76154b1565b6020908102919091018101513360009081526006835260408082206001600160a01b0387168352909352918220600101805491935089929091611aeb908490615511565b9250508190555060006040518060400160405280611b0885612a51565b8152602001846001600160a01b0316815250905060006040518060400160405280611b3285612a51565b81526001600160a01b0385166020909101528251909150600303611b6157611b5c8433308c612a8a565b611bd6565b883414611bd65760405162461bcd60e51b815260206004820152602660248201527f546f6b656e4d61726b65743a3a696e70757420657468206973206e6f7420616360448201527f6375726174650000000000000000000000000000000000000000000000000000606482015260840161097c565b611be582828b8b8e8c8c612bfa565b6000611bf285858b612ea3565b9050600080611c0387878f8e613059565b91509150611c1287878f613368565b604080513381526001600160a01b038981166020830152881681830152606081018e90526080810185905260a0810184905260c0810183905290517f38f821c5ea6d48d9d87fc7acd83a6b91f7e510b1e61861bdb0e4377af272d1b49181900360e00190a150505050505050611c8760018055565b505050505050565b6000546001600160a01b03163314611ce95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161097c565b610eb981613639565b6000546001600160a01b03163314611d4c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161097c565b600a91909155600b55565b6000806000600a54600b5442611d6d9190615511565b611d779190615529565b6001600160a01b0380871660008181526009602081815260408084208b871680865290835281852088865283528185208251608080820185528254825260018084015483880152600280850154848801526003948501546060808601919091529a8a526007808952878b20968b529588529886902086516101808101885281548d1681529181015497820197909752978601549099169387019390935283015495850195909552600482015495840195909552600581015460a0840152600681015460c08401529283015460e08301526008830154610100830152820154610120820152600a820154610140820152600b9091015461016082015281519293509091158015611e865750600c54155b15611e975780608001519450611ea6565b8151600003611ea657600c5494505b505050506001600160a01b039283166000908152600860209081526040808320948616835293905291909120600301549092911690565b6000546001600160a01b03163314611f375760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161097c565b6001600160a01b038116611fb35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161097c565b610eb981612865565b600061084f8284615721565b92915050565b600061084f8284615529565b60006001600160a01b038416611ffc57611ff4838361379e565b50600161084f565b6120078484846128e9565b5060019392505050565b6002600154036120635760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161097c565b6002600155565b60038160405161207a91906158d8565b9081526040519081900360200190205460ff16156120da5760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a63657274696669636174652065787069726564604482015260640161097c565b60408051466020808301919091528183018890527fffffffffffffffffffffffffffffffffffffffff00000000000000000000000033606090811b82168185015288901b1660748301526088820186905260a88083018690528351808403909101815260c8830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000060e88401526101048084019190915283518084039091018152610124909201909252805191012060009061219e90836138b7565b6002549091506001600160a01b038083169116146121fe5760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a696e76616c6964206365727469666963617465604482015260640161097c565b600160038360405161221091906158d8565b90815260405190819003602001902080549115157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00909216919091179055505050505050565b6001600160a01b0383166122735761226e338361379e565b61227e565b61227e8333846128e9565b7f620ad9fc50d4bd40a79cb189cc547554eb4619554627f5ff4b98002f3269211d3385858542866040516122b7969594939291906158f4565b60405180910390a150505050565b600061084f8284615511565b600061084f828461549a565b61235360405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506001600160a01b03808516600081815260076020818152604080842089871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b015461016087015280517f313ce5670000000000000000000000000000000000000000000000000000000081529051939485948594919363313ce5679380840193919291908290030181865afa158015612451573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612475919061560e565b60ff16915061248e61248883600a615715565b87610c4a565b905060008061249d8a8a610ab6565b602088018290526060880181905290925090506124ba8783610835565b94505050945094509450949050565b6001600160a01b038085166000908152600860209081526040808320938716835292905290812060020154610c4190612503908590610835565b61250d85856122d1565b906122d1565b6001600160a01b0386811660009081526008602090815260408083208985168085529083528184208251608081018452815487168152600180830154828701526002830154828601526003909201548716606082015295891685526006845282852091855292528220908101549054919283928392116125a25761259b888260200151610835565b9350612797565b6001600160a01b038781166000908152600660209081526040808320938d16835292905220600181015490546125d9908a90615511565b1061262e576001600160a01b038781166000908152600660209081526040808320938d168352929052206001810154905461259b919061261a908b90615511565b612624919061549a565b8260200151610835565b600061263b87600a615715565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038a811660048301528891908e16906370a0823190602401602060405180830381865afa15801561269d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126c19190615957565b6126cb9190615721565b6126d59190615529565b6001600160a01b038981166000908152600660209081526040808320938f1683529290522060018101549054919250908290612712908c90615511565b61271c9190615511565b1015612795576001600160a01b038089166000908152600660209081526040808320938e16835292905220548190612755908b90615511565b61275f9190615511565b6001600160a01b03808a166000908152600660209081526040808320938f1683529290522060010154612792919061549a565b93505b505b6127a188856122d1565b91505096509650969350505050565b6001600160a01b03811661282b5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a696e76616c6964207369676e696e672061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161097c565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000808212156128e5576128e082615740565b611fc8565b5090565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052915160009283929087169161297391906158d8565b6000604051808303816000865af19150503d80600081146129b0576040519150601f19603f3d011682016040523d82523d6000602084013e6129b5565b606091505b50915091508180156129df5750805115806129df5750808060200190518101906129df9190615970565b610a5a5760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201527f616e73666572206661696c656400000000000000000000000000000000000000606482015260840161097c565b600060036001600160a01b038316612a6b57506001611fc8565b6004546001600160a01b0390811690841603611fc85750600292915050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790529151600092839290881691612b1c91906158d8565b6000604051808303816000865af19150503d8060008114612b59576040519150601f19603f3d011682016040523d82523d6000602084013e612b5e565b606091505b5091509150818015612b88575080511580612b88575080806020019051810190612b889190615970565b611c875760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a20747260448201527f616e7366657246726f6d206661696c6564000000000000000000000000000000606482015260840161097c565b8651600303612c1f576020870151600554612c1f91906001600160a01b0316876138db565b86516003148015612c31575085516003145b8015612c3b575081155b15612cde576005546040517f38ed17390000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906338ed173990612c91908890889088903090889060040161598d565b6000604051808303816000875af1158015612cb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612cd8919081019061557d565b50612e9a565b86516003148015612cf0575085516003145b8015612cfc5750816001145b15612d52576005546040517f8803dbee0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690638803dbee90612c91908790899088903090889060040161598d565b86516003148015612d6f5750855160021480612d6f575085516001145b8015612d7b5750816001145b15612dd1576005546040517f4a25d94a0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690634a25d94a90612c91908790899088903090889060040161598d565b865160021480612de2575086516001145b8015612def575085516003145b8015612dfb5750816001145b15612e9a576005546040517ffb3bdb410000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063fb3bdb41908790612e519088908890309088906004016159c9565b60006040518083038185885af1158015612e6f573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052612e98919081019061557d565b505b50505050505050565b6001600160a01b038084166000908152600760208181526040808420878616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b909201546101608301529081612f5a8686610ab6565b509050612f678482610835565b925060006040518060400160405280612f7f88612a51565b81526001600160a01b03881660209091015280519091506003036130325782516001600160a01b0316301461302d57612fbd868460000151866128e9565b82516001600160a01b03161580612fde575082516001600160a01b03166001145b1561302d57604080513381526001600160a01b03881660208201529081018590527fbac40739b0d4ca32fa2d82fc91630465ba3eddd1598da6fca393b26fb63b94539060600160405180910390a15b61304f565b82516001600160a01b0316301461304f57825161304f9085613a43565b5050509392505050565b6001600160a01b03808516600090815260086020908152604080832087851684528252808320815160808101835281548616815260018201549381019390935260028101549183019190915260030154909216606083015290819081806130c289898989613b26565b3360009081526006602090815260408083206001600160a01b038f16845290915290206001810154905493995091945092501161310e57613107868460200151610835565b9450613249565b3360009081526006602090815260408083206001600160a01b038c168452909152902060018101549054613143908890615511565b10613196573360009081526006602090815260408083206001600160a01b038c1684529091529020600181015490546131079190613182908990615511565b61318c919061549a565b8460200151610835565b60006131a382600a615715565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815233600482015284906001600160a01b038d16906370a0823190602401602060405180830381865afa158015613202573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132269190615957565b6132309190615721565b61323a9190615529565b9050613247898883613f1c565b505b61325386866122d1565b935084156133175761326a888460000151876128e9565b848360200151600d548761327e9190615721565b6132889190615529565b613292919061549a565b3360009081526006602090815260408083206001600160a01b038d168452909152812060010180549091906132c8908490615511565b9091555050604080513381526001600160a01b038a1660208201529081018690527f88dcaca629d63d86330e97adc358b13dd0ebd703239aea96b7ea2fb331b16f4e9060600160405180910390a15b6133228833866128e9565b3360009081526006602090815260408083206001600160a01b038c16845290915281208054869290613355908490615511565b9250508190555050505094509492505050565b6000600a54600b544261337b9190615511565b6133859190615529565b6001600160a01b0380861660008181526009602081815260408084208a871680865290835281852088865283528185208251608080820185528254825260018084015483880152600280850154848801526003948501546060808601919091529a8a526007808952878b20968b529588529886902086516101808101885281548d1681529181015497820197909752978601549099169387019390935283015495850195909552600482015495840195909552600581015460a0840152600681015460c08401529283015460e08301526008830154610100830152820154610120820152600a820154610140820152600b90910154610160820152815192935090911580156134945750600c54155b156134f4576080810180516001600160a01b038089166000818152600960208181526040808420958d168085529582528084208b85528252808420969096559551938252855283812091815290845282812087825290935291205561354e565b815160000361354e57600c546001600160a01b038088166000818152600960208181526040808420958c168085529582528084208a8552825280842087905594835290815283822092825291825282812087825290915220555b600061355b878787614085565b6001600160a01b038089166000908152600960209081526040808320938b168352928152828220888352905220549091506135998888848489614278565b50506001600160a01b038881166000818152600960208181526040808420958d168085529582528084208b855282528084206001908101899055958452918152818320938352928352808220898352835290819020909201849055600c84905581518781529081018490527fb9362b96e28efbb7a7e63bb4a97faf9924ec0394635feff8588a6ae2a5f784fe910160405180910390a15050505050505050565b6001600160a01b0381166136b55760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4d61726b65743a3a696e76616c696420726f75746520616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161097c565b600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316908117909155604080517fad5c4648000000000000000000000000000000000000000000000000000000008152905163ad5c4648916004808201926020929091908290030181865afa15801561373f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061376391906159fe565b600480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b804710156137ee5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161097c565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461383b576040519150601f19603f3d011682016040523d82523d6000602084013e613840565b606091505b50509050806109dc5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161097c565b60008060006138c685856144f7565b915091506138d38161453c565b509392505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b300000000000000000000000000000000000000000000000000000000179052915160009283929087169161396591906158d8565b6000604051808303816000865af19150503d80600081146139a2576040519150601f19603f3d011682016040523d82523d6000602084013e6139a7565b606091505b50915091508180156139d15750805115806139d15750808060200190518101906139d19190615970565b610a5a5760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201527f726f7665206661696c6564000000000000000000000000000000000000000000606482015260840161097c565b604080516000808252602082019092526001600160a01b038416908390604051613a6d91906158d8565b60006040518083038185875af1925050503d8060008114613aaa576040519150601f19603f3d011682016040523d82523d6000602084013e613aaf565b606091505b50509050806109dc5760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527f20455448207472616e73666572206661696c6564000000000000000000000000606482015260840161097c565b6001600160a01b038085166000908152600760208181526040808420888616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b9092015461016083015290819081908180613be28a8a610ab6565b91509150613bf08782610835565b60408085015190517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015613c53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c779190615957565b1015613ceb5760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a52657761726420546f6b656e20496e7375666660448201527f696369656e742042616c616e6365000000000000000000000000000000000000606482015260840161097c565b6000613cf78883610835565b1115613d7057613d15836040015133613d108a85610835565b6128e9565b7f6b053894d8fdbdcc936dd753e21291f0c48e68ef12306eb39a63a374147ba4bd338460400151613d468a85610835565b604080516001600160a01b0394851681529390921660208401529082015260600160405180910390a15b6001600160a01b03808b1660009081526008602090815260408083208d8516845282528083208151608081018352815486168152600182015493810193909352600281015491830182905260030154909316606082015291613dd3908a90610835565b1115613e65576000613dfa613dec8a8460400151610835565b613df58c610856565b6146a1565b90507f340b543910b47fe717183f8972077c5d42343802898948d4dffc9cc82a4f6099338c613e2d8c8660400151610835565b604080516001600160a01b0394851681529284166020840152820152908e1660608201526080810183905260a00160405180910390a1505b8a6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613ea3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ec7919061560e565b60ff169450613ee0613eda86600a615715565b8a610c4a565b95506000613eee8985610835565b9050613f0b613f018a8460400151610835565b61250d8b846122d1565b975050505050509450945094915050565b3360009081526006602090815260408083206001600160a01b03871684529091529020600181015490548290613f53908590615511565b613f5d9190615511565b10156109dc573360009081526006602090815260408083206001600160a01b03871684529091528120548290613f94908590615511565b613f9e9190615511565b3360009081526006602090815260408083206001600160a01b0389168452909152902060010154613fcf919061549a565b90508015614010573360009081526006602090815260408083206001600160a01b03881684529091528120805483929061400a908490615511565b90915550505b3360008181526006602090815260408083206001600160a01b03891680855290835292819020600181015490548251958652928501939093528301849052606083019190915260808201527f4e7e2735528d8c3e943fd545526d432a6f178a48e5e201186f897a1a865336539060a0016122b7565b6001600160a01b03808416600081815260086020908152604080832087861684528252808320815160808101835281548716815260018201549381019390935260028101549183019190915260030154909316606084018190529092918391900361416f57846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015614128573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061414c919061560e565b60ff16905061416861415f82600a615715565b61058586610856565b925061426f565b81606001516001600160a01b0316856001600160a01b03160361420157856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156141ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141ee919061560e565b60ff1690506141686114b182600a615715565b60405162461bcd60e51b815260206004820152602760248201527f546f6b656e4d61726b65743a3a496c6c6567616c2076616c756174696f6e206360448201527f757272656e637900000000000000000000000000000000000000000000000000606482015260840161097c565b50509392505050565b6001600160a01b038086166000908152600760208181526040808420898616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e0820152600883015461010082015260098301546101208201819052600a840154610140830152600b9093015461016082015290918291906143765760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a636f6e6669672e72616e6765203e2030000000604482015260640161097c565b600085116143c65760405162461bcd60e51b815260206004820152601560248201527f546f6b656e4d61726b65743a3a6f70656e203e20300000000000000000000000604482015260640161097c565b8585111561440c57610120810151600d5486906143e3898361549a565b6143ed9190615721565b6143f79190615529565b6144019190615529565b92506000915061444e565b8486111561444e57610120810151600d548690614429828a61549a565b6144339190615721565b61443d9190615529565b6144479190615529565b9250600191505b60008061445d8a8a8787614791565b6001600160a01b038c81166000908152600960209081526040808320938f1683529281528282208b83529052206002810183905560030181905590925090506144a8898b8787614791565b6001600160a01b039a8b1660009081526009602090815260408083209e909d1682529c8d528b812098815297909b52989095206002810198909855505060039095019590955550929391925050565b600080825160410361452d5760208301516040840151606085015160001a61452187828585614a53565b94509450505050614535565b506000905060025b9250929050565b600081600481111561455057614550615a1b565b036145585750565b600181600481111561456c5761456c615a1b565b036145b95760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161097c565b60028160048111156145cd576145cd615a1b565b0361461a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161097c565b600381600481111561462e5761462e615a1b565b03610eb95760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f7565000000000000000000000000000000000000000000000000000000000000606482015260840161097c565b600080826000815181106146b7576146b76154b1565b60200260200101519050600083600185516146d2919061549a565b815181106146e2576146e26154b1565b602002602001015190506000604051806040016040528061470285612a51565b8152602001846001600160a01b031681525090506000604051806040016040528061472c85612a51565b8152602001846001600160a01b0316815250905061474a8787610c4a565b945061475a612710866000610c02565b9450600061476942600a615511565b905061477b83838a898b600087612bfa565b6147868433886128e9565b505050505092915050565b6000806000841315614a17576001600160a01b038681166000908152600760209081526040808320938916835292905220600a810154600b90910154846147e9576147db82615740565b91506147e681615740565b90505b60006147f4836128cd565b131561489f576148048683615778565b93506000821261486f576001600160a01b038089166000908152600760209081526040808320938b168352929052206006015484131561486a576001600160a01b038089166000908152600760209081526040808320938b168352929052206006015493505b6148cb565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206001015493506148cb565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206001015493505b60006148d6826128cd565b13156149e4576001600160a01b038089166000908152600760209081526040808320938b168352929052206003015461490f8783615778565b6149199190615834565b925060008112614984576001600160a01b038089166000908152600760209081526040808320938b168352929052206008015483131561497f576001600160a01b038089166000908152600760209081526040808320938b168352929052206008015492505b614a10565b6001600160a01b038089166000908152600760208181526040808420948c168452939052919020015483121561497f576001600160a01b038089166000908152600760208181526040808420948c16845293905291902001549250614a10565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206003015492505b5050614a4a565b50506001600160a01b03848116600090815260076020908152604080832093871683529290522060018101546003909101545b94509492505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115614a8a5750600090506003614a4a565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614ade573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116614b0757600060019250925050614a4a565b9660009650945050505050565b60008060408385031215614b2757600080fd5b50508035926020909101359150565b6001600160a01b0381168114610eb957600080fd5b8035614b5681614b36565b919050565b60008060408385031215614b6e57600080fd5b8235614b7981614b36565b91506020830135614b8981614b36565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610180810167ffffffffffffffff81118282101715614be757614be7614b94565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715614c1657614c16614b94565b604052919050565b600067ffffffffffffffff821115614c3857614c38614b94565b5060051b60200190565b600082601f830112614c5357600080fd5b81356020614c68614c6383614c1e565b614bed565b82815260059290921b84018101918181019086841115614c8757600080fd5b8286015b84811015614cab578035614c9e81614b36565b8352918301918301614c8b565b509695505050505050565b600060208284031215614cc857600080fd5b813567ffffffffffffffff811115614cdf57600080fd5b614ceb84828501614c42565b949350505050565b600081518084526020808501945080840160005b83811015614d2c5781516001600160a01b031687529582019590820190600101614d07565b509495945050505050565b60208152600061084f6020830184614cf3565b600080600060608486031215614d5f57600080fd5b8335614d6a81614b36565b92506020840135614d7a81614b36565b929592945050506040919091013590565b600082601f830112614d9c57600080fd5b813567ffffffffffffffff811115614db657614db6614b94565b614dc96020601f19601f84011601614bed565b818152846020838601011115614dde57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215614e1357600080fd5b853594506020860135614e2581614b36565b93506040860135925060608601359150608086013567ffffffffffffffff811115614e4f57600080fd5b614e5b88828901614d8b565b9150509295509295909350565b60008060008060808587031215614e7e57600080fd5b84359350602085013567ffffffffffffffff811115614e9c57600080fd5b614ea887828801614c42565b949794965050505060408301359260600135919050565b600060208284031215614ed157600080fd5b813567ffffffffffffffff811115614ee857600080fd5b614ceb84828501614d8b565b8015158114610eb957600080fd5b600080600060608486031215614f1757600080fd5b83359250602084013591506040840135614f3081614ef4565b809150509250925092565b60008060408385031215614f4e57600080fd5b82359150602083013567ffffffffffffffff811115614f6c57600080fd5b614f7885828601614c42565b9150509250929050565b600080600080600060a08688031215614f9a57600080fd5b8535614fa581614b36565b94506020860135614fb581614b36565b9350604086013567ffffffffffffffff811115614fd157600080fd5b614fdd88828901614c42565b935050606086013591506080860135614ff581614b36565b809150509295509295909350565b80516001600160a01b0316825260208101516020830152604081015161503460408401826001600160a01b03169052565b50606081810151908301526080808201519083015260a0808201519083015260c0808201519083015260e0808201519083015261010080820151908301526101208082015190830152610140808201519083015261016090810151910152565b61020081016150a38288615003565b85610180830152846101a0830152836101c0830152826101e08301529695505050505050565b6000602082840312156150db57600080fd5b813561084f81614b36565b6000608082840312156150f857600080fd5b6040516080810181811067ffffffffffffffff8211171561511b5761511b614b94565b604052905080823561512c81614b36565b808252506020830135602082015260408301356040820152606083013561515281614b36565b6060919091015292915050565b60008060008084860361024081121561517757600080fd5b853561518281614b36565b9450602086013561519281614b36565b93506101807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082018113156151c657600080fd5b6151ce614bc3565b91506151dc60408801614b4b565b8252606087013560208301526151f460808801614b4b565b604083015260a0870135606083015260c0870135608083015260e087013560a08301526101008088013560c08401526101208089013560e0850152610140808a0135838601526101609250828a013582860152838a01358186015250506101a08801358184015250508092505061526f866101c087016150e6565b905092959194509250565b60008060006060848603121561528f57600080fd5b833561529a81614b36565b925060208401356152aa81614b36565b9150604084013567ffffffffffffffff8111156152c657600080fd5b6152d286828701614c42565b9150509250925092565b6101c081016152eb8286615003565b6101808201939093526101a00152919050565b600082601f83011261530f57600080fd5b8135602061531f614c6383614c1e565b82815260059290921b8401810191818101908684111561533e57600080fd5b8286015b84811015614cab5780358352918301918301615342565b6000806000806080858703121561536f57600080fd5b843567ffffffffffffffff8082111561538757600080fd5b615393888389016152fe565b955060208701359150808211156153a957600080fd5b6153b588838901614c42565b945060408701359150808211156153cb57600080fd5b6153d788838901614c42565b935060608701359150808211156153ed57600080fd5b506153fa878288016152fe565b91505092959194509250565b60008060008060008060c0878903121561541f57600080fd5b863567ffffffffffffffff81111561543657600080fd5b61544289828a01614c42565b9960208901359950604089013598606081013598506080810135975060a0013595509350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156154ac576154ac61546b565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060001982036154f3576154f361546b565b5060010190565b6000816155095761550961546b565b506000190190565b600082198211156155245761552461546b565b500190565b60008261555f577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b828152604060208201526000614ceb6040830184614cf3565b6000602080838503121561559057600080fd5b825167ffffffffffffffff8111156155a757600080fd5b8301601f810185136155b857600080fd5b80516155c6614c6382614c1e565b81815260059190911b820183019083810190878311156155e557600080fd5b928401925b82841015615603578351825292840192908401906155ea565b979650505050505050565b60006020828403121561562057600080fd5b815160ff8116811461084f57600080fd5b600181815b8085111561566c5781600019048211156156525761565261546b565b8085161561565f57918102915b93841c9390800290615636565b509250929050565b60008261568357506001611fc8565b8161569057506000611fc8565b81600181146156a657600281146156b0576156cc565b6001915050611fc8565b60ff8411156156c1576156c161546b565b50506001821b611fc8565b5060208310610133831016604e8410600b84101617156156ef575081810a611fc8565b6156f98383615631565b806000190482111561570d5761570d61546b565b029392505050565b600061084f8383615674565b600081600019048311821515161561573b5761573b61546b565b500290565b60007f800000000000000000000000000000000000000000000000000000000000000082036157715761577161546b565b5060000390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000841360008413858304851182821616156157b9576157b961546b565b7f800000000000000000000000000000000000000000000000000000000000000060008712868205881281841616156157f4576157f461546b565b600087129250878205871284841616156158105761581061546b565b878505871281841616156158265761582661546b565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0384138115161561586e5761586e61546b565b827f80000000000000000000000000000000000000000000000000000000000000000384128116156158a2576158a261546b565b50500190565b60005b838110156158c35781810151838201526020016158ab565b838111156158d2576000848401525b50505050565b600082516158ea8184602087016158a8565b9190910192915050565b60006001600160a01b03808916835287602084015280871660408401525084606083015283608083015260c060a083015282518060c084015261593e8160e08501602087016158a8565b601f01601f19169190910160e001979650505050505050565b60006020828403121561596957600080fd5b5051919050565b60006020828403121561598257600080fd5b815161084f81614ef4565b85815284602082015260a0604082015260006159ac60a0830186614cf3565b6001600160a01b0394909416606083015250608001529392505050565b8481526080602082015260006159e26080830186614cf3565b6001600160a01b03949094166040830152506060015292915050565b600060208284031215615a1057600080fd5b815161084f81614b36565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea26469706673582212203de83265052ead73efab86aa8a382c0d77cc9835948ff7788e3bc188c426867464736f6c634300080e0033",
|
|
1246
1389
|
"linkReferences": {},
|
|
1247
1390
|
"deployedLinkReferences": {}
|
|
1248
1391
|
}
|
package/src/agent-swap.js
CHANGED
|
@@ -73,6 +73,38 @@ class AgentSwap extends HI {
|
|
|
73
73
|
return result
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
+
/*
|
|
77
|
+
|
|
78
|
+
[
|
|
79
|
+
{
|
|
80
|
+
id:1,
|
|
81
|
+
wallet:"",
|
|
82
|
+
token:"",
|
|
83
|
+
amount:""
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
|
|
87
|
+
*/
|
|
88
|
+
async batchTransfer(list = []) {
|
|
89
|
+
let params = [
|
|
90
|
+
[],
|
|
91
|
+
[],
|
|
92
|
+
[],
|
|
93
|
+
[]
|
|
94
|
+
]
|
|
95
|
+
for(let i = 0;i < list.length;i++) {
|
|
96
|
+
let token = new HERC20({ ...this.network, contract: list[i].token })
|
|
97
|
+
let amount = await token.toAmount(list[i].amount)
|
|
98
|
+
params[0].push(list[i].id)
|
|
99
|
+
params[1].push(list[i].wallet)
|
|
100
|
+
params[2].push(list[i].token)
|
|
101
|
+
params[3].push(amount)
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
let result = await this.manage("batchTransfer", params)
|
|
105
|
+
return result
|
|
106
|
+
}
|
|
107
|
+
|
|
76
108
|
|
|
77
109
|
async tokenSend({ token, amount, recipient }) {
|
|
78
110
|
let inToken = new HERC20({ ...this.network, contract: token })
|
|
@@ -191,6 +223,14 @@ class AgentSwap extends HI {
|
|
|
191
223
|
}
|
|
192
224
|
|
|
193
225
|
|
|
226
|
+
async calibration({ tokenIn,tokenOut }) {
|
|
227
|
+
let result = await this.SC.methods.calibration(tokenIn,tokenOut).call()
|
|
228
|
+
let symbol = new HERC20({ ...this.network, contract: result.pricing })
|
|
229
|
+
result.open = await symbol.fromAmount(result.open)
|
|
230
|
+
return result
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
|
|
194
234
|
|
|
195
235
|
|
|
196
236
|
async approve({ token,amount }) {
|