@stargatefinance/stg-evm-sdk-v2 1.2.7 → 1.3.1

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.
Files changed (159) hide show
  1. package/artifacts/src/StargateOFT.sol/StargateOFT.json +2 -2
  2. package/artifacts/src/StargateOFTAlt.sol/StargateOFTAlt.json +1584 -0
  3. package/artifacts/src/StargatePool.sol/StargatePool.json +2 -2
  4. package/artifacts/src/StargatePoolMigratable.sol/StargatePoolMigratable.json +2 -2
  5. package/artifacts/src/StargatePoolNative.sol/StargatePoolNative.json +2 -2
  6. package/artifacts/src/eurc/StargateOFTEURC.sol/StargateOFTEURC.json +2 -2
  7. package/artifacts/src/eurc/StargatePoolEURC.sol/StargatePoolEURC.json +2 -2
  8. package/artifacts/src/interfaces/tip20/ITIP20.sol/ITIP20.json +1065 -0
  9. package/artifacts/src/interfaces/tip20/ITIP20RolesAuth.sol/ITIP20RolesAuth.json +139 -0
  10. package/artifacts/src/messaging/CreditMessagingAlt.sol/CreditMessagingAlt.json +1142 -0
  11. package/artifacts/src/messaging/TokenMessaging.sol/TokenMessaging.json +2 -2
  12. package/artifacts/src/messaging/TokenMessagingAlt.sol/TokenMessagingAlt.json +1907 -0
  13. package/artifacts/src/mocks/tip20/TIP20.sol/TIP20.json +1253 -0
  14. package/artifacts/src/mocks/tip20/TIP403Registry.sol/TIP403Registry.json +335 -0
  15. package/artifacts/src/mocks/tip20/abstracts/TIP20RolesAuth.sol/TIP20RolesAuth.json +163 -0
  16. package/artifacts/src/mocks/tip20/interfaces/ITIP403Registry.sol/ITIP403Registry.json +335 -0
  17. package/artifacts/src/peripheral/Treasurer.sol/Treasurer.json +2 -2
  18. package/artifacts/src/tip20/StargateOFTTIP20.sol/StargateOFTTIP20.json +1595 -0
  19. package/artifacts/src/usdc/StargateOFTUSDC.sol/StargateOFTUSDC.json +2 -2
  20. package/artifacts/src/usdc/StargatePoolUSDC.sol/StargatePoolUSDC.json +2 -2
  21. package/deployments/horizen-mainnet/CreditMessaging.json +1501 -0
  22. package/deployments/horizen-mainnet/FeeLibV1USDC.json +611 -0
  23. package/deployments/horizen-mainnet/OFTWrapper.json +1506 -0
  24. package/deployments/horizen-mainnet/StargateOFTUSDC.json +1978 -0
  25. package/deployments/horizen-mainnet/TokenMessaging.json +2475 -0
  26. package/deployments/horizen-mainnet/Treasurer.json +450 -0
  27. package/deployments/moderato-testnet/CreditMessaging.json +1592 -0
  28. package/deployments/moderato-testnet/FeeLibV1EURC.json +625 -0
  29. package/deployments/moderato-testnet/FeeLibV1USDC.json +625 -0
  30. package/deployments/moderato-testnet/OFTWrapper.json +1520 -0
  31. package/deployments/moderato-testnet/StargateOFTEURC.json +2023 -0
  32. package/deployments/moderato-testnet/StargateOFTUSDC.json +2023 -0
  33. package/deployments/moderato-testnet/TokenMessaging.json +2484 -0
  34. package/deployments/moderato-testnet/Treasurer.json +464 -0
  35. package/deployments/tempo-mainnet/CreditMessaging.json +1592 -0
  36. package/deployments/tempo-mainnet/FeeLibV1EURC.json +625 -0
  37. package/deployments/tempo-mainnet/FeeLibV1USDC.json +625 -0
  38. package/deployments/tempo-mainnet/OFTWrapper.json +1520 -0
  39. package/deployments/tempo-mainnet/StargateOFTEURC.json +2036 -0
  40. package/deployments/tempo-mainnet/StargateOFTUSDC.json +2036 -0
  41. package/deployments/tempo-mainnet/TokenMessaging.json +2481 -0
  42. package/deployments/tempo-mainnet/Treasurer.json +464 -0
  43. package/dist/deployed/CreditMessaging.cjs +10 -0
  44. package/dist/deployed/CreditMessaging.cjs.map +1 -1
  45. package/dist/deployed/CreditMessaging.mjs +10 -0
  46. package/dist/deployed/CreditMessaging.mjs.map +1 -1
  47. package/dist/deployed/FeeLibV1EURC.cjs +9 -3
  48. package/dist/deployed/FeeLibV1EURC.cjs.map +1 -1
  49. package/dist/deployed/FeeLibV1EURC.mjs +9 -3
  50. package/dist/deployed/FeeLibV1EURC.mjs.map +1 -1
  51. package/dist/deployed/FeeLibV1USDC.cjs +9 -0
  52. package/dist/deployed/FeeLibV1USDC.cjs.map +1 -1
  53. package/dist/deployed/FeeLibV1USDC.mjs +9 -0
  54. package/dist/deployed/FeeLibV1USDC.mjs.map +1 -1
  55. package/dist/deployed/OFTWrapper.cjs +9 -0
  56. package/dist/deployed/OFTWrapper.cjs.map +1 -1
  57. package/dist/deployed/OFTWrapper.mjs +9 -0
  58. package/dist/deployed/OFTWrapper.mjs.map +1 -1
  59. package/dist/deployed/StargateOFTEURC.cjs +11 -3
  60. package/dist/deployed/StargateOFTEURC.cjs.map +1 -1
  61. package/dist/deployed/StargateOFTEURC.mjs +11 -3
  62. package/dist/deployed/StargateOFTEURC.mjs.map +1 -1
  63. package/dist/deployed/StargateOFTUSDC-gNoY8tx0.d.mts +4995 -0
  64. package/dist/deployed/StargateOFTUSDC-gNoY8tx0.d.ts +4995 -0
  65. package/dist/deployed/StargateOFTUSDC.cjs +11 -0
  66. package/dist/deployed/StargateOFTUSDC.cjs.map +1 -1
  67. package/dist/deployed/StargateOFTUSDC.d.mts +1 -0
  68. package/dist/deployed/StargateOFTUSDC.d.ts +1 -0
  69. package/dist/deployed/StargateOFTUSDC.mjs +11 -0
  70. package/dist/deployed/StargateOFTUSDC.mjs.map +1 -1
  71. package/dist/deployed/StargateOFTUSDT-n5r6jpXt.d.mts +2492 -0
  72. package/dist/deployed/StargateOFTUSDT-n5r6jpXt.d.ts +2492 -0
  73. package/dist/deployed/StargateOFTUSDT.d.mts +1 -0
  74. package/dist/deployed/StargateOFTUSDT.d.ts +1 -0
  75. package/dist/deployed/StargatePoolETH-lOsiDbJC.d.mts +1530 -0
  76. package/dist/deployed/StargatePoolETH-lOsiDbJC.d.ts +1530 -0
  77. package/dist/deployed/StargatePoolETH.d.mts +1 -0
  78. package/dist/deployed/StargatePoolETH.d.ts +1 -0
  79. package/dist/deployed/StargatePoolEURC-D7GGCfr7.d.mts +1582 -0
  80. package/dist/deployed/StargatePoolEURC-D7GGCfr7.d.ts +1582 -0
  81. package/dist/deployed/StargatePoolEURC.d.mts +1 -0
  82. package/dist/deployed/StargatePoolEURC.d.ts +1 -0
  83. package/dist/deployed/StargatePoolMETIS-CQrZSdA7.d.mts +1519 -0
  84. package/dist/deployed/StargatePoolMETIS-CQrZSdA7.d.ts +1519 -0
  85. package/dist/deployed/StargatePoolMETIS.d.mts +1 -0
  86. package/dist/deployed/StargatePoolMETIS.d.ts +1 -0
  87. package/dist/deployed/StargatePoolNative-BKokoo5S.d.mts +1568 -0
  88. package/dist/deployed/StargatePoolNative-BKokoo5S.d.ts +1568 -0
  89. package/dist/deployed/StargatePoolNative.d.mts +1 -0
  90. package/dist/deployed/StargatePoolNative.d.ts +1 -0
  91. package/dist/deployed/StargatePoolUSDC-gP7LrAIv.d.mts +1632 -0
  92. package/dist/deployed/StargatePoolUSDC-gP7LrAIv.d.ts +1632 -0
  93. package/dist/deployed/StargatePoolUSDC.d.mts +1 -0
  94. package/dist/deployed/StargatePoolUSDC.d.ts +1 -0
  95. package/dist/deployed/StargatePoolUSDT-DkOqtwrh.d.mts +1627 -0
  96. package/dist/deployed/StargatePoolUSDT-DkOqtwrh.d.ts +1627 -0
  97. package/dist/deployed/StargatePoolUSDT.d.mts +1 -0
  98. package/dist/deployed/StargatePoolUSDT.d.ts +1 -0
  99. package/dist/deployed/StargatePoolmETH-C_R3a4-e.d.mts +1519 -0
  100. package/dist/deployed/StargatePoolmETH-C_R3a4-e.d.ts +1519 -0
  101. package/dist/deployed/StargatePoolmETH.d.mts +1 -0
  102. package/dist/deployed/StargatePoolmETH.d.ts +1 -0
  103. package/dist/deployed/StargateStaking-BL9axih_.d.mts +459 -0
  104. package/dist/deployed/StargateStaking-BL9axih_.d.ts +459 -0
  105. package/dist/deployed/StargateStaking.d.mts +1 -0
  106. package/dist/deployed/StargateStaking.d.ts +1 -0
  107. package/dist/deployed/TokenMessaging-BfnD6v53.d.mts +3174 -0
  108. package/dist/deployed/TokenMessaging-BfnD6v53.d.ts +3174 -0
  109. package/dist/deployed/TokenMessaging.cjs +10 -0
  110. package/dist/deployed/TokenMessaging.cjs.map +1 -1
  111. package/dist/deployed/TokenMessaging.d.mts +1 -0
  112. package/dist/deployed/TokenMessaging.d.ts +1 -0
  113. package/dist/deployed/TokenMessaging.mjs +10 -0
  114. package/dist/deployed/TokenMessaging.mjs.map +1 -1
  115. package/dist/deployed/Treasurer-DlA2Gv8f.d.mts +450 -0
  116. package/dist/deployed/Treasurer-DlA2Gv8f.d.ts +450 -0
  117. package/dist/deployed/Treasurer.cjs +9 -0
  118. package/dist/deployed/Treasurer.cjs.map +1 -1
  119. package/dist/deployed/Treasurer.d.mts +1 -0
  120. package/dist/deployed/Treasurer.d.ts +1 -0
  121. package/dist/deployed/Treasurer.mjs +9 -0
  122. package/dist/deployed/Treasurer.mjs.map +1 -1
  123. package/dist/deployed/USDCImpl-DN89Rpdz.d.mts +1124 -0
  124. package/dist/deployed/USDCImpl-DN89Rpdz.d.ts +1124 -0
  125. package/dist/deployed/USDCImpl.d.mts +1 -0
  126. package/dist/deployed/USDCImpl.d.ts +1 -0
  127. package/dist/deployed/USDCProxy-BsrYumZv.d.mts +141 -0
  128. package/dist/deployed/USDCProxy-BsrYumZv.d.ts +141 -0
  129. package/dist/deployed/USDCProxy.d.mts +1 -0
  130. package/dist/deployed/USDCProxy.d.ts +1 -0
  131. package/dist/deployed/USDCSignatureLib-W2-GjRxG.d.mts +73 -0
  132. package/dist/deployed/USDCSignatureLib-W2-GjRxG.d.ts +73 -0
  133. package/dist/deployed/USDCSignatureLib.d.mts +1 -0
  134. package/dist/deployed/USDCSignatureLib.d.ts +1 -0
  135. package/dist/deployed/USDT-DVAQjDdu.d.mts +690 -0
  136. package/dist/deployed/USDT-DVAQjDdu.d.ts +690 -0
  137. package/dist/deployed/USDT.d.mts +1 -0
  138. package/dist/deployed/USDT.d.ts +1 -0
  139. package/dist/deployed/contracts-CwDH7mzf.d.mts +68 -0
  140. package/dist/deployed/contracts-Yg5JhOts.d.ts +68 -0
  141. package/dist/deployed/contracts.cjs +119 -47
  142. package/dist/deployed/contracts.cjs.map +1 -1
  143. package/dist/deployed/contracts.d.mts +31 -0
  144. package/dist/deployed/contracts.d.ts +31 -0
  145. package/dist/deployed/contracts.mjs +119 -47
  146. package/dist/deployed/contracts.mjs.map +1 -1
  147. package/dist/deployed/index.cjs +119 -47
  148. package/dist/deployed/index.cjs.map +1 -1
  149. package/dist/deployed/index.d.mts +36 -0
  150. package/dist/deployed/index.d.ts +36 -0
  151. package/dist/deployed/index.mjs +119 -47
  152. package/dist/deployed/index.mjs.map +1 -1
  153. package/dist/index.cjs +43 -2
  154. package/dist/index.cjs.map +1 -1
  155. package/dist/index.d.mts +49 -2
  156. package/dist/index.d.ts +49 -2
  157. package/dist/index.mjs +43 -2
  158. package/dist/index.mjs.map +1 -1
  159. package/package.json +2 -2
@@ -0,0 +1,1907 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "TokenMessagingAlt",
4
+ "sourceName": "src/messaging/TokenMessagingAlt.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_endpoint",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_owner",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "uint16",
20
+ "name": "_queueCapacity",
21
+ "type": "uint16"
22
+ }
23
+ ],
24
+ "stateMutability": "nonpayable",
25
+ "type": "constructor"
26
+ },
27
+ {
28
+ "inputs": [],
29
+ "name": "BusCodec_InvalidBusBytesLength",
30
+ "type": "error"
31
+ },
32
+ {
33
+ "inputs": [],
34
+ "name": "BusCodec_InvalidMessage",
35
+ "type": "error"
36
+ },
37
+ {
38
+ "inputs": [],
39
+ "name": "BusCodec_InvalidPassengersBytesLength",
40
+ "type": "error"
41
+ },
42
+ {
43
+ "inputs": [
44
+ {
45
+ "internalType": "bool",
46
+ "name": "nativeDrop",
47
+ "type": "bool"
48
+ }
49
+ ],
50
+ "name": "Bus_InvalidFare",
51
+ "type": "error"
52
+ },
53
+ {
54
+ "inputs": [
55
+ {
56
+ "internalType": "uint8",
57
+ "name": "numPassengers",
58
+ "type": "uint8"
59
+ }
60
+ ],
61
+ "name": "Bus_InvalidNumPassengers",
62
+ "type": "error"
63
+ },
64
+ {
65
+ "inputs": [],
66
+ "name": "Bus_InvalidPassenger",
67
+ "type": "error"
68
+ },
69
+ {
70
+ "inputs": [],
71
+ "name": "Bus_QueueFull",
72
+ "type": "error"
73
+ },
74
+ {
75
+ "inputs": [],
76
+ "name": "InvalidDelegate",
77
+ "type": "error"
78
+ },
79
+ {
80
+ "inputs": [],
81
+ "name": "InvalidEndpointCall",
82
+ "type": "error"
83
+ },
84
+ {
85
+ "inputs": [
86
+ {
87
+ "internalType": "bytes",
88
+ "name": "options",
89
+ "type": "bytes"
90
+ }
91
+ ],
92
+ "name": "InvalidOptions",
93
+ "type": "error"
94
+ },
95
+ {
96
+ "inputs": [],
97
+ "name": "LzTokenUnavailable",
98
+ "type": "error"
99
+ },
100
+ {
101
+ "inputs": [],
102
+ "name": "MessagingOptions_ZeroGasLimit",
103
+ "type": "error"
104
+ },
105
+ {
106
+ "inputs": [],
107
+ "name": "Messaging_InvalidAssetId",
108
+ "type": "error"
109
+ },
110
+ {
111
+ "inputs": [],
112
+ "name": "Messaging_InvalidEid",
113
+ "type": "error"
114
+ },
115
+ {
116
+ "inputs": [],
117
+ "name": "Messaging_InvalidMsgValue",
118
+ "type": "error"
119
+ },
120
+ {
121
+ "inputs": [],
122
+ "name": "Messaging_InvalidQueueCapacity",
123
+ "type": "error"
124
+ },
125
+ {
126
+ "inputs": [],
127
+ "name": "Messaging_MaxNumPassengersExceedsQueueCapacity",
128
+ "type": "error"
129
+ },
130
+ {
131
+ "inputs": [],
132
+ "name": "Messaging_NotEnoughPassengers",
133
+ "type": "error"
134
+ },
135
+ {
136
+ "inputs": [],
137
+ "name": "Messaging_Unauthorized",
138
+ "type": "error"
139
+ },
140
+ {
141
+ "inputs": [],
142
+ "name": "Messaging_Unavailable",
143
+ "type": "error"
144
+ },
145
+ {
146
+ "inputs": [
147
+ {
148
+ "internalType": "uint32",
149
+ "name": "eid",
150
+ "type": "uint32"
151
+ }
152
+ ],
153
+ "name": "NoPeer",
154
+ "type": "error"
155
+ },
156
+ {
157
+ "inputs": [
158
+ {
159
+ "internalType": "uint256",
160
+ "name": "msgValue",
161
+ "type": "uint256"
162
+ }
163
+ ],
164
+ "name": "NotEnoughNative",
165
+ "type": "error"
166
+ },
167
+ {
168
+ "inputs": [
169
+ {
170
+ "internalType": "address",
171
+ "name": "addr",
172
+ "type": "address"
173
+ }
174
+ ],
175
+ "name": "OnlyEndpoint",
176
+ "type": "error"
177
+ },
178
+ {
179
+ "inputs": [
180
+ {
181
+ "internalType": "uint32",
182
+ "name": "eid",
183
+ "type": "uint32"
184
+ },
185
+ {
186
+ "internalType": "bytes32",
187
+ "name": "sender",
188
+ "type": "bytes32"
189
+ }
190
+ ],
191
+ "name": "OnlyPeer",
192
+ "type": "error"
193
+ },
194
+ {
195
+ "inputs": [],
196
+ "name": "OnlySelf",
197
+ "type": "error"
198
+ },
199
+ {
200
+ "inputs": [
201
+ {
202
+ "internalType": "bytes",
203
+ "name": "result",
204
+ "type": "bytes"
205
+ }
206
+ ],
207
+ "name": "SimulationResult",
208
+ "type": "error"
209
+ },
210
+ {
211
+ "inputs": [],
212
+ "name": "TaxiCodec_InvalidMessage",
213
+ "type": "error"
214
+ },
215
+ {
216
+ "inputs": [],
217
+ "name": "Transfer_ApproveFailed",
218
+ "type": "error"
219
+ },
220
+ {
221
+ "inputs": [],
222
+ "name": "Transfer_TransferFailed",
223
+ "type": "error"
224
+ },
225
+ {
226
+ "anonymous": false,
227
+ "inputs": [
228
+ {
229
+ "indexed": false,
230
+ "internalType": "address",
231
+ "name": "stargateImpl",
232
+ "type": "address"
233
+ },
234
+ {
235
+ "indexed": false,
236
+ "internalType": "uint16",
237
+ "name": "assetId",
238
+ "type": "uint16"
239
+ }
240
+ ],
241
+ "name": "AssetIdSet",
242
+ "type": "event"
243
+ },
244
+ {
245
+ "anonymous": false,
246
+ "inputs": [
247
+ {
248
+ "indexed": false,
249
+ "internalType": "uint32",
250
+ "name": "dstEid",
251
+ "type": "uint32"
252
+ },
253
+ {
254
+ "indexed": false,
255
+ "internalType": "uint72",
256
+ "name": "startTicketId",
257
+ "type": "uint72"
258
+ },
259
+ {
260
+ "indexed": false,
261
+ "internalType": "uint8",
262
+ "name": "numPassengers",
263
+ "type": "uint8"
264
+ },
265
+ {
266
+ "indexed": false,
267
+ "internalType": "bytes32",
268
+ "name": "guid",
269
+ "type": "bytes32"
270
+ }
271
+ ],
272
+ "name": "BusDriven",
273
+ "type": "event"
274
+ },
275
+ {
276
+ "anonymous": false,
277
+ "inputs": [
278
+ {
279
+ "indexed": false,
280
+ "internalType": "uint32",
281
+ "name": "dstEid",
282
+ "type": "uint32"
283
+ },
284
+ {
285
+ "indexed": false,
286
+ "internalType": "uint16",
287
+ "name": "startSlot",
288
+ "type": "uint16"
289
+ },
290
+ {
291
+ "indexed": false,
292
+ "internalType": "uint16",
293
+ "name": "endSlot",
294
+ "type": "uint16"
295
+ }
296
+ ],
297
+ "name": "BusQueueStorageInitialized",
298
+ "type": "event"
299
+ },
300
+ {
301
+ "anonymous": false,
302
+ "inputs": [
303
+ {
304
+ "indexed": false,
305
+ "internalType": "uint32",
306
+ "name": "dstEid",
307
+ "type": "uint32"
308
+ },
309
+ {
310
+ "indexed": false,
311
+ "internalType": "uint72",
312
+ "name": "ticketId",
313
+ "type": "uint72"
314
+ },
315
+ {
316
+ "indexed": false,
317
+ "internalType": "uint80",
318
+ "name": "fare",
319
+ "type": "uint80"
320
+ },
321
+ {
322
+ "indexed": false,
323
+ "internalType": "bytes",
324
+ "name": "passenger",
325
+ "type": "bytes"
326
+ }
327
+ ],
328
+ "name": "BusRode",
329
+ "type": "event"
330
+ },
331
+ {
332
+ "anonymous": false,
333
+ "inputs": [
334
+ {
335
+ "components": [
336
+ {
337
+ "internalType": "uint32",
338
+ "name": "eid",
339
+ "type": "uint32"
340
+ },
341
+ {
342
+ "internalType": "uint16",
343
+ "name": "msgType",
344
+ "type": "uint16"
345
+ },
346
+ {
347
+ "internalType": "bytes",
348
+ "name": "options",
349
+ "type": "bytes"
350
+ }
351
+ ],
352
+ "indexed": false,
353
+ "internalType": "struct EnforcedOptionParam[]",
354
+ "name": "_enforcedOptions",
355
+ "type": "tuple[]"
356
+ }
357
+ ],
358
+ "name": "EnforcedOptionSet",
359
+ "type": "event"
360
+ },
361
+ {
362
+ "anonymous": false,
363
+ "inputs": [
364
+ {
365
+ "indexed": false,
366
+ "internalType": "uint32",
367
+ "name": "dstEid",
368
+ "type": "uint32"
369
+ },
370
+ {
371
+ "indexed": false,
372
+ "internalType": "uint80",
373
+ "name": "busFare",
374
+ "type": "uint80"
375
+ },
376
+ {
377
+ "indexed": false,
378
+ "internalType": "uint80",
379
+ "name": "busAndNativeDropFare",
380
+ "type": "uint80"
381
+ }
382
+ ],
383
+ "name": "FaresSet",
384
+ "type": "event"
385
+ },
386
+ {
387
+ "anonymous": false,
388
+ "inputs": [
389
+ {
390
+ "indexed": false,
391
+ "internalType": "uint32",
392
+ "name": "eid",
393
+ "type": "uint32"
394
+ },
395
+ {
396
+ "indexed": false,
397
+ "internalType": "uint128",
398
+ "name": "gasLimit",
399
+ "type": "uint128"
400
+ },
401
+ {
402
+ "indexed": false,
403
+ "internalType": "uint128",
404
+ "name": "nativeDropGasLimit",
405
+ "type": "uint128"
406
+ }
407
+ ],
408
+ "name": "GasLimitSet",
409
+ "type": "event"
410
+ },
411
+ {
412
+ "anonymous": false,
413
+ "inputs": [
414
+ {
415
+ "indexed": false,
416
+ "internalType": "uint16",
417
+ "name": "maxAssetId",
418
+ "type": "uint16"
419
+ }
420
+ ],
421
+ "name": "MaxAssetIdSet",
422
+ "type": "event"
423
+ },
424
+ {
425
+ "anonymous": false,
426
+ "inputs": [
427
+ {
428
+ "indexed": false,
429
+ "internalType": "uint32",
430
+ "name": "dstEid",
431
+ "type": "uint32"
432
+ },
433
+ {
434
+ "indexed": false,
435
+ "internalType": "uint8",
436
+ "name": "maxNumPassengers",
437
+ "type": "uint8"
438
+ }
439
+ ],
440
+ "name": "MaxNumPassengersSet",
441
+ "type": "event"
442
+ },
443
+ {
444
+ "anonymous": false,
445
+ "inputs": [
446
+ {
447
+ "indexed": false,
448
+ "internalType": "uint32",
449
+ "name": "dstEid",
450
+ "type": "uint32"
451
+ },
452
+ {
453
+ "indexed": false,
454
+ "internalType": "uint128",
455
+ "name": "nativeDropAmount",
456
+ "type": "uint128"
457
+ }
458
+ ],
459
+ "name": "NativeDropAmountSet",
460
+ "type": "event"
461
+ },
462
+ {
463
+ "anonymous": false,
464
+ "inputs": [
465
+ {
466
+ "indexed": false,
467
+ "internalType": "address",
468
+ "name": "receiver",
469
+ "type": "address"
470
+ },
471
+ {
472
+ "indexed": false,
473
+ "internalType": "uint128",
474
+ "name": "amount",
475
+ "type": "uint128"
476
+ }
477
+ ],
478
+ "name": "NativeDropApplied",
479
+ "type": "event"
480
+ },
481
+ {
482
+ "anonymous": false,
483
+ "inputs": [
484
+ {
485
+ "indexed": false,
486
+ "internalType": "address",
487
+ "name": "receiver",
488
+ "type": "address"
489
+ },
490
+ {
491
+ "indexed": false,
492
+ "internalType": "uint128",
493
+ "name": "amount",
494
+ "type": "uint128"
495
+ }
496
+ ],
497
+ "name": "NativeDropFailed",
498
+ "type": "event"
499
+ },
500
+ {
501
+ "anonymous": false,
502
+ "inputs": [
503
+ {
504
+ "indexed": true,
505
+ "internalType": "address",
506
+ "name": "previousOwner",
507
+ "type": "address"
508
+ },
509
+ {
510
+ "indexed": true,
511
+ "internalType": "address",
512
+ "name": "newOwner",
513
+ "type": "address"
514
+ }
515
+ ],
516
+ "name": "OwnershipTransferred",
517
+ "type": "event"
518
+ },
519
+ {
520
+ "anonymous": false,
521
+ "inputs": [
522
+ {
523
+ "indexed": false,
524
+ "internalType": "uint32",
525
+ "name": "eid",
526
+ "type": "uint32"
527
+ },
528
+ {
529
+ "indexed": false,
530
+ "internalType": "bytes32",
531
+ "name": "peer",
532
+ "type": "bytes32"
533
+ }
534
+ ],
535
+ "name": "PeerSet",
536
+ "type": "event"
537
+ },
538
+ {
539
+ "anonymous": false,
540
+ "inputs": [
541
+ {
542
+ "indexed": false,
543
+ "internalType": "address",
544
+ "name": "planner",
545
+ "type": "address"
546
+ }
547
+ ],
548
+ "name": "PlannerSet",
549
+ "type": "event"
550
+ },
551
+ {
552
+ "anonymous": false,
553
+ "inputs": [
554
+ {
555
+ "indexed": false,
556
+ "internalType": "address",
557
+ "name": "preCrimeAddress",
558
+ "type": "address"
559
+ }
560
+ ],
561
+ "name": "PreCrimeSet",
562
+ "type": "event"
563
+ },
564
+ {
565
+ "inputs": [],
566
+ "name": "MSG_TYPE_BUS",
567
+ "outputs": [
568
+ {
569
+ "internalType": "uint8",
570
+ "name": "",
571
+ "type": "uint8"
572
+ }
573
+ ],
574
+ "stateMutability": "view",
575
+ "type": "function"
576
+ },
577
+ {
578
+ "inputs": [],
579
+ "name": "MSG_TYPE_TAXI",
580
+ "outputs": [
581
+ {
582
+ "internalType": "uint8",
583
+ "name": "",
584
+ "type": "uint8"
585
+ }
586
+ ],
587
+ "stateMutability": "view",
588
+ "type": "function"
589
+ },
590
+ {
591
+ "inputs": [
592
+ {
593
+ "components": [
594
+ {
595
+ "internalType": "uint32",
596
+ "name": "srcEid",
597
+ "type": "uint32"
598
+ },
599
+ {
600
+ "internalType": "bytes32",
601
+ "name": "sender",
602
+ "type": "bytes32"
603
+ },
604
+ {
605
+ "internalType": "uint64",
606
+ "name": "nonce",
607
+ "type": "uint64"
608
+ }
609
+ ],
610
+ "internalType": "struct Origin",
611
+ "name": "origin",
612
+ "type": "tuple"
613
+ }
614
+ ],
615
+ "name": "allowInitializePath",
616
+ "outputs": [
617
+ {
618
+ "internalType": "bool",
619
+ "name": "",
620
+ "type": "bool"
621
+ }
622
+ ],
623
+ "stateMutability": "view",
624
+ "type": "function"
625
+ },
626
+ {
627
+ "inputs": [
628
+ {
629
+ "internalType": "address",
630
+ "name": "stargateImpl",
631
+ "type": "address"
632
+ }
633
+ ],
634
+ "name": "assetIds",
635
+ "outputs": [
636
+ {
637
+ "internalType": "uint16",
638
+ "name": "assetId",
639
+ "type": "uint16"
640
+ }
641
+ ],
642
+ "stateMutability": "view",
643
+ "type": "function"
644
+ },
645
+ {
646
+ "inputs": [
647
+ {
648
+ "internalType": "uint32",
649
+ "name": "dstEid",
650
+ "type": "uint32"
651
+ }
652
+ ],
653
+ "name": "busQueues",
654
+ "outputs": [
655
+ {
656
+ "internalType": "uint8",
657
+ "name": "maxNumPassengers",
658
+ "type": "uint8"
659
+ },
660
+ {
661
+ "internalType": "uint80",
662
+ "name": "busFare",
663
+ "type": "uint80"
664
+ },
665
+ {
666
+ "internalType": "uint80",
667
+ "name": "busAndNativeDropFare",
668
+ "type": "uint80"
669
+ },
670
+ {
671
+ "internalType": "uint16",
672
+ "name": "qLength",
673
+ "type": "uint16"
674
+ },
675
+ {
676
+ "internalType": "uint72",
677
+ "name": "nextTicketId",
678
+ "type": "uint72"
679
+ }
680
+ ],
681
+ "stateMutability": "view",
682
+ "type": "function"
683
+ },
684
+ {
685
+ "inputs": [
686
+ {
687
+ "internalType": "uint32",
688
+ "name": "_eid",
689
+ "type": "uint32"
690
+ },
691
+ {
692
+ "internalType": "uint16",
693
+ "name": "_msgType",
694
+ "type": "uint16"
695
+ },
696
+ {
697
+ "internalType": "bytes",
698
+ "name": "_extraOptions",
699
+ "type": "bytes"
700
+ }
701
+ ],
702
+ "name": "combineOptions",
703
+ "outputs": [
704
+ {
705
+ "internalType": "bytes",
706
+ "name": "",
707
+ "type": "bytes"
708
+ }
709
+ ],
710
+ "stateMutability": "view",
711
+ "type": "function"
712
+ },
713
+ {
714
+ "inputs": [
715
+ {
716
+ "internalType": "uint32",
717
+ "name": "_dstEid",
718
+ "type": "uint32"
719
+ },
720
+ {
721
+ "internalType": "bytes",
722
+ "name": "_passengers",
723
+ "type": "bytes"
724
+ }
725
+ ],
726
+ "name": "driveBus",
727
+ "outputs": [
728
+ {
729
+ "components": [
730
+ {
731
+ "internalType": "bytes32",
732
+ "name": "guid",
733
+ "type": "bytes32"
734
+ },
735
+ {
736
+ "internalType": "uint64",
737
+ "name": "nonce",
738
+ "type": "uint64"
739
+ },
740
+ {
741
+ "components": [
742
+ {
743
+ "internalType": "uint256",
744
+ "name": "nativeFee",
745
+ "type": "uint256"
746
+ },
747
+ {
748
+ "internalType": "uint256",
749
+ "name": "lzTokenFee",
750
+ "type": "uint256"
751
+ }
752
+ ],
753
+ "internalType": "struct MessagingFee",
754
+ "name": "fee",
755
+ "type": "tuple"
756
+ }
757
+ ],
758
+ "internalType": "struct MessagingReceipt",
759
+ "name": "receipt",
760
+ "type": "tuple"
761
+ }
762
+ ],
763
+ "stateMutability": "payable",
764
+ "type": "function"
765
+ },
766
+ {
767
+ "inputs": [],
768
+ "name": "endpoint",
769
+ "outputs": [
770
+ {
771
+ "internalType": "contract ILayerZeroEndpointV2",
772
+ "name": "",
773
+ "type": "address"
774
+ }
775
+ ],
776
+ "stateMutability": "view",
777
+ "type": "function"
778
+ },
779
+ {
780
+ "inputs": [
781
+ {
782
+ "internalType": "uint32",
783
+ "name": "eid",
784
+ "type": "uint32"
785
+ },
786
+ {
787
+ "internalType": "uint16",
788
+ "name": "msgType",
789
+ "type": "uint16"
790
+ }
791
+ ],
792
+ "name": "enforcedOptions",
793
+ "outputs": [
794
+ {
795
+ "internalType": "bytes",
796
+ "name": "enforcedOption",
797
+ "type": "bytes"
798
+ }
799
+ ],
800
+ "stateMutability": "view",
801
+ "type": "function"
802
+ },
803
+ {
804
+ "inputs": [
805
+ {
806
+ "internalType": "uint32",
807
+ "name": "eid",
808
+ "type": "uint32"
809
+ }
810
+ ],
811
+ "name": "gasLimits",
812
+ "outputs": [
813
+ {
814
+ "internalType": "uint128",
815
+ "name": "gasLimit",
816
+ "type": "uint128"
817
+ },
818
+ {
819
+ "internalType": "uint128",
820
+ "name": "nativeDropGasLimit",
821
+ "type": "uint128"
822
+ }
823
+ ],
824
+ "stateMutability": "view",
825
+ "type": "function"
826
+ },
827
+ {
828
+ "inputs": [
829
+ {
830
+ "internalType": "uint32",
831
+ "name": "_dstEid",
832
+ "type": "uint32"
833
+ },
834
+ {
835
+ "internalType": "uint16",
836
+ "name": "_index",
837
+ "type": "uint16"
838
+ }
839
+ ],
840
+ "name": "getPassengerHash",
841
+ "outputs": [
842
+ {
843
+ "internalType": "bytes32",
844
+ "name": "hash",
845
+ "type": "bytes32"
846
+ }
847
+ ],
848
+ "stateMutability": "view",
849
+ "type": "function"
850
+ },
851
+ {
852
+ "inputs": [],
853
+ "name": "getTransferGasLimit",
854
+ "outputs": [
855
+ {
856
+ "internalType": "uint256",
857
+ "name": "",
858
+ "type": "uint256"
859
+ }
860
+ ],
861
+ "stateMutability": "view",
862
+ "type": "function"
863
+ },
864
+ {
865
+ "inputs": [
866
+ {
867
+ "internalType": "uint32[]",
868
+ "name": "_dstEids",
869
+ "type": "uint32[]"
870
+ },
871
+ {
872
+ "internalType": "uint16",
873
+ "name": "_startSlot",
874
+ "type": "uint16"
875
+ },
876
+ {
877
+ "internalType": "uint16",
878
+ "name": "_endSlot",
879
+ "type": "uint16"
880
+ }
881
+ ],
882
+ "name": "initializeBusQueueStorage",
883
+ "outputs": [],
884
+ "stateMutability": "nonpayable",
885
+ "type": "function"
886
+ },
887
+ {
888
+ "inputs": [
889
+ {
890
+ "components": [
891
+ {
892
+ "internalType": "uint32",
893
+ "name": "srcEid",
894
+ "type": "uint32"
895
+ },
896
+ {
897
+ "internalType": "bytes32",
898
+ "name": "sender",
899
+ "type": "bytes32"
900
+ },
901
+ {
902
+ "internalType": "uint64",
903
+ "name": "nonce",
904
+ "type": "uint64"
905
+ }
906
+ ],
907
+ "internalType": "struct Origin",
908
+ "name": "",
909
+ "type": "tuple"
910
+ },
911
+ {
912
+ "internalType": "bytes",
913
+ "name": "_message",
914
+ "type": "bytes"
915
+ },
916
+ {
917
+ "internalType": "address",
918
+ "name": "_sender",
919
+ "type": "address"
920
+ }
921
+ ],
922
+ "name": "isComposeMsgSender",
923
+ "outputs": [
924
+ {
925
+ "internalType": "bool",
926
+ "name": "",
927
+ "type": "bool"
928
+ }
929
+ ],
930
+ "stateMutability": "view",
931
+ "type": "function"
932
+ },
933
+ {
934
+ "inputs": [
935
+ {
936
+ "internalType": "uint32",
937
+ "name": "_eid",
938
+ "type": "uint32"
939
+ },
940
+ {
941
+ "internalType": "bytes32",
942
+ "name": "_peer",
943
+ "type": "bytes32"
944
+ }
945
+ ],
946
+ "name": "isPeer",
947
+ "outputs": [
948
+ {
949
+ "internalType": "bool",
950
+ "name": "",
951
+ "type": "bool"
952
+ }
953
+ ],
954
+ "stateMutability": "view",
955
+ "type": "function"
956
+ },
957
+ {
958
+ "inputs": [
959
+ {
960
+ "components": [
961
+ {
962
+ "internalType": "uint32",
963
+ "name": "srcEid",
964
+ "type": "uint32"
965
+ },
966
+ {
967
+ "internalType": "bytes32",
968
+ "name": "sender",
969
+ "type": "bytes32"
970
+ },
971
+ {
972
+ "internalType": "uint64",
973
+ "name": "nonce",
974
+ "type": "uint64"
975
+ }
976
+ ],
977
+ "internalType": "struct Origin",
978
+ "name": "_origin",
979
+ "type": "tuple"
980
+ },
981
+ {
982
+ "internalType": "bytes32",
983
+ "name": "_guid",
984
+ "type": "bytes32"
985
+ },
986
+ {
987
+ "internalType": "bytes",
988
+ "name": "_message",
989
+ "type": "bytes"
990
+ },
991
+ {
992
+ "internalType": "address",
993
+ "name": "_executor",
994
+ "type": "address"
995
+ },
996
+ {
997
+ "internalType": "bytes",
998
+ "name": "_extraData",
999
+ "type": "bytes"
1000
+ }
1001
+ ],
1002
+ "name": "lzReceive",
1003
+ "outputs": [],
1004
+ "stateMutability": "payable",
1005
+ "type": "function"
1006
+ },
1007
+ {
1008
+ "inputs": [
1009
+ {
1010
+ "components": [
1011
+ {
1012
+ "components": [
1013
+ {
1014
+ "internalType": "uint32",
1015
+ "name": "srcEid",
1016
+ "type": "uint32"
1017
+ },
1018
+ {
1019
+ "internalType": "bytes32",
1020
+ "name": "sender",
1021
+ "type": "bytes32"
1022
+ },
1023
+ {
1024
+ "internalType": "uint64",
1025
+ "name": "nonce",
1026
+ "type": "uint64"
1027
+ }
1028
+ ],
1029
+ "internalType": "struct Origin",
1030
+ "name": "origin",
1031
+ "type": "tuple"
1032
+ },
1033
+ {
1034
+ "internalType": "uint32",
1035
+ "name": "dstEid",
1036
+ "type": "uint32"
1037
+ },
1038
+ {
1039
+ "internalType": "address",
1040
+ "name": "receiver",
1041
+ "type": "address"
1042
+ },
1043
+ {
1044
+ "internalType": "bytes32",
1045
+ "name": "guid",
1046
+ "type": "bytes32"
1047
+ },
1048
+ {
1049
+ "internalType": "uint256",
1050
+ "name": "value",
1051
+ "type": "uint256"
1052
+ },
1053
+ {
1054
+ "internalType": "address",
1055
+ "name": "executor",
1056
+ "type": "address"
1057
+ },
1058
+ {
1059
+ "internalType": "bytes",
1060
+ "name": "message",
1061
+ "type": "bytes"
1062
+ },
1063
+ {
1064
+ "internalType": "bytes",
1065
+ "name": "extraData",
1066
+ "type": "bytes"
1067
+ }
1068
+ ],
1069
+ "internalType": "struct InboundPacket[]",
1070
+ "name": "_packets",
1071
+ "type": "tuple[]"
1072
+ }
1073
+ ],
1074
+ "name": "lzReceiveAndRevert",
1075
+ "outputs": [],
1076
+ "stateMutability": "payable",
1077
+ "type": "function"
1078
+ },
1079
+ {
1080
+ "inputs": [
1081
+ {
1082
+ "components": [
1083
+ {
1084
+ "internalType": "uint32",
1085
+ "name": "srcEid",
1086
+ "type": "uint32"
1087
+ },
1088
+ {
1089
+ "internalType": "bytes32",
1090
+ "name": "sender",
1091
+ "type": "bytes32"
1092
+ },
1093
+ {
1094
+ "internalType": "uint64",
1095
+ "name": "nonce",
1096
+ "type": "uint64"
1097
+ }
1098
+ ],
1099
+ "internalType": "struct Origin",
1100
+ "name": "_origin",
1101
+ "type": "tuple"
1102
+ },
1103
+ {
1104
+ "internalType": "bytes32",
1105
+ "name": "_guid",
1106
+ "type": "bytes32"
1107
+ },
1108
+ {
1109
+ "internalType": "bytes",
1110
+ "name": "_message",
1111
+ "type": "bytes"
1112
+ },
1113
+ {
1114
+ "internalType": "address",
1115
+ "name": "_executor",
1116
+ "type": "address"
1117
+ },
1118
+ {
1119
+ "internalType": "bytes",
1120
+ "name": "_extraData",
1121
+ "type": "bytes"
1122
+ }
1123
+ ],
1124
+ "name": "lzReceiveSimulate",
1125
+ "outputs": [],
1126
+ "stateMutability": "payable",
1127
+ "type": "function"
1128
+ },
1129
+ {
1130
+ "inputs": [],
1131
+ "name": "maxAssetId",
1132
+ "outputs": [
1133
+ {
1134
+ "internalType": "uint16",
1135
+ "name": "",
1136
+ "type": "uint16"
1137
+ }
1138
+ ],
1139
+ "stateMutability": "view",
1140
+ "type": "function"
1141
+ },
1142
+ {
1143
+ "inputs": [
1144
+ {
1145
+ "internalType": "uint32",
1146
+ "name": "dstEid",
1147
+ "type": "uint32"
1148
+ }
1149
+ ],
1150
+ "name": "nativeDropAmounts",
1151
+ "outputs": [
1152
+ {
1153
+ "internalType": "uint128",
1154
+ "name": "nativeDropAmount",
1155
+ "type": "uint128"
1156
+ }
1157
+ ],
1158
+ "stateMutability": "view",
1159
+ "type": "function"
1160
+ },
1161
+ {
1162
+ "inputs": [
1163
+ {
1164
+ "internalType": "uint32",
1165
+ "name": "",
1166
+ "type": "uint32"
1167
+ },
1168
+ {
1169
+ "internalType": "bytes32",
1170
+ "name": "",
1171
+ "type": "bytes32"
1172
+ }
1173
+ ],
1174
+ "name": "nextNonce",
1175
+ "outputs": [
1176
+ {
1177
+ "internalType": "uint64",
1178
+ "name": "nonce",
1179
+ "type": "uint64"
1180
+ }
1181
+ ],
1182
+ "stateMutability": "view",
1183
+ "type": "function"
1184
+ },
1185
+ {
1186
+ "inputs": [],
1187
+ "name": "oApp",
1188
+ "outputs": [
1189
+ {
1190
+ "internalType": "address",
1191
+ "name": "",
1192
+ "type": "address"
1193
+ }
1194
+ ],
1195
+ "stateMutability": "view",
1196
+ "type": "function"
1197
+ },
1198
+ {
1199
+ "inputs": [],
1200
+ "name": "oAppVersion",
1201
+ "outputs": [
1202
+ {
1203
+ "internalType": "uint64",
1204
+ "name": "senderVersion",
1205
+ "type": "uint64"
1206
+ },
1207
+ {
1208
+ "internalType": "uint64",
1209
+ "name": "receiverVersion",
1210
+ "type": "uint64"
1211
+ }
1212
+ ],
1213
+ "stateMutability": "pure",
1214
+ "type": "function"
1215
+ },
1216
+ {
1217
+ "inputs": [],
1218
+ "name": "owner",
1219
+ "outputs": [
1220
+ {
1221
+ "internalType": "address",
1222
+ "name": "",
1223
+ "type": "address"
1224
+ }
1225
+ ],
1226
+ "stateMutability": "view",
1227
+ "type": "function"
1228
+ },
1229
+ {
1230
+ "inputs": [
1231
+ {
1232
+ "internalType": "uint32",
1233
+ "name": "eid",
1234
+ "type": "uint32"
1235
+ }
1236
+ ],
1237
+ "name": "peers",
1238
+ "outputs": [
1239
+ {
1240
+ "internalType": "bytes32",
1241
+ "name": "peer",
1242
+ "type": "bytes32"
1243
+ }
1244
+ ],
1245
+ "stateMutability": "view",
1246
+ "type": "function"
1247
+ },
1248
+ {
1249
+ "inputs": [],
1250
+ "name": "planner",
1251
+ "outputs": [
1252
+ {
1253
+ "internalType": "address",
1254
+ "name": "",
1255
+ "type": "address"
1256
+ }
1257
+ ],
1258
+ "stateMutability": "view",
1259
+ "type": "function"
1260
+ },
1261
+ {
1262
+ "inputs": [],
1263
+ "name": "preCrime",
1264
+ "outputs": [
1265
+ {
1266
+ "internalType": "address",
1267
+ "name": "",
1268
+ "type": "address"
1269
+ }
1270
+ ],
1271
+ "stateMutability": "view",
1272
+ "type": "function"
1273
+ },
1274
+ {
1275
+ "inputs": [],
1276
+ "name": "queueCapacity",
1277
+ "outputs": [
1278
+ {
1279
+ "internalType": "uint16",
1280
+ "name": "",
1281
+ "type": "uint16"
1282
+ }
1283
+ ],
1284
+ "stateMutability": "view",
1285
+ "type": "function"
1286
+ },
1287
+ {
1288
+ "inputs": [
1289
+ {
1290
+ "internalType": "uint32",
1291
+ "name": "_dstEid",
1292
+ "type": "uint32"
1293
+ },
1294
+ {
1295
+ "internalType": "bytes",
1296
+ "name": "_passengers",
1297
+ "type": "bytes"
1298
+ }
1299
+ ],
1300
+ "name": "quoteDriveBus",
1301
+ "outputs": [
1302
+ {
1303
+ "components": [
1304
+ {
1305
+ "internalType": "uint256",
1306
+ "name": "nativeFee",
1307
+ "type": "uint256"
1308
+ },
1309
+ {
1310
+ "internalType": "uint256",
1311
+ "name": "lzTokenFee",
1312
+ "type": "uint256"
1313
+ }
1314
+ ],
1315
+ "internalType": "struct MessagingFee",
1316
+ "name": "fee",
1317
+ "type": "tuple"
1318
+ }
1319
+ ],
1320
+ "stateMutability": "view",
1321
+ "type": "function"
1322
+ },
1323
+ {
1324
+ "inputs": [
1325
+ {
1326
+ "internalType": "uint32",
1327
+ "name": "_dstEid",
1328
+ "type": "uint32"
1329
+ },
1330
+ {
1331
+ "internalType": "uint8",
1332
+ "name": "_numPassengers",
1333
+ "type": "uint8"
1334
+ }
1335
+ ],
1336
+ "name": "quoteFares",
1337
+ "outputs": [
1338
+ {
1339
+ "internalType": "uint256",
1340
+ "name": "busFare",
1341
+ "type": "uint256"
1342
+ },
1343
+ {
1344
+ "internalType": "uint256",
1345
+ "name": "busAndNativeDropFare",
1346
+ "type": "uint256"
1347
+ }
1348
+ ],
1349
+ "stateMutability": "view",
1350
+ "type": "function"
1351
+ },
1352
+ {
1353
+ "inputs": [
1354
+ {
1355
+ "internalType": "uint32",
1356
+ "name": "_dstEid",
1357
+ "type": "uint32"
1358
+ },
1359
+ {
1360
+ "internalType": "bool",
1361
+ "name": "_airdrop",
1362
+ "type": "bool"
1363
+ }
1364
+ ],
1365
+ "name": "quoteRideBus",
1366
+ "outputs": [
1367
+ {
1368
+ "components": [
1369
+ {
1370
+ "internalType": "uint256",
1371
+ "name": "nativeFee",
1372
+ "type": "uint256"
1373
+ },
1374
+ {
1375
+ "internalType": "uint256",
1376
+ "name": "lzTokenFee",
1377
+ "type": "uint256"
1378
+ }
1379
+ ],
1380
+ "internalType": "struct MessagingFee",
1381
+ "name": "fee",
1382
+ "type": "tuple"
1383
+ }
1384
+ ],
1385
+ "stateMutability": "view",
1386
+ "type": "function"
1387
+ },
1388
+ {
1389
+ "inputs": [
1390
+ {
1391
+ "components": [
1392
+ {
1393
+ "internalType": "address",
1394
+ "name": "sender",
1395
+ "type": "address"
1396
+ },
1397
+ {
1398
+ "internalType": "uint32",
1399
+ "name": "dstEid",
1400
+ "type": "uint32"
1401
+ },
1402
+ {
1403
+ "internalType": "bytes32",
1404
+ "name": "receiver",
1405
+ "type": "bytes32"
1406
+ },
1407
+ {
1408
+ "internalType": "uint64",
1409
+ "name": "amountSD",
1410
+ "type": "uint64"
1411
+ },
1412
+ {
1413
+ "internalType": "bytes",
1414
+ "name": "composeMsg",
1415
+ "type": "bytes"
1416
+ },
1417
+ {
1418
+ "internalType": "bytes",
1419
+ "name": "extraOptions",
1420
+ "type": "bytes"
1421
+ }
1422
+ ],
1423
+ "internalType": "struct TaxiParams",
1424
+ "name": "_params",
1425
+ "type": "tuple"
1426
+ },
1427
+ {
1428
+ "internalType": "bool",
1429
+ "name": "_payInLzToken",
1430
+ "type": "bool"
1431
+ }
1432
+ ],
1433
+ "name": "quoteTaxi",
1434
+ "outputs": [
1435
+ {
1436
+ "components": [
1437
+ {
1438
+ "internalType": "uint256",
1439
+ "name": "nativeFee",
1440
+ "type": "uint256"
1441
+ },
1442
+ {
1443
+ "internalType": "uint256",
1444
+ "name": "lzTokenFee",
1445
+ "type": "uint256"
1446
+ }
1447
+ ],
1448
+ "internalType": "struct MessagingFee",
1449
+ "name": "fee",
1450
+ "type": "tuple"
1451
+ }
1452
+ ],
1453
+ "stateMutability": "view",
1454
+ "type": "function"
1455
+ },
1456
+ {
1457
+ "inputs": [],
1458
+ "name": "renounceOwnership",
1459
+ "outputs": [],
1460
+ "stateMutability": "nonpayable",
1461
+ "type": "function"
1462
+ },
1463
+ {
1464
+ "inputs": [
1465
+ {
1466
+ "components": [
1467
+ {
1468
+ "internalType": "address",
1469
+ "name": "sender",
1470
+ "type": "address"
1471
+ },
1472
+ {
1473
+ "internalType": "uint32",
1474
+ "name": "dstEid",
1475
+ "type": "uint32"
1476
+ },
1477
+ {
1478
+ "internalType": "bytes32",
1479
+ "name": "receiver",
1480
+ "type": "bytes32"
1481
+ },
1482
+ {
1483
+ "internalType": "uint64",
1484
+ "name": "amountSD",
1485
+ "type": "uint64"
1486
+ },
1487
+ {
1488
+ "internalType": "bool",
1489
+ "name": "nativeDrop",
1490
+ "type": "bool"
1491
+ }
1492
+ ],
1493
+ "internalType": "struct RideBusParams",
1494
+ "name": "_params",
1495
+ "type": "tuple"
1496
+ }
1497
+ ],
1498
+ "name": "rideBus",
1499
+ "outputs": [
1500
+ {
1501
+ "components": [
1502
+ {
1503
+ "internalType": "bytes32",
1504
+ "name": "guid",
1505
+ "type": "bytes32"
1506
+ },
1507
+ {
1508
+ "internalType": "uint64",
1509
+ "name": "nonce",
1510
+ "type": "uint64"
1511
+ },
1512
+ {
1513
+ "components": [
1514
+ {
1515
+ "internalType": "uint256",
1516
+ "name": "nativeFee",
1517
+ "type": "uint256"
1518
+ },
1519
+ {
1520
+ "internalType": "uint256",
1521
+ "name": "lzTokenFee",
1522
+ "type": "uint256"
1523
+ }
1524
+ ],
1525
+ "internalType": "struct MessagingFee",
1526
+ "name": "fee",
1527
+ "type": "tuple"
1528
+ }
1529
+ ],
1530
+ "internalType": "struct MessagingReceipt",
1531
+ "name": "receipt",
1532
+ "type": "tuple"
1533
+ },
1534
+ {
1535
+ "components": [
1536
+ {
1537
+ "internalType": "uint72",
1538
+ "name": "ticketId",
1539
+ "type": "uint72"
1540
+ },
1541
+ {
1542
+ "internalType": "bytes",
1543
+ "name": "passengerBytes",
1544
+ "type": "bytes"
1545
+ }
1546
+ ],
1547
+ "internalType": "struct Ticket",
1548
+ "name": "ticket",
1549
+ "type": "tuple"
1550
+ }
1551
+ ],
1552
+ "stateMutability": "nonpayable",
1553
+ "type": "function"
1554
+ },
1555
+ {
1556
+ "inputs": [
1557
+ {
1558
+ "internalType": "address",
1559
+ "name": "_stargateImpl",
1560
+ "type": "address"
1561
+ },
1562
+ {
1563
+ "internalType": "uint16",
1564
+ "name": "_assetId",
1565
+ "type": "uint16"
1566
+ }
1567
+ ],
1568
+ "name": "setAssetId",
1569
+ "outputs": [],
1570
+ "stateMutability": "nonpayable",
1571
+ "type": "function"
1572
+ },
1573
+ {
1574
+ "inputs": [
1575
+ {
1576
+ "internalType": "address",
1577
+ "name": "_delegate",
1578
+ "type": "address"
1579
+ }
1580
+ ],
1581
+ "name": "setDelegate",
1582
+ "outputs": [],
1583
+ "stateMutability": "nonpayable",
1584
+ "type": "function"
1585
+ },
1586
+ {
1587
+ "inputs": [
1588
+ {
1589
+ "components": [
1590
+ {
1591
+ "internalType": "uint32",
1592
+ "name": "eid",
1593
+ "type": "uint32"
1594
+ },
1595
+ {
1596
+ "internalType": "uint16",
1597
+ "name": "msgType",
1598
+ "type": "uint16"
1599
+ },
1600
+ {
1601
+ "internalType": "bytes",
1602
+ "name": "options",
1603
+ "type": "bytes"
1604
+ }
1605
+ ],
1606
+ "internalType": "struct EnforcedOptionParam[]",
1607
+ "name": "_enforcedOptions",
1608
+ "type": "tuple[]"
1609
+ }
1610
+ ],
1611
+ "name": "setEnforcedOptions",
1612
+ "outputs": [],
1613
+ "stateMutability": "nonpayable",
1614
+ "type": "function"
1615
+ },
1616
+ {
1617
+ "inputs": [
1618
+ {
1619
+ "internalType": "uint32",
1620
+ "name": "_dstEid",
1621
+ "type": "uint32"
1622
+ },
1623
+ {
1624
+ "internalType": "uint80",
1625
+ "name": "_busFare",
1626
+ "type": "uint80"
1627
+ },
1628
+ {
1629
+ "internalType": "uint80",
1630
+ "name": "_busAndNativeDropFare",
1631
+ "type": "uint80"
1632
+ }
1633
+ ],
1634
+ "name": "setFares",
1635
+ "outputs": [],
1636
+ "stateMutability": "nonpayable",
1637
+ "type": "function"
1638
+ },
1639
+ {
1640
+ "inputs": [
1641
+ {
1642
+ "internalType": "uint32",
1643
+ "name": "_eid",
1644
+ "type": "uint32"
1645
+ },
1646
+ {
1647
+ "internalType": "uint128",
1648
+ "name": "_gasLimit",
1649
+ "type": "uint128"
1650
+ },
1651
+ {
1652
+ "internalType": "uint128",
1653
+ "name": "_nativeDropGasLimit",
1654
+ "type": "uint128"
1655
+ }
1656
+ ],
1657
+ "name": "setGasLimit",
1658
+ "outputs": [],
1659
+ "stateMutability": "nonpayable",
1660
+ "type": "function"
1661
+ },
1662
+ {
1663
+ "inputs": [
1664
+ {
1665
+ "internalType": "uint16",
1666
+ "name": "_maxAssetId",
1667
+ "type": "uint16"
1668
+ }
1669
+ ],
1670
+ "name": "setMaxAssetId",
1671
+ "outputs": [],
1672
+ "stateMutability": "nonpayable",
1673
+ "type": "function"
1674
+ },
1675
+ {
1676
+ "inputs": [
1677
+ {
1678
+ "internalType": "uint32",
1679
+ "name": "_dstEid",
1680
+ "type": "uint32"
1681
+ },
1682
+ {
1683
+ "internalType": "uint8",
1684
+ "name": "_maxNumPassengers",
1685
+ "type": "uint8"
1686
+ }
1687
+ ],
1688
+ "name": "setMaxNumPassengers",
1689
+ "outputs": [],
1690
+ "stateMutability": "nonpayable",
1691
+ "type": "function"
1692
+ },
1693
+ {
1694
+ "inputs": [
1695
+ {
1696
+ "internalType": "uint32",
1697
+ "name": "_dstEid",
1698
+ "type": "uint32"
1699
+ },
1700
+ {
1701
+ "internalType": "uint128",
1702
+ "name": "_nativeDropAmount",
1703
+ "type": "uint128"
1704
+ }
1705
+ ],
1706
+ "name": "setNativeDropAmount",
1707
+ "outputs": [],
1708
+ "stateMutability": "nonpayable",
1709
+ "type": "function"
1710
+ },
1711
+ {
1712
+ "inputs": [
1713
+ {
1714
+ "internalType": "uint32",
1715
+ "name": "_eid",
1716
+ "type": "uint32"
1717
+ },
1718
+ {
1719
+ "internalType": "bytes32",
1720
+ "name": "_peer",
1721
+ "type": "bytes32"
1722
+ }
1723
+ ],
1724
+ "name": "setPeer",
1725
+ "outputs": [],
1726
+ "stateMutability": "nonpayable",
1727
+ "type": "function"
1728
+ },
1729
+ {
1730
+ "inputs": [
1731
+ {
1732
+ "internalType": "address",
1733
+ "name": "_planner",
1734
+ "type": "address"
1735
+ }
1736
+ ],
1737
+ "name": "setPlanner",
1738
+ "outputs": [],
1739
+ "stateMutability": "nonpayable",
1740
+ "type": "function"
1741
+ },
1742
+ {
1743
+ "inputs": [
1744
+ {
1745
+ "internalType": "address",
1746
+ "name": "_preCrime",
1747
+ "type": "address"
1748
+ }
1749
+ ],
1750
+ "name": "setPreCrime",
1751
+ "outputs": [],
1752
+ "stateMutability": "nonpayable",
1753
+ "type": "function"
1754
+ },
1755
+ {
1756
+ "inputs": [
1757
+ {
1758
+ "internalType": "uint256",
1759
+ "name": "_gasLimit",
1760
+ "type": "uint256"
1761
+ }
1762
+ ],
1763
+ "name": "setTransferGasLimit",
1764
+ "outputs": [],
1765
+ "stateMutability": "nonpayable",
1766
+ "type": "function"
1767
+ },
1768
+ {
1769
+ "inputs": [
1770
+ {
1771
+ "internalType": "uint16",
1772
+ "name": "assetId",
1773
+ "type": "uint16"
1774
+ }
1775
+ ],
1776
+ "name": "stargateImpls",
1777
+ "outputs": [
1778
+ {
1779
+ "internalType": "address",
1780
+ "name": "stargateImpl",
1781
+ "type": "address"
1782
+ }
1783
+ ],
1784
+ "stateMutability": "view",
1785
+ "type": "function"
1786
+ },
1787
+ {
1788
+ "inputs": [
1789
+ {
1790
+ "components": [
1791
+ {
1792
+ "internalType": "address",
1793
+ "name": "sender",
1794
+ "type": "address"
1795
+ },
1796
+ {
1797
+ "internalType": "uint32",
1798
+ "name": "dstEid",
1799
+ "type": "uint32"
1800
+ },
1801
+ {
1802
+ "internalType": "bytes32",
1803
+ "name": "receiver",
1804
+ "type": "bytes32"
1805
+ },
1806
+ {
1807
+ "internalType": "uint64",
1808
+ "name": "amountSD",
1809
+ "type": "uint64"
1810
+ },
1811
+ {
1812
+ "internalType": "bytes",
1813
+ "name": "composeMsg",
1814
+ "type": "bytes"
1815
+ },
1816
+ {
1817
+ "internalType": "bytes",
1818
+ "name": "extraOptions",
1819
+ "type": "bytes"
1820
+ }
1821
+ ],
1822
+ "internalType": "struct TaxiParams",
1823
+ "name": "_params",
1824
+ "type": "tuple"
1825
+ },
1826
+ {
1827
+ "components": [
1828
+ {
1829
+ "internalType": "uint256",
1830
+ "name": "nativeFee",
1831
+ "type": "uint256"
1832
+ },
1833
+ {
1834
+ "internalType": "uint256",
1835
+ "name": "lzTokenFee",
1836
+ "type": "uint256"
1837
+ }
1838
+ ],
1839
+ "internalType": "struct MessagingFee",
1840
+ "name": "_messagingFee",
1841
+ "type": "tuple"
1842
+ },
1843
+ {
1844
+ "internalType": "address",
1845
+ "name": "_refundAddress",
1846
+ "type": "address"
1847
+ }
1848
+ ],
1849
+ "name": "taxi",
1850
+ "outputs": [
1851
+ {
1852
+ "components": [
1853
+ {
1854
+ "internalType": "bytes32",
1855
+ "name": "guid",
1856
+ "type": "bytes32"
1857
+ },
1858
+ {
1859
+ "internalType": "uint64",
1860
+ "name": "nonce",
1861
+ "type": "uint64"
1862
+ },
1863
+ {
1864
+ "components": [
1865
+ {
1866
+ "internalType": "uint256",
1867
+ "name": "nativeFee",
1868
+ "type": "uint256"
1869
+ },
1870
+ {
1871
+ "internalType": "uint256",
1872
+ "name": "lzTokenFee",
1873
+ "type": "uint256"
1874
+ }
1875
+ ],
1876
+ "internalType": "struct MessagingFee",
1877
+ "name": "fee",
1878
+ "type": "tuple"
1879
+ }
1880
+ ],
1881
+ "internalType": "struct MessagingReceipt",
1882
+ "name": "receipt",
1883
+ "type": "tuple"
1884
+ }
1885
+ ],
1886
+ "stateMutability": "payable",
1887
+ "type": "function"
1888
+ },
1889
+ {
1890
+ "inputs": [
1891
+ {
1892
+ "internalType": "address",
1893
+ "name": "newOwner",
1894
+ "type": "address"
1895
+ }
1896
+ ],
1897
+ "name": "transferOwnership",
1898
+ "outputs": [],
1899
+ "stateMutability": "nonpayable",
1900
+ "type": "function"
1901
+ }
1902
+ ],
1903
+ "bytecode": "0x60e06040526108fc6001553480156200001757600080fd5b50604051620055e6380380620055e68339810160408190526200003a9162000226565b8282828282818181816200004e33620001b9565b6001600160a01b0380831660805281166200007c57604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000c457600080fd5b505af1158015620000d9573d6000803e3d6000fd5b5050505050505050505060028161ffff1610806200010d57506200010561ffff8216620100006200027a565b62ffffff1615155b156200012c576040516327f53ac760e01b815260040160405180910390fd5b8061ffff1660a08161ffff16815250506080516001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200017d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a39190620002ab565b63ffffffff1660c05250620002da945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200022157600080fd5b919050565b6000806000606084860312156200023c57600080fd5b620002478462000209565b9250620002576020850162000209565b9150604084015161ffff811681146200026f57600080fd5b809150509250925092565b600062ffffff808416806200029f57634e487b7160e01b600052601260045260246000fd5b92169190910692915050565b600060208284031215620002be57600080fd5b815163ffffffff81168114620002d357600080fd5b9392505050565b60805160a05160c05161528f620003576000396000610d5001526000818161087401528181610bc301528181610e3d0152818161104d0152818161146401528181611da901528181611ea60152611ee60152600081816104f101528181610c1a01528181611bb1015281816124500152612871015261528f6000f3fe60806040526004361061031e5760003560e01c806385afd453116101a5578063c239f1ad116100ec578063ee5ccf6a11610095578063fd6f05571161006f578063fd6f055714610af5578063fdee84ec14610b15578063ff6fb30014610b5d578063ff7bd03d14610b7057600080fd5b8063ee5ccf6a14610a35578063f2fde38b14610a55578063f8d50da614610a7557600080fd5b8063d4243885116100c6578063d4243885146109c4578063d8e8dbc7146109e4578063e4c572cc14610a1557600080fd5b8063c239f1ad1461097c578063ca5eb5e114610991578063d045a0dc146109b157600080fd5b8063917df23b1161014e578063bb0b6a5311610128578063bb0b6a531461091c578063bc70b35414610949578063bd815db01461096957600080fd5b8063917df23b146108a9578063b731ea0a146108dc578063b98bd070146108fc57600080fd5b80638da5cb5b1161017f5780638da5cb5b146108245780638f71f7dd1461084257806390fdb20c1461086257600080fd5b806385afd453146107b757806388543f0e146107e55780638c70830b1461080457600080fd5b80635e280f1111610269578063731dbe0c116102125780637d25a05e116101ec5780637d25a05e1461073b57806382413eac14610777578063826f1fb11461079757600080fd5b8063731dbe0c1461068657806375d2208c146106e65780637845ca231461070657600080fd5b80636763d689116102435780636763d689146105695780636ad9914d14610589578063715018a61461067157600080fd5b80635e280f11146104df5780635f6d9ae41461051357806364e4ac271461054957600080fd5b806332e4e363116102cb57806352ae2879116102a557806352ae28791461046f5780635535d461146104825780635a0dfe4d146104af57600080fd5b806332e4e363146103f05780633400288b1461042857806345655a161461044857600080fd5b80632b28b34e116102fc5780632b28b34e146103905780632dca2f51146103b05780633292cf02146103d057600080fd5b8063086431ec1461032357806313137d651461035957806317442b701461036e575b600080fd5b34801561032f57600080fd5b5061034361033e366004613d85565b610b90565b6040516103509190613dd8565b60405180910390f35b61036c610367366004613e1e565b610c18565b005b34801561037a57600080fd5b5060408051600181526002602082015201610350565b34801561039c57600080fd5b5061036c6103ab366004613ed7565b610d0a565b3480156103bc57600080fd5b5061036c6103cb366004613f1a565b610e33565b3480156103dc57600080fd5b506103436103eb366004613f79565b610f03565b3480156103fc57600080fd5b50600654610410906001600160a01b031681565b6040516001600160a01b039091168152602001610350565b34801561043457600080fd5b5061036c610443366004613fc7565b610f4c565b34801561045457600080fd5b5061045d600181565b60405160ff9091168152602001610350565b34801561047b57600080fd5b5030610410565b34801561048e57600080fd5b506104a261049d366004614003565b610f62565b604051610350919061407d565b3480156104bb57600080fd5b506104cf6104ca366004613fc7565b611007565b6040519015158152602001610350565b3480156104eb57600080fd5b506104107f000000000000000000000000000000000000000000000000000000000000000081565b34801561051f57600080fd5b5061041061052e366004614097565b6005602052600090815260409020546001600160a01b031681565b61055c610557366004613d85565b611026565b60405161035091906140e6565b34801561057557600080fd5b5061036c610584366004614114565b61111e565b34801561059557600080fd5b506106266105a436600461413e565b60096020526000908152604090205460ff81169069ffffffffffffffffffff61010082048116916b01000000000000000000000081049091169061ffff75010000000000000000000000000000000000000000008204169068ffffffffffffffffff770100000000000000000000000000000000000000000000009091041685565b6040805160ff96909616865269ffffffffffffffffffff9485166020870152929093169184019190915261ffff16606083015268ffffffffffffffffff16608082015260a001610350565b34801561067d57600080fd5b5061036c6111ad565b34801561069257600080fd5b506106c56106a136600461413e565b600a602052600090815260409020546fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff9091168152602001610350565b3480156106f257600080fd5b50610343610701366004614159565b6111c1565b34801561071257600080fd5b50610726610721366004613f1a565b61120b565b60408051928352602083019190915201610350565b34801561074757600080fd5b5061075e610756366004613fc7565b600092915050565b60405167ffffffffffffffff9091168152602001610350565b34801561078357600080fd5b506104cf610792366004614183565b611346565b3480156107a357600080fd5b5061036c6107b23660046141e9565b6113a7565b3480156107c357600080fd5b506107d76107d2366004614204565b61141c565b604051610350929190614216565b3480156107f157600080fd5b506001545b604051908152602001610350565b34801561081057600080fd5b5061036c61081f366004614254565b61153b565b34801561083057600080fd5b506000546001600160a01b0316610410565b34801561084e57600080fd5b5061036c61085d36600461426d565b611548565b34801561086e57600080fd5b506108967f000000000000000000000000000000000000000000000000000000000000000081565b60405161ffff9091168152602001610350565b3480156108b557600080fd5b506003546108969074010000000000000000000000000000000000000000900461ffff1681565b3480156108e857600080fd5b50600354610410906001600160a01b031681565b34801561090857600080fd5b5061036c6109173660046142ce565b61180a565b34801561092857600080fd5b506107f661093736600461413e565b60026020526000908152604090205481565b34801561095557600080fd5b506104a2610964366004614310565b611824565b61036c6109773660046142ce565b6119e5565b34801561098857600080fd5b5061045d600281565b34801561099d57600080fd5b5061036c6109ac3660046141e9565b611b71565b61036c6109bf366004613e1e565b611c10565b3480156109d057600080fd5b5061036c6109df3660046141e9565b611c58565b3480156109f057600080fd5b506108966109ff3660046141e9565b60046020526000908152604090205461ffff1681565b348015610a2157600080fd5b5061036c610a30366004614097565b611cc6565b348015610a4157600080fd5b5061036c610a50366004614371565b611d49565b348015610a6157600080fd5b5061036c610a703660046141e9565b611fe7565b348015610a8157600080fd5b50610acc610a9036600461413e565b6008602052600090815260409020546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041682565b604080516fffffffffffffffffffffffffffffffff938416815292909116602083015201610350565b348015610b0157600080fd5b5061036c610b103660046143cb565b612091565b348015610b2157600080fd5b506107f6610b30366004614003565b63ffffffff909116600090815260096020908152604080832061ffff909416835260019093019052205490565b61055c610b6b366004614405565b61212f565b348015610b7c57600080fd5b506104cf610b8b366004614466565b61217c565b604080518082019091526000808252602082015263ffffffff80851660009081526009602052604081209091610bed91907f000000000000000000000000000000000000000000000000000000000000000090879087906121b216565b9050600080610bfc87846123cd565b91509150610c0d878383600061243a565b979650505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610c81576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b60208701803590610c9b90610c96908a61413e565b612512565b14610cf257610cad602088018861413e565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610c78565b610d0187878787878787612567565b50505050505050565b6006546001600160a01b03163314610d4e576040517fc63aab2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168363ffffffff1603610db3576040517fa27dd10200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff8084166000908152600960205260409020610dd7918490849061259316565b6040805163ffffffff8516815269ffffffffffffffffffff80851660208301528316918101919091527fd2245824774f1c2de21256e9fb34d9cc4633cf72c0952a82a996e45ad4df3c70906060015b60405180910390a1505050565b610e3b612603565b7f000000000000000000000000000000000000000000000000000000000000000061ffff168160ff1610610e9b576040517f31843b5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff8083166000908152600960205260409020610ebd91839061267716565b6040805163ffffffff8416815260ff831660208201527ff9fa6c3c4dbf13c4a8348c3102ef22789aa450b81e492b853e93f9701e08958091015b60405180910390a15050565b6040805180820190915260008082526020820152600080610f23856126a6565b9092509050610f43610f3b604087016020880161413e565b83838761243a565b95945050505050565b610f54612603565b610f5e828261271d565b5050565b600760209081526000928352604080842090915290825290208054610f8690614482565b80601f0160208091040260200160405190810160405280929190818152602001828054610fb290614482565b8015610fff5780601f10610fd457610100808354040283529160200191610fff565b820191906000526020600020905b815481529060010190602001808311610fe257829003601f168201915b505050505081565b63ffffffff821660009081526002602052604090205481145b92915050565b61102e613ce0565b63ffffffff8085166000908152600960205260408120909161107791907f0000000000000000000000000000000000000000000000000000000000000000908790879061276b16565b905060008061108687846123cd565b915091506110ac8783836040518060400160405280348152602001600081525033612865565b835160208086015183516040805163ffffffff8e16815268ffffffffffffffffff9095169385019390935260ff909116838301526060830152519195507f1623f9ea59bd6f214c9571a892da012fc23534aa5906bef4ae8c5d15ee7d2d6e919081900360800190a15050509392505050565b611126612603565b63ffffffff82166000818152600a602090815260409182902080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff86169081179091558251938452908301527f5b9fac6cf74b12ad67aa143075523ab25ca781b0f611c4897b31d1500f2ae9629101610ef7565b6111b5612603565b6111bf600061293e565b565b604080518082019091526000808252602082015263ffffffff80841660009081526009602052604090206111f79184906129a616565b69ffffffffffffffffffff16815292915050565b6000808260ff1660000361124b576040517fe3a9395200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061125b602b60ff86166144fe565b67ffffffffffffffff81111561127357611273614515565b6040519080825280601f01601f19166020018201604052801561129d576020820181803683370190505b50905060006112ae60008084612a2f565b905060006112bf8787600080612a61565b90508560ff166112d2888484600061243a565b516112dd9190614573565b63ffffffff88166000908152600a60205260408120549196509061131b908990899060ff8216906fffffffffffffffffffffffffffffffff16612a61565b90508660ff1661132e898584600061243a565b516113399190614573565b9450505050509250929050565b60006113528484612d6e565b1561139b5760006113638585612dd2565b50505061ffff81166000908152600560205260409020549091506001600160a01b0380851691160361139957600191505061139f565b505b5060005b949350505050565b6113af612603565b600680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527f5767d79cd17d7554509a4dd59a5a7a9175c7e36466455d7b2fa4788228808579906020015b60405180910390a150565b611424613ce0565b604080518082019091526000815260606020820152600061144433612e77565b90506000611458604086016020870161413e565b905060008060006114f97f00000000000000000000000000000000000000000000000000000000000000008560405180608001604052808961ffff1681526020018c6040013581526020018c60600160208101906114b6919061459d565b67ffffffffffffffff1681526020016114d560a08e0160808f016145ba565b1515905263ffffffff808916600090815260096020526040902093929190612ed316565b60408051808201825268ffffffffffffffffff909416845260208401929092529089015169ffffffffffffffffffff9190911690529698969750505050505050565b611543612603565b600155565b611550612603565b8061ffff1660000361158e576040517fe447547600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035461ffff740100000000000000000000000000000000000000009091048116908216111561163757600380547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040519081527f8f1145f51954bc9512a08693182e170a57b63ca4f6acc321b87c526970f4c0179060200160405180910390a15b6001600160a01b0380831660009081526004602090815260408083205461ffff868116855260059093529220549116911681156116a85761ffff8216600090815260056020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b6001600160a01b038116156116f6576001600160a01b038116600090815260046020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001690555b6001600160a01b0384166117425761ffff8316600090815260056020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556117bf565b6001600160a01b038416600081815260046020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff891690811790915583526005909152902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690911790555b604080516001600160a01b038616815261ffff851660208201527fac53470cf8e9e3d673caa7d47cd7db36c0d38cf37fc147c70c92bc0c1c4734f5910160405180910390a150505050565b611812612603565b610f5e61181f828461467a565b6130b8565b63ffffffff8416600090815260076020908152604080832061ffff8716845290915281208054606092919061185890614482565b80601f016020809104026020016040519081016040528092919081815260200182805461188490614482565b80156118d15780601f106118a6576101008083540402835291602001916118d1565b820191906000526020600020905b8154815290600101906020018083116118b457829003601f168201915b5050505050905080516000036119215783838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092945061139f9350505050565b600083900361193157905061139f565b600283106119af5761197884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506131bf92505050565b806119868460028188614790565b604051602001611998939291906147ba565b60405160208183030381529060405291505061139f565b83836040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610c7892919061480d565b60005b81811015611ad75736838383818110611a0357611a03614821565b9050602002810190611a159190614850565b9050611a31611a27602083018361413e565b6020830135611007565b611a3b5750611acf565b3063d045a0dc60c08301358360a0810135611a5a61010083018361488e565b611a6b610100890160e08a016141e9565b611a796101208a018a61488e565b6040518963ffffffff1660e01b8152600401611a9b9796959493929190614931565b6000604051808303818588803b158015611ab457600080fd5b505af1158015611ac8573d6000803e3d6000fd5b5050505050505b6001016119e8565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015611b16573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b3e9190810190614988565b6040517f8351eea7000000000000000000000000000000000000000000000000000000008152600401610c78919061407d565b611b79612603565b6040517fca5eb5e10000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015611bf557600080fd5b505af1158015611c09573d6000803e3d6000fd5b5050505050565b333014611c49576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0187878787878787610cf2565b611c60612603565b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001611411565b611cce612603565b600380547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040519081527f8f1145f51954bc9512a08693182e170a57b63ca4f6acc321b87c526970f4c01790602001611411565b611d51612603565b60005b83811015611c0957600060096000878785818110611d7457611d74614821565b9050602002016020810190611d89919061413e565b63ffffffff1681526020810191909152604001600020805490915061ffff7f0000000000000000000000000000000000000000000000000000000000000000811691611e169175010000000000000000000000000000000000000000008204169068ffffffffffffffffff77010000000000000000000000000000000000000000000000909104166149f6565b68ffffffffffffffffff161115611e2d5750611fdf565b8054600090611e7f907501000000000000000000000000000000000000000000810461ffff169077010000000000000000000000000000000000000000000000900468ffffffffffffffffff166149f6565b905060008161ffff168661ffff161015611e995781611e9b565b855b90506000611eca60017f0000000000000000000000000000000000000000000000000000000000000000614a1f565b61ffff168661ffff161015611edf5785611f0a565b611f0a60017f0000000000000000000000000000000000000000000000000000000000000000614a1f565b9050815b8161ffff168161ffff1611611f675761ffff8116600090815260018601602052604090207f4600000000000000000000000000000000000000000000000000000000000000905580611f5f81614a3a565b915050611f0e565b507f68ae5a72b18bd3a6fbbc56d3cddb8a1c567b1d6ad4e705dd0b9295de05262bf4898987818110611f9b57611f9b614821565b9050602002016020810190611fb0919061413e565b6040805163ffffffff909216825261ffff808616602084015284169082015260600160405180910390a1505050505b600101611d54565b611fef612603565b6001600160a01b038116612085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610c78565b61208e8161293e565b50565b612099612603565b6040805180820182526fffffffffffffffffffffffffffffffff848116808352848216602080850182815263ffffffff8a16600081815260088452889020965191518616700100000000000000000000000000000000029190951617909455845192835292820152918201527fff958b7fbea293188b750425e92bd9c7a646f9063b9fc7722ae861802a7a1fe790606001610e26565b612137613ce0565b600080612143866126a6565b909250905061217261215b604088016020890161413e565b838361216c368a90038a018a614a5b565b88612865565b9695505050505050565b6000602082018035906002908390612194908661413e565b63ffffffff1681526020810191909152604001600020541492915050565b60408051608081018252600080825260208201819052918101829052606080820152906121df8484613204565b905060ff811615806121f85750855460ff908116908216115b80612223575085547501000000000000000000000000000000000000000000900461ffff1660ff8216115b1561225f576040517fc5ad74c700000000000000000000000000000000000000000000000000000000815260ff82166004820152602401610c78565b855477010000000000000000000000000000000000000000000000900468ffffffffffffffffff16600081156122cd578760010160008861ffff166001856122a79190614a8d565b6122b19190614aaf565b61ffff1661ffff168152602001908152602001600020546122d0565b60005b90506000806122e088888561325c565b9092509050600060016122f660ff8816876149f6565b6123009190614a8d565b905060018b01600061231661ffff8d1684614aaf565b61ffff1661ffff168152602001908152602001600020548214612365576040517f5b3f67cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b68ffffffffffffffffff8516875260ff861660208089019190915260408051601f8b01839004830281018301909152898152908a908a90819084018382808284376000920191909152505050506060880152505060ff16604085015250919695505050505050565b63ffffffff82166000908152600a6020526040908190205490820151606083810151909283926fffffffffffffffffffffffffffffffff909116916124179160ff16908390612a2f565b9250612430858560200151866040015160ff1684612a61565b9150509250929050565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff16815260200161249d89612512565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b81526004016124d2929190614ad7565b6040805180830381865afa1580156124ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f439190614b9e565b63ffffffff811660009081526002602052604081205480611020576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610c78565b612571858561331a565b15612587576125828787878761336a565b610d01565b610d01878787876135ea565b82547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010069ffffffffffffffffffff938416027fffffffffffffffffffffff00000000000000000000ffffffffffffffffffffff16176b0100000000000000000000009190921602179055565b6000546001600160a01b031633146111bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c78565b81547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff91909116179055565b60608060006126b433612e77565b90506126ee6126c660208601866141e9565b8260408701356126dc6080890160608a0161459d565b6126e960808a018a61488e565b6136a6565b9250612715612703604086016020870161413e565b61271060a087018761488e565b61374b565b915050915091565b63ffffffff8216600081815260026020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b9101610ef7565b604080516080810182526000808252602082018190529181019190915260608082015261279a858585856121b2565b6020810151865460ff90911661ffff750100000000000000000000000000000000000000000068ffffffffffffffffff77010000000000000000000000000000000000000000000000808604821685019091160276ffffffffffffffffffffffffffffffffffffffffffffff85168117829004831693909303909116027fffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff90911674ffffffffffffffffffffffffffffffffffffffffff909216919091171790955550929392505050565b61286d613ce0565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016128bf8c612512565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b81526004016128fb929190614ad7565b60806040518083038185885af1158015612919573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c0d9190614bba565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000816129c5578254610100900469ffffffffffffffffffff166129e3565b82546b010000000000000000000000900469ffffffffffffffffffff165b90508069ffffffffffffffffffff16600003611020576040517f5bc181900000000000000000000000000000000000000000000000000000000081528215156004820152602401610c78565b60606002848484604051602001612a499493929190614c04565b60405160208183030381529060405290509392505050565b6060600080612a6f8761375a565b90925090506000612a9d612a9860ff89166fffffffffffffffffffffffffffffffff86166144fe565b6137ee565b90506000612ac0612a986fffffffffffffffffffffffffffffffff8816896144fe565b90506fffffffffffffffffffffffffffffffff811615612b0657612af9612a98886fffffffffffffffffffffffffffffffff86166144fe565b612b039083614c89565b91505b600080826fffffffffffffffffffffffffffffffff1611612bb9576040517f0100000000000000000000000000000000000000000000000000000000000000602082018190527e11000000000000000000000000000000000000000000000000000000000000602183015260238201527fffffffffffffffffffffffffffffffff00000000000000000000000000000000608085901b166024820152603401604051602081830303815290604052612c57565b6040517f0100000000000000000000000000000000000000000000000000000000000000602082018190527e21000000000000000000000000000000000000000000000000000000000000602183015260238201527fffffffffffffffffffffffffffffffff00000000000000000000000000000000608085811b8216602484015284901b1660348201526044016040516020818303038152906040525b63ffffffff8b16600090815260076020908152604080832060028452909152812080549293509091612c8890614482565b80601f0160208091040260200160405190810160405280929190818152602001828054612cb490614482565b8015612d015780601f10612cd657610100808354040283529160200191612d01565b820191906000526020600020905b815481529060010190602001808311612ce457829003601f168201915b505050505090506002815110612d3a578082604051602001612d24929190614cb2565b6040516020818303038152906040529650612d60565b600382604051602001612d4e929190614ce1565b60405160208183030381529060405296505b505050505050949350505050565b6000602b821015612dab576040517fde01ff2300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018383600081612dbe57612dbe614821565b919091013560f81c91909114949350505050565b600080806060612de6600360018789614790565b612def91614d2c565b60f01c9350612e02602360038789614790565b612e0b91614d74565b9250612e1b602b60238789614790565b612e2491614d92565b60c01c9150612e3685602b8189614790565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509699959850939650909450505050565b6001600160a01b03811660009081526004602052604081205461ffff1690819003612ece576040517f8b6fecb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b8354600161ffff75010000000000000000000000000000000000000000008084048216928301821681027fffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff9094169390931780885568ffffffffffffffffff7701000000000000000000000000000000000000000000000082041690920192606092600092888116929091041610612f97576040517ffa36e2ba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612fa084613894565b9150612fb98460600151886129a690919063ffffffff16565b9050600068ffffffffffffffffff841615613012578760010160008861ffff166001870368ffffffffffffffffff1681612ff557612ff5614544565b0661ffff1661ffff16815260200190815260200160002054613015565b60005b9050808360405160200161302a929190614dd8565b604051602081830303815290604052805190602001208860010160008961ffff16876130569190614aaf565b61ffff1661ffff168152602001908152602001600020819055507f15955c5a4cc61b8fbb05301bce47fd31c0e6f935e1ab97fdac9b134c887bb074868584866040516130a59493929190614dfe565b60405180910390a1509450945094915050565b60005b815181101561318f576130ea8282815181106130d9576130d9614821565b6020026020010151604001516131bf565b8181815181106130fc576130fc614821565b6020026020010151604001516007600084848151811061311e5761311e614821565b60200260200101516000015163ffffffff1663ffffffff168152602001908152602001600020600084848151811061315857613158614821565b60200260200101516020015161ffff1661ffff16815260200190815260200160002090816131869190614e90565b506001016130bb565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674816040516114119190614f50565b600281015161ffff8116600314610f5e57816040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610c78919061407d565b600081613212602b82614ff9565b15613249576040517fbcbb94ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61139f613257602b83614573565b61393a565b600081815b848110156133115736600087838861327a602b8361500d565b9261328793929190614790565b915091508382826040516020016132a093929190615020565b604051602081830303815290604052805190602001209350600082826001602b6132ca919061503a565b8181106132d9576132d9614821565b9091013560f81c60011491505080156132fa57856132f68161504d565b9650505b505050602b8161330a919061500d565b9050613261565b50935093915050565b60006021821015613357576040517fe907cd4f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028383600081612dbe57612dbe614821565b600080600061337985856139cd565b9250925092506000836fffffffffffffffffffffffffffffffff161180156133bc57506133a6828461506c565b6fffffffffffffffffffffffffffffffff163414155b156133f3576040517f07098ab800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3460005b82518160ff1610156135c1576000838260ff168151811061341a5761341a614821565b6020026020010151905060006134338260000151613b4c565b90506000613442836020015190565b90506000876fffffffffffffffffffffffffffffffff16118015613467575082606001515b156135415761348a81886fffffffffffffffffffffffffffffffff166001613ba0565b156134ed57604080516001600160a01b03831681526fffffffffffffffffffffffffffffffff891660208201819052909603957f2d0eb51492ddbee9e95192a44349b114ecfdaacebba5e8aa735b12f14ab1affa910160405180910390a1613541565b604080516001600160a01b03831681526fffffffffffffffffffffffffffffffff891660208201527f4e2061832d78c1622b4b41b221d1791733ba77cd67e86bba10b3e61194d55eb2910160405180910390a15b816001600160a01b031663434def558d8d878588604001516040518663ffffffff1660e01b8152600401613579959493929190615098565b600060405180830381600087803b15801561359357600080fd5b505af11580156135a7573d6000803e3d6000fd5b5050505050505080806135b99061504d565b9150506133f7565b5080156135e0576006546135e0906001600160a01b0316826000613bc7565b5050505050505050565b6000806000806135fa8686612dd2565b9350935093509350600061360b8490565b9050600061361886613b4c565b6040517f203bd15f0000000000000000000000000000000000000000000000000000000081529091506001600160a01b0382169063203bd15f90613668908d908d9087908a908a906004016150de565b600060405180830381600087803b15801561368257600080fd5b505af1158015613696573d6000803e3d6000fd5b5050505050505050505050505050565b60606001868686856136ee5786868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061371c92505050565b6001600160a01b038b16878760405160200161370c93929190615020565b6040516020818303038152906040525b604051602001613730959493929190615123565b60405160208183030381529060405290509695505050505050565b606061139f8460018585611824565b63ffffffff811660009081526008602090815260408083208151808301909252546fffffffffffffffffffffffffffffffff80821680845270010000000000000000000000000000000090920416928201839052928390036137e8576040517fc960f36b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50915091565b60006fffffffffffffffffffffffffffffffff821115613890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f32382062697473000000000000000000000000000000000000000000000000006064820152608401610c78565b5090565b60608160000151826020015183604001518460600151604051602001613924949392919060f09490941b7fffff000000000000000000000000000000000000000000000000000000000000168452600284019290925260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166022830152151560f81b602a820152602b0190565b6040516020818303038152906040529050919050565b600060ff821115613890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203860448201527f20626974730000000000000000000000000000000000000000000000000000006064820152608401610c78565b6000806060836021811015613a0e576040517f262c503d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613a1c601160018789614790565b613a25916151cd565b60801c9350613a38602160118789614790565b613a41916151cd565b60801c92506000602b613a5560218461503a565b613a5f9190614573565b90508067ffffffffffffffff811115613a7a57613a7a614515565b604051908082528060200260200182016040528015613acc57816020015b604080516080810182526000808252602080830182905292820181905260608201528252600019909201910181613a985790505b509250602160005b828160ff161015613b4157613b0289838a613af0602b8361500d565b92613afd93929190614790565b613c0d565b858260ff1681518110613b1757613b17614821565b6020908102919091010152613b2d602b8361500d565b915080613b398161504d565b915050613ad4565b505050509250925092565b61ffff81166000908152600560205260409020546001600160a01b031680612ece576040517f8b6fecb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008082613bae575a613bb2565b6001545b9050600080600080878986f195945050505050565b613bd2838383613ba0565b613c08576040517f7c75c3d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b604080516080810182526000808252602082018190529181018290526060810182905290613c3e6002828587614790565b613c4791614d2c565b60f01c90506000613c5c602260028688614790565b613c6591614d74565b90506000613c77602a60228789614790565b613c8091614d92565b60c01c90506000613c95602b602a888a614790565b613c9e91615213565b6040805160808101825261ffff969096168652602086019490945267ffffffffffffffff929092169284019290925260f81c6001146060830152509392505050565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001613d23604051806040016040528060008152602001600081525090565b905290565b803563ffffffff81168114612ece57600080fd5b60008083601f840112613d4e57600080fd5b50813567ffffffffffffffff811115613d6657600080fd5b602083019150836020828501011115613d7e57600080fd5b9250929050565b600080600060408486031215613d9a57600080fd5b613da384613d28565b9250602084013567ffffffffffffffff811115613dbf57600080fd5b613dcb86828701613d3c565b9497909650939450505050565b815181526020808301519082015260408101611020565b600060608284031215613e0157600080fd5b50919050565b80356001600160a01b0381168114612ece57600080fd5b600080600080600080600060e0888a031215613e3957600080fd5b613e438989613def565b965060608801359550608088013567ffffffffffffffff80821115613e6757600080fd5b613e738b838c01613d3c565b9097509550859150613e8760a08b01613e07565b945060c08a0135915080821115613e9d57600080fd5b50613eaa8a828b01613d3c565b989b979a50959850939692959293505050565b803569ffffffffffffffffffff81168114612ece57600080fd5b600080600060608486031215613eec57600080fd5b613ef584613d28565b9250613f0360208501613ebd565b9150613f1160408501613ebd565b90509250925092565b60008060408385031215613f2d57600080fd5b613f3683613d28565b9150602083013560ff81168114613f4c57600080fd5b809150509250929050565b600060c08284031215613e0157600080fd5b80358015158114612ece57600080fd5b60008060408385031215613f8c57600080fd5b823567ffffffffffffffff811115613fa357600080fd5b613faf85828601613f57565b925050613fbe60208401613f69565b90509250929050565b60008060408385031215613fda57600080fd5b613fe383613d28565b946020939093013593505050565b803561ffff81168114612ece57600080fd5b6000806040838503121561401657600080fd5b61401f83613d28565b9150613fbe60208401613ff1565b60005b83811015614048578181015183820152602001614030565b50506000910152565b6000815180845261406981602086016020860161402d565b601f01601f19169290920160200192915050565b6020815260006140906020830184614051565b9392505050565b6000602082840312156140a957600080fd5b61409082613ff1565b8051825267ffffffffffffffff60208201511660208301526040810151613c08604084018280518252602090810151910152565b6080810161102082846140b2565b80356fffffffffffffffffffffffffffffffff81168114612ece57600080fd5b6000806040838503121561412757600080fd5b61413083613d28565b9150613fbe602084016140f4565b60006020828403121561415057600080fd5b61409082613d28565b6000806040838503121561416c57600080fd5b61417583613d28565b9150613fbe60208401613f69565b60008060008060a0858703121561419957600080fd5b6141a38686613def565b9350606085013567ffffffffffffffff8111156141bf57600080fd5b6141cb87828801613d3c565b90945092506141de905060808601613e07565b905092959194509250565b6000602082840312156141fb57600080fd5b61409082613e07565b600060a08284031215613e0157600080fd5b61422081846140b2565b60a0608082015268ffffffffffffffffff82511660a082015260006020830151604060c0840152610f4360e0840182614051565b60006020828403121561426657600080fd5b5035919050565b6000806040838503121561428057600080fd5b61401f83613e07565b60008083601f84011261429b57600080fd5b50813567ffffffffffffffff8111156142b357600080fd5b6020830191508360208260051b8501011115613d7e57600080fd5b600080602083850312156142e157600080fd5b823567ffffffffffffffff8111156142f857600080fd5b61430485828601614289565b90969095509350505050565b6000806000806060858703121561432657600080fd5b61432f85613d28565b935061433d60208601613ff1565b9250604085013567ffffffffffffffff81111561435957600080fd5b61436587828801613d3c565b95989497509550505050565b6000806000806060858703121561438757600080fd5b843567ffffffffffffffff81111561439e57600080fd5b6143aa87828801614289565b90955093506143bd905060208601613ff1565b91506141de60408601613ff1565b6000806000606084860312156143e057600080fd5b6143e984613d28565b92506143f7602085016140f4565b9150613f11604085016140f4565b6000806000838503608081121561441b57600080fd5b843567ffffffffffffffff81111561443257600080fd5b61443e87828801613f57565b9450506040601f198201121561445357600080fd5b50602084019150613f1160608501613e07565b60006060828403121561447857600080fd5b6140908383613def565b600181811c9082168061449657607f821691505b602082108103613e01577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082028115828204841417611020576110206144cf565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261458257614582614544565b500490565b67ffffffffffffffff8116811461208e57600080fd5b6000602082840312156145af57600080fd5b813561409081614587565b6000602082840312156145cc57600080fd5b61409082613f69565b6040516060810167ffffffffffffffff811182821017156145f8576145f8614515565b60405290565b6040805190810167ffffffffffffffff811182821017156145f8576145f8614515565b604051601f8201601f1916810167ffffffffffffffff8111828210171561464a5761464a614515565b604052919050565b600067ffffffffffffffff82111561466c5761466c614515565b50601f01601f191660200190565b600067ffffffffffffffff8084111561469557614695614515565b8360051b60206146a6818301614621565b8681529185019181810190368411156146be57600080fd5b865b84811015614784578035868111156146d85760008081fd5b880160603682900312156146ec5760008081fd5b6146f46145d5565b6146fd82613d28565b815261470a868301613ff1565b86820152604080830135898111156147225760008081fd5b929092019136601f8401126147375760008081fd5b823561474a61474582614652565b614621565b818152368983870101111561475f5760008081fd5b818986018a8301376000918101890191909152908201528452509183019183016146c0565b50979650505050505050565b600080858511156147a057600080fd5b838611156147ad57600080fd5b5050820193919092039150565b600084516147cc81846020890161402d565b8201838582376000930192835250909392505050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b60208152600061139f6020830184866147e2565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec183360301811261488457600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126148c357600080fd5b83018035915067ffffffffffffffff8211156148de57600080fd5b602001915036819003821315613d7e57600080fd5b63ffffffff61490182613d28565b16825260208101356020830152604081013561491c81614587565b67ffffffffffffffff81166040840152505050565b61493b81896148f3565b86606082015260e06080820152600061495860e0830187896147e2565b6001600160a01b03861660a084015282810360c084015261497a8185876147e2565b9a9950505050505050505050565b60006020828403121561499a57600080fd5b815167ffffffffffffffff8111156149b157600080fd5b8201601f810184136149c257600080fd5b80516149d061474582614652565b8181528560208385010111156149e557600080fd5b610f4382602083016020860161402d565b68ffffffffffffffffff818116838216019080821115614a1857614a186144cf565b5092915050565b61ffff828116828216039080821115614a1857614a186144cf565b600061ffff808316818103614a5157614a516144cf565b6001019392505050565b600060408284031215614a6d57600080fd5b614a756145fe565b82358152602083013560208201528091505092915050565b68ffffffffffffffffff828116828216039080821115614a1857614a186144cf565b600068ffffffffffffffffff80841680614acb57614acb614544565b92169190910692915050565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a06080840152614b0d60e0840182614051565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a0850152614b488282614051565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b600060408284031215614b8057600080fd5b614b886145fe565b9050815181526020820151602082015292915050565b600060408284031215614bb057600080fd5b6140908383614b6e565b600060808284031215614bcc57600080fd5b614bd46145d5565b825181526020830151614be681614587565b6020820152614bf88460408501614b6e565b60408201529392505050565b7fff000000000000000000000000000000000000000000000000000000000000008560f81b16815260007fffffffffffffffffffffffffffffffff00000000000000000000000000000000808660801b166001840152808560801b166011840152508251614c7981602185016020870161402d565b9190910160210195945050505050565b6fffffffffffffffffffffffffffffffff818116838216019080821115614a1857614a186144cf565b60008351614cc481846020880161402d565b835190830190614cd881836020880161402d565b01949350505050565b7fffff0000000000000000000000000000000000000000000000000000000000008360f01b16815260008251614d1e81600285016020870161402d565b919091016002019392505050565b7fffff0000000000000000000000000000000000000000000000000000000000008135818116916002851015614d6c5780818660020360031b1b83161692505b505092915050565b8035602083101561102057600019602084900360031b1b1692915050565b7fffffffffffffffff0000000000000000000000000000000000000000000000008135818116916008851015614d6c5760089490940360031b84901b1690921692915050565b82815260008251614df081602085016020870161402d565b919091016020019392505050565b63ffffffff8516815268ffffffffffffffffff8416602082015269ffffffffffffffffffff831660408201526080606082015260006121726080830184614051565b601f821115613c08576000816000526020600020601f850160051c81016020861015614e695750805b601f850160051c820191505b81811015614e8857828155600101614e75565b505050505050565b815167ffffffffffffffff811115614eaa57614eaa614515565b614ebe81614eb88454614482565b84614e40565b602080601f831160018114614ef35760008415614edb5750858301515b600019600386901b1c1916600185901b178555614e88565b600085815260208120601f198616915b82811015614f2257888601518255948401946001909101908401614f03565b5085821015614f405787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015614feb578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805163ffffffff1684528781015161ffff16888501528601516060878501819052614fd781860183614051565b968901969450505090860190600101614f79565b509098975050505050505050565b60008261500857615008614544565b500690565b80820180821115611020576110206144cf565b838152818360208301376000910160200190815292915050565b81810381811115611020576110206144cf565b600060ff821660ff8103615063576150636144cf565b60010192915050565b6fffffffffffffffffffffffffffffffff818116838216028082169190828114614d6c57614d6c6144cf565b60e081016150a682886148f3565b85606083015260ff851660808301526001600160a01b03841660a083015267ffffffffffffffff831660c08301529695505050505050565b6150e881876148f3565b8460608201526001600160a01b038416608082015267ffffffffffffffff831660a082015260e060c08201526000610c0d60e0830184614051565b7fff000000000000000000000000000000000000000000000000000000000000008660f81b1681527fffff0000000000000000000000000000000000000000000000000000000000008560f01b1660018201528360038201527fffffffffffffffff0000000000000000000000000000000000000000000000008360c01b166023820152600082516151bc81602b85016020870161402d565b91909101602b019695505050505050565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008135818116916010851015614d6c5760109490940360031b84901b1690921692915050565b7fff000000000000000000000000000000000000000000000000000000000000008135818116916001851015614d6c5760019490940360031b84901b169092169291505056fea264697066735822122016a8fbde1dd1b6f6e58edb494ff44423ff0dab000f534f561eca8187cc54d5aa64736f6c63430008160033",
1904
+ "deployedBytecode": "0x60806040526004361061031e5760003560e01c806385afd453116101a5578063c239f1ad116100ec578063ee5ccf6a11610095578063fd6f05571161006f578063fd6f055714610af5578063fdee84ec14610b15578063ff6fb30014610b5d578063ff7bd03d14610b7057600080fd5b8063ee5ccf6a14610a35578063f2fde38b14610a55578063f8d50da614610a7557600080fd5b8063d4243885116100c6578063d4243885146109c4578063d8e8dbc7146109e4578063e4c572cc14610a1557600080fd5b8063c239f1ad1461097c578063ca5eb5e114610991578063d045a0dc146109b157600080fd5b8063917df23b1161014e578063bb0b6a5311610128578063bb0b6a531461091c578063bc70b35414610949578063bd815db01461096957600080fd5b8063917df23b146108a9578063b731ea0a146108dc578063b98bd070146108fc57600080fd5b80638da5cb5b1161017f5780638da5cb5b146108245780638f71f7dd1461084257806390fdb20c1461086257600080fd5b806385afd453146107b757806388543f0e146107e55780638c70830b1461080457600080fd5b80635e280f1111610269578063731dbe0c116102125780637d25a05e116101ec5780637d25a05e1461073b57806382413eac14610777578063826f1fb11461079757600080fd5b8063731dbe0c1461068657806375d2208c146106e65780637845ca231461070657600080fd5b80636763d689116102435780636763d689146105695780636ad9914d14610589578063715018a61461067157600080fd5b80635e280f11146104df5780635f6d9ae41461051357806364e4ac271461054957600080fd5b806332e4e363116102cb57806352ae2879116102a557806352ae28791461046f5780635535d461146104825780635a0dfe4d146104af57600080fd5b806332e4e363146103f05780633400288b1461042857806345655a161461044857600080fd5b80632b28b34e116102fc5780632b28b34e146103905780632dca2f51146103b05780633292cf02146103d057600080fd5b8063086431ec1461032357806313137d651461035957806317442b701461036e575b600080fd5b34801561032f57600080fd5b5061034361033e366004613d85565b610b90565b6040516103509190613dd8565b60405180910390f35b61036c610367366004613e1e565b610c18565b005b34801561037a57600080fd5b5060408051600181526002602082015201610350565b34801561039c57600080fd5b5061036c6103ab366004613ed7565b610d0a565b3480156103bc57600080fd5b5061036c6103cb366004613f1a565b610e33565b3480156103dc57600080fd5b506103436103eb366004613f79565b610f03565b3480156103fc57600080fd5b50600654610410906001600160a01b031681565b6040516001600160a01b039091168152602001610350565b34801561043457600080fd5b5061036c610443366004613fc7565b610f4c565b34801561045457600080fd5b5061045d600181565b60405160ff9091168152602001610350565b34801561047b57600080fd5b5030610410565b34801561048e57600080fd5b506104a261049d366004614003565b610f62565b604051610350919061407d565b3480156104bb57600080fd5b506104cf6104ca366004613fc7565b611007565b6040519015158152602001610350565b3480156104eb57600080fd5b506104107f000000000000000000000000000000000000000000000000000000000000000081565b34801561051f57600080fd5b5061041061052e366004614097565b6005602052600090815260409020546001600160a01b031681565b61055c610557366004613d85565b611026565b60405161035091906140e6565b34801561057557600080fd5b5061036c610584366004614114565b61111e565b34801561059557600080fd5b506106266105a436600461413e565b60096020526000908152604090205460ff81169069ffffffffffffffffffff61010082048116916b01000000000000000000000081049091169061ffff75010000000000000000000000000000000000000000008204169068ffffffffffffffffff770100000000000000000000000000000000000000000000009091041685565b6040805160ff96909616865269ffffffffffffffffffff9485166020870152929093169184019190915261ffff16606083015268ffffffffffffffffff16608082015260a001610350565b34801561067d57600080fd5b5061036c6111ad565b34801561069257600080fd5b506106c56106a136600461413e565b600a602052600090815260409020546fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff9091168152602001610350565b3480156106f257600080fd5b50610343610701366004614159565b6111c1565b34801561071257600080fd5b50610726610721366004613f1a565b61120b565b60408051928352602083019190915201610350565b34801561074757600080fd5b5061075e610756366004613fc7565b600092915050565b60405167ffffffffffffffff9091168152602001610350565b34801561078357600080fd5b506104cf610792366004614183565b611346565b3480156107a357600080fd5b5061036c6107b23660046141e9565b6113a7565b3480156107c357600080fd5b506107d76107d2366004614204565b61141c565b604051610350929190614216565b3480156107f157600080fd5b506001545b604051908152602001610350565b34801561081057600080fd5b5061036c61081f366004614254565b61153b565b34801561083057600080fd5b506000546001600160a01b0316610410565b34801561084e57600080fd5b5061036c61085d36600461426d565b611548565b34801561086e57600080fd5b506108967f000000000000000000000000000000000000000000000000000000000000000081565b60405161ffff9091168152602001610350565b3480156108b557600080fd5b506003546108969074010000000000000000000000000000000000000000900461ffff1681565b3480156108e857600080fd5b50600354610410906001600160a01b031681565b34801561090857600080fd5b5061036c6109173660046142ce565b61180a565b34801561092857600080fd5b506107f661093736600461413e565b60026020526000908152604090205481565b34801561095557600080fd5b506104a2610964366004614310565b611824565b61036c6109773660046142ce565b6119e5565b34801561098857600080fd5b5061045d600281565b34801561099d57600080fd5b5061036c6109ac3660046141e9565b611b71565b61036c6109bf366004613e1e565b611c10565b3480156109d057600080fd5b5061036c6109df3660046141e9565b611c58565b3480156109f057600080fd5b506108966109ff3660046141e9565b60046020526000908152604090205461ffff1681565b348015610a2157600080fd5b5061036c610a30366004614097565b611cc6565b348015610a4157600080fd5b5061036c610a50366004614371565b611d49565b348015610a6157600080fd5b5061036c610a703660046141e9565b611fe7565b348015610a8157600080fd5b50610acc610a9036600461413e565b6008602052600090815260409020546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041682565b604080516fffffffffffffffffffffffffffffffff938416815292909116602083015201610350565b348015610b0157600080fd5b5061036c610b103660046143cb565b612091565b348015610b2157600080fd5b506107f6610b30366004614003565b63ffffffff909116600090815260096020908152604080832061ffff909416835260019093019052205490565b61055c610b6b366004614405565b61212f565b348015610b7c57600080fd5b506104cf610b8b366004614466565b61217c565b604080518082019091526000808252602082015263ffffffff80851660009081526009602052604081209091610bed91907f000000000000000000000000000000000000000000000000000000000000000090879087906121b216565b9050600080610bfc87846123cd565b91509150610c0d878383600061243a565b979650505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610c81576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b60208701803590610c9b90610c96908a61413e565b612512565b14610cf257610cad602088018861413e565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610c78565b610d0187878787878787612567565b50505050505050565b6006546001600160a01b03163314610d4e576040517fc63aab2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168363ffffffff1603610db3576040517fa27dd10200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff8084166000908152600960205260409020610dd7918490849061259316565b6040805163ffffffff8516815269ffffffffffffffffffff80851660208301528316918101919091527fd2245824774f1c2de21256e9fb34d9cc4633cf72c0952a82a996e45ad4df3c70906060015b60405180910390a1505050565b610e3b612603565b7f000000000000000000000000000000000000000000000000000000000000000061ffff168160ff1610610e9b576040517f31843b5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff8083166000908152600960205260409020610ebd91839061267716565b6040805163ffffffff8416815260ff831660208201527ff9fa6c3c4dbf13c4a8348c3102ef22789aa450b81e492b853e93f9701e08958091015b60405180910390a15050565b6040805180820190915260008082526020820152600080610f23856126a6565b9092509050610f43610f3b604087016020880161413e565b83838761243a565b95945050505050565b610f54612603565b610f5e828261271d565b5050565b600760209081526000928352604080842090915290825290208054610f8690614482565b80601f0160208091040260200160405190810160405280929190818152602001828054610fb290614482565b8015610fff5780601f10610fd457610100808354040283529160200191610fff565b820191906000526020600020905b815481529060010190602001808311610fe257829003601f168201915b505050505081565b63ffffffff821660009081526002602052604090205481145b92915050565b61102e613ce0565b63ffffffff8085166000908152600960205260408120909161107791907f0000000000000000000000000000000000000000000000000000000000000000908790879061276b16565b905060008061108687846123cd565b915091506110ac8783836040518060400160405280348152602001600081525033612865565b835160208086015183516040805163ffffffff8e16815268ffffffffffffffffff9095169385019390935260ff909116838301526060830152519195507f1623f9ea59bd6f214c9571a892da012fc23534aa5906bef4ae8c5d15ee7d2d6e919081900360800190a15050509392505050565b611126612603565b63ffffffff82166000818152600a602090815260409182902080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff86169081179091558251938452908301527f5b9fac6cf74b12ad67aa143075523ab25ca781b0f611c4897b31d1500f2ae9629101610ef7565b6111b5612603565b6111bf600061293e565b565b604080518082019091526000808252602082015263ffffffff80841660009081526009602052604090206111f79184906129a616565b69ffffffffffffffffffff16815292915050565b6000808260ff1660000361124b576040517fe3a9395200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061125b602b60ff86166144fe565b67ffffffffffffffff81111561127357611273614515565b6040519080825280601f01601f19166020018201604052801561129d576020820181803683370190505b50905060006112ae60008084612a2f565b905060006112bf8787600080612a61565b90508560ff166112d2888484600061243a565b516112dd9190614573565b63ffffffff88166000908152600a60205260408120549196509061131b908990899060ff8216906fffffffffffffffffffffffffffffffff16612a61565b90508660ff1661132e898584600061243a565b516113399190614573565b9450505050509250929050565b60006113528484612d6e565b1561139b5760006113638585612dd2565b50505061ffff81166000908152600560205260409020549091506001600160a01b0380851691160361139957600191505061139f565b505b5060005b949350505050565b6113af612603565b600680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527f5767d79cd17d7554509a4dd59a5a7a9175c7e36466455d7b2fa4788228808579906020015b60405180910390a150565b611424613ce0565b604080518082019091526000815260606020820152600061144433612e77565b90506000611458604086016020870161413e565b905060008060006114f97f00000000000000000000000000000000000000000000000000000000000000008560405180608001604052808961ffff1681526020018c6040013581526020018c60600160208101906114b6919061459d565b67ffffffffffffffff1681526020016114d560a08e0160808f016145ba565b1515905263ffffffff808916600090815260096020526040902093929190612ed316565b60408051808201825268ffffffffffffffffff909416845260208401929092529089015169ffffffffffffffffffff9190911690529698969750505050505050565b611543612603565b600155565b611550612603565b8061ffff1660000361158e576040517fe447547600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035461ffff740100000000000000000000000000000000000000009091048116908216111561163757600380547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040519081527f8f1145f51954bc9512a08693182e170a57b63ca4f6acc321b87c526970f4c0179060200160405180910390a15b6001600160a01b0380831660009081526004602090815260408083205461ffff868116855260059093529220549116911681156116a85761ffff8216600090815260056020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b6001600160a01b038116156116f6576001600160a01b038116600090815260046020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001690555b6001600160a01b0384166117425761ffff8316600090815260056020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556117bf565b6001600160a01b038416600081815260046020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff891690811790915583526005909152902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690911790555b604080516001600160a01b038616815261ffff851660208201527fac53470cf8e9e3d673caa7d47cd7db36c0d38cf37fc147c70c92bc0c1c4734f5910160405180910390a150505050565b611812612603565b610f5e61181f828461467a565b6130b8565b63ffffffff8416600090815260076020908152604080832061ffff8716845290915281208054606092919061185890614482565b80601f016020809104026020016040519081016040528092919081815260200182805461188490614482565b80156118d15780601f106118a6576101008083540402835291602001916118d1565b820191906000526020600020905b8154815290600101906020018083116118b457829003601f168201915b5050505050905080516000036119215783838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092945061139f9350505050565b600083900361193157905061139f565b600283106119af5761197884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506131bf92505050565b806119868460028188614790565b604051602001611998939291906147ba565b60405160208183030381529060405291505061139f565b83836040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610c7892919061480d565b60005b81811015611ad75736838383818110611a0357611a03614821565b9050602002810190611a159190614850565b9050611a31611a27602083018361413e565b6020830135611007565b611a3b5750611acf565b3063d045a0dc60c08301358360a0810135611a5a61010083018361488e565b611a6b610100890160e08a016141e9565b611a796101208a018a61488e565b6040518963ffffffff1660e01b8152600401611a9b9796959493929190614931565b6000604051808303818588803b158015611ab457600080fd5b505af1158015611ac8573d6000803e3d6000fd5b5050505050505b6001016119e8565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015611b16573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b3e9190810190614988565b6040517f8351eea7000000000000000000000000000000000000000000000000000000008152600401610c78919061407d565b611b79612603565b6040517fca5eb5e10000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015611bf557600080fd5b505af1158015611c09573d6000803e3d6000fd5b5050505050565b333014611c49576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0187878787878787610cf2565b611c60612603565b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001611411565b611cce612603565b600380547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040519081527f8f1145f51954bc9512a08693182e170a57b63ca4f6acc321b87c526970f4c01790602001611411565b611d51612603565b60005b83811015611c0957600060096000878785818110611d7457611d74614821565b9050602002016020810190611d89919061413e565b63ffffffff1681526020810191909152604001600020805490915061ffff7f0000000000000000000000000000000000000000000000000000000000000000811691611e169175010000000000000000000000000000000000000000008204169068ffffffffffffffffff77010000000000000000000000000000000000000000000000909104166149f6565b68ffffffffffffffffff161115611e2d5750611fdf565b8054600090611e7f907501000000000000000000000000000000000000000000810461ffff169077010000000000000000000000000000000000000000000000900468ffffffffffffffffff166149f6565b905060008161ffff168661ffff161015611e995781611e9b565b855b90506000611eca60017f0000000000000000000000000000000000000000000000000000000000000000614a1f565b61ffff168661ffff161015611edf5785611f0a565b611f0a60017f0000000000000000000000000000000000000000000000000000000000000000614a1f565b9050815b8161ffff168161ffff1611611f675761ffff8116600090815260018601602052604090207f4600000000000000000000000000000000000000000000000000000000000000905580611f5f81614a3a565b915050611f0e565b507f68ae5a72b18bd3a6fbbc56d3cddb8a1c567b1d6ad4e705dd0b9295de05262bf4898987818110611f9b57611f9b614821565b9050602002016020810190611fb0919061413e565b6040805163ffffffff909216825261ffff808616602084015284169082015260600160405180910390a1505050505b600101611d54565b611fef612603565b6001600160a01b038116612085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610c78565b61208e8161293e565b50565b612099612603565b6040805180820182526fffffffffffffffffffffffffffffffff848116808352848216602080850182815263ffffffff8a16600081815260088452889020965191518616700100000000000000000000000000000000029190951617909455845192835292820152918201527fff958b7fbea293188b750425e92bd9c7a646f9063b9fc7722ae861802a7a1fe790606001610e26565b612137613ce0565b600080612143866126a6565b909250905061217261215b604088016020890161413e565b838361216c368a90038a018a614a5b565b88612865565b9695505050505050565b6000602082018035906002908390612194908661413e565b63ffffffff1681526020810191909152604001600020541492915050565b60408051608081018252600080825260208201819052918101829052606080820152906121df8484613204565b905060ff811615806121f85750855460ff908116908216115b80612223575085547501000000000000000000000000000000000000000000900461ffff1660ff8216115b1561225f576040517fc5ad74c700000000000000000000000000000000000000000000000000000000815260ff82166004820152602401610c78565b855477010000000000000000000000000000000000000000000000900468ffffffffffffffffff16600081156122cd578760010160008861ffff166001856122a79190614a8d565b6122b19190614aaf565b61ffff1661ffff168152602001908152602001600020546122d0565b60005b90506000806122e088888561325c565b9092509050600060016122f660ff8816876149f6565b6123009190614a8d565b905060018b01600061231661ffff8d1684614aaf565b61ffff1661ffff168152602001908152602001600020548214612365576040517f5b3f67cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b68ffffffffffffffffff8516875260ff861660208089019190915260408051601f8b01839004830281018301909152898152908a908a90819084018382808284376000920191909152505050506060880152505060ff16604085015250919695505050505050565b63ffffffff82166000908152600a6020526040908190205490820151606083810151909283926fffffffffffffffffffffffffffffffff909116916124179160ff16908390612a2f565b9250612430858560200151866040015160ff1684612a61565b9150509250929050565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff16815260200161249d89612512565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b81526004016124d2929190614ad7565b6040805180830381865afa1580156124ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f439190614b9e565b63ffffffff811660009081526002602052604081205480611020576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610c78565b612571858561331a565b15612587576125828787878761336a565b610d01565b610d01878787876135ea565b82547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010069ffffffffffffffffffff938416027fffffffffffffffffffffff00000000000000000000ffffffffffffffffffffff16176b0100000000000000000000009190921602179055565b6000546001600160a01b031633146111bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c78565b81547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff91909116179055565b60608060006126b433612e77565b90506126ee6126c660208601866141e9565b8260408701356126dc6080890160608a0161459d565b6126e960808a018a61488e565b6136a6565b9250612715612703604086016020870161413e565b61271060a087018761488e565b61374b565b915050915091565b63ffffffff8216600081815260026020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b9101610ef7565b604080516080810182526000808252602082018190529181019190915260608082015261279a858585856121b2565b6020810151865460ff90911661ffff750100000000000000000000000000000000000000000068ffffffffffffffffff77010000000000000000000000000000000000000000000000808604821685019091160276ffffffffffffffffffffffffffffffffffffffffffffff85168117829004831693909303909116027fffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff90911674ffffffffffffffffffffffffffffffffffffffffff909216919091171790955550929392505050565b61286d613ce0565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016128bf8c612512565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b81526004016128fb929190614ad7565b60806040518083038185885af1158015612919573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c0d9190614bba565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000816129c5578254610100900469ffffffffffffffffffff166129e3565b82546b010000000000000000000000900469ffffffffffffffffffff165b90508069ffffffffffffffffffff16600003611020576040517f5bc181900000000000000000000000000000000000000000000000000000000081528215156004820152602401610c78565b60606002848484604051602001612a499493929190614c04565b60405160208183030381529060405290509392505050565b6060600080612a6f8761375a565b90925090506000612a9d612a9860ff89166fffffffffffffffffffffffffffffffff86166144fe565b6137ee565b90506000612ac0612a986fffffffffffffffffffffffffffffffff8816896144fe565b90506fffffffffffffffffffffffffffffffff811615612b0657612af9612a98886fffffffffffffffffffffffffffffffff86166144fe565b612b039083614c89565b91505b600080826fffffffffffffffffffffffffffffffff1611612bb9576040517f0100000000000000000000000000000000000000000000000000000000000000602082018190527e11000000000000000000000000000000000000000000000000000000000000602183015260238201527fffffffffffffffffffffffffffffffff00000000000000000000000000000000608085901b166024820152603401604051602081830303815290604052612c57565b6040517f0100000000000000000000000000000000000000000000000000000000000000602082018190527e21000000000000000000000000000000000000000000000000000000000000602183015260238201527fffffffffffffffffffffffffffffffff00000000000000000000000000000000608085811b8216602484015284901b1660348201526044016040516020818303038152906040525b63ffffffff8b16600090815260076020908152604080832060028452909152812080549293509091612c8890614482565b80601f0160208091040260200160405190810160405280929190818152602001828054612cb490614482565b8015612d015780601f10612cd657610100808354040283529160200191612d01565b820191906000526020600020905b815481529060010190602001808311612ce457829003601f168201915b505050505090506002815110612d3a578082604051602001612d24929190614cb2565b6040516020818303038152906040529650612d60565b600382604051602001612d4e929190614ce1565b60405160208183030381529060405296505b505050505050949350505050565b6000602b821015612dab576040517fde01ff2300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018383600081612dbe57612dbe614821565b919091013560f81c91909114949350505050565b600080806060612de6600360018789614790565b612def91614d2c565b60f01c9350612e02602360038789614790565b612e0b91614d74565b9250612e1b602b60238789614790565b612e2491614d92565b60c01c9150612e3685602b8189614790565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509699959850939650909450505050565b6001600160a01b03811660009081526004602052604081205461ffff1690819003612ece576040517f8b6fecb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b8354600161ffff75010000000000000000000000000000000000000000008084048216928301821681027fffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff9094169390931780885568ffffffffffffffffff7701000000000000000000000000000000000000000000000082041690920192606092600092888116929091041610612f97576040517ffa36e2ba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612fa084613894565b9150612fb98460600151886129a690919063ffffffff16565b9050600068ffffffffffffffffff841615613012578760010160008861ffff166001870368ffffffffffffffffff1681612ff557612ff5614544565b0661ffff1661ffff16815260200190815260200160002054613015565b60005b9050808360405160200161302a929190614dd8565b604051602081830303815290604052805190602001208860010160008961ffff16876130569190614aaf565b61ffff1661ffff168152602001908152602001600020819055507f15955c5a4cc61b8fbb05301bce47fd31c0e6f935e1ab97fdac9b134c887bb074868584866040516130a59493929190614dfe565b60405180910390a1509450945094915050565b60005b815181101561318f576130ea8282815181106130d9576130d9614821565b6020026020010151604001516131bf565b8181815181106130fc576130fc614821565b6020026020010151604001516007600084848151811061311e5761311e614821565b60200260200101516000015163ffffffff1663ffffffff168152602001908152602001600020600084848151811061315857613158614821565b60200260200101516020015161ffff1661ffff16815260200190815260200160002090816131869190614e90565b506001016130bb565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674816040516114119190614f50565b600281015161ffff8116600314610f5e57816040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610c78919061407d565b600081613212602b82614ff9565b15613249576040517fbcbb94ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61139f613257602b83614573565b61393a565b600081815b848110156133115736600087838861327a602b8361500d565b9261328793929190614790565b915091508382826040516020016132a093929190615020565b604051602081830303815290604052805190602001209350600082826001602b6132ca919061503a565b8181106132d9576132d9614821565b9091013560f81c60011491505080156132fa57856132f68161504d565b9650505b505050602b8161330a919061500d565b9050613261565b50935093915050565b60006021821015613357576040517fe907cd4f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028383600081612dbe57612dbe614821565b600080600061337985856139cd565b9250925092506000836fffffffffffffffffffffffffffffffff161180156133bc57506133a6828461506c565b6fffffffffffffffffffffffffffffffff163414155b156133f3576040517f07098ab800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3460005b82518160ff1610156135c1576000838260ff168151811061341a5761341a614821565b6020026020010151905060006134338260000151613b4c565b90506000613442836020015190565b90506000876fffffffffffffffffffffffffffffffff16118015613467575082606001515b156135415761348a81886fffffffffffffffffffffffffffffffff166001613ba0565b156134ed57604080516001600160a01b03831681526fffffffffffffffffffffffffffffffff891660208201819052909603957f2d0eb51492ddbee9e95192a44349b114ecfdaacebba5e8aa735b12f14ab1affa910160405180910390a1613541565b604080516001600160a01b03831681526fffffffffffffffffffffffffffffffff891660208201527f4e2061832d78c1622b4b41b221d1791733ba77cd67e86bba10b3e61194d55eb2910160405180910390a15b816001600160a01b031663434def558d8d878588604001516040518663ffffffff1660e01b8152600401613579959493929190615098565b600060405180830381600087803b15801561359357600080fd5b505af11580156135a7573d6000803e3d6000fd5b5050505050505080806135b99061504d565b9150506133f7565b5080156135e0576006546135e0906001600160a01b0316826000613bc7565b5050505050505050565b6000806000806135fa8686612dd2565b9350935093509350600061360b8490565b9050600061361886613b4c565b6040517f203bd15f0000000000000000000000000000000000000000000000000000000081529091506001600160a01b0382169063203bd15f90613668908d908d9087908a908a906004016150de565b600060405180830381600087803b15801561368257600080fd5b505af1158015613696573d6000803e3d6000fd5b5050505050505050505050505050565b60606001868686856136ee5786868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061371c92505050565b6001600160a01b038b16878760405160200161370c93929190615020565b6040516020818303038152906040525b604051602001613730959493929190615123565b60405160208183030381529060405290509695505050505050565b606061139f8460018585611824565b63ffffffff811660009081526008602090815260408083208151808301909252546fffffffffffffffffffffffffffffffff80821680845270010000000000000000000000000000000090920416928201839052928390036137e8576040517fc960f36b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50915091565b60006fffffffffffffffffffffffffffffffff821115613890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f32382062697473000000000000000000000000000000000000000000000000006064820152608401610c78565b5090565b60608160000151826020015183604001518460600151604051602001613924949392919060f09490941b7fffff000000000000000000000000000000000000000000000000000000000000168452600284019290925260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166022830152151560f81b602a820152602b0190565b6040516020818303038152906040529050919050565b600060ff821115613890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203860448201527f20626974730000000000000000000000000000000000000000000000000000006064820152608401610c78565b6000806060836021811015613a0e576040517f262c503d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613a1c601160018789614790565b613a25916151cd565b60801c9350613a38602160118789614790565b613a41916151cd565b60801c92506000602b613a5560218461503a565b613a5f9190614573565b90508067ffffffffffffffff811115613a7a57613a7a614515565b604051908082528060200260200182016040528015613acc57816020015b604080516080810182526000808252602080830182905292820181905260608201528252600019909201910181613a985790505b509250602160005b828160ff161015613b4157613b0289838a613af0602b8361500d565b92613afd93929190614790565b613c0d565b858260ff1681518110613b1757613b17614821565b6020908102919091010152613b2d602b8361500d565b915080613b398161504d565b915050613ad4565b505050509250925092565b61ffff81166000908152600560205260409020546001600160a01b031680612ece576040517f8b6fecb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008082613bae575a613bb2565b6001545b9050600080600080878986f195945050505050565b613bd2838383613ba0565b613c08576040517f7c75c3d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b604080516080810182526000808252602082018190529181018290526060810182905290613c3e6002828587614790565b613c4791614d2c565b60f01c90506000613c5c602260028688614790565b613c6591614d74565b90506000613c77602a60228789614790565b613c8091614d92565b60c01c90506000613c95602b602a888a614790565b613c9e91615213565b6040805160808101825261ffff969096168652602086019490945267ffffffffffffffff929092169284019290925260f81c6001146060830152509392505050565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001613d23604051806040016040528060008152602001600081525090565b905290565b803563ffffffff81168114612ece57600080fd5b60008083601f840112613d4e57600080fd5b50813567ffffffffffffffff811115613d6657600080fd5b602083019150836020828501011115613d7e57600080fd5b9250929050565b600080600060408486031215613d9a57600080fd5b613da384613d28565b9250602084013567ffffffffffffffff811115613dbf57600080fd5b613dcb86828701613d3c565b9497909650939450505050565b815181526020808301519082015260408101611020565b600060608284031215613e0157600080fd5b50919050565b80356001600160a01b0381168114612ece57600080fd5b600080600080600080600060e0888a031215613e3957600080fd5b613e438989613def565b965060608801359550608088013567ffffffffffffffff80821115613e6757600080fd5b613e738b838c01613d3c565b9097509550859150613e8760a08b01613e07565b945060c08a0135915080821115613e9d57600080fd5b50613eaa8a828b01613d3c565b989b979a50959850939692959293505050565b803569ffffffffffffffffffff81168114612ece57600080fd5b600080600060608486031215613eec57600080fd5b613ef584613d28565b9250613f0360208501613ebd565b9150613f1160408501613ebd565b90509250925092565b60008060408385031215613f2d57600080fd5b613f3683613d28565b9150602083013560ff81168114613f4c57600080fd5b809150509250929050565b600060c08284031215613e0157600080fd5b80358015158114612ece57600080fd5b60008060408385031215613f8c57600080fd5b823567ffffffffffffffff811115613fa357600080fd5b613faf85828601613f57565b925050613fbe60208401613f69565b90509250929050565b60008060408385031215613fda57600080fd5b613fe383613d28565b946020939093013593505050565b803561ffff81168114612ece57600080fd5b6000806040838503121561401657600080fd5b61401f83613d28565b9150613fbe60208401613ff1565b60005b83811015614048578181015183820152602001614030565b50506000910152565b6000815180845261406981602086016020860161402d565b601f01601f19169290920160200192915050565b6020815260006140906020830184614051565b9392505050565b6000602082840312156140a957600080fd5b61409082613ff1565b8051825267ffffffffffffffff60208201511660208301526040810151613c08604084018280518252602090810151910152565b6080810161102082846140b2565b80356fffffffffffffffffffffffffffffffff81168114612ece57600080fd5b6000806040838503121561412757600080fd5b61413083613d28565b9150613fbe602084016140f4565b60006020828403121561415057600080fd5b61409082613d28565b6000806040838503121561416c57600080fd5b61417583613d28565b9150613fbe60208401613f69565b60008060008060a0858703121561419957600080fd5b6141a38686613def565b9350606085013567ffffffffffffffff8111156141bf57600080fd5b6141cb87828801613d3c565b90945092506141de905060808601613e07565b905092959194509250565b6000602082840312156141fb57600080fd5b61409082613e07565b600060a08284031215613e0157600080fd5b61422081846140b2565b60a0608082015268ffffffffffffffffff82511660a082015260006020830151604060c0840152610f4360e0840182614051565b60006020828403121561426657600080fd5b5035919050565b6000806040838503121561428057600080fd5b61401f83613e07565b60008083601f84011261429b57600080fd5b50813567ffffffffffffffff8111156142b357600080fd5b6020830191508360208260051b8501011115613d7e57600080fd5b600080602083850312156142e157600080fd5b823567ffffffffffffffff8111156142f857600080fd5b61430485828601614289565b90969095509350505050565b6000806000806060858703121561432657600080fd5b61432f85613d28565b935061433d60208601613ff1565b9250604085013567ffffffffffffffff81111561435957600080fd5b61436587828801613d3c565b95989497509550505050565b6000806000806060858703121561438757600080fd5b843567ffffffffffffffff81111561439e57600080fd5b6143aa87828801614289565b90955093506143bd905060208601613ff1565b91506141de60408601613ff1565b6000806000606084860312156143e057600080fd5b6143e984613d28565b92506143f7602085016140f4565b9150613f11604085016140f4565b6000806000838503608081121561441b57600080fd5b843567ffffffffffffffff81111561443257600080fd5b61443e87828801613f57565b9450506040601f198201121561445357600080fd5b50602084019150613f1160608501613e07565b60006060828403121561447857600080fd5b6140908383613def565b600181811c9082168061449657607f821691505b602082108103613e01577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082028115828204841417611020576110206144cf565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261458257614582614544565b500490565b67ffffffffffffffff8116811461208e57600080fd5b6000602082840312156145af57600080fd5b813561409081614587565b6000602082840312156145cc57600080fd5b61409082613f69565b6040516060810167ffffffffffffffff811182821017156145f8576145f8614515565b60405290565b6040805190810167ffffffffffffffff811182821017156145f8576145f8614515565b604051601f8201601f1916810167ffffffffffffffff8111828210171561464a5761464a614515565b604052919050565b600067ffffffffffffffff82111561466c5761466c614515565b50601f01601f191660200190565b600067ffffffffffffffff8084111561469557614695614515565b8360051b60206146a6818301614621565b8681529185019181810190368411156146be57600080fd5b865b84811015614784578035868111156146d85760008081fd5b880160603682900312156146ec5760008081fd5b6146f46145d5565b6146fd82613d28565b815261470a868301613ff1565b86820152604080830135898111156147225760008081fd5b929092019136601f8401126147375760008081fd5b823561474a61474582614652565b614621565b818152368983870101111561475f5760008081fd5b818986018a8301376000918101890191909152908201528452509183019183016146c0565b50979650505050505050565b600080858511156147a057600080fd5b838611156147ad57600080fd5b5050820193919092039150565b600084516147cc81846020890161402d565b8201838582376000930192835250909392505050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b60208152600061139f6020830184866147e2565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec183360301811261488457600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126148c357600080fd5b83018035915067ffffffffffffffff8211156148de57600080fd5b602001915036819003821315613d7e57600080fd5b63ffffffff61490182613d28565b16825260208101356020830152604081013561491c81614587565b67ffffffffffffffff81166040840152505050565b61493b81896148f3565b86606082015260e06080820152600061495860e0830187896147e2565b6001600160a01b03861660a084015282810360c084015261497a8185876147e2565b9a9950505050505050505050565b60006020828403121561499a57600080fd5b815167ffffffffffffffff8111156149b157600080fd5b8201601f810184136149c257600080fd5b80516149d061474582614652565b8181528560208385010111156149e557600080fd5b610f4382602083016020860161402d565b68ffffffffffffffffff818116838216019080821115614a1857614a186144cf565b5092915050565b61ffff828116828216039080821115614a1857614a186144cf565b600061ffff808316818103614a5157614a516144cf565b6001019392505050565b600060408284031215614a6d57600080fd5b614a756145fe565b82358152602083013560208201528091505092915050565b68ffffffffffffffffff828116828216039080821115614a1857614a186144cf565b600068ffffffffffffffffff80841680614acb57614acb614544565b92169190910692915050565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a06080840152614b0d60e0840182614051565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a0850152614b488282614051565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b600060408284031215614b8057600080fd5b614b886145fe565b9050815181526020820151602082015292915050565b600060408284031215614bb057600080fd5b6140908383614b6e565b600060808284031215614bcc57600080fd5b614bd46145d5565b825181526020830151614be681614587565b6020820152614bf88460408501614b6e565b60408201529392505050565b7fff000000000000000000000000000000000000000000000000000000000000008560f81b16815260007fffffffffffffffffffffffffffffffff00000000000000000000000000000000808660801b166001840152808560801b166011840152508251614c7981602185016020870161402d565b9190910160210195945050505050565b6fffffffffffffffffffffffffffffffff818116838216019080821115614a1857614a186144cf565b60008351614cc481846020880161402d565b835190830190614cd881836020880161402d565b01949350505050565b7fffff0000000000000000000000000000000000000000000000000000000000008360f01b16815260008251614d1e81600285016020870161402d565b919091016002019392505050565b7fffff0000000000000000000000000000000000000000000000000000000000008135818116916002851015614d6c5780818660020360031b1b83161692505b505092915050565b8035602083101561102057600019602084900360031b1b1692915050565b7fffffffffffffffff0000000000000000000000000000000000000000000000008135818116916008851015614d6c5760089490940360031b84901b1690921692915050565b82815260008251614df081602085016020870161402d565b919091016020019392505050565b63ffffffff8516815268ffffffffffffffffff8416602082015269ffffffffffffffffffff831660408201526080606082015260006121726080830184614051565b601f821115613c08576000816000526020600020601f850160051c81016020861015614e695750805b601f850160051c820191505b81811015614e8857828155600101614e75565b505050505050565b815167ffffffffffffffff811115614eaa57614eaa614515565b614ebe81614eb88454614482565b84614e40565b602080601f831160018114614ef35760008415614edb5750858301515b600019600386901b1c1916600185901b178555614e88565b600085815260208120601f198616915b82811015614f2257888601518255948401946001909101908401614f03565b5085821015614f405787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015614feb578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805163ffffffff1684528781015161ffff16888501528601516060878501819052614fd781860183614051565b968901969450505090860190600101614f79565b509098975050505050505050565b60008261500857615008614544565b500690565b80820180821115611020576110206144cf565b838152818360208301376000910160200190815292915050565b81810381811115611020576110206144cf565b600060ff821660ff8103615063576150636144cf565b60010192915050565b6fffffffffffffffffffffffffffffffff818116838216028082169190828114614d6c57614d6c6144cf565b60e081016150a682886148f3565b85606083015260ff851660808301526001600160a01b03841660a083015267ffffffffffffffff831660c08301529695505050505050565b6150e881876148f3565b8460608201526001600160a01b038416608082015267ffffffffffffffff831660a082015260e060c08201526000610c0d60e0830184614051565b7fff000000000000000000000000000000000000000000000000000000000000008660f81b1681527fffff0000000000000000000000000000000000000000000000000000000000008560f01b1660018201528360038201527fffffffffffffffff0000000000000000000000000000000000000000000000008360c01b166023820152600082516151bc81602b85016020870161402d565b91909101602b019695505050505050565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008135818116916010851015614d6c5760109490940360031b84901b1690921692915050565b7fff000000000000000000000000000000000000000000000000000000000000008135818116916001851015614d6c5760019490940360031b84901b169092169291505056fea264697066735822122016a8fbde1dd1b6f6e58edb494ff44423ff0dab000f534f561eca8187cc54d5aa64736f6c63430008160033",
1905
+ "linkReferences": {},
1906
+ "deployedLinkReferences": {}
1907
+ }