@zkpassport/sdk 0.9.0 → 0.9.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.
- package/dist/cjs/constants.cjs +10 -4
- package/dist/cjs/constants.d.cts +5 -3
- package/dist/cjs/index.cjs +731 -725
- package/dist/cjs/index.d.cts +1 -1
- package/dist/cjs/public-input-checker.cjs +61 -54
- package/dist/cjs/solidity-verifier.cjs +669 -670
- package/dist/cjs/types.d.cts +11 -2
- package/dist/esm/{chunk-BUYJZSHP.js → chunk-OOHOBXGU.js} +62 -55
- package/dist/esm/chunk-OTQ7QDA2.js +2541 -0
- package/dist/esm/chunk-VJZDMGW3.js +18 -0
- package/dist/esm/constants.d.ts +5 -3
- package/dist/esm/constants.js +7 -3
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +3 -3
- package/dist/esm/public-input-checker.js +2 -2
- package/dist/esm/solidity-verifier.js +2 -2
- package/dist/esm/types.d.ts +11 -2
- package/package.json +1 -1
- package/dist/esm/chunk-JITNXEQS.js +0 -2542
- package/dist/esm/chunk-XOQW7AOQ.js +0 -14
|
@@ -83,19 +83,12 @@ var ZKPassportVerifier_default = {
|
|
|
83
83
|
name: "enforceSanctionsRoot",
|
|
84
84
|
inputs: [
|
|
85
85
|
{
|
|
86
|
-
name: "
|
|
86
|
+
name: "commitments",
|
|
87
87
|
type: "tuple",
|
|
88
|
-
internalType: "struct
|
|
88
|
+
internalType: "struct Commitments",
|
|
89
89
|
components: [
|
|
90
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
91
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
92
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
93
90
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
94
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
95
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
96
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
97
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
98
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
91
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
99
92
|
]
|
|
100
93
|
}
|
|
101
94
|
],
|
|
@@ -107,19 +100,12 @@ var ZKPassportVerifier_default = {
|
|
|
107
100
|
name: "getBoundData",
|
|
108
101
|
inputs: [
|
|
109
102
|
{
|
|
110
|
-
name: "
|
|
103
|
+
name: "commitments",
|
|
111
104
|
type: "tuple",
|
|
112
|
-
internalType: "struct
|
|
105
|
+
internalType: "struct Commitments",
|
|
113
106
|
components: [
|
|
114
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
115
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
116
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
117
107
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
118
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
119
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
120
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
121
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
122
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
108
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
123
109
|
]
|
|
124
110
|
}
|
|
125
111
|
],
|
|
@@ -142,19 +128,12 @@ var ZKPassportVerifier_default = {
|
|
|
142
128
|
name: "getDisclosedData",
|
|
143
129
|
inputs: [
|
|
144
130
|
{
|
|
145
|
-
name: "
|
|
131
|
+
name: "commitments",
|
|
146
132
|
type: "tuple",
|
|
147
|
-
internalType: "struct
|
|
133
|
+
internalType: "struct Commitments",
|
|
148
134
|
components: [
|
|
149
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
150
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
151
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
152
135
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
153
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
154
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
155
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
156
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
157
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
136
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
158
137
|
]
|
|
159
138
|
},
|
|
160
139
|
{ name: "isIDCard", type: "bool", internalType: "bool" }
|
|
@@ -184,15 +163,19 @@ var ZKPassportVerifier_default = {
|
|
|
184
163
|
inputs: [
|
|
185
164
|
{ name: "minAge", type: "uint8", internalType: "uint8" },
|
|
186
165
|
{
|
|
187
|
-
name: "
|
|
166
|
+
name: "commitments",
|
|
188
167
|
type: "tuple",
|
|
189
|
-
internalType: "struct
|
|
168
|
+
internalType: "struct Commitments",
|
|
190
169
|
components: [
|
|
191
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
192
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
193
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
194
170
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
195
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
171
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
172
|
+
]
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
name: "serviceConfig",
|
|
176
|
+
type: "tuple",
|
|
177
|
+
internalType: "struct ServiceConfig",
|
|
178
|
+
components: [
|
|
196
179
|
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
197
180
|
{ name: "domain", type: "string", internalType: "string" },
|
|
198
181
|
{ name: "scope", type: "string", internalType: "string" },
|
|
@@ -209,15 +192,19 @@ var ZKPassportVerifier_default = {
|
|
|
209
192
|
inputs: [
|
|
210
193
|
{ name: "minAge", type: "uint8", internalType: "uint8" },
|
|
211
194
|
{
|
|
212
|
-
name: "
|
|
195
|
+
name: "commitments",
|
|
213
196
|
type: "tuple",
|
|
214
|
-
internalType: "struct
|
|
197
|
+
internalType: "struct Commitments",
|
|
215
198
|
components: [
|
|
216
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
217
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
218
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
219
199
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
220
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
200
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
201
|
+
]
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
name: "serviceConfig",
|
|
205
|
+
type: "tuple",
|
|
206
|
+
internalType: "struct ServiceConfig",
|
|
207
|
+
components: [
|
|
221
208
|
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
222
209
|
{ name: "domain", type: "string", internalType: "string" },
|
|
223
210
|
{ name: "scope", type: "string", internalType: "string" },
|
|
@@ -234,15 +221,19 @@ var ZKPassportVerifier_default = {
|
|
|
234
221
|
inputs: [
|
|
235
222
|
{ name: "maxAge", type: "uint8", internalType: "uint8" },
|
|
236
223
|
{
|
|
237
|
-
name: "
|
|
224
|
+
name: "commitments",
|
|
238
225
|
type: "tuple",
|
|
239
|
-
internalType: "struct
|
|
226
|
+
internalType: "struct Commitments",
|
|
240
227
|
components: [
|
|
241
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
242
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
243
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
244
228
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
245
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
229
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
230
|
+
]
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
name: "serviceConfig",
|
|
234
|
+
type: "tuple",
|
|
235
|
+
internalType: "struct ServiceConfig",
|
|
236
|
+
components: [
|
|
246
237
|
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
247
238
|
{ name: "domain", type: "string", internalType: "string" },
|
|
248
239
|
{ name: "scope", type: "string", internalType: "string" },
|
|
@@ -259,15 +250,19 @@ var ZKPassportVerifier_default = {
|
|
|
259
250
|
inputs: [
|
|
260
251
|
{ name: "maxAge", type: "uint8", internalType: "uint8" },
|
|
261
252
|
{
|
|
262
|
-
name: "
|
|
253
|
+
name: "commitments",
|
|
263
254
|
type: "tuple",
|
|
264
|
-
internalType: "struct
|
|
255
|
+
internalType: "struct Commitments",
|
|
265
256
|
components: [
|
|
266
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
267
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
268
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
269
257
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
270
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
258
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
259
|
+
]
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
name: "serviceConfig",
|
|
263
|
+
type: "tuple",
|
|
264
|
+
internalType: "struct ServiceConfig",
|
|
265
|
+
components: [
|
|
271
266
|
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
272
267
|
{ name: "domain", type: "string", internalType: "string" },
|
|
273
268
|
{ name: "scope", type: "string", internalType: "string" },
|
|
@@ -285,15 +280,19 @@ var ZKPassportVerifier_default = {
|
|
|
285
280
|
{ name: "minAge", type: "uint8", internalType: "uint8" },
|
|
286
281
|
{ name: "maxAge", type: "uint8", internalType: "uint8" },
|
|
287
282
|
{
|
|
288
|
-
name: "
|
|
283
|
+
name: "commitments",
|
|
289
284
|
type: "tuple",
|
|
290
|
-
internalType: "struct
|
|
285
|
+
internalType: "struct Commitments",
|
|
291
286
|
components: [
|
|
292
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
293
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
294
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
295
287
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
296
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
288
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
289
|
+
]
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
name: "serviceConfig",
|
|
293
|
+
type: "tuple",
|
|
294
|
+
internalType: "struct ServiceConfig",
|
|
295
|
+
components: [
|
|
297
296
|
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
298
297
|
{ name: "domain", type: "string", internalType: "string" },
|
|
299
298
|
{ name: "scope", type: "string", internalType: "string" },
|
|
@@ -310,15 +309,19 @@ var ZKPassportVerifier_default = {
|
|
|
310
309
|
inputs: [
|
|
311
310
|
{ name: "age", type: "uint8", internalType: "uint8" },
|
|
312
311
|
{
|
|
313
|
-
name: "
|
|
312
|
+
name: "commitments",
|
|
314
313
|
type: "tuple",
|
|
315
|
-
internalType: "struct
|
|
314
|
+
internalType: "struct Commitments",
|
|
316
315
|
components: [
|
|
317
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
318
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
319
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
320
316
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
321
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
317
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
318
|
+
]
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
name: "serviceConfig",
|
|
322
|
+
type: "tuple",
|
|
323
|
+
internalType: "struct ServiceConfig",
|
|
324
|
+
components: [
|
|
322
325
|
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
323
326
|
{ name: "domain", type: "string", internalType: "string" },
|
|
324
327
|
{ name: "scope", type: "string", internalType: "string" },
|
|
@@ -335,15 +338,19 @@ var ZKPassportVerifier_default = {
|
|
|
335
338
|
inputs: [
|
|
336
339
|
{ name: "minDate", type: "uint256", internalType: "uint256" },
|
|
337
340
|
{
|
|
338
|
-
name: "
|
|
341
|
+
name: "commitments",
|
|
339
342
|
type: "tuple",
|
|
340
|
-
internalType: "struct
|
|
343
|
+
internalType: "struct Commitments",
|
|
341
344
|
components: [
|
|
342
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
343
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
344
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
345
345
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
346
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
346
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
347
|
+
]
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
name: "serviceConfig",
|
|
351
|
+
type: "tuple",
|
|
352
|
+
internalType: "struct ServiceConfig",
|
|
353
|
+
components: [
|
|
347
354
|
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
348
355
|
{ name: "domain", type: "string", internalType: "string" },
|
|
349
356
|
{ name: "scope", type: "string", internalType: "string" },
|
|
@@ -360,15 +367,19 @@ var ZKPassportVerifier_default = {
|
|
|
360
367
|
inputs: [
|
|
361
368
|
{ name: "minDate", type: "uint256", internalType: "uint256" },
|
|
362
369
|
{
|
|
363
|
-
name: "
|
|
370
|
+
name: "commitments",
|
|
364
371
|
type: "tuple",
|
|
365
|
-
internalType: "struct
|
|
372
|
+
internalType: "struct Commitments",
|
|
366
373
|
components: [
|
|
367
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
368
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
369
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
370
374
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
371
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
375
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
376
|
+
]
|
|
377
|
+
},
|
|
378
|
+
{
|
|
379
|
+
name: "serviceConfig",
|
|
380
|
+
type: "tuple",
|
|
381
|
+
internalType: "struct ServiceConfig",
|
|
382
|
+
components: [
|
|
372
383
|
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
373
384
|
{ name: "domain", type: "string", internalType: "string" },
|
|
374
385
|
{ name: "scope", type: "string", internalType: "string" },
|
|
@@ -385,15 +396,19 @@ var ZKPassportVerifier_default = {
|
|
|
385
396
|
inputs: [
|
|
386
397
|
{ name: "maxDate", type: "uint256", internalType: "uint256" },
|
|
387
398
|
{
|
|
388
|
-
name: "
|
|
399
|
+
name: "commitments",
|
|
389
400
|
type: "tuple",
|
|
390
|
-
internalType: "struct
|
|
401
|
+
internalType: "struct Commitments",
|
|
391
402
|
components: [
|
|
392
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
393
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
394
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
395
403
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
396
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
404
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
405
|
+
]
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
name: "serviceConfig",
|
|
409
|
+
type: "tuple",
|
|
410
|
+
internalType: "struct ServiceConfig",
|
|
411
|
+
components: [
|
|
397
412
|
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
398
413
|
{ name: "domain", type: "string", internalType: "string" },
|
|
399
414
|
{ name: "scope", type: "string", internalType: "string" },
|
|
@@ -410,15 +425,19 @@ var ZKPassportVerifier_default = {
|
|
|
410
425
|
inputs: [
|
|
411
426
|
{ name: "maxDate", type: "uint256", internalType: "uint256" },
|
|
412
427
|
{
|
|
413
|
-
name: "
|
|
428
|
+
name: "commitments",
|
|
414
429
|
type: "tuple",
|
|
415
|
-
internalType: "struct
|
|
430
|
+
internalType: "struct Commitments",
|
|
416
431
|
components: [
|
|
417
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
418
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
419
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
420
432
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
421
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
433
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
434
|
+
]
|
|
435
|
+
},
|
|
436
|
+
{
|
|
437
|
+
name: "serviceConfig",
|
|
438
|
+
type: "tuple",
|
|
439
|
+
internalType: "struct ServiceConfig",
|
|
440
|
+
components: [
|
|
422
441
|
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
423
442
|
{ name: "domain", type: "string", internalType: "string" },
|
|
424
443
|
{ name: "scope", type: "string", internalType: "string" },
|
|
@@ -436,15 +455,19 @@ var ZKPassportVerifier_default = {
|
|
|
436
455
|
{ name: "minDate", type: "uint256", internalType: "uint256" },
|
|
437
456
|
{ name: "maxDate", type: "uint256", internalType: "uint256" },
|
|
438
457
|
{
|
|
439
|
-
name: "
|
|
458
|
+
name: "commitments",
|
|
440
459
|
type: "tuple",
|
|
441
|
-
internalType: "struct
|
|
460
|
+
internalType: "struct Commitments",
|
|
442
461
|
components: [
|
|
443
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
444
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
445
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
446
462
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
447
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
463
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
464
|
+
]
|
|
465
|
+
},
|
|
466
|
+
{
|
|
467
|
+
name: "serviceConfig",
|
|
468
|
+
type: "tuple",
|
|
469
|
+
internalType: "struct ServiceConfig",
|
|
470
|
+
components: [
|
|
448
471
|
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
449
472
|
{ name: "domain", type: "string", internalType: "string" },
|
|
450
473
|
{ name: "scope", type: "string", internalType: "string" },
|
|
@@ -461,15 +484,19 @@ var ZKPassportVerifier_default = {
|
|
|
461
484
|
inputs: [
|
|
462
485
|
{ name: "date", type: "uint256", internalType: "uint256" },
|
|
463
486
|
{
|
|
464
|
-
name: "
|
|
487
|
+
name: "commitments",
|
|
465
488
|
type: "tuple",
|
|
466
|
-
internalType: "struct
|
|
489
|
+
internalType: "struct Commitments",
|
|
467
490
|
components: [
|
|
468
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
469
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
470
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
471
491
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
472
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
492
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
493
|
+
]
|
|
494
|
+
},
|
|
495
|
+
{
|
|
496
|
+
name: "serviceConfig",
|
|
497
|
+
type: "tuple",
|
|
498
|
+
internalType: "struct ServiceConfig",
|
|
499
|
+
components: [
|
|
473
500
|
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
474
501
|
{ name: "domain", type: "string", internalType: "string" },
|
|
475
502
|
{ name: "scope", type: "string", internalType: "string" },
|
|
@@ -486,15 +513,19 @@ var ZKPassportVerifier_default = {
|
|
|
486
513
|
inputs: [
|
|
487
514
|
{ name: "minDate", type: "uint256", internalType: "uint256" },
|
|
488
515
|
{
|
|
489
|
-
name: "
|
|
516
|
+
name: "commitments",
|
|
490
517
|
type: "tuple",
|
|
491
|
-
internalType: "struct
|
|
518
|
+
internalType: "struct Commitments",
|
|
492
519
|
components: [
|
|
493
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
494
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
495
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
496
520
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
497
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
521
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
522
|
+
]
|
|
523
|
+
},
|
|
524
|
+
{
|
|
525
|
+
name: "serviceConfig",
|
|
526
|
+
type: "tuple",
|
|
527
|
+
internalType: "struct ServiceConfig",
|
|
528
|
+
components: [
|
|
498
529
|
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
499
530
|
{ name: "domain", type: "string", internalType: "string" },
|
|
500
531
|
{ name: "scope", type: "string", internalType: "string" },
|
|
@@ -511,15 +542,19 @@ var ZKPassportVerifier_default = {
|
|
|
511
542
|
inputs: [
|
|
512
543
|
{ name: "minDate", type: "uint256", internalType: "uint256" },
|
|
513
544
|
{
|
|
514
|
-
name: "
|
|
545
|
+
name: "commitments",
|
|
515
546
|
type: "tuple",
|
|
516
|
-
internalType: "struct
|
|
547
|
+
internalType: "struct Commitments",
|
|
517
548
|
components: [
|
|
518
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
519
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
520
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
521
549
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
522
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
550
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
551
|
+
]
|
|
552
|
+
},
|
|
553
|
+
{
|
|
554
|
+
name: "serviceConfig",
|
|
555
|
+
type: "tuple",
|
|
556
|
+
internalType: "struct ServiceConfig",
|
|
557
|
+
components: [
|
|
523
558
|
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
524
559
|
{ name: "domain", type: "string", internalType: "string" },
|
|
525
560
|
{ name: "scope", type: "string", internalType: "string" },
|
|
@@ -536,15 +571,19 @@ var ZKPassportVerifier_default = {
|
|
|
536
571
|
inputs: [
|
|
537
572
|
{ name: "maxDate", type: "uint256", internalType: "uint256" },
|
|
538
573
|
{
|
|
539
|
-
name: "
|
|
574
|
+
name: "commitments",
|
|
540
575
|
type: "tuple",
|
|
541
|
-
internalType: "struct
|
|
576
|
+
internalType: "struct Commitments",
|
|
542
577
|
components: [
|
|
543
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
544
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
545
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
546
578
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
547
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
579
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
580
|
+
]
|
|
581
|
+
},
|
|
582
|
+
{
|
|
583
|
+
name: "serviceConfig",
|
|
584
|
+
type: "tuple",
|
|
585
|
+
internalType: "struct ServiceConfig",
|
|
586
|
+
components: [
|
|
548
587
|
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
549
588
|
{ name: "domain", type: "string", internalType: "string" },
|
|
550
589
|
{ name: "scope", type: "string", internalType: "string" },
|
|
@@ -561,15 +600,19 @@ var ZKPassportVerifier_default = {
|
|
|
561
600
|
inputs: [
|
|
562
601
|
{ name: "maxDate", type: "uint256", internalType: "uint256" },
|
|
563
602
|
{
|
|
564
|
-
name: "
|
|
603
|
+
name: "commitments",
|
|
565
604
|
type: "tuple",
|
|
566
|
-
internalType: "struct
|
|
605
|
+
internalType: "struct Commitments",
|
|
567
606
|
components: [
|
|
568
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
569
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
570
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
571
607
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
572
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
608
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
609
|
+
]
|
|
610
|
+
},
|
|
611
|
+
{
|
|
612
|
+
name: "serviceConfig",
|
|
613
|
+
type: "tuple",
|
|
614
|
+
internalType: "struct ServiceConfig",
|
|
615
|
+
components: [
|
|
573
616
|
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
574
617
|
{ name: "domain", type: "string", internalType: "string" },
|
|
575
618
|
{ name: "scope", type: "string", internalType: "string" },
|
|
@@ -587,15 +630,19 @@ var ZKPassportVerifier_default = {
|
|
|
587
630
|
{ name: "minDate", type: "uint256", internalType: "uint256" },
|
|
588
631
|
{ name: "maxDate", type: "uint256", internalType: "uint256" },
|
|
589
632
|
{
|
|
590
|
-
name: "
|
|
633
|
+
name: "commitments",
|
|
591
634
|
type: "tuple",
|
|
592
|
-
internalType: "struct
|
|
635
|
+
internalType: "struct Commitments",
|
|
593
636
|
components: [
|
|
594
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
595
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
596
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
597
637
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
598
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
638
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
639
|
+
]
|
|
640
|
+
},
|
|
641
|
+
{
|
|
642
|
+
name: "serviceConfig",
|
|
643
|
+
type: "tuple",
|
|
644
|
+
internalType: "struct ServiceConfig",
|
|
645
|
+
components: [
|
|
599
646
|
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
600
647
|
{ name: "domain", type: "string", internalType: "string" },
|
|
601
648
|
{ name: "scope", type: "string", internalType: "string" },
|
|
@@ -612,15 +659,19 @@ var ZKPassportVerifier_default = {
|
|
|
612
659
|
inputs: [
|
|
613
660
|
{ name: "date", type: "uint256", internalType: "uint256" },
|
|
614
661
|
{
|
|
615
|
-
name: "
|
|
662
|
+
name: "commitments",
|
|
616
663
|
type: "tuple",
|
|
617
|
-
internalType: "struct
|
|
664
|
+
internalType: "struct Commitments",
|
|
618
665
|
components: [
|
|
619
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
620
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
621
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
622
666
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
623
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
667
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
668
|
+
]
|
|
669
|
+
},
|
|
670
|
+
{
|
|
671
|
+
name: "serviceConfig",
|
|
672
|
+
type: "tuple",
|
|
673
|
+
internalType: "struct ServiceConfig",
|
|
674
|
+
components: [
|
|
624
675
|
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
625
676
|
{ name: "domain", type: "string", internalType: "string" },
|
|
626
677
|
{ name: "scope", type: "string", internalType: "string" },
|
|
@@ -636,20 +687,14 @@ var ZKPassportVerifier_default = {
|
|
|
636
687
|
name: "isFaceMatchVerified",
|
|
637
688
|
inputs: [
|
|
638
689
|
{ name: "faceMatchMode", type: "uint8", internalType: "enum FaceMatchMode" },
|
|
690
|
+
{ name: "os", type: "uint8", internalType: "enum OS" },
|
|
639
691
|
{
|
|
640
|
-
name: "
|
|
692
|
+
name: "commitments",
|
|
641
693
|
type: "tuple",
|
|
642
|
-
internalType: "struct
|
|
694
|
+
internalType: "struct Commitments",
|
|
643
695
|
components: [
|
|
644
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
645
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
646
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
647
696
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
648
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
649
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
650
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
651
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
652
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
697
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
653
698
|
]
|
|
654
699
|
}
|
|
655
700
|
],
|
|
@@ -662,19 +707,12 @@ var ZKPassportVerifier_default = {
|
|
|
662
707
|
inputs: [
|
|
663
708
|
{ name: "countryList", type: "string[]", internalType: "string[]" },
|
|
664
709
|
{
|
|
665
|
-
name: "
|
|
710
|
+
name: "commitments",
|
|
666
711
|
type: "tuple",
|
|
667
|
-
internalType: "struct
|
|
712
|
+
internalType: "struct Commitments",
|
|
668
713
|
components: [
|
|
669
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
670
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
671
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
672
714
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
673
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
674
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
675
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
676
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
677
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
715
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
678
716
|
]
|
|
679
717
|
}
|
|
680
718
|
],
|
|
@@ -687,19 +725,12 @@ var ZKPassportVerifier_default = {
|
|
|
687
725
|
inputs: [
|
|
688
726
|
{ name: "countryList", type: "string[]", internalType: "string[]" },
|
|
689
727
|
{
|
|
690
|
-
name: "
|
|
728
|
+
name: "commitments",
|
|
691
729
|
type: "tuple",
|
|
692
|
-
internalType: "struct
|
|
730
|
+
internalType: "struct Commitments",
|
|
693
731
|
components: [
|
|
694
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
695
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
696
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
697
732
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
698
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
699
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
700
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
701
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
702
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
733
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
703
734
|
]
|
|
704
735
|
}
|
|
705
736
|
],
|
|
@@ -712,19 +743,12 @@ var ZKPassportVerifier_default = {
|
|
|
712
743
|
inputs: [
|
|
713
744
|
{ name: "countryList", type: "string[]", internalType: "string[]" },
|
|
714
745
|
{
|
|
715
|
-
name: "
|
|
746
|
+
name: "commitments",
|
|
716
747
|
type: "tuple",
|
|
717
|
-
internalType: "struct
|
|
748
|
+
internalType: "struct Commitments",
|
|
718
749
|
components: [
|
|
719
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
720
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
721
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
722
750
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
723
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
724
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
725
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
726
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
727
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
751
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
728
752
|
]
|
|
729
753
|
}
|
|
730
754
|
],
|
|
@@ -737,19 +761,12 @@ var ZKPassportVerifier_default = {
|
|
|
737
761
|
inputs: [
|
|
738
762
|
{ name: "countryList", type: "string[]", internalType: "string[]" },
|
|
739
763
|
{
|
|
740
|
-
name: "
|
|
764
|
+
name: "commitments",
|
|
741
765
|
type: "tuple",
|
|
742
|
-
internalType: "struct
|
|
766
|
+
internalType: "struct Commitments",
|
|
743
767
|
components: [
|
|
744
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
745
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
746
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
747
768
|
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
748
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
749
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
750
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
751
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
752
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
769
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
753
770
|
]
|
|
754
771
|
}
|
|
755
772
|
],
|
|
@@ -807,15 +824,36 @@ var ZKPassportVerifier_default = {
|
|
|
807
824
|
type: "tuple",
|
|
808
825
|
internalType: "struct ProofVerificationParams",
|
|
809
826
|
components: [
|
|
810
|
-
{
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
827
|
+
{
|
|
828
|
+
name: "proofVerificationData",
|
|
829
|
+
type: "tuple",
|
|
830
|
+
internalType: "struct ProofVerificationData",
|
|
831
|
+
components: [
|
|
832
|
+
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
833
|
+
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
834
|
+
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" }
|
|
835
|
+
]
|
|
836
|
+
},
|
|
837
|
+
{
|
|
838
|
+
name: "commitments",
|
|
839
|
+
type: "tuple",
|
|
840
|
+
internalType: "struct Commitments",
|
|
841
|
+
components: [
|
|
842
|
+
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
843
|
+
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
844
|
+
]
|
|
845
|
+
},
|
|
846
|
+
{
|
|
847
|
+
name: "serviceConfig",
|
|
848
|
+
type: "tuple",
|
|
849
|
+
internalType: "struct ServiceConfig",
|
|
850
|
+
components: [
|
|
851
|
+
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
852
|
+
{ name: "domain", type: "string", internalType: "string" },
|
|
853
|
+
{ name: "scope", type: "string", internalType: "string" },
|
|
854
|
+
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
855
|
+
]
|
|
856
|
+
}
|
|
819
857
|
]
|
|
820
858
|
}
|
|
821
859
|
],
|
|
@@ -925,47 +963,47 @@ var ZKPassportVerifier_default = {
|
|
|
925
963
|
}
|
|
926
964
|
],
|
|
927
965
|
bytecode: {
|
|
928
|
-
object: "0x608060405234801561000f575f5ffd5b50604051613ab3380380613ab383398101604081905261002e916100f6565b6001600160a01b0381166100945760405162461bcd60e51b8152602060048201526024808201527f526f6f742072656769737472792063616e6e6f74206265207a65726f206164646044820152637265737360e01b606482015260840160405180910390fd5b5f8054336001600160a01b03199182168117909255600280549091166001600160a01b0384161790556040514281527ff29b53747ae7121d0958d490ad3d5cf6767119b0fdbd8389d918de3a12cf5a299060200160405180910390a250610123565b5f60208284031215610106575f5ffd5b81516001600160a01b038116811461011c575f5ffd5b9392505050565b613983806101305f395ff3fe608060405234801561000f575f5ffd5b506004361061023f575f3560e01c80638163f23111610135578063c4560786116100b4578063e420e35411610079578063e420e3541461053e578063e718bc3214610551578063ec46f77414610564578063f851a44014610577578063f87e19b114610589575f5ffd5b8063c4560786146104c8578063cfd9464a146104db578063d3f6ffff146104ee578063d7bf616a14610501578063deb7c0591461052b575f5ffd5b8063a88f1cef116100fa578063a88f1cef14610469578063aa1346ea1461047c578063b96b161c1461048f578063bf73c26c146104a2578063c0940ebd146104b5575f5ffd5b80638163f231146103dd578063847755e31461041d5780638d6937b814610430578063921076c714610443578063a6df2c0114610456575f5ffd5b80634c127428116101c1578063652ba33d11610186578063652ba33d14610394578063653cfd811461039c5780636c40d5d6146103af578063704876d6146103b757806375829def146103ca575f5ffd5b80634c1274281461032857806354dbe4d11461033b57806359545f451461034e5780635c975abb1461036e57806362067c8214610381575f5ffd5b80632e27242c116102075780632e27242c146102c657806337889655146102d95780633a86bd3d146102ec57806341a0e2c2146102ff57806346bd0a1614610315575f5ffd5b806304951b86146102435780630b90581b1461026b57806316c38b3c1461027e57806318677f2a146102935780631e26a9dc146102a6575b5f5ffd5b610256610251366004612987565b61059c565b60405190151581526020015b60405180910390f35b610256610279366004612987565b6105be565b61029161028c3660046129d7565b6105cc565b005b6102916102a1366004612a06565b610655565b6102b96102b4366004612a21565b610702565b6040516102629190612a9d565b6102566102d4366004612ba1565b610865565b6102566102e7366004612be5565b6109b7565b6102566102fa366004612cb6565b6109cc565b610307600181565b604051908152602001610262565b610256610323366004612dbe565b6109d9565b610256610336366004612987565b6109f1565b610256610349366004612be5565b6109fe565b61036161035c366004612e09565b610b4f565b6040516102629190612e3a565b5f5461025690600160a01b900460ff1681565b61025661038f366004612e70565b610c95565b610307600381565b6102916103aa366004612e09565b610f06565b610307600281565b6102566103c5366004612987565b610fa8565b6102916103d8366004612a06565b610fb5565b6104056103eb366004612eb7565b60016020525f90815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610262565b61025661042b366004612f52565b611083565b61029161043e366004612fee565b61124b565b610256610451366004612987565b61130b565b61029161046436600461302c565b611324565b610256610477366004612987565b61144e565b61025661048a366004612be5565b611467565b600254610405906001600160a01b031681565b6102566104b0366004612be5565b6115b8565b6102566104c3366004612be5565b61161f565b6102566104d6366004612dbe565b61162b565b6102566104e9366004612987565b611639565b6102566104fc366004612987565b611647565b61051461050f366004612e09565b611660565b604080519215158352602083019190915201610262565b610256610539366004612987565b611bda565b61025661054c366004612cb6565b611be7565b61025661055f366004612987565b611bf4565b610256610572366004612cb6565b611c01565b5f54610405906001600160a01b031681565b610256610597366004612cb6565b611c0e565b5f6105b56105ad84620151806130aa565b600284611c1b565b90505b92915050565b5f6105b58384600285611e76565b5f546001600160a01b031633146105fe5760405162461bcd60e51b81526004016105f5906130bd565b60405180910390fd5b5f8054821515600160a01b0260ff60a01b199091161790556040517f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c59061064a90831515815260200190565b60405180910390a150565b5f546001600160a01b0316331461067e5760405162461bcd60e51b81526004016105f5906130bd565b6001600160a01b0381166106e05760405162461bcd60e51b8152602060048201526024808201527f526f6f742072656769737472792063616e6e6f74206265207a65726f206164646044820152637265737360e01b60648201526084016105f5565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b61074a60405180610100016040528060608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081525090565b5f73__$144f4fe859debe4776cdef2b99f7b97a42$__63ddf3eec961077260608701876130f4565b61077f6080890189613136565b6040518563ffffffff1660e01b815260040161079e94939291906131d3565b5f60405180830381865af41580156107b8573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526107df9190810190613248565b6040516301e9bf5760e11b815290925073__$144f4fe859debe4776cdef2b99f7b97a42$__91506303d37eae9061081c90849087906004016132a1565b5f60405180830381865af4158015610836573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261085d91908101906132c4565b949350505050565b5f8080808073__$144f4fe859debe4776cdef2b99f7b97a42$__63c802bad161089160608901896130f4565b61089e60808b018b613136565b6040518563ffffffff1660e01b81526004016108bd94939291906131d3565b608060405180830381865af41580156108d8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108fc9190613455565b929650909450925090505f600184600181111561091b5761091b6134a1565b1490505f886002811115610931576109316134a1565b836002811115610943576109436134a1565b1490507f2532418a107c5306fa8308c22255792cf77e4a290cbce8a840a642a3e591340b86147f1fa73686cf510f8f85757b0602de0dd72a13e68ae2092462be8b72662e7f179b85148380156109965750825b801561099f5750815b80156109a85750805b9b9a5050505050505050505050565b5f6105b56109c68460016134b5565b836109fe565b5f6105b5836007846121b4565b5f6109e78484600385611e76565b90505b9392505050565b5f6105b583600384611c1b565b5f80808073__$144f4fe859debe4776cdef2b99f7b97a42$__63b2b37a4c610a2960608801886130f4565b610a3660808a018a613136565b6040518563ffffffff1660e01b8152600401610a5594939291906131d3565b606060405180830381865af4158015610a70573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9491906134ce565b925092509250610aa8838660a001356122de565b610ac45760405162461bcd60e51b81526004016105f59061350f565b60ff811615610b3d576040805162461bcd60e51b81526020600482015260248101919091527f5468652070726f6f6620757070657220626f756e64206d75737420626520302c60448201527f20706c65617365207573652069734167654265747765656e20696e737465616460648201526084016105f5565b5060ff85811691161491505092915050565b60408051606080820183525f8083526020830152918101919091525f73__$144f4fe859debe4776cdef2b99f7b97a42$__634601173c610b9260608601866130f4565b610b9f6080880188613136565b6040518563ffffffff1660e01b8152600401610bbe94939291906131d3565b5f60405180830381865af4158015610bd8573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610bff9190810190613580565b604051630578c5d360e11b815290915073__$144f4fe859debe4776cdef2b99f7b97a42$__90630af18ba690610c399084906004016135b1565b5f60405180830381865af4158015610c53573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610c7a91908101906135c3565b604085015260208401526001600160a01b0316825250919050565b5f80808073__$144f4fe859debe4776cdef2b99f7b97a42$__63b2b37a4c610cc060608801886130f4565b610ccd60808a018a613136565b6040518563ffffffff1660e01b8152600401610cec94939291906131d3565b606060405180830381865af4158015610d07573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d2b91906134ce565b925092509250610d3f838660a001356122de565b610d5b5760405162461bcd60e51b81526004016105f59061350f565b8560ff168760ff161115610dc75760405162461bcd60e51b815260206004820152602d60248201527f4d696e20616765206d757374206265206c657373207468616e206f722065717560448201526c616c20746f206d61782061676560981b60648201526084016105f5565b8160ff165f03610e545760405162461bcd60e51b815260206004820152604c60248201527f5468652070726f6f66206c6f77657220626f756e64206d757374206265206e6f60448201527f6e2d7a65726f2c20706c656173652075736520697341676542656c6f774f724560648201526b1c5d585b081a5b9cdd19585960a21b608482015260a4016105f5565b8060ff165f03610ee15760405162461bcd60e51b815260206004820152604c60248201527f5468652070726f6f6620757070657220626f756e64206d757374206265206e6f60448201527f6e2d7a65726f2c20706c656173652075736520697341676541626f76654f724560648201526b1c5d585b081a5b9cdd19585960a21b608482015260a4016105f5565b8160ff168760ff16148015610efb57508060ff168660ff16145b979650505050505050565b5f73__$144f4fe859debe4776cdef2b99f7b97a42$__63fbd24457610f2e60608501856130f4565b610f3b6080870187613136565b6040518563ffffffff1660e01b8152600401610f5a94939291906131d3565b602060405180830381865af4158015610f75573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f99919061360e565b9050610fa48161230b565b5050565b5f6105b583600284611c1b565b5f546001600160a01b03163314610fde5760405162461bcd60e51b81526004016105f5906130bd565b6001600160a01b0381166110345760405162461bcd60e51b815260206004820152601c60248201527f41646d696e2063616e6e6f74206265207a65726f20616464726573730000000060448201526064016105f5565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b9190a35050565b5f5f6110c386868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506123cc92505050565b61113d576008600287876040516020016110de929190613625565b60408051601f19818403018152908290526110f891613634565b602060405180830381855afa158015611113573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190611136919061360e565b901c61113f565b5f5b90505f61118085858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506123cc92505050565b6111fa5760086002868660405160200161119b929190613625565b60408051601f19818403018152908290526111b591613634565b602060405180830381855afa1580156111d0573d5f5f3e3d5ffd5b5050506040513d601f19601f820116820180604052508101906111f3919061360e565b901c6111fc565b5f5b905081898960038181106112125761121261364a565b9050602002013514801561123e575080898960048181106112355761123561364a565b90506020020135145b9998505050505050505050565b5f546001600160a01b031633146112745760405162461bcd60e51b81526004016105f5906130bd565b5f5b818110156113065760015f8484848181106112935761129361364a565b602090810292909201358352508101919091526040015f2080546001600160a01b03191690558282828181106112cb576112cb61364a565b905060200201357f6fdcbcf8f91bc23f2c9dcfe8fe01d80d1b1afbbf207298e94c0171ccc587424c60405160405180910390a2600101611276565b505050565b5f6105b561131c620151808561365e565b6002846123d1565b5f546001600160a01b0316331461134d5760405162461bcd60e51b81526004016105f5906130bd565b5f5b83811015611447578282828181106113695761136961364a565b905060200201602081019061137e9190612a06565b60015f8787858181106113935761139361364a565b9050602002013581526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b031602179055508282828181106113dc576113dc61364a565b90506020020160208101906113f19190612a06565b6001600160a01b031685858381811061140c5761140c61364a565b905060200201357f636107338a3eb46f1f60562462f3ec11393d35fbc965991aaade3b9e7d89c3f560405160405180910390a360010161134f565b5050505050565b5f6105b561145f620151808561365e565b6003846123d1565b5f80808073__$144f4fe859debe4776cdef2b99f7b97a42$__63b2b37a4c61149260608801886130f4565b61149f60808a018a613136565b6040518563ffffffff1660e01b81526004016114be94939291906131d3565b606060405180830381865af41580156114d9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114fd91906134ce565b925092509250611511838660a001356122de565b61152d5760405162461bcd60e51b81526004016105f59061350f565b60ff8216156115a6576040805162461bcd60e51b81526020600482015260248101919091527f5468652070726f6f66206c6f77657220626f756e64206d75737420626520302c60448201527f20706c65617365207573652069734167654265747765656e20696e737465616460648201526084016105f5565b60ff8681169116149250505092915050565b5f5f8360ff161161160b5760405162461bcd60e51b815260206004820152601e60248201527f4d617820616765206d7573742062652067726561746572207468616e2030000060448201526064016105f5565b6105b5611619600185613671565b83611467565b5f6105b5838484610c95565b5f6109e78484600285611e76565b5f6105b58384600385611e76565b5f6105b561165884620151806130aa565b600384611c1b565b5f80548190600160a01b900460ff16156116b15760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b60448201526064016105f5565b5f6116bc84356125d5565b90506116ea6116ce6040860186613136565b5f8181106116de576116de61364a565b9050602002013561262e565b6117176116fa6040860186613136565b600181811061170b5761170b61364a565b905060200201356126f6565b6117616117276040860186613136565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050505060a08601356127b4565b6117c95760405162461bcd60e51b815260206004820152603360248201527f5468652070726f6f66207761732067656e657261746564206f757473696465206044820152721d1a19481d985b1a591a5d1e481c195c9a5bd9606a1b60648201526084016105f5565b6117f36117d96040860186613136565b6117e660c08801886130f4565b61042b60e08a018a6130f4565b61183f5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420646f6d61696e206f722073636f706500000000000000000060448201526064016105f5565b6118fa61184f6040860186613136565b600590600161186160408a018a613136565b61186c92915061365e565b926118799392919061368a565b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152506118b79250505060608701876130f4565b6118c46080890189613136565b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152506127df92505050565b5f6119086040860186613136565b60026119176040890189613136565b61192292915061365e565b8181106119315761193161364a565b905060200201355f1c600381111561194b5761194b6134a1565b90506002816003811115611961576119616134a1565b141580156119815750600381600381111561197e5761197e6134a1565b14155b806119995750611999610120860161010087016129d7565b6119f65760405162461bcd60e51b815260206004820152602860248201527f4d6f636b2070726f6f667320617265206f6e6c7920616c6c6f77656420696e20604482015267646576206d6f646560c01b60648201526084016105f5565b5f816003811115611a0957611a096134a1565b1480611a225750611a22610120860161010087016129d7565b611a825760405162461bcd60e51b815260206004820152602b60248201527f53616c746564206e756c6c69666965727320617265206e6f7420737570706f7260448201526a74656420666f72206e6f7760a81b60648201526084016105f5565b6007611a916040870187613136565b611a9c92915061365e565b611aa96080870187613136565b905014611b065760405162461bcd60e51b815260206004820152602560248201527f496e76616c696420636f6d6d697474656420696e70757420636f756e7473206c6044820152640cadccee8d60db1b60648201526084016105f5565b6001600160a01b03821663ea50d0e4611b2260208801886130f4565b611b2f60408a018a613136565b6040518563ffffffff1660e01b8152600401611b4e94939291906131d3565b602060405180830381865afa158015611b69573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b8d91906136b5565b93505f6001611b9f6040880188613136565b611baa92915061365e565b9050611bb96040870187613136565b82818110611bc957611bc961364a565b905060200201359350505050915091565b5f6105b5836002846123d1565b5f6105b5836005846121b4565b5f6105b5836003846123d1565b5f6105b5836006846121b4565b5f6105b5836004846121b4565b5f80808073__$144f4fe859debe4776cdef2b99f7b97a42$__638a8b3f92611c4660608801886130f4565b611c5360808a018a613136565b8b6040518663ffffffff1660e01b8152600401611c749594939291906136d0565b606060405180830381865af4158015611c8f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cb39190613725565b925092509250611cc7838660a001356122de565b611ce35760405162461bcd60e51b81526004016105f59061350f565b600286600a811115611cf757611cf76134a1565b1480611d145750600386600a811115611d1257611d126134a1565b145b611d305760405162461bcd60e51b81526004016105f590613750565b600286600a811115611d4457611d446134a1565b03611de6578015611dcc5760405162461bcd60e51b815260206004820152604660248201527f5468652070726f6f6620757070657220626f756e64206d75737420626520302c60448201527f20706c65617365207573652069734269727468646174654265747765656e20696064820152651b9cdd19585960d21b608482015260a4016105f5565b611dda6383aa7e808361365e565b871493505050506109ea565b8015611e6a5760405162461bcd60e51b815260206004820152604760248201527f5468652070726f6f6620757070657220626f756e64206d75737420626520302c60448201527f20706c6561736520757365206973457870697279446174654265747765656e206064820152661a5b9cdd19585960ca1b608482015260a4016105f5565b50851491506109ea9050565b5f80808073__$144f4fe859debe4776cdef2b99f7b97a42$__638a8b3f92611ea160608801886130f4565b611eae60808a018a613136565b8b6040518663ffffffff1660e01b8152600401611ecf9594939291906136d0565b606060405180830381865af4158015611eea573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f0e9190613725565b925092509250611f22838660a001356122de565b611f3e5760405162461bcd60e51b81526004016105f59061350f565b86881115611fa65760405162461bcd60e51b815260206004820152602f60248201527f4d696e2064617465206d757374206265206c657373207468616e206f7220657160448201526e75616c20746f206d6178206461746560881b60648201526084016105f5565b600286600a811115611fba57611fba6134a1565b1480611fd75750600386600a811115611fd557611fd56134a1565b145b611ff35760405162461bcd60e51b81526004016105f590613750565b600286600a811115612007576120076134a1565b036120ed57815f0361209c5760405162461bcd60e51b815260206004820152605260248201527f5468652070726f6f66206c6f77657220626f756e64206d757374206265206e6f60448201527f6e2d7a65726f2c20706c656173652075736520697342697274686461746542656064820152711b1bddd3dc915c5d585b081a5b9cdd19585960721b608482015260a4016105f5565b805f036120bb5760405162461bcd60e51b81526004016105f59061377c565b6120c96383aa7e808361365e565b881480156120e357506120e06383aa7e808261365e565b87145b935050505061085d565b815f0361217e5760405162461bcd60e51b815260206004820152605360248201527f5468652070726f6f66206c6f77657220626f756e64206d757374206265206e6f60448201527f6e2d7a65726f2c20706c65617365207573652069734578706972794461746542606482015272195b1bddd3dc915c5d585b081a5b9cdd195859606a1b608482015260a4016105f5565b805f0361219d5760405162461bcd60e51b81526004016105f5906137f4565b81881480156120e357509095149695505050505050565b5f808073__$144f4fe859debe4776cdef2b99f7b97a42$__6384d40ca06121de60608701876130f4565b6121eb6080890189613136565b8a6040518663ffffffff1660e01b815260040161220c9594939291906136d0565b5f60405180830381865af4158015612226573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261224d919081019061386d565b9150915080865114612263575f925050506109ea565b5f5b818110156122d1576122ba8782815181106122825761228261364a565b602002602001015184838151811061229c5761229c61364a565b60200260200101518051602091820120825192909101919091201490565b6122c9575f93505050506109ea565b600101612265565b5060019695505050505050565b5f806122ea83856130aa565b90508342101580156122fb57508381115b801561085d575042109392505050565b6002546040516383578c1160e01b815260036004820152602481018390526001600160a01b03909116906383578c1190604401602060405180830381865afa158015612359573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061237d91906136b5565b6123c95760405162461bcd60e51b815260206004820152601f60248201527f496e76616c69642073616e6374696f6e7320726567697374727920726f6f740060448201526064016105f5565b50565b511590565b5f80808073__$144f4fe859debe4776cdef2b99f7b97a42$__638a8b3f926123fc60608801886130f4565b61240960808a018a613136565b8b6040518663ffffffff1660e01b815260040161242a9594939291906136d0565b606060405180830381865af4158015612445573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124699190613725565b92509250925061247d838660a001356122de565b6124995760405162461bcd60e51b81526004016105f59061350f565b81156125175760405162461bcd60e51b815260206004820152604160248201527f5468652070726f6f66206c6f77657220626f756e64206d75737420626520302c60448201527f20706c6561736520757365206973446174654265747765656e20696e737465616064820152601960fa1b608482015260a4016105f5565b600286600a81111561252b5761252b6134a1565b14806125485750600386600a811115612546576125466134a1565b145b6125645760405162461bcd60e51b81526004016105f590613750565b600286600a811115612578576125786134a1565b036125aa57805f0361259c5760405162461bcd60e51b81526004016105f59061377c565b611dda6383aa7e808261365e565b805f036125c95760405162461bcd60e51b81526004016105f5906137f4565b861492506109ea915050565b5f818152600160205260408120546001600160a01b0316806105b85760405162461bcd60e51b815260206004820152601260248201527115995c9a599a595c881b9bdd08199bdd5b9960721b60448201526064016105f5565b6002546040516383578c1160e01b815260016004820152602481018390526001600160a01b03909116906383578c1190604401602060405180830381865afa15801561267c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126a091906136b5565b6123c95760405162461bcd60e51b815260206004820152602160248201527f496e76616c696420636572746966696361746520726567697374727920726f6f6044820152601d60fa1b60648201526084016105f5565b600280546040516383578c1160e01b81526004810192909252602482018390526001600160a01b0316906383578c1190604401602060405180830381865afa158015612744573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061276891906136b5565b6123c95760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964206369726375697420726567697374727920726f6f7400000060448201526064016105f5565b5f5f836002815181106127c9576127c961364a565b60200260200101515f1c905061085d81846122de565b5f805b8251811015612920575f60086002878786908887815181106128065761280661364a565b60200260200101518861281991906130aa565b9261282693929190613926565b604051602001612837929190613625565b60408051601f198184030181529082905261285191613634565b602060405180830381855afa15801561286c573d5f5f3e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061288f919061360e565b901c90508682815181106128a5576128a561364a565b602002602001015181146128f05760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a590818dbdb5b5a5d1b595b9d60721b60448201526064016105f5565b8382815181106129025761290261364a565b60200260200101518361291591906130aa565b9250506001016127e2565b508083146114475760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420636f6d6d697474656420696e70757473206c656e6774680060448201526064016105f5565b5f6101208284031215612981575f5ffd5b50919050565b5f5f60408385031215612998575f5ffd5b8235915060208301356001600160401b038111156129b4575f5ffd5b6129c085828601612970565b9150509250929050565b80151581146123c9575f5ffd5b5f602082840312156129e7575f5ffd5b81356109ea816129ca565b6001600160a01b03811681146123c9575f5ffd5b5f60208284031215612a16575f5ffd5b81356109ea816129f2565b5f5f60408385031215612a32575f5ffd5b82356001600160401b03811115612a47575f5ffd5b612a5385828601612970565b9250506020830135612a64816129ca565b809150509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f82516101006020840152612aba610120840182612a6f565b90506020840151601f19848303016040850152612ad78282612a6f565b9150506040840151601f19848303016060850152612af58282612a6f565b9150506060840151601f19848303016080850152612b138282612a6f565b9150506080840151601f198483030160a0850152612b318282612a6f565b91505060a0840151601f198483030160c0850152612b4f8282612a6f565b91505060c0840151601f198483030160e0850152612b6d8282612a6f565b91505060e0840151601f1984830301610100850152612b8c8282612a6f565b95945050505050565b600381106123c9575f5ffd5b5f5f60408385031215612bb2575f5ffd5b8235612bbd81612b95565b915060208301356001600160401b038111156129b4575f5ffd5b60ff811681146123c9575f5ffd5b5f5f60408385031215612bf6575f5ffd5b8235612bbd81612bd7565b634e487b7160e01b5f52604160045260245ffd5b60405161010081016001600160401b0381118282101715612c3857612c38612c01565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612c6657612c66612c01565b604052919050565b5f6001600160401b03821115612c8657612c86612c01565b5060051b60200190565b5f6001600160401b03821115612ca857612ca8612c01565b50601f01601f191660200190565b5f5f60408385031215612cc7575f5ffd5b82356001600160401b03811115612cdc575f5ffd5b8301601f81018513612cec575f5ffd5b8035612cff612cfa82612c6e565b612c3e565b8082825260208201915060208360051b850101925087831115612d20575f5ffd5b602084015b83811015612da05780356001600160401b03811115612d42575f5ffd5b8501603f81018a13612d52575f5ffd5b6020810135612d63612cfa82612c90565b8181526040838301018c1015612d77575f5ffd5b816040840160208301375f60208383010152808652505050602083019250602081019050612d25565b50945050505060208301356001600160401b038111156129b4575f5ffd5b5f5f5f60608486031215612dd0575f5ffd5b833592506020840135915060408401356001600160401b03811115612df3575f5ffd5b612dff86828701612970565b9150509250925092565b5f60208284031215612e19575f5ffd5b81356001600160401b03811115612e2e575f5ffd5b61085d84828501612970565b6020815260018060a01b038251166020820152602082015160408201525f604083015160608084015261085d6080840182612a6f565b5f5f5f60608486031215612e82575f5ffd5b8335612e8d81612bd7565b92506020840135612e9d81612bd7565b915060408401356001600160401b03811115612df3575f5ffd5b5f60208284031215612ec7575f5ffd5b5035919050565b5f5f83601f840112612ede575f5ffd5b5081356001600160401b03811115612ef4575f5ffd5b6020830191508360208260051b8501011115612f0e575f5ffd5b9250929050565b5f5f83601f840112612f25575f5ffd5b5081356001600160401b03811115612f3b575f5ffd5b602083019150836020828501011115612f0e575f5ffd5b5f5f5f5f5f5f60608789031215612f67575f5ffd5b86356001600160401b03811115612f7c575f5ffd5b612f8889828a01612ece565b90975095505060208701356001600160401b03811115612fa6575f5ffd5b612fb289828a01612f15565b90955093505060408701356001600160401b03811115612fd0575f5ffd5b612fdc89828a01612f15565b979a9699509497509295939492505050565b5f5f60208385031215612fff575f5ffd5b82356001600160401b03811115613014575f5ffd5b61302085828601612ece565b90969095509350505050565b5f5f5f5f6040858703121561303f575f5ffd5b84356001600160401b03811115613054575f5ffd5b61306087828801612ece565b90955093505060208501356001600160401b0381111561307e575f5ffd5b61308a87828801612ece565b95989497509550505050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156105b8576105b8613096565b6020808252601a908201527f4e6f7420617574686f72697a65643a2061646d696e206f6e6c79000000000000604082015260600190565b5f5f8335601e19843603018112613109575f5ffd5b8301803591506001600160401b03821115613122575f5ffd5b602001915036819003821315612f0e575f5ffd5b5f5f8335601e1984360301811261314b575f5ffd5b8301803591506001600160401b03821115613164575f5ffd5b6020019150600581901b3603821315612f0e575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b8183525f6001600160fb1b038311156131ba575f5ffd5b8260051b80836020870137939093016020019392505050565b604081525f6131e660408301868861317b565b8281036020840152610efb8185876131a3565b5f82601f830112613208575f5ffd5b8151602083015f61321b612cfa84612c90565b905082815285838301111561322e575f5ffd5b8282602083015e5f92810160200192909252509392505050565b5f5f60408385031215613259575f5ffd5b82516001600160401b0381111561326e575f5ffd5b61327a858286016131f9565b92505060208301516001600160401b03811115613295575f5ffd5b6129c0858286016131f9565b604081525f6132b36040830185612a6f565b905082151560208301529392505050565b5f602082840312156132d4575f5ffd5b81516001600160401b038111156132e9575f5ffd5b820161010081850312156132fb575f5ffd5b613303612c15565b81516001600160401b03811115613318575f5ffd5b613324868285016131f9565b82525060208201516001600160401b0381111561333f575f5ffd5b61334b868285016131f9565b60208301525060408201516001600160401b03811115613369575f5ffd5b613375868285016131f9565b60408301525060608201516001600160401b03811115613393575f5ffd5b61339f868285016131f9565b60608301525060808201516001600160401b038111156133bd575f5ffd5b6133c9868285016131f9565b60808301525060a08201516001600160401b038111156133e7575f5ffd5b6133f3868285016131f9565b60a08301525060c08201516001600160401b03811115613411575f5ffd5b61341d868285016131f9565b60c08301525060e08201516001600160401b0381111561343b575f5ffd5b613447868285016131f9565b60e083015250949350505050565b5f5f5f5f60808587031215613468575f5ffd5b845160208601519094506002811061347e575f5ffd5b60408601516060870151919450925061349681612b95565b939692955090935050565b634e487b7160e01b5f52602160045260245ffd5b60ff81811683821601908111156105b8576105b8613096565b5f5f5f606084860312156134e0575f5ffd5b835160208501519093506134f381612bd7565b604085015190925061350481612bd7565b809150509250925092565b6020808252604b908201527f5468652063757272656e742064617465207573656420696e207468652070726f60408201527f6f6620646f6573206e6f742066616c6c2077697468696e207468652076616c6960608201526a191a5d1e481c195c9a5bd960aa1b608082015260a00190565b5f60208284031215613590575f5ffd5b81516001600160401b038111156135a5575f5ffd5b61085d848285016131f9565b602081525f6105b56020830184612a6f565b5f5f5f606084860312156135d5575f5ffd5b83516135e0816129f2565b6020850151604086015191945092506001600160401b03811115613602575f5ffd5b612dff868287016131f9565b5f6020828403121561361e575f5ffd5b5051919050565b818382375f9101908152919050565b5f82518060208501845e5f920191825250919050565b634e487b7160e01b5f52603260045260245ffd5b818103818111156105b8576105b8613096565b60ff82811682821603908111156105b8576105b8613096565b5f5f85851115613698575f5ffd5b838611156136a4575f5ffd5b5050600583901b0193919092039150565b5f602082840312156136c5575f5ffd5b81516109ea816129ca565b606081525f6136e360608301878961317b565b82810360208401526136f68186886131a3565b915050600b831061371557634e487b7160e01b5f52602160045260245ffd5b8260408301529695505050505050565b5f5f5f60608486031215613737575f5ffd5b5050815160208301516040909301519094929350919050565b602080825260129082015271496e76616c69642070726f6f66207479706560701b604082015260600190565b60208082526052908201527f5468652070726f6f6620757070657220626f756e64206d757374206265206e6f60408201527f6e2d7a65726f2c20706c656173652075736520697342697274686461746541626060820152711bdd9953dc915c5d585b081a5b9cdd19585960721b608082015260a00190565b60208082526053908201527f5468652070726f6f6620757070657220626f756e64206d757374206265206e6f60408201527f6e2d7a65726f2c20706c65617365207573652069734578706972794461746541606082015272189bdd9953dc915c5d585b081a5b9cdd195859606a1b608082015260a00190565b5f5f6040838503121561387e575f5ffd5b82516001600160401b03811115613893575f5ffd5b8301601f810185136138a3575f5ffd5b80516138b1612cfa82612c6e565b8082825260208201915060208360051b8501019250878311156138d2575f5ffd5b602084015b838110156139125780516001600160401b038111156138f4575f5ffd5b6139038a6020838901016131f9565b845250602092830192016138d7565b506020969096015195979596505050505050565b5f5f85851115613934575f5ffd5b83861115613940575f5ffd5b505082019391909203915056fea2646970667358221220623aa0f5d6fd1ed4b32bdfd3907fb8b21b1ba73e0a28815b6397c145a04864b764736f6c634300081d0033",
|
|
929
|
-
sourceMap: "
|
|
966
|
+
object: "0x608060405234801561000f575f5ffd5b50604051613d70380380613d7083398101604081905261002e916100f6565b6001600160a01b0381166100945760405162461bcd60e51b8152602060048201526024808201527f526f6f742072656769737472792063616e6e6f74206265207a65726f206164646044820152637265737360e01b606482015260840160405180910390fd5b5f8054336001600160a01b03199182168117909255600280549091166001600160a01b0384161790556040514281527ff29b53747ae7121d0958d490ad3d5cf6767119b0fdbd8389d918de3a12cf5a299060200160405180910390a250610123565b5f60208284031215610106575f5ffd5b81516001600160a01b038116811461011c575f5ffd5b9392505050565b613c40806101305f395ff3fe608060405234801561000f575f5ffd5b506004361061023f575f3560e01c80638b2ec61111610135578063c3fa6f22116100b4578063ddd8f8e311610079578063ddd8f8e31461051a578063ec8e07291461052d578063f3757ad414610557578063f851a44014610577578063ff20370714610589575f5ffd5b8063c3fa6f22146104bb578063ca4051f2146104ce578063cf515d37146104e1578063d39a5cf9146104f4578063d4932b4e14610507575f5ffd5b8063a6df2c01116100fa578063a6df2c011461045c578063ac20d6781461046f578063b8bd487914610482578063b96b161c14610495578063c1b77162146104a8575f5ffd5b80638b2ec611146103f05780638d6937b8146104035780638e2e2e621461041657806398e73ac3146104295780639c1a81a314610449575f5ffd5b806346b758a0116101c157806375829def1161018657806375829def146103645780637e5a88f3146103775780638163f2311461038a578063818694f1146103ca578063847755e3146103dd575f5ffd5b806346b758a01461031b5780635b7ab9291461032e5780635c975abb14610341578063652ba33d146103545780636c40d5d61461035c575f5ffd5b80632e5ce77f116102075780632e5ce77f146102b9578063311a335c146102cc578063320d3b55146102df5780633d6ed975146102f257806341a0e2c214610305575f5ffd5b8063106a2f6d1461024357806316c38b3c1461026b57806316e3d7291461028057806318677f2a146102935780631fac4345146102a6575b5f5ffd5b610256610251366004612a78565b61059c565b60405190151581526020015b60405180910390f35b61027e610279366004612ae2565b610809565b005b61027e61028e366004612afd565b610892565b61027e6102a1366004612b42565b610919565b6102566102b4366004612b6d565b6109c6565b6102566102c7366004612bdc565b6109dc565b6102566102da366004612c13565b610b10565b6102566102ed366004612b6d565b610b28565b610256610300366004612c13565b610b37565b61030d600181565b604051908152602001610262565b610256610329366004612d3d565b610b46565b61025661033c366004612d3d565b610b5c565b5f5461025690600160a01b900460ff1681565b61030d600381565b61030d600281565b61027e610372366004612b42565b610b69565b610256610385366004612d3d565b610c37565b6103b2610398366004612e5b565b60016020525f90815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610262565b6102566103d8366004612bdc565b610c44565b6102566103eb366004612ef6565b610cac565b6102566103fe366004612b6d565b610e74565b61027e610411366004612f92565b610e83565b610256610424366004612b6d565b610f43565b61043c610437366004612afd565b610f51565b6040516102629190612ffe565b610256610457366004612b6d565b61107c565b61027e61046a366004613034565b611096565b61025661047d366004612b6d565b6111c0565b610256610490366004612b6d565b6111da565b6002546103b2906001600160a01b031681565b6102566104b6366004612b6d565b6111f4565b6102566104c9366004612bdc565b611202565b6102566104dc366004612b6d565b611218565b6102566104ef36600461309e565b611226565b610256610502366004612d3d565b61147a565b610256610515366004612bdc565b611487565b610256610528366004612b6d565b6115bb565b61054061053b3660046130e6565b6115d5565b604080519215158352602083019190915201610262565b61056a61056536600461311c565b611bf5565b604051610262919061316a565b5f546103b2906001600160a01b031681565b610256610597366004612bdc565b611d35565b5f5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__63defa8ed9876040518263ffffffff1660e01b81526004016105d89190613360565b608060405180830381865af41580156105f3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106179190613372565b929650909450925090505f6001846001811115610636576106366133be565b1490505f89600281111561064c5761064c6133be565b83600281111561065e5761065e6133be565b1490505f7f2532418a107c5306fa8308c22255792cf77e4a290cbce8a840a642a3e591340b871480156106bc575060018a60028111156106a0576106a06133be565b14806106bc57505f8a60028111156106ba576106ba6133be565b145b8061071c57507f16700a2d9168a194fc85f237af5829b5a2be05b8ae8ac4879ada34cf54a9c2118714801561071c575060028a6002811115610700576107006133be565b148061071c57505f8a600281111561071a5761071a6133be565b145b90505f7f1fa73686cf510f8f85757b0602de0dd72a13e68ae2092462be8b72662e7f179b86148015610779575060018b600281111561075d5761075d6133be565b148061077957505f8b6002811115610777576107776133be565b145b806107d957507f24d9929b248be7eeecaa98e105c034a50539610f3fdd4cb9c8983ef4100d615d861480156107d9575060028b60028111156107bd576107bd6133be565b14806107d957505f8b60028111156107d7576107d76133be565b145b90508380156107e55750825b80156107ee5750815b80156107f75750805b985050505050505050505b9392505050565b5f546001600160a01b0316331461083b5760405162461bcd60e51b8152600401610832906133d2565b60405180910390fd5b5f8054821515600160a01b0260ff60a01b199091161790556040517f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c59061088790831515815260200190565b60405180910390a150565b604051632988ebc960e21b81525f9073__$144f4fe859debe4776cdef2b99f7b97a42$__9063a623af24906108cb908590600401613360565b602060405180830381865af41580156108e6573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061090a9190613409565b905061091581611d42565b5050565b5f546001600160a01b031633146109425760405162461bcd60e51b8152600401610832906133d2565b6001600160a01b0381166109a45760405162461bcd60e51b8152602060048201526024808201527f526f6f742072656769737472792063616e6e6f74206265207a65726f206164646044820152637265737360e01b6064820152608401610832565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b5f6109d48460028585611e03565b949350505050565b5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__6384052813876040518263ffffffff1660e01b8152600401610a179190613360565b606060405180830381865af4158015610a32573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a569190613420565b91945092509050610a68838635611ff5565b610a845760405162461bcd60e51b815260040161083290613461565b60ff811615610afd576040805162461bcd60e51b81526020600482015260248101919091527f5468652070726f6f6620757070657220626f756e64206d75737420626520302c60448201527f20706c65617365207573652069734167654265747765656e20696e73746561646064820152608401610832565b5060ff8681169116149150509392505050565b5f610b1f858560028686612022565b95945050505050565b5f6109d4848560028686612022565b5f610b1f858560038686612022565b5f610b5383600484612343565b90505b92915050565b5f610b5383600784612343565b5f546001600160a01b03163314610b925760405162461bcd60e51b8152600401610832906133d2565b6001600160a01b038116610be85760405162461bcd60e51b815260206004820152601c60248201527f41646d696e2063616e6e6f74206265207a65726f2061646472657373000000006044820152606401610832565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b9190a35050565b5f610b5383600684612343565b5f5f8460ff1611610c975760405162461bcd60e51b815260206004820152601e60248201527f4d617820616765206d7573742062652067726561746572207468616e203000006044820152606401610832565b6109d4610ca56001866134e6565b8484611487565b5f5f610cec86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061245192505050565b610d6657600860028787604051602001610d079291906134ff565b60408051601f1981840301815290829052610d219161350e565b602060405180830381855afa158015610d3c573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610d5f9190613409565b901c610d68565b5f5b90505f610da985858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061245192505050565b610e2357600860028686604051602001610dc49291906134ff565b60408051601f1981840301815290829052610dde9161350e565b602060405180830381855afa158015610df9573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610e1c9190613409565b901c610e25565b5f5b90508189896003818110610e3b57610e3b613524565b90506020020135148015610e6757508089896004818110610e5e57610e5e613524565b90506020020135145b9998505050505050505050565b5f6109d4848560038686612022565b5f546001600160a01b03163314610eac5760405162461bcd60e51b8152600401610832906133d2565b5f5b81811015610f3e5760015f848484818110610ecb57610ecb613524565b602090810292909201358352508101919091526040015f2080546001600160a01b0319169055828282818110610f0357610f03613524565b905060200201357f6fdcbcf8f91bc23f2c9dcfe8fe01d80d1b1afbbf207298e94c0171ccc587424c60405160405180910390a2600101610eae565b505050565b5f6109d48460038585611e03565b60408051606080820183525f80835260208301529181019190915260405163dfda037960e01b81525f9073__$144f4fe859debe4776cdef2b99f7b97a42$__9063dfda037990610fa5908690600401613360565b5f60405180830381865af4158015610fbf573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610fe69190810190613587565b604051630578c5d360e11b815290915073__$144f4fe859debe4776cdef2b99f7b97a42$__90630af18ba6906110209084906004016135b8565b5f60405180830381865af415801561103a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261106191908101906135ca565b604085015260208401526001600160a01b0316825250919050565b5f6109d461108d6201518086613615565b60028585611e03565b5f546001600160a01b031633146110bf5760405162461bcd60e51b8152600401610832906133d2565b5f5b838110156111b9578282828181106110db576110db613524565b90506020020160208101906110f09190612b42565b60015f87878581811061110557611105613524565b9050602002013581526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555082828281811061114e5761114e613524565b90506020020160208101906111639190612b42565b6001600160a01b031685858381811061117e5761117e613524565b905060200201357f636107338a3eb46f1f60562462f3ec11393d35fbc965991aaade3b9e7d89c3f560405160405180910390a36001016110c1565b5050505050565b5f6109d46111d18562015180613628565b60038585612456565b5f6109d46111eb8562015180613628565b60028585612456565b5f6109d48460028585612456565b5f6109d461121185600161363b565b84846109dc565b5f6109d48460038585612456565b5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__6384052813876040518263ffffffff1660e01b81526004016112619190613360565b606060405180830381865af415801561127c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112a09190613420565b919450925090506112b2838635611ff5565b6112ce5760405162461bcd60e51b815260040161083290613461565b8660ff168860ff16111561133a5760405162461bcd60e51b815260206004820152602d60248201527f4d696e20616765206d757374206265206c657373207468616e206f722065717560448201526c616c20746f206d61782061676560981b6064820152608401610832565b8160ff165f036113c75760405162461bcd60e51b815260206004820152604c60248201527f5468652070726f6f66206c6f77657220626f756e64206d757374206265206e6f60448201527f6e2d7a65726f2c20706c656173652075736520697341676542656c6f774f724560648201526b1c5d585b081a5b9cdd19585960a21b608482015260a401610832565b8060ff165f036114545760405162461bcd60e51b815260206004820152604c60248201527f5468652070726f6f6620757070657220626f756e64206d757374206265206e6f60448201527f6e2d7a65726f2c20706c656173652075736520697341676541626f76654f724560648201526b1c5d585b081a5b9cdd19585960a21b608482015260a401610832565b8160ff168860ff1614801561146e57508060ff168760ff16145b98975050505050505050565b5f610b5383600584612343565b5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__6384052813876040518263ffffffff1660e01b81526004016114c29190613360565b606060405180830381865af41580156114dd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115019190613420565b91945092509050611513838635611ff5565b61152f5760405162461bcd60e51b815260040161083290613461565b60ff8216156115a8576040805162461bcd60e51b81526020600482015260248101919091527f5468652070726f6f66206c6f77657220626f756e64206d75737420626520302c60448201527f20706c65617365207573652069734167654265747765656e20696e73746561646064820152608401610832565b60ff878116911614925050509392505050565b5f6109d46115cc6201518086613615565b60038585611e03565b5f80548190600160a01b900460ff16156116265760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b6044820152606401610832565b5f61163a6116348580613654565b35612687565b90506116736116498580613654565b611657906040810190613672565b5f81811061166757611667613524565b905060200201356126e0565b6116ab6116808580613654565b61168e906040810190613672565b600181811061169f5761169f613524565b905060200201356127a8565b61170a6116b88580613654565b6116c6906040810190613672565b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152506117049250505060408701876136b7565b35612866565b6117725760405162461bcd60e51b815260206004820152603360248201527f5468652070726f6f66207761732067656e657261746564206f757473696465206044820152721d1a19481d985b1a591a5d1e481c195c9a5bd9606a1b6064820152608401610832565b6117c361177f8580613654565b61178d906040810190613672565b61179a60408801886136b7565b6117a89060208101906136cb565b6117b560408a018a6136b7565b6103eb9060408101906136cb565b61180f5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420646f6d61696e206f722073636f70650000000000000000006044820152606401610832565b6118a261181c8580613654565b61182a906040810190613672565b60059060016118398980613654565b611847906040810190613672565b611852929150613615565b9261185f9392919061370d565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061189d925050506020870187613738565b612891565b5f6118ad8580613654565b6118bb906040810190613672565b60026118c78880613654565b6118d5906040810190613672565b6118e0929150613615565b8181106118ef576118ef613524565b905060200201355f1c6003811115611909576119096133be565b9050600281600381111561191f5761191f6133be565b1415801561193f5750600381600381111561193c5761193c6133be565b14155b80611963575061195260408601866136b7565b611963906080810190606001612ae2565b6119c05760405162461bcd60e51b815260206004820152602860248201527f4d6f636b2070726f6f667320617265206f6e6c7920616c6c6f77656420696e20604482015267646576206d6f646560c01b6064820152608401610832565b5f8160038111156119d3576119d36133be565b14806119f857506119e760408601866136b7565b6119f8906080810190606001612ae2565b611a585760405162461bcd60e51b815260206004820152602b60248201527f53616c746564206e756c6c69666965727320617265206e6f7420737570706f7260448201526a74656420666f72206e6f7760a81b6064820152608401610832565b6007611a648680613654565b611a72906040810190613672565b611a7d929150613615565b611a8a6020870187613738565b611a98906020810190613672565b905014611af55760405162461bcd60e51b815260206004820152602560248201527f496e76616c696420636f6d6d697474656420696e70757420636f756e7473206c6044820152640cadccee8d60db1b6064820152608401610832565b6001600160a01b03821663ea50d0e4611b0e8780613654565b611b1c9060208101906136cb565b611b268980613654565b611b34906040810190613672565b6040518563ffffffff1660e01b8152600401611b53949392919061374c565b602060405180830381865afa158015611b6e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b92919061377d565b93505f6001611ba18780613654565b611baf906040810190613672565b611bba929150613615565b9050611bc68680613654565b611bd4906040810190613672565b82818110611be457611be4613524565b905060200201359350505050915091565b611c3d60405180610100016040528060608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081525090565b604051635450abb360e11b81525f9073__$144f4fe859debe4776cdef2b99f7b97a42$__9063a8a1576690611c76908790600401613360565b5f60405180830381865af4158015611c90573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611cb79190810190613798565b6040516301e9bf5760e11b815290925073__$144f4fe859debe4776cdef2b99f7b97a42$__91506303d37eae90611cf490849087906004016137f1565b5f60405180830381865af4158015611d0e573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526109d49190810190613814565b5f6109d484858585611226565b6002546040516383578c1160e01b815260036004820152602481018390526001600160a01b03909116906383578c1190604401602060405180830381865afa158015611d90573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611db4919061377d565b611e005760405162461bcd60e51b815260206004820152601f60248201527f496e76616c69642073616e6374696f6e7320726567697374727920726f6f74006044820152606401610832565b50565b5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__6374d9a37e87896040518363ffffffff1660e01b8152600401611e409291906139a5565b606060405180830381865af4158015611e5b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e7f91906139e2565b91945092509050611e91838635611ff5565b611ead5760405162461bcd60e51b815260040161083290613461565b8115611f2b5760405162461bcd60e51b815260206004820152604160248201527f5468652070726f6f66206c6f77657220626f756e64206d75737420626520302c60448201527f20706c6561736520757365206973446174654265747765656e20696e737465616064820152601960fa1b608482015260a401610832565b600287600a811115611f3f57611f3f6133be565b1480611f5c5750600387600a811115611f5a57611f5a6133be565b145b611f785760405162461bcd60e51b815260040161083290613a0d565b600287600a811115611f8c57611f8c6133be565b03611fca57805f03611fb05760405162461bcd60e51b815260040161083290613a39565b611fbe6383aa7e8082613615565b881493505050506109d4565b805f03611fe95760405162461bcd60e51b815260040161083290613ab1565b871492506109d4915050565b5f806120018385613628565b905083421015801561201257508381115b80156109d4575042109392505050565b5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__6374d9a37e87896040518363ffffffff1660e01b815260040161205f9291906139a5565b606060405180830381865af415801561207a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061209e91906139e2565b919450925090506120b0838635611ff5565b6120cc5760405162461bcd60e51b815260040161083290613461565b878911156121345760405162461bcd60e51b815260206004820152602f60248201527f4d696e2064617465206d757374206265206c657373207468616e206f7220657160448201526e75616c20746f206d6178206461746560881b6064820152608401610832565b600287600a811115612148576121486133be565b14806121655750600387600a811115612163576121636133be565b145b6121815760405162461bcd60e51b815260040161083290613a0d565b600287600a811115612195576121956133be565b0361227b57815f0361222a5760405162461bcd60e51b815260206004820152605260248201527f5468652070726f6f66206c6f77657220626f756e64206d757374206265206e6f60448201527f6e2d7a65726f2c20706c656173652075736520697342697274686461746542656064820152711b1bddd3dc915c5d585b081a5b9cdd19585960721b608482015260a401610832565b805f036122495760405162461bcd60e51b815260040161083290613a39565b6122576383aa7e8083613615565b89148015612271575061226e6383aa7e8082613615565b88145b9350505050610b1f565b815f0361230c5760405162461bcd60e51b815260206004820152605360248201527f5468652070726f6f66206c6f77657220626f756e64206d757374206265206e6f60448201527f6e2d7a65726f2c20706c65617365207573652069734578706972794461746542606482015272195b1bddd3dc915c5d585b081a5b9cdd195859606a1b608482015260a401610832565b805f0361232b5760405162461bcd60e51b815260040161083290613ab1565b81891480156122715750909614979650505050505050565b5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__63dc8c5e9a85876040518363ffffffff1660e01b815260040161237f9291906139a5565b5f60405180830381865af4158015612399573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526123c09190810190613b2a565b91509150808651146123d6575f92505050610802565b5f5b818110156124445761242d8782815181106123f5576123f5613524565b602002602001015184838151811061240f5761240f613524565b60200260200101518051602091820120825192909101919091201490565b61243c575f9350505050610802565b6001016123d8565b5060019695505050505050565b511590565b5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__6374d9a37e87896040518363ffffffff1660e01b81526004016124939291906139a5565b606060405180830381865af41580156124ae573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124d291906139e2565b919450925090506124e4838635611ff5565b6125005760405162461bcd60e51b815260040161083290613461565b600287600a811115612514576125146133be565b14806125315750600387600a81111561252f5761252f6133be565b145b61254d5760405162461bcd60e51b815260040161083290613a0d565b600287600a811115612561576125616133be565b036125f75780156125e95760405162461bcd60e51b815260206004820152604660248201527f5468652070726f6f6620757070657220626f756e64206d75737420626520302c60448201527f20706c65617365207573652069734269727468646174654265747765656e20696064820152651b9cdd19585960d21b608482015260a401610832565b611fbe6383aa7e8083613615565b801561267b5760405162461bcd60e51b815260206004820152604760248201527f5468652070726f6f6620757070657220626f756e64206d75737420626520302c60448201527f20706c6561736520757365206973457870697279446174654265747765656e206064820152661a5b9cdd19585960ca1b608482015260a401610832565b50861491506109d49050565b5f818152600160205260408120546001600160a01b031680610b565760405162461bcd60e51b815260206004820152601260248201527115995c9a599a595c881b9bdd08199bdd5b9960721b6044820152606401610832565b6002546040516383578c1160e01b815260016004820152602481018390526001600160a01b03909116906383578c1190604401602060405180830381865afa15801561272e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612752919061377d565b611e005760405162461bcd60e51b815260206004820152602160248201527f496e76616c696420636572746966696361746520726567697374727920726f6f6044820152601d60fa1b6064820152608401610832565b600280546040516383578c1160e01b81526004810192909252602482018390526001600160a01b0316906383578c1190604401602060405180830381865afa1580156127f6573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061281a919061377d565b611e005760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964206369726375697420726567697374727920726f6f740000006044820152606401610832565b5f5f8360028151811061287b5761287b613524565b60200260200101515f1c90506109d48184611ff5565b5f805b6128a16020840184613672565b90508110156129fb575f600860026128b986806136cb565b86906128c860208a018a613672565b888181106128d8576128d8613524565b90506020020135886128ea9190613628565b926128f793929190613be3565b6040516020016129089291906134ff565b60408051601f19818403018152908290526129229161350e565b602060405180830381855afa15801561293d573d5f5f3e3d5ffd5b5050506040513d601f19601f820116820180604052508101906129609190613409565b901c905084828151811061297657612976613524565b602002602001015181146129c15760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a590818dbdb5b5a5d1b595b9d60721b6044820152606401610832565b6129ce6020850185613672565b838181106129de576129de613524565b90506020020135836129f09190613628565b925050600101612894565b50612a0682806136cb565b90508114610f3e5760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420636f6d6d697474656420696e70757473206c656e677468006044820152606401610832565b60038110611e00575f5ffd5b5f60408284031215612a72575f5ffd5b50919050565b5f5f5f60608486031215612a8a575f5ffd5b8335612a9581612a56565b92506020840135612aa581612a56565b915060408401356001600160401b03811115612abf575f5ffd5b612acb86828701612a62565b9150509250925092565b8015158114611e00575f5ffd5b5f60208284031215612af2575f5ffd5b813561080281612ad5565b5f60208284031215612b0d575f5ffd5b81356001600160401b03811115612b22575f5ffd5b6109d484828501612a62565b6001600160a01b0381168114611e00575f5ffd5b5f60208284031215612b52575f5ffd5b813561080281612b2e565b5f60808284031215612a72575f5ffd5b5f5f5f60608486031215612b7f575f5ffd5b8335925060208401356001600160401b03811115612b9b575f5ffd5b612ba786828701612a62565b92505060408401356001600160401b03811115612bc2575f5ffd5b612acb86828701612b5d565b60ff81168114611e00575f5ffd5b5f5f5f60608486031215612bee575f5ffd5b8335612bf981612bce565b925060208401356001600160401b03811115612b9b575f5ffd5b5f5f5f5f60808587031215612c26575f5ffd5b843593506020850135925060408501356001600160401b03811115612c49575f5ffd5b612c5587828801612a62565b92505060608501356001600160401b03811115612c70575f5ffd5b612c7c87828801612b5d565b91505092959194509250565b634e487b7160e01b5f52604160045260245ffd5b60405161010081016001600160401b0381118282101715612cbf57612cbf612c88565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612ced57612ced612c88565b604052919050565b5f6001600160401b03821115612d0d57612d0d612c88565b5060051b60200190565b5f6001600160401b03821115612d2f57612d2f612c88565b50601f01601f191660200190565b5f5f60408385031215612d4e575f5ffd5b82356001600160401b03811115612d63575f5ffd5b8301601f81018513612d73575f5ffd5b8035612d86612d8182612cf5565b612cc5565b8082825260208201915060208360051b850101925087831115612da7575f5ffd5b602084015b83811015612e275780356001600160401b03811115612dc9575f5ffd5b8501603f81018a13612dd9575f5ffd5b6020810135612dea612d8182612d17565b8181526040838301018c1015612dfe575f5ffd5b816040840160208301375f60208383010152808652505050602083019250602081019050612dac565b50945050505060208301356001600160401b03811115612e45575f5ffd5b612e5185828601612a62565b9150509250929050565b5f60208284031215612e6b575f5ffd5b5035919050565b5f5f83601f840112612e82575f5ffd5b5081356001600160401b03811115612e98575f5ffd5b6020830191508360208260051b8501011115612eb2575f5ffd5b9250929050565b5f5f83601f840112612ec9575f5ffd5b5081356001600160401b03811115612edf575f5ffd5b602083019150836020828501011115612eb2575f5ffd5b5f5f5f5f5f5f60608789031215612f0b575f5ffd5b86356001600160401b03811115612f20575f5ffd5b612f2c89828a01612e72565b90975095505060208701356001600160401b03811115612f4a575f5ffd5b612f5689828a01612eb9565b90955093505060408701356001600160401b03811115612f74575f5ffd5b612f8089828a01612eb9565b979a9699509497509295939492505050565b5f5f60208385031215612fa3575f5ffd5b82356001600160401b03811115612fb8575f5ffd5b612fc485828601612e72565b90969095509350505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6020815260018060a01b038251166020820152602082015160408201525f60408301516060808401526109d46080840182612fd0565b5f5f5f5f60408587031215613047575f5ffd5b84356001600160401b0381111561305c575f5ffd5b61306887828801612e72565b90955093505060208501356001600160401b03811115613086575f5ffd5b61309287828801612e72565b95989497509550505050565b5f5f5f5f608085870312156130b1575f5ffd5b84356130bc81612bce565b935060208501356130cc81612bce565b925060408501356001600160401b03811115612c49575f5ffd5b5f602082840312156130f6575f5ffd5b81356001600160401b0381111561310b575f5ffd5b820160608185031215610802575f5ffd5b5f5f6040838503121561312d575f5ffd5b82356001600160401b03811115613142575f5ffd5b61314e85828601612a62565b925050602083013561315f81612ad5565b809150509250929050565b602081525f82516101006020840152613187610120840182612fd0565b90506020840151601f198483030160408501526131a48282612fd0565b9150506040840151601f198483030160608501526131c28282612fd0565b9150506060840151601f198483030160808501526131e08282612fd0565b9150506080840151601f198483030160a08501526131fe8282612fd0565b91505060a0840151601f198483030160c085015261321c8282612fd0565b91505060c0840151601f198483030160e085015261323a8282612fd0565b91505060e0840151601f1984830301610100850152610b1f8282612fd0565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b8183525f6001600160fb1b03831115613298575f5ffd5b8260051b80836020870137939093016020019392505050565b5f8135601e19833603018082126132c6575f5ffd5b602091840191820191356001600160401b038111156132e3575f5ffd5b8036038313156132f1575f5ffd5b60408652613303604087018285613259565b9250506020840135818112613316575f5ffd5b8401602081019150356001600160401b03811115613332575f5ffd5b8060051b3603821315613343575f5ffd5b8583036020870152613356838284613281565b9695505050505050565b602081525f610b5360208301846132b1565b5f5f5f5f60808587031215613385575f5ffd5b845160208601519094506002811061339b575f5ffd5b6040860151606087015191945092506133b381612a56565b939692955090935050565b634e487b7160e01b5f52602160045260245ffd5b6020808252601a908201527f4e6f7420617574686f72697a65643a2061646d696e206f6e6c79000000000000604082015260600190565b5f60208284031215613419575f5ffd5b5051919050565b5f5f5f60608486031215613432575f5ffd5b8351602085015190935061344581612bce565b604085015190925061345681612bce565b809150509250925092565b6020808252604b908201527f5468652063757272656e742064617465207573656420696e207468652070726f60408201527f6f6620646f6573206e6f742066616c6c2077697468696e207468652076616c6960608201526a191a5d1e481c195c9a5bd960aa1b608082015260a00190565b634e487b7160e01b5f52601160045260245ffd5b60ff8281168282160390811115610b5657610b566134d2565b818382375f9101908152919050565b5f82518060208501845e5f920191825250919050565b634e487b7160e01b5f52603260045260245ffd5b5f82601f830112613547575f5ffd5b8151602083015f61355a612d8184612d17565b905082815285838301111561356d575f5ffd5b8282602083015e5f92810160200192909252509392505050565b5f60208284031215613597575f5ffd5b81516001600160401b038111156135ac575f5ffd5b6109d484828501613538565b602081525f610b536020830184612fd0565b5f5f5f606084860312156135dc575f5ffd5b83516135e781612b2e565b6020850151604086015191945092506001600160401b03811115613609575f5ffd5b612acb86828701613538565b81810381811115610b5657610b566134d2565b80820180821115610b5657610b566134d2565b60ff8181168382160190811115610b5657610b566134d2565b5f8235605e19833603018112613668575f5ffd5b9190910192915050565b5f5f8335601e19843603018112613687575f5ffd5b8301803591506001600160401b038211156136a0575f5ffd5b6020019150600581901b3603821315612eb2575f5ffd5b5f8235607e19833603018112613668575f5ffd5b5f5f8335601e198436030181126136e0575f5ffd5b8301803591506001600160401b038211156136f9575f5ffd5b602001915036819003821315612eb2575f5ffd5b5f5f8585111561371b575f5ffd5b83861115613727575f5ffd5b5050600583901b0193919092039150565b5f8235603e19833603018112613668575f5ffd5b604081525f61375f604083018688613259565b8281036020840152613772818587613281565b979650505050505050565b5f6020828403121561378d575f5ffd5b815161080281612ad5565b5f5f604083850312156137a9575f5ffd5b82516001600160401b038111156137be575f5ffd5b6137ca85828601613538565b92505060208301516001600160401b038111156137e5575f5ffd5b612e5185828601613538565b604081525f6138036040830185612fd0565b905082151560208301529392505050565b5f60208284031215613824575f5ffd5b81516001600160401b03811115613839575f5ffd5b8201610100818503121561384b575f5ffd5b613853612c9c565b81516001600160401b03811115613868575f5ffd5b61387486828501613538565b82525060208201516001600160401b0381111561388f575f5ffd5b61389b86828501613538565b60208301525060408201516001600160401b038111156138b9575f5ffd5b6138c586828501613538565b60408301525060608201516001600160401b038111156138e3575f5ffd5b6138ef86828501613538565b60608301525060808201516001600160401b0381111561390d575f5ffd5b61391986828501613538565b60808301525060a08201516001600160401b03811115613937575f5ffd5b61394386828501613538565b60a08301525060c08201516001600160401b03811115613961575f5ffd5b61396d86828501613538565b60c08301525060e08201516001600160401b0381111561398b575f5ffd5b61399786828501613538565b60e083015250949350505050565b604081525f6139b760408301856132b1565b9050600b83106139d557634e487b7160e01b5f52602160045260245ffd5b8260208301529392505050565b5f5f5f606084860312156139f4575f5ffd5b5050815160208301516040909301519094929350919050565b602080825260129082015271496e76616c69642070726f6f66207479706560701b604082015260600190565b60208082526052908201527f5468652070726f6f6620757070657220626f756e64206d757374206265206e6f60408201527f6e2d7a65726f2c20706c656173652075736520697342697274686461746541626060820152711bdd9953dc915c5d585b081a5b9cdd19585960721b608082015260a00190565b60208082526053908201527f5468652070726f6f6620757070657220626f756e64206d757374206265206e6f60408201527f6e2d7a65726f2c20706c65617365207573652069734578706972794461746541606082015272189bdd9953dc915c5d585b081a5b9cdd195859606a1b608082015260a00190565b5f5f60408385031215613b3b575f5ffd5b82516001600160401b03811115613b50575f5ffd5b8301601f81018513613b60575f5ffd5b8051613b6e612d8182612cf5565b8082825260208201915060208360051b850101925087831115613b8f575f5ffd5b602084015b83811015613bcf5780516001600160401b03811115613bb1575f5ffd5b613bc08a602083890101613538565b84525060209283019201613b94565b506020969096015195979596505050505050565b5f5f85851115613bf1575f5ffd5b83861115613bfd575f5ffd5b505082019391909203915056fea2646970667358221220f991155c5f0495dd21a11592eb81a72baddd6126ad66ff51d0de5dd26a8c865164736f6c634300081d0033",
|
|
967
|
+
sourceMap: "706:30507:26:-:0;;;1848:256;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1897:27:26;;1889:76;;;;-1:-1:-1;;;1889:76:26;;511:2:34;1889:76:26;;;493:21:34;550:2;530:18;;;523:30;589:34;569:18;;;562:62;-1:-1:-1;;;640:18:34;;;633:34;684:19;;1889:76:26;;;;;;;;1971:5;:18;;1979:10;-1:-1:-1;;;;;;1971:18:26;;;;;;;;1995:12;:43;;;;;-1:-1:-1;;;;;1995:43:26;;;;;2049:50;;2083:15;860:25:34;;2049:50:26;;848:2:34;833:18;2049:50:26;;;;;;;1848:256;706:30507;;14:290:34;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:34;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:34:o;714:177::-;706:30507:26;;;;;;",
|
|
930
968
|
linkReferences: {
|
|
931
969
|
"src/InputsExtractor.sol": {
|
|
932
970
|
InputsExtractor: [
|
|
933
|
-
{ start:
|
|
934
|
-
{ start:
|
|
935
|
-
{ start:
|
|
936
|
-
{ start:
|
|
937
|
-
{ start:
|
|
938
|
-
{ start:
|
|
939
|
-
{ start:
|
|
940
|
-
{ start:
|
|
941
|
-
{ start:
|
|
942
|
-
{ start:
|
|
943
|
-
{ start:
|
|
944
|
-
{ start:
|
|
945
|
-
{ start:
|
|
971
|
+
{ start: 1747, length: 20 },
|
|
972
|
+
{ start: 2515, length: 20 },
|
|
973
|
+
{ start: 2834, length: 20 },
|
|
974
|
+
{ start: 4269, length: 20 },
|
|
975
|
+
{ start: 4392, length: 20 },
|
|
976
|
+
{ start: 4956, length: 20 },
|
|
977
|
+
{ start: 5565, length: 20 },
|
|
978
|
+
{ start: 7550, length: 20 },
|
|
979
|
+
{ start: 7673, length: 20 },
|
|
980
|
+
{ start: 7993, length: 20 },
|
|
981
|
+
{ start: 8536, length: 20 },
|
|
982
|
+
{ start: 9336, length: 20 },
|
|
983
|
+
{ start: 9612, length: 20 }
|
|
946
984
|
]
|
|
947
985
|
}
|
|
948
986
|
}
|
|
949
987
|
},
|
|
950
988
|
deployedBytecode: {
|
|
951
|
-
object: "0x608060405234801561000f575f5ffd5b506004361061023f575f3560e01c80638163f23111610135578063c4560786116100b4578063e420e35411610079578063e420e3541461053e578063e718bc3214610551578063ec46f77414610564578063f851a44014610577578063f87e19b114610589575f5ffd5b8063c4560786146104c8578063cfd9464a146104db578063d3f6ffff146104ee578063d7bf616a14610501578063deb7c0591461052b575f5ffd5b8063a88f1cef116100fa578063a88f1cef14610469578063aa1346ea1461047c578063b96b161c1461048f578063bf73c26c146104a2578063c0940ebd146104b5575f5ffd5b80638163f231146103dd578063847755e31461041d5780638d6937b814610430578063921076c714610443578063a6df2c0114610456575f5ffd5b80634c127428116101c1578063652ba33d11610186578063652ba33d14610394578063653cfd811461039c5780636c40d5d6146103af578063704876d6146103b757806375829def146103ca575f5ffd5b80634c1274281461032857806354dbe4d11461033b57806359545f451461034e5780635c975abb1461036e57806362067c8214610381575f5ffd5b80632e27242c116102075780632e27242c146102c657806337889655146102d95780633a86bd3d146102ec57806341a0e2c2146102ff57806346bd0a1614610315575f5ffd5b806304951b86146102435780630b90581b1461026b57806316c38b3c1461027e57806318677f2a146102935780631e26a9dc146102a6575b5f5ffd5b610256610251366004612987565b61059c565b60405190151581526020015b60405180910390f35b610256610279366004612987565b6105be565b61029161028c3660046129d7565b6105cc565b005b6102916102a1366004612a06565b610655565b6102b96102b4366004612a21565b610702565b6040516102629190612a9d565b6102566102d4366004612ba1565b610865565b6102566102e7366004612be5565b6109b7565b6102566102fa366004612cb6565b6109cc565b610307600181565b604051908152602001610262565b610256610323366004612dbe565b6109d9565b610256610336366004612987565b6109f1565b610256610349366004612be5565b6109fe565b61036161035c366004612e09565b610b4f565b6040516102629190612e3a565b5f5461025690600160a01b900460ff1681565b61025661038f366004612e70565b610c95565b610307600381565b6102916103aa366004612e09565b610f06565b610307600281565b6102566103c5366004612987565b610fa8565b6102916103d8366004612a06565b610fb5565b6104056103eb366004612eb7565b60016020525f90815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610262565b61025661042b366004612f52565b611083565b61029161043e366004612fee565b61124b565b610256610451366004612987565b61130b565b61029161046436600461302c565b611324565b610256610477366004612987565b61144e565b61025661048a366004612be5565b611467565b600254610405906001600160a01b031681565b6102566104b0366004612be5565b6115b8565b6102566104c3366004612be5565b61161f565b6102566104d6366004612dbe565b61162b565b6102566104e9366004612987565b611639565b6102566104fc366004612987565b611647565b61051461050f366004612e09565b611660565b604080519215158352602083019190915201610262565b610256610539366004612987565b611bda565b61025661054c366004612cb6565b611be7565b61025661055f366004612987565b611bf4565b610256610572366004612cb6565b611c01565b5f54610405906001600160a01b031681565b610256610597366004612cb6565b611c0e565b5f6105b56105ad84620151806130aa565b600284611c1b565b90505b92915050565b5f6105b58384600285611e76565b5f546001600160a01b031633146105fe5760405162461bcd60e51b81526004016105f5906130bd565b60405180910390fd5b5f8054821515600160a01b0260ff60a01b199091161790556040517f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c59061064a90831515815260200190565b60405180910390a150565b5f546001600160a01b0316331461067e5760405162461bcd60e51b81526004016105f5906130bd565b6001600160a01b0381166106e05760405162461bcd60e51b8152602060048201526024808201527f526f6f742072656769737472792063616e6e6f74206265207a65726f206164646044820152637265737360e01b60648201526084016105f5565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b61074a60405180610100016040528060608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081525090565b5f73__$144f4fe859debe4776cdef2b99f7b97a42$__63ddf3eec961077260608701876130f4565b61077f6080890189613136565b6040518563ffffffff1660e01b815260040161079e94939291906131d3565b5f60405180830381865af41580156107b8573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526107df9190810190613248565b6040516301e9bf5760e11b815290925073__$144f4fe859debe4776cdef2b99f7b97a42$__91506303d37eae9061081c90849087906004016132a1565b5f60405180830381865af4158015610836573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261085d91908101906132c4565b949350505050565b5f8080808073__$144f4fe859debe4776cdef2b99f7b97a42$__63c802bad161089160608901896130f4565b61089e60808b018b613136565b6040518563ffffffff1660e01b81526004016108bd94939291906131d3565b608060405180830381865af41580156108d8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108fc9190613455565b929650909450925090505f600184600181111561091b5761091b6134a1565b1490505f886002811115610931576109316134a1565b836002811115610943576109436134a1565b1490507f2532418a107c5306fa8308c22255792cf77e4a290cbce8a840a642a3e591340b86147f1fa73686cf510f8f85757b0602de0dd72a13e68ae2092462be8b72662e7f179b85148380156109965750825b801561099f5750815b80156109a85750805b9b9a5050505050505050505050565b5f6105b56109c68460016134b5565b836109fe565b5f6105b5836007846121b4565b5f6109e78484600385611e76565b90505b9392505050565b5f6105b583600384611c1b565b5f80808073__$144f4fe859debe4776cdef2b99f7b97a42$__63b2b37a4c610a2960608801886130f4565b610a3660808a018a613136565b6040518563ffffffff1660e01b8152600401610a5594939291906131d3565b606060405180830381865af4158015610a70573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9491906134ce565b925092509250610aa8838660a001356122de565b610ac45760405162461bcd60e51b81526004016105f59061350f565b60ff811615610b3d576040805162461bcd60e51b81526020600482015260248101919091527f5468652070726f6f6620757070657220626f756e64206d75737420626520302c60448201527f20706c65617365207573652069734167654265747765656e20696e737465616460648201526084016105f5565b5060ff85811691161491505092915050565b60408051606080820183525f8083526020830152918101919091525f73__$144f4fe859debe4776cdef2b99f7b97a42$__634601173c610b9260608601866130f4565b610b9f6080880188613136565b6040518563ffffffff1660e01b8152600401610bbe94939291906131d3565b5f60405180830381865af4158015610bd8573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610bff9190810190613580565b604051630578c5d360e11b815290915073__$144f4fe859debe4776cdef2b99f7b97a42$__90630af18ba690610c399084906004016135b1565b5f60405180830381865af4158015610c53573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610c7a91908101906135c3565b604085015260208401526001600160a01b0316825250919050565b5f80808073__$144f4fe859debe4776cdef2b99f7b97a42$__63b2b37a4c610cc060608801886130f4565b610ccd60808a018a613136565b6040518563ffffffff1660e01b8152600401610cec94939291906131d3565b606060405180830381865af4158015610d07573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d2b91906134ce565b925092509250610d3f838660a001356122de565b610d5b5760405162461bcd60e51b81526004016105f59061350f565b8560ff168760ff161115610dc75760405162461bcd60e51b815260206004820152602d60248201527f4d696e20616765206d757374206265206c657373207468616e206f722065717560448201526c616c20746f206d61782061676560981b60648201526084016105f5565b8160ff165f03610e545760405162461bcd60e51b815260206004820152604c60248201527f5468652070726f6f66206c6f77657220626f756e64206d757374206265206e6f60448201527f6e2d7a65726f2c20706c656173652075736520697341676542656c6f774f724560648201526b1c5d585b081a5b9cdd19585960a21b608482015260a4016105f5565b8060ff165f03610ee15760405162461bcd60e51b815260206004820152604c60248201527f5468652070726f6f6620757070657220626f756e64206d757374206265206e6f60448201527f6e2d7a65726f2c20706c656173652075736520697341676541626f76654f724560648201526b1c5d585b081a5b9cdd19585960a21b608482015260a4016105f5565b8160ff168760ff16148015610efb57508060ff168660ff16145b979650505050505050565b5f73__$144f4fe859debe4776cdef2b99f7b97a42$__63fbd24457610f2e60608501856130f4565b610f3b6080870187613136565b6040518563ffffffff1660e01b8152600401610f5a94939291906131d3565b602060405180830381865af4158015610f75573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f99919061360e565b9050610fa48161230b565b5050565b5f6105b583600284611c1b565b5f546001600160a01b03163314610fde5760405162461bcd60e51b81526004016105f5906130bd565b6001600160a01b0381166110345760405162461bcd60e51b815260206004820152601c60248201527f41646d696e2063616e6e6f74206265207a65726f20616464726573730000000060448201526064016105f5565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b9190a35050565b5f5f6110c386868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506123cc92505050565b61113d576008600287876040516020016110de929190613625565b60408051601f19818403018152908290526110f891613634565b602060405180830381855afa158015611113573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190611136919061360e565b901c61113f565b5f5b90505f61118085858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506123cc92505050565b6111fa5760086002868660405160200161119b929190613625565b60408051601f19818403018152908290526111b591613634565b602060405180830381855afa1580156111d0573d5f5f3e3d5ffd5b5050506040513d601f19601f820116820180604052508101906111f3919061360e565b901c6111fc565b5f5b905081898960038181106112125761121261364a565b9050602002013514801561123e575080898960048181106112355761123561364a565b90506020020135145b9998505050505050505050565b5f546001600160a01b031633146112745760405162461bcd60e51b81526004016105f5906130bd565b5f5b818110156113065760015f8484848181106112935761129361364a565b602090810292909201358352508101919091526040015f2080546001600160a01b03191690558282828181106112cb576112cb61364a565b905060200201357f6fdcbcf8f91bc23f2c9dcfe8fe01d80d1b1afbbf207298e94c0171ccc587424c60405160405180910390a2600101611276565b505050565b5f6105b561131c620151808561365e565b6002846123d1565b5f546001600160a01b0316331461134d5760405162461bcd60e51b81526004016105f5906130bd565b5f5b83811015611447578282828181106113695761136961364a565b905060200201602081019061137e9190612a06565b60015f8787858181106113935761139361364a565b9050602002013581526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b031602179055508282828181106113dc576113dc61364a565b90506020020160208101906113f19190612a06565b6001600160a01b031685858381811061140c5761140c61364a565b905060200201357f636107338a3eb46f1f60562462f3ec11393d35fbc965991aaade3b9e7d89c3f560405160405180910390a360010161134f565b5050505050565b5f6105b561145f620151808561365e565b6003846123d1565b5f80808073__$144f4fe859debe4776cdef2b99f7b97a42$__63b2b37a4c61149260608801886130f4565b61149f60808a018a613136565b6040518563ffffffff1660e01b81526004016114be94939291906131d3565b606060405180830381865af41580156114d9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114fd91906134ce565b925092509250611511838660a001356122de565b61152d5760405162461bcd60e51b81526004016105f59061350f565b60ff8216156115a6576040805162461bcd60e51b81526020600482015260248101919091527f5468652070726f6f66206c6f77657220626f756e64206d75737420626520302c60448201527f20706c65617365207573652069734167654265747765656e20696e737465616460648201526084016105f5565b60ff8681169116149250505092915050565b5f5f8360ff161161160b5760405162461bcd60e51b815260206004820152601e60248201527f4d617820616765206d7573742062652067726561746572207468616e2030000060448201526064016105f5565b6105b5611619600185613671565b83611467565b5f6105b5838484610c95565b5f6109e78484600285611e76565b5f6105b58384600385611e76565b5f6105b561165884620151806130aa565b600384611c1b565b5f80548190600160a01b900460ff16156116b15760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b60448201526064016105f5565b5f6116bc84356125d5565b90506116ea6116ce6040860186613136565b5f8181106116de576116de61364a565b9050602002013561262e565b6117176116fa6040860186613136565b600181811061170b5761170b61364a565b905060200201356126f6565b6117616117276040860186613136565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050505060a08601356127b4565b6117c95760405162461bcd60e51b815260206004820152603360248201527f5468652070726f6f66207761732067656e657261746564206f757473696465206044820152721d1a19481d985b1a591a5d1e481c195c9a5bd9606a1b60648201526084016105f5565b6117f36117d96040860186613136565b6117e660c08801886130f4565b61042b60e08a018a6130f4565b61183f5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420646f6d61696e206f722073636f706500000000000000000060448201526064016105f5565b6118fa61184f6040860186613136565b600590600161186160408a018a613136565b61186c92915061365e565b926118799392919061368a565b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152506118b79250505060608701876130f4565b6118c46080890189613136565b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152506127df92505050565b5f6119086040860186613136565b60026119176040890189613136565b61192292915061365e565b8181106119315761193161364a565b905060200201355f1c600381111561194b5761194b6134a1565b90506002816003811115611961576119616134a1565b141580156119815750600381600381111561197e5761197e6134a1565b14155b806119995750611999610120860161010087016129d7565b6119f65760405162461bcd60e51b815260206004820152602860248201527f4d6f636b2070726f6f667320617265206f6e6c7920616c6c6f77656420696e20604482015267646576206d6f646560c01b60648201526084016105f5565b5f816003811115611a0957611a096134a1565b1480611a225750611a22610120860161010087016129d7565b611a825760405162461bcd60e51b815260206004820152602b60248201527f53616c746564206e756c6c69666965727320617265206e6f7420737570706f7260448201526a74656420666f72206e6f7760a81b60648201526084016105f5565b6007611a916040870187613136565b611a9c92915061365e565b611aa96080870187613136565b905014611b065760405162461bcd60e51b815260206004820152602560248201527f496e76616c696420636f6d6d697474656420696e70757420636f756e7473206c6044820152640cadccee8d60db1b60648201526084016105f5565b6001600160a01b03821663ea50d0e4611b2260208801886130f4565b611b2f60408a018a613136565b6040518563ffffffff1660e01b8152600401611b4e94939291906131d3565b602060405180830381865afa158015611b69573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b8d91906136b5565b93505f6001611b9f6040880188613136565b611baa92915061365e565b9050611bb96040870187613136565b82818110611bc957611bc961364a565b905060200201359350505050915091565b5f6105b5836002846123d1565b5f6105b5836005846121b4565b5f6105b5836003846123d1565b5f6105b5836006846121b4565b5f6105b5836004846121b4565b5f80808073__$144f4fe859debe4776cdef2b99f7b97a42$__638a8b3f92611c4660608801886130f4565b611c5360808a018a613136565b8b6040518663ffffffff1660e01b8152600401611c749594939291906136d0565b606060405180830381865af4158015611c8f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cb39190613725565b925092509250611cc7838660a001356122de565b611ce35760405162461bcd60e51b81526004016105f59061350f565b600286600a811115611cf757611cf76134a1565b1480611d145750600386600a811115611d1257611d126134a1565b145b611d305760405162461bcd60e51b81526004016105f590613750565b600286600a811115611d4457611d446134a1565b03611de6578015611dcc5760405162461bcd60e51b815260206004820152604660248201527f5468652070726f6f6620757070657220626f756e64206d75737420626520302c60448201527f20706c65617365207573652069734269727468646174654265747765656e20696064820152651b9cdd19585960d21b608482015260a4016105f5565b611dda6383aa7e808361365e565b871493505050506109ea565b8015611e6a5760405162461bcd60e51b815260206004820152604760248201527f5468652070726f6f6620757070657220626f756e64206d75737420626520302c60448201527f20706c6561736520757365206973457870697279446174654265747765656e206064820152661a5b9cdd19585960ca1b608482015260a4016105f5565b50851491506109ea9050565b5f80808073__$144f4fe859debe4776cdef2b99f7b97a42$__638a8b3f92611ea160608801886130f4565b611eae60808a018a613136565b8b6040518663ffffffff1660e01b8152600401611ecf9594939291906136d0565b606060405180830381865af4158015611eea573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f0e9190613725565b925092509250611f22838660a001356122de565b611f3e5760405162461bcd60e51b81526004016105f59061350f565b86881115611fa65760405162461bcd60e51b815260206004820152602f60248201527f4d696e2064617465206d757374206265206c657373207468616e206f7220657160448201526e75616c20746f206d6178206461746560881b60648201526084016105f5565b600286600a811115611fba57611fba6134a1565b1480611fd75750600386600a811115611fd557611fd56134a1565b145b611ff35760405162461bcd60e51b81526004016105f590613750565b600286600a811115612007576120076134a1565b036120ed57815f0361209c5760405162461bcd60e51b815260206004820152605260248201527f5468652070726f6f66206c6f77657220626f756e64206d757374206265206e6f60448201527f6e2d7a65726f2c20706c656173652075736520697342697274686461746542656064820152711b1bddd3dc915c5d585b081a5b9cdd19585960721b608482015260a4016105f5565b805f036120bb5760405162461bcd60e51b81526004016105f59061377c565b6120c96383aa7e808361365e565b881480156120e357506120e06383aa7e808261365e565b87145b935050505061085d565b815f0361217e5760405162461bcd60e51b815260206004820152605360248201527f5468652070726f6f66206c6f77657220626f756e64206d757374206265206e6f60448201527f6e2d7a65726f2c20706c65617365207573652069734578706972794461746542606482015272195b1bddd3dc915c5d585b081a5b9cdd195859606a1b608482015260a4016105f5565b805f0361219d5760405162461bcd60e51b81526004016105f5906137f4565b81881480156120e357509095149695505050505050565b5f808073__$144f4fe859debe4776cdef2b99f7b97a42$__6384d40ca06121de60608701876130f4565b6121eb6080890189613136565b8a6040518663ffffffff1660e01b815260040161220c9594939291906136d0565b5f60405180830381865af4158015612226573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261224d919081019061386d565b9150915080865114612263575f925050506109ea565b5f5b818110156122d1576122ba8782815181106122825761228261364a565b602002602001015184838151811061229c5761229c61364a565b60200260200101518051602091820120825192909101919091201490565b6122c9575f93505050506109ea565b600101612265565b5060019695505050505050565b5f806122ea83856130aa565b90508342101580156122fb57508381115b801561085d575042109392505050565b6002546040516383578c1160e01b815260036004820152602481018390526001600160a01b03909116906383578c1190604401602060405180830381865afa158015612359573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061237d91906136b5565b6123c95760405162461bcd60e51b815260206004820152601f60248201527f496e76616c69642073616e6374696f6e7320726567697374727920726f6f740060448201526064016105f5565b50565b511590565b5f80808073__$144f4fe859debe4776cdef2b99f7b97a42$__638a8b3f926123fc60608801886130f4565b61240960808a018a613136565b8b6040518663ffffffff1660e01b815260040161242a9594939291906136d0565b606060405180830381865af4158015612445573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124699190613725565b92509250925061247d838660a001356122de565b6124995760405162461bcd60e51b81526004016105f59061350f565b81156125175760405162461bcd60e51b815260206004820152604160248201527f5468652070726f6f66206c6f77657220626f756e64206d75737420626520302c60448201527f20706c6561736520757365206973446174654265747765656e20696e737465616064820152601960fa1b608482015260a4016105f5565b600286600a81111561252b5761252b6134a1565b14806125485750600386600a811115612546576125466134a1565b145b6125645760405162461bcd60e51b81526004016105f590613750565b600286600a811115612578576125786134a1565b036125aa57805f0361259c5760405162461bcd60e51b81526004016105f59061377c565b611dda6383aa7e808261365e565b805f036125c95760405162461bcd60e51b81526004016105f5906137f4565b861492506109ea915050565b5f818152600160205260408120546001600160a01b0316806105b85760405162461bcd60e51b815260206004820152601260248201527115995c9a599a595c881b9bdd08199bdd5b9960721b60448201526064016105f5565b6002546040516383578c1160e01b815260016004820152602481018390526001600160a01b03909116906383578c1190604401602060405180830381865afa15801561267c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126a091906136b5565b6123c95760405162461bcd60e51b815260206004820152602160248201527f496e76616c696420636572746966696361746520726567697374727920726f6f6044820152601d60fa1b60648201526084016105f5565b600280546040516383578c1160e01b81526004810192909252602482018390526001600160a01b0316906383578c1190604401602060405180830381865afa158015612744573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061276891906136b5565b6123c95760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964206369726375697420726567697374727920726f6f7400000060448201526064016105f5565b5f5f836002815181106127c9576127c961364a565b60200260200101515f1c905061085d81846122de565b5f805b8251811015612920575f60086002878786908887815181106128065761280661364a565b60200260200101518861281991906130aa565b9261282693929190613926565b604051602001612837929190613625565b60408051601f198184030181529082905261285191613634565b602060405180830381855afa15801561286c573d5f5f3e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061288f919061360e565b901c90508682815181106128a5576128a561364a565b602002602001015181146128f05760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a590818dbdb5b5a5d1b595b9d60721b60448201526064016105f5565b8382815181106129025761290261364a565b60200260200101518361291591906130aa565b9250506001016127e2565b508083146114475760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420636f6d6d697474656420696e70757473206c656e6774680060448201526064016105f5565b5f6101208284031215612981575f5ffd5b50919050565b5f5f60408385031215612998575f5ffd5b8235915060208301356001600160401b038111156129b4575f5ffd5b6129c085828601612970565b9150509250929050565b80151581146123c9575f5ffd5b5f602082840312156129e7575f5ffd5b81356109ea816129ca565b6001600160a01b03811681146123c9575f5ffd5b5f60208284031215612a16575f5ffd5b81356109ea816129f2565b5f5f60408385031215612a32575f5ffd5b82356001600160401b03811115612a47575f5ffd5b612a5385828601612970565b9250506020830135612a64816129ca565b809150509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f82516101006020840152612aba610120840182612a6f565b90506020840151601f19848303016040850152612ad78282612a6f565b9150506040840151601f19848303016060850152612af58282612a6f565b9150506060840151601f19848303016080850152612b138282612a6f565b9150506080840151601f198483030160a0850152612b318282612a6f565b91505060a0840151601f198483030160c0850152612b4f8282612a6f565b91505060c0840151601f198483030160e0850152612b6d8282612a6f565b91505060e0840151601f1984830301610100850152612b8c8282612a6f565b95945050505050565b600381106123c9575f5ffd5b5f5f60408385031215612bb2575f5ffd5b8235612bbd81612b95565b915060208301356001600160401b038111156129b4575f5ffd5b60ff811681146123c9575f5ffd5b5f5f60408385031215612bf6575f5ffd5b8235612bbd81612bd7565b634e487b7160e01b5f52604160045260245ffd5b60405161010081016001600160401b0381118282101715612c3857612c38612c01565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612c6657612c66612c01565b604052919050565b5f6001600160401b03821115612c8657612c86612c01565b5060051b60200190565b5f6001600160401b03821115612ca857612ca8612c01565b50601f01601f191660200190565b5f5f60408385031215612cc7575f5ffd5b82356001600160401b03811115612cdc575f5ffd5b8301601f81018513612cec575f5ffd5b8035612cff612cfa82612c6e565b612c3e565b8082825260208201915060208360051b850101925087831115612d20575f5ffd5b602084015b83811015612da05780356001600160401b03811115612d42575f5ffd5b8501603f81018a13612d52575f5ffd5b6020810135612d63612cfa82612c90565b8181526040838301018c1015612d77575f5ffd5b816040840160208301375f60208383010152808652505050602083019250602081019050612d25565b50945050505060208301356001600160401b038111156129b4575f5ffd5b5f5f5f60608486031215612dd0575f5ffd5b833592506020840135915060408401356001600160401b03811115612df3575f5ffd5b612dff86828701612970565b9150509250925092565b5f60208284031215612e19575f5ffd5b81356001600160401b03811115612e2e575f5ffd5b61085d84828501612970565b6020815260018060a01b038251166020820152602082015160408201525f604083015160608084015261085d6080840182612a6f565b5f5f5f60608486031215612e82575f5ffd5b8335612e8d81612bd7565b92506020840135612e9d81612bd7565b915060408401356001600160401b03811115612df3575f5ffd5b5f60208284031215612ec7575f5ffd5b5035919050565b5f5f83601f840112612ede575f5ffd5b5081356001600160401b03811115612ef4575f5ffd5b6020830191508360208260051b8501011115612f0e575f5ffd5b9250929050565b5f5f83601f840112612f25575f5ffd5b5081356001600160401b03811115612f3b575f5ffd5b602083019150836020828501011115612f0e575f5ffd5b5f5f5f5f5f5f60608789031215612f67575f5ffd5b86356001600160401b03811115612f7c575f5ffd5b612f8889828a01612ece565b90975095505060208701356001600160401b03811115612fa6575f5ffd5b612fb289828a01612f15565b90955093505060408701356001600160401b03811115612fd0575f5ffd5b612fdc89828a01612f15565b979a9699509497509295939492505050565b5f5f60208385031215612fff575f5ffd5b82356001600160401b03811115613014575f5ffd5b61302085828601612ece565b90969095509350505050565b5f5f5f5f6040858703121561303f575f5ffd5b84356001600160401b03811115613054575f5ffd5b61306087828801612ece565b90955093505060208501356001600160401b0381111561307e575f5ffd5b61308a87828801612ece565b95989497509550505050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156105b8576105b8613096565b6020808252601a908201527f4e6f7420617574686f72697a65643a2061646d696e206f6e6c79000000000000604082015260600190565b5f5f8335601e19843603018112613109575f5ffd5b8301803591506001600160401b03821115613122575f5ffd5b602001915036819003821315612f0e575f5ffd5b5f5f8335601e1984360301811261314b575f5ffd5b8301803591506001600160401b03821115613164575f5ffd5b6020019150600581901b3603821315612f0e575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b8183525f6001600160fb1b038311156131ba575f5ffd5b8260051b80836020870137939093016020019392505050565b604081525f6131e660408301868861317b565b8281036020840152610efb8185876131a3565b5f82601f830112613208575f5ffd5b8151602083015f61321b612cfa84612c90565b905082815285838301111561322e575f5ffd5b8282602083015e5f92810160200192909252509392505050565b5f5f60408385031215613259575f5ffd5b82516001600160401b0381111561326e575f5ffd5b61327a858286016131f9565b92505060208301516001600160401b03811115613295575f5ffd5b6129c0858286016131f9565b604081525f6132b36040830185612a6f565b905082151560208301529392505050565b5f602082840312156132d4575f5ffd5b81516001600160401b038111156132e9575f5ffd5b820161010081850312156132fb575f5ffd5b613303612c15565b81516001600160401b03811115613318575f5ffd5b613324868285016131f9565b82525060208201516001600160401b0381111561333f575f5ffd5b61334b868285016131f9565b60208301525060408201516001600160401b03811115613369575f5ffd5b613375868285016131f9565b60408301525060608201516001600160401b03811115613393575f5ffd5b61339f868285016131f9565b60608301525060808201516001600160401b038111156133bd575f5ffd5b6133c9868285016131f9565b60808301525060a08201516001600160401b038111156133e7575f5ffd5b6133f3868285016131f9565b60a08301525060c08201516001600160401b03811115613411575f5ffd5b61341d868285016131f9565b60c08301525060e08201516001600160401b0381111561343b575f5ffd5b613447868285016131f9565b60e083015250949350505050565b5f5f5f5f60808587031215613468575f5ffd5b845160208601519094506002811061347e575f5ffd5b60408601516060870151919450925061349681612b95565b939692955090935050565b634e487b7160e01b5f52602160045260245ffd5b60ff81811683821601908111156105b8576105b8613096565b5f5f5f606084860312156134e0575f5ffd5b835160208501519093506134f381612bd7565b604085015190925061350481612bd7565b809150509250925092565b6020808252604b908201527f5468652063757272656e742064617465207573656420696e207468652070726f60408201527f6f6620646f6573206e6f742066616c6c2077697468696e207468652076616c6960608201526a191a5d1e481c195c9a5bd960aa1b608082015260a00190565b5f60208284031215613590575f5ffd5b81516001600160401b038111156135a5575f5ffd5b61085d848285016131f9565b602081525f6105b56020830184612a6f565b5f5f5f606084860312156135d5575f5ffd5b83516135e0816129f2565b6020850151604086015191945092506001600160401b03811115613602575f5ffd5b612dff868287016131f9565b5f6020828403121561361e575f5ffd5b5051919050565b818382375f9101908152919050565b5f82518060208501845e5f920191825250919050565b634e487b7160e01b5f52603260045260245ffd5b818103818111156105b8576105b8613096565b60ff82811682821603908111156105b8576105b8613096565b5f5f85851115613698575f5ffd5b838611156136a4575f5ffd5b5050600583901b0193919092039150565b5f602082840312156136c5575f5ffd5b81516109ea816129ca565b606081525f6136e360608301878961317b565b82810360208401526136f68186886131a3565b915050600b831061371557634e487b7160e01b5f52602160045260245ffd5b8260408301529695505050505050565b5f5f5f60608486031215613737575f5ffd5b5050815160208301516040909301519094929350919050565b602080825260129082015271496e76616c69642070726f6f66207479706560701b604082015260600190565b60208082526052908201527f5468652070726f6f6620757070657220626f756e64206d757374206265206e6f60408201527f6e2d7a65726f2c20706c656173652075736520697342697274686461746541626060820152711bdd9953dc915c5d585b081a5b9cdd19585960721b608082015260a00190565b60208082526053908201527f5468652070726f6f6620757070657220626f756e64206d757374206265206e6f60408201527f6e2d7a65726f2c20706c65617365207573652069734578706972794461746541606082015272189bdd9953dc915c5d585b081a5b9cdd195859606a1b608082015260a00190565b5f5f6040838503121561387e575f5ffd5b82516001600160401b03811115613893575f5ffd5b8301601f810185136138a3575f5ffd5b80516138b1612cfa82612c6e565b8082825260208201915060208360051b8501019250878311156138d2575f5ffd5b602084015b838110156139125780516001600160401b038111156138f4575f5ffd5b6139038a6020838901016131f9565b845250602092830192016138d7565b506020969096015195979596505050505050565b5f5f85851115613934575f5ffd5b83861115613940575f5ffd5b505082019391909203915056fea2646970667358221220623aa0f5d6fd1ed4b32bdfd3907fb8b21b1ba73e0a28815b6397c145a04864b764736f6c634300081d0033",
|
|
952
|
-
sourceMap: "674:28697:26:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12985:206;;;;;;:::i;:::-;;:::i;:::-;;;864:14:34;;857:22;839:41;;827:2;812:18;12985:206:26;;;;;;;;15024:192;;;;;;:::i;:::-;;:::i;2495:118::-;;;;;;:::i;:::-;;:::i;:::-;;3146:206;;;;;;:::i;:::-;;:::i;3887:369::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;22499:700::-;;;;;;:::i;:::-;;:::i;5317:169::-;;;;;;:::i;:::-;;:::i;21021:230::-;;;;;;:::i;:::-;;:::i;706:69::-;;772:1;706:69;;;;;8483:25:34;;;8471:2;8456:18;706:69:26;8337:177:34;16569:227:26;;;;;;:::i;:::-;;:::i;15522:207::-;;;;;;:::i;:::-;;:::i;4534:541::-;;;;;;:::i;:::-;;:::i;21417:347::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;944:18::-;;;;;-1:-1:-1;;;944:18:26;;;;;;5811:766;;;;;;:::i;:::-;;:::i;848:67::-;;912:1;848:67;;21915:271;;;;;;:::i;:::-;;:::i;779:65::-;;841:1;779:65;;12517:204;;;;;;:::i;:::-;;:::i;2262:229::-;;;;;;:::i;:::-;;:::i;1052:53::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1052:53:26;;;;;;-1:-1:-1;;;;;11049:32:34;;;11031:51;;11019:2;11004:18;1052:53:26;10885:203:34;23538:706:26;;;;;;:::i;:::-;;:::i;2911:231::-;;;;;;:::i;:::-;;:::i;14544:210::-;;;;;;:::i;:::-;;:::i;2617:290::-;;;;;;:::i;:::-;;:::i;17587:211::-;;;;;;:::i;:::-;;:::i;6855:541::-;;;;;;:::i;:::-;;:::i;1179:33::-;;;;;-1:-1:-1;;;;;1179:33:26;;;7638:228;;;;;;:::i;:::-;;:::i;8114:159::-;;;;;;:::i;:::-;;:::i;13544:224::-;;;;;;:::i;:::-;;:::i;18074:195::-;;;;;;:::i;:::-;;:::i;15999:209::-;;;;;;:::i;:::-;;:::i;26163:3206::-;;;;;;:::i;:::-;;:::i;:::-;;;;14509:14:34;;14502:22;14484:41;;14556:2;14541:18;;14534:34;;;;14457:18;26163:3206:26;14316:258:34;14071:206:26;;;;;;:::i;:::-;;:::i;20388:223::-;;;;;;:::i;:::-;;:::i;17105:209::-;;;;;;:::i;:::-;;:::i;19757:229::-;;;;;;:::i;:::-;;:::i;920:20::-;;;;;-1:-1:-1;;;;;920:20:26;;;19203:222;;;;;;:::i;:::-;;:::i;12985:206::-;13102:4;13121:65;13140:16;:7;13150:6;13140:16;:::i;:::-;13158:19;13179:6;13121:18;:65::i;:::-;13114:72;;12985:206;;;;;:::o;15024:192::-;15138:4;15157:54;15171:4;15177;15183:19;15204:6;15157:13;:54::i;2495:118::-;2125:5;;-1:-1:-1;;;;;2125:5:26;2111:10;:19;2103:58;;;;-1:-1:-1;;;2103:58:26;;;;;;;:::i;:::-;;;;;;;;;2553:6:::1;:16:::0;;;::::1;;-1:-1:-1::0;;;2553:16:26::1;-1:-1:-1::0;;;;2553:16:26;;::::1;;::::0;;2580:28:::1;::::0;::::1;::::0;::::1;::::0;2562:7;864:14:34;857:22;839:41;;827:2;812:18;;699:187;2580:28:26::1;;;;;;;;2495:118:::0;:::o;3146:206::-;2125:5;;-1:-1:-1;;;;;2125:5:26;2111:10;:19;2103:58;;;;-1:-1:-1;;;2103:58:26;;;;;;;:::i;:::-;-1:-1:-1;;;;;3230:27:26;::::1;3222:76;;;::::0;-1:-1:-1;;;3222:76:26;;15398:2:34;3222:76:26::1;::::0;::::1;15380:21:34::0;15437:2;15417:18;;;15410:30;15476:34;15456:18;;;15449:62;-1:-1:-1;;;15527:18:34;;;15520:34;15571:19;;3222:76:26::1;15196:400:34::0;3222:76:26::1;3304:12;:43:::0;;-1:-1:-1;;;;;;3304:43:26::1;-1:-1:-1::0;;;;;3304:43:26;;;::::1;::::0;;;::::1;::::0;;3146:206::o;3887:369::-;4006:34;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4006:34:26;4051:26;4081:15;:38;4120:22;;;;:6;:22;:::i;:::-;4144:27;;;;:6;:27;:::i;:::-;4081:91;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4081:91:26;;;;;;;;;;;;:::i;:::-;4194:57;;-1:-1:-1;;;4194:57:26;;4048:124;;-1:-1:-1;4194:15:26;;-1:-1:-1;4194:32:26;;:57;;4048:124;;4242:8;;4194:57;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4194:57:26;;;;;;;;;;;;:::i;:::-;4178:73;3887:369;-1:-1:-1;;;;3887:369:26:o;22499:700::-;22631:4;;;;;22745:15;:39;22785:22;;;;:6;:22;:::i;:::-;22809:27;;;;:6;:27;:::i;:::-;22745:92;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22643:194;;-1:-1:-1;22643:194:26;;-1:-1:-1;22643:194:26;-1:-1:-1;22643:194:26;-1:-1:-1;22843:17:26;22878:22;22863:11;:37;;;;;;;;:::i;:::-;;22843:57;;22906:18;22953:13;22927:39;;;;;;;;:::i;:::-;:22;:39;;;;;;;;:::i;:::-;;;-1:-1:-1;5043:66:19;23000:44:26;;4934:66:19;23076:30:26;;23119:12;:29;;;;;23135:13;23119:29;:53;;;;;23152:20;23119:53;:75;;;;;23176:18;23119:75;23112:82;22499:700;-1:-1:-1;;;;;;;;;;;22499:700:26:o;5317:169::-;5425:4;5444:37;5462:10;:6;5471:1;5462:10;:::i;:::-;5474:6;5444:17;:37::i;21021:230::-;21153:4;21172:74;21189:11;21202:35;21239:6;21172:16;:74::i;16569:227::-;16710:4;16729:62;16743:7;16752;16761:21;16784:6;16729:13;:62::i;:::-;16722:69;;16569:227;;;;;;:::o;15522:207::-;15647:4;15666:58;15685:7;15694:21;15717:6;15666:18;:58::i;4534:541::-;4649:4;;;;4707:15;:33;4741:22;;;;:6;:22;:::i;:::-;4765:27;;;;:6;:27;:::i;:::-;4707:86;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4661:132;;;;;;4807:66;4829:11;4842:6;:30;;;4807:21;:66::i;:::-;4799:154;;;;-1:-1:-1;;;4799:154:26;;;;;;;:::i;:::-;4967:8;;;;4959:85;;;;;-1:-1:-1;;;4959:85:26;;23257:2:34;4959:85:26;;;23239:21:34;23276:18;;;23269:30;;;;23335:34;23315:18;;;23308:62;23406:34;23386:18;;;23379:62;23458:19;;4959:85:26;23055:428:34;4959:85:26;-1:-1:-1;5057:13:26;;;;;;;;-1:-1:-1;;4534:541:26;;;;:::o;21417:347::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;21543:17:26;21563:15;:34;21598:22;;;;:6;:22;:::i;:::-;21622:27;;;;:6;:27;:::i;:::-;21563:87;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21563:87:26;;;;;;;;;;;;:::i;:::-;21725:34;;-1:-1:-1;;;21725:34:26;;21543:107;;-1:-1:-1;21725:15:26;;:28;;:34;;21543:107;;21725:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21725:34:26;;;;;;;;;;;;:::i;:::-;21701:20;;;21656:103;21682:17;;;21656:103;-1:-1:-1;;;;;21656:103:26;;;-1:-1:-1;21657:9:26;21417:347;-1:-1:-1;21417:347:26:o;5811:766::-;5939:4;;;;5997:15;:33;6031:22;;;;:6;:22;:::i;:::-;6055:27;;;;:6;:27;:::i;:::-;5997:86;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5951:132;;;;;;6097:66;6119:11;6132:6;:30;;;6097:21;:66::i;:::-;6089:154;;;;-1:-1:-1;;;6089:154:26;;;;;;;:::i;:::-;6267:6;6257:16;;:6;:16;;;;6249:74;;;;-1:-1:-1;;;6249:74:26;;24843:2:34;6249:74:26;;;24825:21:34;24882:2;24862:18;;;24855:30;24921:34;24901:18;;;24894:62;-1:-1:-1;;;24972:18:34;;;24965:43;25025:19;;6249:74:26;24641:409:34;6249:74:26;6337:3;:8;;6344:1;6337:8;6329:97;;;;-1:-1:-1;;;6329:97:26;;25257:2:34;6329:97:26;;;25239:21:34;25296:2;25276:18;;;25269:30;25335:34;25315:18;;;25308:62;25406:34;25386:18;;;25379:62;-1:-1:-1;;;25457:19:34;;;25450:43;25510:19;;6329:97:26;25055:480:34;6329:97:26;6440:3;:8;;6447:1;6440:8;6432:97;;;;-1:-1:-1;;;6432:97:26;;25742:2:34;6432:97:26;;;25724:21:34;25781:2;25761:18;;;25754:30;25820:34;25800:18;;;25793:62;25891:34;25871:18;;;25864:62;-1:-1:-1;;;25942:19:34;;;25935:43;25995:19;;6432:97:26;25540:480:34;6432:97:26;6552:3;6542:13;;:6;:13;;;:30;;;;;6569:3;6559:13;;:6;:13;;;6542:30;6535:37;5811:766;-1:-1:-1;;;;;;;5811:766:26:o;21915:271::-;22012:26;22041:15;:39;22081:22;;;;:6;:22;:::i;:::-;22105:27;;;;:6;:27;:::i;:::-;22041:92;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22012:121;;22139:42;22162:18;22139:22;:42::i;:::-;22006:180;21915:271;:::o;12517:204::-;12641:4;12660:56;12679:7;12688:19;12709:6;12660:18;:56::i;2262:229::-;2125:5;;-1:-1:-1;;;;;2125:5:26;2111:10;:19;2103:58;;;;-1:-1:-1;;;2103:58:26;;;;;;;:::i;:::-;-1:-1:-1;;;;;2336:22:26;::::1;2328:63;;;::::0;-1:-1:-1;;;2328:63:26;;26462:2:34;2328:63:26::1;::::0;::::1;26444:21:34::0;26501:2;26481:18;;;26474:30;26540;26520:18;;;26513:58;26588:18;;2328:63:26::1;26260:352:34::0;2328:63:26::1;2397:16;2416:5:::0;;-1:-1:-1;;;;;2427:16:26;;::::1;-1:-1:-1::0;;;;;;2427:16:26;::::1;::::0;::::1;::::0;;2454:32:::1;::::0;2416:5;;;::::1;::::0;;;2454:32:::1;::::0;2397:16;2454:32:::1;2322:169;2262:229:::0;:::o;23538:706::-;23677:4;23791:17;23811:27;23831:6;;23811:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23811:19:26;;-1:-1:-1;;;23811:27:26:i;:::-;:92;;23902:1;23866:32;23890:6;;23873:24;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;23873:24:26;;;;;;;;;;23866:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:37;;23811:92;;;23855:1;23811:92;23791:112;;24003:20;24026:26;24046:5;;24026:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24026:19:26;;-1:-1:-1;;;24026:26:26:i;:::-;:90;;24115:1;24080:31;24104:5;;24087:23;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;24087:23:26;;;;;;;;;;24080:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:36;;24026:90;;;24069:1;24026:90;24003:113;;24170:9;24129:12;;1108:1:19;24129:37:26;;;;;;;:::i;:::-;;;;;;;:50;:110;;;;;24227:12;24183;;1147:1:19;24183:40:26;;;;;;;:::i;:::-;;;;;;;:56;24129:110;24122:117;23538:706;-1:-1:-1;;;;;;;;;23538:706:26:o;2911:231::-;2125:5;;-1:-1:-1;;;;;2125:5:26;2111:10;:19;2103:58;;;;-1:-1:-1;;;2103:58:26;;;;;;;:::i;:::-;2997:9:::1;2992:146;3012:21:::0;;::::1;2992:146;;;3055:18;:33;3074:10;;3085:1;3074:13;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;::::1;;3055:33:::0;;-1:-1:-1;3055:33:26;::::1;::::0;;;;;;-1:-1:-1;3055:33:26;3048:40;;-1:-1:-1;;;;;;3048:40:26::1;::::0;;3117:10;;3128:1;3117:13;;::::1;;;;;:::i;:::-;;;;;;;3101:30;;;;;;;;;;3035:3;;2992:146;;;;2911:231:::0;;:::o;14544:210::-;14664:4;14683:66;14703:16;14713:6;14703:7;:16;:::i;:::-;14721:19;14742:6;14683:19;:66::i;2617:290::-;2125:5;;-1:-1:-1;;;;;2125:5:26;2111:10;:19;2103:58;;;;-1:-1:-1;;;2103:58:26;;;;;;;:::i;:::-;2742:9:::1;2737:166;2757:21:::0;;::::1;2737:166;;;2829:9;;2839:1;2829:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;2793:18;:33;2812:10;;2823:1;2812:13;;;;;;;:::i;:::-;;;;;;;2793:33;;;;;;;;;;;;:48;;;;;-1:-1:-1::0;;;;;2793:48:26::1;;;;;-1:-1:-1::0;;;;;2793:48:26::1;;;;;;2883:9;;2893:1;2883:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;2854:42:26::1;2868:10;;2879:1;2868:13;;;;;;;:::i;:::-;;;;;;;2854:42;;;;;;;;;;2780:3;;2737:166;;;;2617:290:::0;;;;:::o;17587:211::-;17706:4;17725:68;17745:16;17755:6;17745:7;:16;:::i;:::-;17763:21;17786:6;17725:19;:68::i;6855:541::-;6970:4;;;;7028:15;:33;7062:22;;;;:6;:22;:::i;:::-;7086:27;;;;:6;:27;:::i;:::-;7028:86;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6982:132;;;;;;7128:66;7150:11;7163:6;:30;;;7128:21;:66::i;:::-;7120:154;;;;-1:-1:-1;;;7120:154:26;;;;;;;:::i;:::-;7288:8;;;;7280:85;;;;;-1:-1:-1;;;7280:85:26;;27668:2:34;7280:85:26;;;27650:21:34;27687:18;;;27680:30;;;;27746:34;27726:18;;;27719:62;27817:34;27797:18;;;27790:62;27869:19;;7280:85:26;27466:428:34;7280:85:26;7378:13;;;;;;;;-1:-1:-1;;;6855:541:26;;;;:::o;7638:228::-;7746:4;7775:1;7766:6;:10;;;7758:53;;;;-1:-1:-1;;;7758:53:26;;28101:2:34;7758:53:26;;;28083:21:34;28140:2;28120:18;;;28113:30;28179:32;28159:18;;;28152:60;28229:18;;7758:53:26;27899:354:34;7758:53:26;7824:37;7842:10;7851:1;7842:6;:10;:::i;:::-;7854:6;7824:17;:37::i;8114:159::-;8219:4;8238:30;8251:3;8256;8261:6;8238:12;:30::i;13544:224::-;13684:4;13703:60;13717:7;13726;13735:19;13756:6;13703:13;:60::i;18074:195::-;18189:4;18208:56;18222:4;18228;18234:21;18257:6;18208:13;:56::i;15999:209::-;16117:4;16136:67;16155:16;:7;16165:6;16155:16;:::i;:::-;16173:21;16196:6;16136:18;:67::i;26163:3206::-;26270:12;2217:6;;26270:12;;-1:-1:-1;;;2217:6:26;;;;2216:7;2208:38;;;;-1:-1:-1;;;2208:38:26;;28616:2:34;2208:38:26;;;28598:21:34;28655:2;28635:18;;;28628:30;-1:-1:-1;;;28674:18:34;;;28667:48;28732:18;;2208:38:26;28414:342:34;2208:38:26;26393:16:::1;26412:29;26425:15:::0;::::1;26412:12;:29::i;:::-;26393:48:::0;-1:-1:-1;26490:90:26::1;26515:19;;::::0;::::1;:6:::0;:19:::1;:::i;:::-;977:1:19;26515:64:26;;;;;;;:::i;:::-;;;;;;;26490:24;:90::i;:::-;26625:82;26646:19;;::::0;::::1;:6:::0;:19:::1;:::i;:::-;1029:1:19;26646:60:26;;;;;;;:::i;:::-;;;;;;;26625:20;:82::i;:::-;26765:62;26775:19;;::::0;::::1;:6:::0;:19:::1;:::i;:::-;26765:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;;;26796:30:26::1;::::0;::::1;;26765:9;:62::i;:::-;26750:144;;;::::0;-1:-1:-1;;;26750:144:26;;29513:2:34;26750:144:26::1;::::0;::::1;29495:21:34::0;29552:2;29532:18;;;29525:30;29591:34;29571:18;;;29564:62;-1:-1:-1;;;29642:18:34;;;29635:49;29701:19;;26750:144:26::1;29311:415:34::0;26750:144:26::1;27238:62;27251:19;;::::0;::::1;:6:::0;:19:::1;:::i;:::-;27272:13;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;27287:12;;::::0;::::1;:6:::0;:12:::1;:::i;27238:62::-;27230:98;;;::::0;-1:-1:-1;;;27230:98:26;;30460:2:34;27230:98:26::1;::::0;::::1;30442:21:34::0;30499:2;30479:18;;;30472:30;30538:25;30518:18;;;30511:53;30581:18;;27230:98:26::1;30258:347:34::0;27230:98:26::1;27396:244;27482:19;;::::0;::::1;:6:::0;:19:::1;:::i;:::-;1195:1:19;::::0;27567::26::1;27538:19;;::::0;::::1;:6:::0;:19:::1;:::i;:::-;:30;::::0;;-1:-1:-1;27538:30:26::1;:::i;:::-;27482:87;;;;;;;:::i;:::-;27396:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;27577:22:26::1;::::0;-1:-1:-1;;;27577:22:26::1;::::0;::::1;::::0;::::1;:::i;:::-;27607:27;;::::0;::::1;:6:::0;:27:::1;:::i;:::-;27396:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;27396:21:26::1;::::0;-1:-1:-1;;;27396:244:26:i:1;:::-;27647:27;27699:19;;::::0;::::1;:6:::0;:19:::1;:::i;:::-;27748:1;27719:19;;::::0;::::1;:6:::0;:19:::1;:::i;:::-;:30;::::0;;-1:-1:-1;27719:30:26::1;:::i;:::-;27699:51;;;;;;;:::i;:::-;;;;;;;27691:60;;27677:75;;;;;;;;:::i;:::-;27647:105:::0;-1:-1:-1;28016:39:26::1;27999:13;:56;;;;;;;;:::i;:::-;;;:112;;;;-1:-1:-1::0;28076:35:26::1;28059:13;:52;;;;;;;;:::i;:::-;;;27999:112;27998:138;;;-1:-1:-1::0;28122:14:26::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;27983:209;;;::::0;-1:-1:-1;;;27983:209:26;;31172:2:34;27983:209:26::1;::::0;::::1;31154:21:34::0;31211:2;31191:18;;;31184:30;31250:34;31230:18;;;31223:62;-1:-1:-1;;;31301:18:34;;;31294:38;31349:19;;27983:209:26::1;30970:404:34::0;27983:209:26::1;28423:34;28406:13;:51;;;;;;;;:::i;:::-;;:69;;;-1:-1:-1::0;28461:14:26::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;28391:143;;;::::0;-1:-1:-1;;;28391:143:26;;31581:2:34;28391:143:26::1;::::0;::::1;31563:21:34::0;31620:2;31600:18;;;31593:30;31659:34;31639:18;;;31632:62;-1:-1:-1;;;31710:18:34;;;31703:41;31761:19;;28391:143:26::1;31379:407:34::0;28391:143:26::1;1337:1:19;28752:19:26;;::::0;::::1;:6:::0;:19:::1;:::i;:::-;:89;::::0;;-1:-1:-1;28752:89:26::1;:::i;:::-;28714:27;;::::0;::::1;:6:::0;:27:::1;:::i;:::-;:34;;:127;28706:177;;;::::0;-1:-1:-1;;;28706:177:26;;31993:2:34;28706:177:26::1;::::0;::::1;31975:21:34::0;32032:2;32012:18;;;32005:30;32071:34;32051:18;;;32044:62;-1:-1:-1;;;32122:18:34;;;32115:35;32167:19;;28706:177:26::1;31791:401:34::0;28706:177:26::1;-1:-1:-1::0;;;;;29002:26:26;::::1;;29029:12;;::::0;::::1;:6:::0;:12:::1;:::i;:::-;29043:19;;::::0;::::1;:6:::0;:19:::1;:::i;:::-;29002:61;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28992:71:::0;-1:-1:-1;29126:29:26::1;29187:1;29158:19;;::::0;::::1;:6:::0;:19:::1;:::i;:::-;:30;::::0;;-1:-1:-1;29158:30:26::1;:::i;:::-;29126:62:::0;-1:-1:-1;29213:19:26::1;;::::0;::::1;:6:::0;:19:::1;:::i;:::-;29233:21;29213:42;;;;;;;:::i;:::-;;;;;;;29194:61;;29330:34;;;26163:3206:::0;;;:::o;14071:206::-;14196:4;14215:57;14235:7;14244:19;14265:6;14215:19;:57::i;20388:223::-;20517:4;20536:70;20553:11;20566:31;20599:6;20536:16;:70::i;17105:209::-;17231:4;17250:59;17270:7;17279:21;17302:6;17250:19;:59::i;19757:229::-;19888:4;19907:74;19924:11;19937:35;19974:6;19907:16;:74::i;19203:222::-;19331:4;19350:70;19367:11;19380:31;19413:6;19350:16;:70::i;8277:1133::-;8422:4;;;;8484:15;:34;8519:22;;;;:6;:22;:::i;:::-;8543:27;;;;:6;:27;:::i;:::-;8572:9;8484:98;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8434:148;;;;;;8596:66;8618:11;8631:6;:30;;;8596:21;:66::i;:::-;8588:154;;;;-1:-1:-1;;;8588:154:26;;;;;;;:::i;:::-;8769:19;8756:9;:32;;;;;;;;:::i;:::-;;:70;;;-1:-1:-1;8805:21:26;8792:9;:34;;;;;;;;:::i;:::-;;8756:70;8748:101;;;;-1:-1:-1;;;8748:101:26;;;;;;;:::i;:::-;8872:19;8859:9;:32;;;;;;;;:::i;:::-;;8855:551;;8909:8;;8901:91;;;;-1:-1:-1;;;8901:91:26;;34663:2:34;8901:91:26;;;34645:21:34;34702:2;34682:18;;;34675:30;34741:34;34721:18;;;34714:62;34812:34;34792:18;;;34785:62;-1:-1:-1;;;34863:19:34;;;34856:37;34910:19;;8901:91:26;34461:474:34;8901:91:26;9222:35;144:10:19;9222:3:26;:35;:::i;:::-;9211:7;:46;9204:53;;;;;;;8855:551;9286:8;;9278:92;;;;-1:-1:-1;;;9278:92:26;;35142:2:34;9278:92:26;;;35124:21:34;35181:2;35161:18;;;35154:30;35220:34;35200:18;;;35193:62;35291:34;35271:18;;;35264:62;-1:-1:-1;;;35342:19:34;;;35335:38;35390:19;;9278:92:26;34940:475:34;9278:92:26;-1:-1:-1;9385:14:26;;;-1:-1:-1;9378:21:26;;-1:-1:-1;9378:21:26;9414:1549;9575:4;;;;9637:15;:34;9672:22;;;;:6;:22;:::i;:::-;9696:27;;;;:6;:27;:::i;:::-;9725:9;9637:98;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9587:148;;;;;;9749:66;9771:11;9784:6;:30;;;9749:21;:66::i;:::-;9741:154;;;;-1:-1:-1;;;9741:154:26;;;;;;;:::i;:::-;9920:7;9909;:18;;9901:78;;;;-1:-1:-1;;;9901:78:26;;35622:2:34;9901:78:26;;;35604:21:34;35661:2;35641:18;;;35634:30;35700:34;35680:18;;;35673:62;-1:-1:-1;;;35751:18:34;;;35744:45;35806:19;;9901:78:26;35420:411:34;9901:78:26;10006:19;9993:9;:32;;;;;;;;:::i;:::-;;:70;;;-1:-1:-1;10042:21:26;10029:9;:34;;;;;;;;:::i;:::-;;9993:70;9985:101;;;;-1:-1:-1;;;9985:101:26;;;;;;;:::i;:::-;10109:19;10096:9;:32;;;;;;;;:::i;:::-;;10092:867;;10146:3;10153:1;10146:8;10138:103;;;;-1:-1:-1;;;10138:103:26;;36038:2:34;10138:103:26;;;36020:21:34;36077:2;36057:18;;;36050:30;36116:34;36096:18;;;36089:62;36187:34;36167:18;;;36160:62;-1:-1:-1;;;36238:19:34;;;36231:49;36297:19;;10138:103:26;35836:486:34;10138:103:26;10257:3;10264:1;10257:8;10249:103;;;;-1:-1:-1;;;10249:103:26;;;;;;;:::i;:::-;10583:35;144:10:19;10583:3:26;:35;:::i;:::-;10572:7;:46;:96;;;;-1:-1:-1;10633:35:26;144:10:19;10633:3:26;:35;:::i;:::-;10622:7;:46;10572:96;10565:103;;;;;;;10092:867;10697:3;10704:1;10697:8;10689:104;;;;-1:-1:-1;;;10689:104:26;;37020:2:34;10689:104:26;;;37002:21:34;37059:2;37039:18;;;37032:30;37098:34;37078:18;;;37071:62;37169:34;37149:18;;;37142:62;-1:-1:-1;;;37220:19:34;;;37213:50;37280:19;;10689:104:26;36818:487:34;10689:104:26;10809:3;10816:1;10809:8;10801:104;;;;-1:-1:-1;;;10801:104:26;;;;;;;:::i;:::-;10931:3;10920:7;:14;:32;;;;-1:-1:-1;10938:14:26;;;;9414:1549;-1:-1:-1;;;;;;9414:1549:26:o;18273:606::-;18428:4;;;18509:15;:37;18547:22;;;;:6;:22;:::i;:::-;18571:27;;;;:6;:27;:::i;:::-;18600:9;18509:101;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18509:101:26;;;;;;;;;;;;:::i;:::-;18440:170;;;;18642:22;18620:11;:18;:44;18616:77;;18681:5;18674:12;;;;;;18616:77;18703:9;18698:160;18722:22;18718:1;:26;18698:160;;;18764:55;18783:11;18795:1;18783:14;;;;;;;;:::i;:::-;;;;;;;18799:16;18816:1;18799:19;;;;;;;;:::i;:::-;;;;;;;234::24;;;;;;;211;;;;;;;;;;:42;;119:139;18764:55:26;18759:93;;18838:5;18831:12;;;;;;;18759:93;18746:3;;18698:160;;;-1:-1:-1;18870:4:26;;18273:606;-1:-1:-1;;;;;;18273:606:26:o;392:337:20:-;500:4;;546:35;558:23;546:9;:35;:::i;:::-;512:69;;619:9;600:15;:28;;:73;;;;;664:9;638:23;:35;600:73;:124;;;;-1:-1:-1;709:15:20;-1:-1:-1;683:41:20;392:337;-1:-1:-1;;;392:337:20:o;25666:204:26:-;25756:12;;:62;;-1:-1:-1;;;25756:62:26;;912:1;25756:62;;;39154:25:34;39195:18;;;39188:34;;;-1:-1:-1;;;;;25756:12:26;;;;:24;;39127:18:34;;25756:62:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25741:124;;;;-1:-1:-1;;;25741:124:26;;39435:2:34;25741:124:26;;;39417:21:34;39474:2;39454:18;;;39447:30;39513:33;39493:18;;;39486:61;39564:18;;25741:124:26;39233:355:34;25741:124:26;25666:204;:::o;262:101:24:-;338:15;:20;;262:101::o;10967:1250:26:-;11113:4;;;;11175:15;:34;11210:22;;;;:6;:22;:::i;:::-;11234:27;;;;:6;:27;:::i;:::-;11263:9;11175:98;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11125:148;;;;;;11287:66;11309:11;11322:6;:30;;;11287:21;:66::i;:::-;11279:154;;;;-1:-1:-1;;;11279:154:26;;;;;;;:::i;:::-;11447:8;;11439:86;;;;-1:-1:-1;;;11439:86:26;;39795:2:34;11439:86:26;;;39777:21:34;39834:2;39814:18;;;39807:30;39873:34;39853:18;;;39846:62;39944:34;39924:18;;;39917:62;-1:-1:-1;;;39995:19:34;;;39988:32;40037:19;;11439:86:26;39593:469:34;11439:86:26;11552:19;11539:9;:32;;;;;;;;:::i;:::-;;:70;;;-1:-1:-1;11588:21:26;11575:9;:34;;;;;;;;:::i;:::-;;11539:70;11531:101;;;;-1:-1:-1;;;11531:101:26;;;;;;;:::i;:::-;11655:19;11642:9;:32;;;;;;;;:::i;:::-;;11638:575;;11692:3;11699:1;11692:8;11684:103;;;;-1:-1:-1;;;11684:103:26;;;;;;;:::i;:::-;12017:35;144:10:19;12017:3:26;:35;:::i;11638:575::-;12081:3;12088:1;12081:8;12073:104;;;;-1:-1:-1;;;12073:104:26;;;;;;;:::i;:::-;12192:14;;;-1:-1:-1;12185:21:26;;-1:-1:-1;;12185:21:26;25036:210;25099:7;25133:28;;;:18;:28;;;;;;-1:-1:-1;;;;;25133:28:26;;25167:53;;;;-1:-1:-1;;;25167:53:26;;40269:2:34;25167:53:26;;;40251:21:34;40308:2;40288:18;;;40281:30;-1:-1:-1;;;40327:18:34;;;40320:48;40385:18;;25167:53:26;40067:342:34;25250:214:26;25344:12;;:66;;-1:-1:-1;;;25344:66:26;;:12;:66;;;39154:25:34;39195:18;;;39188:34;;;-1:-1:-1;;;;;25344:12:26;;;;:24;;39127:18:34;;25344:66:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25329:130;;;;-1:-1:-1;;;25329:130:26;;40616:2:34;25329:130:26;;;40598:21:34;40655:2;40635:18;;;40628:30;40694:34;40674:18;;;40667:62;-1:-1:-1;;;40745:18:34;;;40738:31;40786:19;;25329:130:26;40414:397:34;25468:194:26;25554:12;;;:58;;-1:-1:-1;;;25554:58:26;;;;;39154:25:34;;;;39195:18;;;39188:34;;;-1:-1:-1;;;;;25554:12:26;;:24;;39127:18:34;;25554:58:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25539:118;;;;-1:-1:-1;;;25539:118:26;;41018:2:34;25539:118:26;;;41000:21:34;41057:2;41037:18;;;41030:30;41096:31;41076:18;;;41069:59;41145:18;;25539:118:26;40816:353:34;3356:300:26;3474:4;3486:28;3525:12;1072:1:19;3525:44:26;;;;;;;;:::i;:::-;;;;;;;3517:53;;3486:84;;3583:68;3605:20;3627:23;3583:21;:68::i;24248:784::-;24421:14;;24445:410;24469:20;:27;24465:1;:31;24445:410;;;24591:28;24724:1;24622:98;24655:15;;24671:6;24655:56;24687:20;24708:1;24687:23;;;;;;;;:::i;:::-;;;;;;;24678:6;:32;;;;:::i;:::-;24655:56;;;;;;;:::i;:::-;24638:74;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;24638:74:26;;;;;;;;;;24622:98;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:103;;24591:134;;24765:16;24782:1;24765:19;;;;;;;;:::i;:::-;;;;;;;24741:20;:43;24733:74;;;;-1:-1:-1;;;24733:74:26;;41994:2:34;24733:74:26;;;41976:21:34;42033:2;42013:18;;;42006:30;-1:-1:-1;;;42052:18:34;;;42045:48;42110:18;;24733:74:26;41792:342:34;24733:74:26;24825:20;24846:1;24825:23;;;;;;;;:::i;:::-;;;;;;;24815:33;;;;;:::i;:::-;;-1:-1:-1;;24498:3:26;;24445:410;;;-1:-1:-1;24959:32:26;;;24951:76;;;;-1:-1:-1;;;24951:76:26;;42341:2:34;24951:76:26;;;42323:21:34;42380:2;42360:18;;;42353:30;42419:33;42399:18;;;42392:61;42470:18;;24951:76:26;42139:355:34;14:172;90:5;135:3;126:6;121:3;117:16;113:26;110:46;;;152:1;149;142:12;110:46;-1:-1:-1;174:6:34;14:172;-1:-1:-1;14:172:34:o;191:503::-;303:6;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;425:23;;;-1:-1:-1;523:2:34;508:18;;495:32;-1:-1:-1;;;;;539:30:34;;536:50;;;582:1;579;572:12;536:50;605:83;680:7;671:6;660:9;656:22;605:83;:::i;:::-;595:93;;;191:503;;;;;:::o;891:118::-;977:5;970:13;963:21;956:5;953:32;943:60;;999:1;996;989:12;1014:241;1070:6;1123:2;1111:9;1102:7;1098:23;1094:32;1091:52;;;1139:1;1136;1129:12;1091:52;1178:9;1165:23;1197:28;1219:5;1197:28;:::i;1260:131::-;-1:-1:-1;;;;;1335:31:34;;1325:42;;1315:70;;1381:1;1378;1371:12;1396:247;1455:6;1508:2;1496:9;1487:7;1483:23;1479:32;1476:52;;;1524:1;1521;1514:12;1476:52;1563:9;1550:23;1582:31;1607:5;1582:31;:::i;1648:518::-;1757:6;1765;1818:2;1806:9;1797:7;1793:23;1789:32;1786:52;;;1834:1;1831;1824:12;1786:52;1874:9;1861:23;-1:-1:-1;;;;;1899:6:34;1896:30;1893:50;;;1939:1;1936;1929:12;1893:50;1962:83;2037:7;2028:6;2017:9;2013:22;1962:83;:::i;:::-;1952:93;;;2095:2;2084:9;2080:18;2067:32;2108:28;2130:5;2108:28;:::i;:::-;2155:5;2145:15;;;1648:518;;;;;:::o;2171:289::-;2213:3;2251:5;2245:12;2278:6;2273:3;2266:19;2334:6;2327:4;2320:5;2316:16;2309:4;2304:3;2300:14;2294:47;2386:1;2379:4;2370:6;2365:3;2361:16;2357:27;2350:38;2449:4;2442:2;2438:7;2433:2;2425:6;2421:15;2417:29;2412:3;2408:39;2404:50;2397:57;;;2171:289;;;;:::o;2465:1698::-;2658:2;2647:9;2640:21;2621:4;2696:6;2690:13;2739:6;2734:2;2723:9;2719:18;2712:34;2769:52;2816:3;2805:9;2801:19;2787:12;2769:52;:::i;:::-;2755:66;;2870:2;2862:6;2858:15;2852:22;2942:2;2938:7;2926:9;2918:6;2914:22;2910:36;2905:2;2894:9;2890:18;2883:64;2970:41;3004:6;2988:14;2970:41;:::i;:::-;2956:55;;;3060:2;3052:6;3048:15;3042:22;3132:2;3128:7;3116:9;3108:6;3104:22;3100:36;3095:2;3084:9;3080:18;3073:64;3160:41;3194:6;3178:14;3160:41;:::i;:::-;3146:55;;;3250:2;3242:6;3238:15;3232:22;3323:2;3319:7;3307:9;3299:6;3295:22;3291:36;3285:3;3274:9;3270:19;3263:65;3351:41;3385:6;3369:14;3351:41;:::i;:::-;3337:55;;;3441:3;3433:6;3429:16;3423:23;3515:2;3511:7;3499:9;3491:6;3487:22;3483:36;3477:3;3466:9;3462:19;3455:65;3543:41;3577:6;3561:14;3543:41;:::i;:::-;3529:55;;;3633:3;3625:6;3621:16;3615:23;3707:2;3703:7;3691:9;3683:6;3679:22;3675:36;3669:3;3658:9;3654:19;3647:65;3735:41;3769:6;3753:14;3735:41;:::i;:::-;3721:55;;;3825:3;3817:6;3813:16;3807:23;3899:2;3895:7;3883:9;3875:6;3871:22;3867:36;3861:3;3850:9;3846:19;3839:65;3927:41;3961:6;3945:14;3927:41;:::i;:::-;3913:55;;;4017:3;4009:6;4005:16;3999:23;4094:2;4090:7;4078:9;4070:6;4066:22;4062:36;4053:6;4042:9;4038:22;4031:68;4116:41;4150:6;4134:14;4116:41;:::i;:::-;4108:49;2465:1698;-1:-1:-1;;;;;2465:1698:34:o;4168:112::-;4254:1;4247:5;4244:12;4234:40;;4270:1;4267;4260:12;4285:554;4416:6;4424;4477:2;4465:9;4456:7;4452:23;4448:32;4445:52;;;4493:1;4490;4483:12;4445:52;4532:9;4519:23;4551:42;4587:5;4551:42;:::i;:::-;4612:5;-1:-1:-1;4668:2:34;4653:18;;4640:32;-1:-1:-1;;;;;4684:30:34;;4681:50;;;4727:1;4724;4717:12;4844:114;4928:4;4921:5;4917:16;4910:5;4907:27;4897:55;;4948:1;4945;4938:12;4963:520;5073:6;5081;5134:2;5122:9;5113:7;5109:23;5105:32;5102:52;;;5150:1;5147;5140:12;5102:52;5189:9;5176:23;5208:29;5231:5;5208:29;:::i;5488:127::-;5549:10;5544:3;5540:20;5537:1;5530:31;5580:4;5577:1;5570:15;5604:4;5601:1;5594:15;5620:255;5692:2;5686:9;5734:6;5722:19;;-1:-1:-1;;;;;5756:34:34;;5792:22;;;5753:62;5750:88;;;5818:18;;:::i;:::-;5854:2;5847:22;5620:255;:::o;5880:275::-;5951:2;5945:9;6016:2;5997:13;;-1:-1:-1;;5993:27:34;5981:40;;-1:-1:-1;;;;;6036:34:34;;6072:22;;;6033:62;6030:88;;;6098:18;;:::i;:::-;6134:2;6127:22;5880:275;;-1:-1:-1;5880:275:34:o;6160:182::-;6219:4;-1:-1:-1;;;;;6244:6:34;6241:30;6238:56;;;6274:18;;:::i;:::-;-1:-1:-1;6319:1:34;6315:14;6331:4;6311:25;;6160:182::o;6347:187::-;6396:4;-1:-1:-1;;;;;6421:6:34;6418:30;6415:56;;;6451:18;;:::i;:::-;-1:-1:-1;6517:2:34;6496:15;-1:-1:-1;;6492:29:34;6523:4;6488:40;;6347:187::o;6539:1793::-;6686:6;6694;6747:2;6735:9;6726:7;6722:23;6718:32;6715:52;;;6763:1;6760;6753:12;6715:52;6803:9;6790:23;-1:-1:-1;;;;;6828:6:34;6825:30;6822:50;;;6868:1;6865;6858:12;6822:50;6891:22;;6944:4;6936:13;;6932:27;-1:-1:-1;6922:55:34;;6973:1;6970;6963:12;6922:55;7013:2;7000:16;7036:63;7052:46;7091:6;7052:46;:::i;:::-;7036:63;:::i;:::-;7121:3;7145:6;7140:3;7133:19;7177:4;7172:3;7168:14;7161:21;;7234:4;7224:6;7221:1;7217:14;7213:2;7209:23;7205:34;7191:48;;7262:7;7254:6;7251:19;7248:39;;;7283:1;7280;7273:12;7248:39;7315:4;7311:2;7307:13;7329:749;7345:6;7340:3;7337:15;7329:749;;;7433:3;7420:17;-1:-1:-1;;;;;7456:11:34;7453:35;7450:55;;;7501:1;7498;7491:12;7450:55;7528:20;;7583:2;7575:11;;7571:25;-1:-1:-1;7561:53:34;;7610:1;7607;7600:12;7561:53;7664:4;7660:2;7656:13;7643:27;7698:55;7714:38;7743:8;7714:38;:::i;7698:55::-;7766:25;;;7810:39;7818:17;;;7810:39;7807:52;-1:-1:-1;7804:72:34;;;7872:1;7869;7862:12;7804:72;7935:8;7930:2;7926;7922:11;7915:4;7906:7;7902:18;7889:55;7999:1;7992:4;7981:8;7972:7;7968:22;7964:33;7957:44;8026:7;8021:3;8014:20;;;;8063:4;8058:3;8054:14;8047:21;;7371:4;7366:3;7362:14;7355:21;;7329:749;;;-1:-1:-1;8097:5:34;-1:-1:-1;;;;8155:4:34;8140:20;;8127:34;-1:-1:-1;;;;;8173:32:34;;8170:52;;;8218:1;8215;8208:12;8519:623;8640:6;8648;8656;8709:2;8697:9;8688:7;8684:23;8680:32;8677:52;;;8725:1;8722;8715:12;8677:52;8770:23;;;-1:-1:-1;8890:2:34;8875:18;;8862:32;;-1:-1:-1;8971:2:34;8956:18;;8943:32;-1:-1:-1;;;;;8987:30:34;;8984:50;;;9030:1;9027;9020:12;8984:50;9053:83;9128:7;9119:6;9108:9;9104:22;9053:83;:::i;:::-;9043:93;;;8519:623;;;;;:::o;9147:389::-;9250:6;9303:2;9291:9;9282:7;9278:23;9274:32;9271:52;;;9319:1;9316;9309:12;9271:52;9359:9;9346:23;-1:-1:-1;;;;;9384:6:34;9381:30;9378:50;;;9424:1;9421;9414:12;9378:50;9447:83;9522:7;9513:6;9502:9;9498:22;9447:83;:::i;9541:492::-;9726:2;9715:9;9708:21;9801:1;9797;9792:3;9788:11;9784:19;9775:6;9769:13;9765:39;9760:2;9749:9;9745:18;9738:67;9859:2;9851:6;9847:15;9841:22;9836:2;9825:9;9821:18;9814:50;9689:4;9911:2;9903:6;9899:15;9893:22;9953:4;9946;9935:9;9931:20;9924:34;9975:52;10022:3;10011:9;10007:19;9993:12;9975:52;:::i;10038:657::-;10155:6;10163;10171;10224:2;10212:9;10203:7;10199:23;10195:32;10192:52;;;10240:1;10237;10230:12;10192:52;10279:9;10266:23;10298:29;10321:5;10298:29;:::i;:::-;10346:5;-1:-1:-1;10403:2:34;10388:18;;10375:32;10416:31;10375:32;10416:31;:::i;:::-;10466:7;-1:-1:-1;10524:2:34;10509:18;;10496:32;-1:-1:-1;;;;;10540:30:34;;10537:50;;;10583:1;10580;10573:12;10700:180;10759:6;10812:2;10800:9;10791:7;10787:23;10783:32;10780:52;;;10828:1;10825;10818:12;10780:52;-1:-1:-1;10851:23:34;;10700:180;-1:-1:-1;10700:180:34:o;11093:367::-;11156:8;11166:6;11220:3;11213:4;11205:6;11201:17;11197:27;11187:55;;11238:1;11235;11228:12;11187:55;-1:-1:-1;11261:20:34;;-1:-1:-1;;;;;11293:30:34;;11290:50;;;11336:1;11333;11326:12;11290:50;11373:4;11365:6;11361:17;11349:29;;11433:3;11426:4;11416:6;11413:1;11409:14;11401:6;11397:27;11393:38;11390:47;11387:67;;;11450:1;11447;11440:12;11387:67;11093:367;;;;;:::o;11465:348::-;11517:8;11527:6;11581:3;11574:4;11566:6;11562:17;11558:27;11548:55;;11599:1;11596;11589:12;11548:55;-1:-1:-1;11622:20:34;;-1:-1:-1;;;;;11654:30:34;;11651:50;;;11697:1;11694;11687:12;11651:50;11734:4;11726:6;11722:17;11710:29;;11786:3;11779:4;11770:6;11762;11758:19;11754:30;11751:39;11748:59;;;11803:1;11800;11793:12;11818:1047;11946:6;11954;11962;11970;11978;11986;12039:2;12027:9;12018:7;12014:23;12010:32;12007:52;;;12055:1;12052;12045:12;12007:52;12095:9;12082:23;-1:-1:-1;;;;;12120:6:34;12117:30;12114:50;;;12160:1;12157;12150:12;12114:50;12199:70;12261:7;12252:6;12241:9;12237:22;12199:70;:::i;:::-;12288:8;;-1:-1:-1;12173:96:34;-1:-1:-1;;12376:2:34;12361:18;;12348:32;-1:-1:-1;;;;;12392:32:34;;12389:52;;;12437:1;12434;12427:12;12389:52;12476:61;12529:7;12518:8;12507:9;12503:24;12476:61;:::i;:::-;12556:8;;-1:-1:-1;12450:87:34;-1:-1:-1;;12644:2:34;12629:18;;12616:32;-1:-1:-1;;;;;12660:32:34;;12657:52;;;12705:1;12702;12695:12;12657:52;12744:61;12797:7;12786:8;12775:9;12771:24;12744:61;:::i;:::-;11818:1047;;;;-1:-1:-1;11818:1047:34;;-1:-1:-1;11818:1047:34;;12824:8;;11818:1047;-1:-1:-1;;;11818:1047:34:o;12870:437::-;12956:6;12964;13017:2;13005:9;12996:7;12992:23;12988:32;12985:52;;;13033:1;13030;13023:12;12985:52;13073:9;13060:23;-1:-1:-1;;;;;13098:6:34;13095:30;13092:50;;;13138:1;13135;13128:12;13092:50;13177:70;13239:7;13230:6;13219:9;13215:22;13177:70;:::i;:::-;13266:8;;13151:96;;-1:-1:-1;12870:437:34;-1:-1:-1;;;;12870:437:34:o;13312:768::-;13434:6;13442;13450;13458;13511:2;13499:9;13490:7;13486:23;13482:32;13479:52;;;13527:1;13524;13517:12;13479:52;13567:9;13554:23;-1:-1:-1;;;;;13592:6:34;13589:30;13586:50;;;13632:1;13629;13622:12;13586:50;13671:70;13733:7;13724:6;13713:9;13709:22;13671:70;:::i;:::-;13760:8;;-1:-1:-1;13645:96:34;-1:-1:-1;;13848:2:34;13833:18;;13820:32;-1:-1:-1;;;;;13864:32:34;;13861:52;;;13909:1;13906;13899:12;13861:52;13948:72;14012:7;14001:8;13990:9;13986:24;13948:72;:::i;:::-;13312:768;;;;-1:-1:-1;14039:8:34;-1:-1:-1;;;;13312:768:34:o;14579:127::-;14640:10;14635:3;14631:20;14628:1;14621:31;14671:4;14668:1;14661:15;14695:4;14692:1;14685:15;14711:125;14776:9;;;14797:10;;;14794:36;;;14810:18;;:::i;14841:350::-;15043:2;15025:21;;;15082:2;15062:18;;;15055:30;15121:28;15116:2;15101:18;;15094:56;15182:2;15167:18;;14841:350::o;15601:521::-;15678:4;15684:6;15744:11;15731:25;15838:2;15834:7;15823:8;15807:14;15803:29;15799:43;15779:18;15775:68;15765:96;;15857:1;15854;15847:12;15765:96;15884:33;;15936:20;;;-1:-1:-1;;;;;;15968:30:34;;15965:50;;;16011:1;16008;16001:12;15965:50;16044:4;16032:17;;-1:-1:-1;16075:14:34;16071:27;;;16061:38;;16058:58;;;16112:1;16109;16102:12;16127:545;16220:4;16226:6;16286:11;16273:25;16380:2;16376:7;16365:8;16349:14;16345:29;16341:43;16321:18;16317:68;16307:96;;16399:1;16396;16389:12;16307:96;16426:33;;16478:20;;;-1:-1:-1;;;;;;16510:30:34;;16507:50;;;16553:1;16550;16543:12;16507:50;16586:4;16574:17;;-1:-1:-1;16637:1:34;16633:14;;;16617;16613:35;16603:46;;16600:66;;;16662:1;16659;16652:12;16677:266;16765:6;16760:3;16753:19;16817:6;16810:5;16803:4;16798:3;16794:14;16781:43;-1:-1:-1;16869:1:34;16844:16;;;16862:4;16840:27;;;16833:38;;;;16925:2;16904:15;;;-1:-1:-1;;16900:29:34;16891:39;;;16887:50;;16677:266::o;16948:311::-;17036:19;;;17018:3;-1:-1:-1;;;;;17067:31:34;;17064:51;;;17111:1;17108;17101:12;17064:51;17147:6;17144:1;17140:14;17199:8;17192:5;17185:4;17180:3;17176:14;17163:45;17228:18;;;;17248:4;17224:29;;16948:311;-1:-1:-1;;;16948:311:34:o;17264:483::-;17517:2;17506:9;17499:21;17480:4;17543:61;17600:2;17589:9;17585:18;17577:6;17569;17543:61;:::i;:::-;17652:9;17644:6;17640:22;17635:2;17624:9;17620:18;17613:50;17680:61;17734:6;17726;17718;17680:61;:::i;17752:514::-;17805:5;17858:3;17851:4;17843:6;17839:17;17835:27;17825:55;;17876:1;17873;17866:12;17825:55;17909:6;17903:13;17948:4;17940:6;17936:17;17977:1;17998:53;18014:36;18043:6;18014:36;:::i;17998:53::-;17987:64;;18076:6;18067:7;18060:23;18116:3;18107:6;18102:3;18098:16;18095:25;18092:45;;;18133:1;18130;18123:12;18092:45;18177:6;18172:3;18165:4;18156:7;18152:18;18146:38;18233:1;18204:20;;;18226:4;18200:31;18193:42;;;;-1:-1:-1;18208:7:34;17752:514;-1:-1:-1;;;17752:514:34:o;18271:553::-;18368:6;18376;18429:2;18417:9;18408:7;18404:23;18400:32;18397:52;;;18445:1;18442;18435:12;18397:52;18478:9;18472:16;-1:-1:-1;;;;;18503:6:34;18500:30;18497:50;;;18543:1;18540;18533:12;18497:50;18566:60;18618:7;18609:6;18598:9;18594:22;18566:60;:::i;:::-;18556:70;;;18672:2;18661:9;18657:18;18651:25;-1:-1:-1;;;;;18691:8:34;18688:32;18685:52;;;18733:1;18730;18723:12;18685:52;18756:62;18810:7;18799:8;18788:9;18784:24;18756:62;:::i;18829:307::-;19006:2;18995:9;18988:21;18969:4;19026:45;19067:2;19056:9;19052:18;19044:6;19026:45;:::i;:::-;19018:53;;19121:6;19114:14;19107:22;19102:2;19091:9;19087:18;19080:50;18829:307;;;;;:::o;19141:1972::-;19243:6;19296:2;19284:9;19275:7;19271:23;19267:32;19264:52;;;19312:1;19309;19302:12;19264:52;19345:9;19339:16;-1:-1:-1;;;;;19370:6:34;19367:30;19364:50;;;19410:1;19407;19400:12;19364:50;19433:22;;19489:6;19471:16;;;19467:29;19464:49;;;19509:1;19506;19499:12;19464:49;19535:22;;:::i;:::-;19588:2;19582:9;-1:-1:-1;;;;;19606:8:34;19603:32;19600:52;;;19648:1;19645;19638:12;19600:52;19675:55;19722:7;19711:8;19707:2;19703:17;19675:55;:::i;:::-;19668:5;19661:70;;19770:2;19766;19762:11;19756:18;-1:-1:-1;;;;;19789:8:34;19786:32;19783:52;;;19831:1;19828;19821:12;19783:52;19867:55;19914:7;19903:8;19899:2;19895:17;19867:55;:::i;:::-;19862:2;19855:5;19851:14;19844:79;;19962:2;19958;19954:11;19948:18;-1:-1:-1;;;;;19981:8:34;19978:32;19975:52;;;20023:1;20020;20013:12;19975:52;20059:55;20106:7;20095:8;20091:2;20087:17;20059:55;:::i;:::-;20054:2;20047:5;20043:14;20036:79;;20154:2;20150;20146:11;20140:18;-1:-1:-1;;;;;20173:8:34;20170:32;20167:52;;;20215:1;20212;20205:12;20167:52;20251:55;20298:7;20287:8;20283:2;20279:17;20251:55;:::i;:::-;20246:2;20239:5;20235:14;20228:79;;20346:3;20342:2;20338:12;20332:19;-1:-1:-1;;;;;20366:8:34;20363:32;20360:52;;;20408:1;20405;20398:12;20360:52;20445:55;20492:7;20481:8;20477:2;20473:17;20445:55;:::i;:::-;20439:3;20432:5;20428:15;20421:80;;20540:3;20536:2;20532:12;20526:19;-1:-1:-1;;;;;20560:8:34;20557:32;20554:52;;;20602:1;20599;20592:12;20554:52;20639:55;20686:7;20675:8;20671:2;20667:17;20639:55;:::i;:::-;20633:3;20626:5;20622:15;20615:80;;20734:3;20730:2;20726:12;20720:19;-1:-1:-1;;;;;20754:8:34;20751:32;20748:52;;;20796:1;20793;20786:12;20748:52;20833:55;20880:7;20869:8;20865:2;20861:17;20833:55;:::i;:::-;20827:3;20820:5;20816:15;20809:80;;20928:3;20924:2;20920:12;20914:19;-1:-1:-1;;;;;20948:8:34;20945:32;20942:52;;;20990:1;20987;20980:12;20942:52;21027:55;21074:7;21063:8;21059:2;21055:17;21027:55;:::i;:::-;21021:3;21010:15;;21003:80;-1:-1:-1;21014:5:34;19141:1972;-1:-1:-1;;;;19141:1972:34:o;21118:668::-;21251:6;21259;21267;21275;21328:3;21316:9;21307:7;21303:23;21299:33;21296:53;;;21345:1;21342;21335:12;21296:53;21390:16;;21475:2;21460:18;;21454:25;21390:16;;-1:-1:-1;21510:1:34;21498:14;;21488:42;;21526:1;21523;21516:12;21488:42;21622:2;21607:18;;21601:25;21697:2;21682:18;;21676:25;21549:7;;-1:-1:-1;21601:25:34;-1:-1:-1;21710:44:34;21676:25;21710:44;:::i;:::-;21118:668;;;;-1:-1:-1;21118:668:34;;-1:-1:-1;;21118:668:34:o;21791:127::-;21852:10;21847:3;21843:20;21840:1;21833:31;21883:4;21880:1;21873:15;21907:4;21904:1;21897:15;21923:148;22011:4;21990:12;;;22004;;;21986:31;;22029:13;;22026:39;;;22045:18;;:::i;22076:490::-;22160:6;22168;22176;22229:2;22217:9;22208:7;22204:23;22200:32;22197:52;;;22245:1;22242;22235:12;22197:52;22290:16;;22375:2;22360:18;;22354:25;22290:16;;-1:-1:-1;22388:31:34;22354:25;22388:31;:::i;:::-;22490:2;22475:18;;22469:25;22438:7;;-1:-1:-1;22503:31:34;22469:25;22503:31;:::i;:::-;22553:7;22543:17;;;22076:490;;;;;:::o;22571:479::-;22773:2;22755:21;;;22812:2;22792:18;;;22785:30;22851:34;22846:2;22831:18;;22824:62;22922:34;22917:2;22902:18;;22895:62;-1:-1:-1;;;22988:3:34;22973:19;;22966:42;23040:3;23025:19;;22571:479::o;23488:335::-;23567:6;23620:2;23608:9;23599:7;23595:23;23591:32;23588:52;;;23636:1;23633;23626:12;23588:52;23669:9;23663:16;-1:-1:-1;;;;;23694:6:34;23691:30;23688:50;;;23734:1;23731;23724:12;23688:50;23757:60;23809:7;23800:6;23789:9;23785:22;23757:60;:::i;23828:226::-;23983:2;23972:9;23965:21;23946:4;24003:45;24044:2;24033:9;24029:18;24021:6;24003:45;:::i;24059:577::-;24157:6;24165;24173;24226:2;24214:9;24205:7;24201:23;24197:32;24194:52;;;24242:1;24239;24232:12;24194:52;24274:9;24268:16;24293:31;24318:5;24293:31;:::i;:::-;24414:2;24399:18;;24393:25;24488:2;24473:18;;24467:25;24343:5;;-1:-1:-1;24393:25:34;-1:-1:-1;;;;;;24504:30:34;;24501:50;;;24547:1;24544;24537:12;24501:50;24570:60;24622:7;24613:6;24602:9;24598:22;24570:60;:::i;26025:230::-;26095:6;26148:2;26136:9;26127:7;26123:23;26119:32;26116:52;;;26164:1;26161;26154:12;26116:52;-1:-1:-1;26209:16:34;;26025:230;-1:-1:-1;26025:230:34:o;26617:273::-;26802:6;26794;26789:3;26776:33;26758:3;26828:16;;26853:13;;;26828:16;26617:273;-1:-1:-1;26617:273:34:o;26895:301::-;27024:3;27062:6;27056:13;27108:6;27101:4;27093:6;27089:17;27084:3;27078:37;27170:1;27134:16;;27159:13;;;-1:-1:-1;27134:16:34;26895:301;-1:-1:-1;26895:301:34:o;27201:127::-;27262:10;27257:3;27253:20;27250:1;27243:31;27293:4;27290:1;27283:15;27317:4;27314:1;27307:15;27333:128;27400:9;;;27421:11;;;27418:37;;;27435:18;;:::i;28258:151::-;28348:4;28341:12;;;28327;;;28323:31;;28366:14;;28363:40;;;28383:18;;:::i;30610:355::-;30731:9;30742;30784:8;30772:10;30769:24;30766:44;;;30806:1;30803;30796:12;30766:44;30835:6;30825:8;30822:20;30819:40;;;30855:1;30852;30845:12;30819:40;-1:-1:-1;;30897:1:34;30893:18;;;30881:31;;30934:25;;;;;-1:-1:-1;30610:355:34:o;32677:245::-;32744:6;32797:2;32785:9;32776:7;32772:23;32768:32;32765:52;;;32813:1;32810;32803:12;32765:52;32845:9;32839:16;32864:28;32886:5;32864:28;:::i;32927:721::-;33221:2;33210:9;33203:21;33184:4;33247:61;33304:2;33293:9;33289:18;33281:6;33273;33247:61;:::i;:::-;33356:9;33348:6;33344:22;33339:2;33328:9;33324:18;33317:50;33384:61;33438:6;33430;33422;33384:61;:::i;:::-;33376:69;;;33475:2;33467:6;33464:14;33454:145;;33521:10;33516:3;33512:20;33509:1;33502:31;33556:4;33553:1;33546:15;33584:4;33581:1;33574:15;33454:145;33635:6;33630:2;33619:9;33615:18;33608:34;32927:721;;;;;;;;:::o;33653:456::-;33741:6;33749;33757;33810:2;33798:9;33789:7;33785:23;33781:32;33778:52;;;33826:1;33823;33816:12;33778:52;-1:-1:-1;;33871:16:34;;33977:2;33962:18;;33956:25;34073:2;34058:18;;;34052:25;33871:16;;33956:25;;-1:-1:-1;34052:25:34;33653:456;-1:-1:-1;33653:456:34:o;34114:342::-;34316:2;34298:21;;;34355:2;34335:18;;;34328:30;-1:-1:-1;;;34389:2:34;34374:18;;34367:48;34447:2;34432:18;;34114:342::o;36327:486::-;36529:2;36511:21;;;36568:2;36548:18;;;36541:30;36607:34;36602:2;36587:18;;36580:62;36678:34;36673:2;36658:18;;36651:62;-1:-1:-1;;;36744:3:34;36729:19;;36722:49;36803:3;36788:19;;36327:486::o;37310:487::-;37512:2;37494:21;;;37551:2;37531:18;;;37524:30;37590:34;37585:2;37570:18;;37563:62;37661:34;37656:2;37641:18;;37634:62;-1:-1:-1;;;37727:3:34;37712:19;;37705:50;37787:3;37772:19;;37310:487::o;37802:1173::-;37916:6;37924;37977:2;37965:9;37956:7;37952:23;37948:32;37945:52;;;37993:1;37990;37983:12;37945:52;38026:9;38020:16;-1:-1:-1;;;;;38051:6:34;38048:30;38045:50;;;38091:1;38088;38081:12;38045:50;38114:22;;38167:4;38159:13;;38155:27;-1:-1:-1;38145:55:34;;38196:1;38193;38186:12;38145:55;38229:2;38223:9;38252:63;38268:46;38307:6;38268:46;:::i;38252:63::-;38337:3;38361:6;38356:3;38349:19;38393:4;38388:3;38384:14;38377:21;;38450:4;38440:6;38437:1;38433:14;38429:2;38425:23;38421:34;38407:48;;38478:7;38470:6;38467:19;38464:39;;;38499:1;38496;38489:12;38464:39;38531:4;38527:2;38523:13;38545:308;38561:6;38556:3;38553:15;38545:308;;;38642:3;38636:10;-1:-1:-1;;;;;38665:11:34;38662:35;38659:55;;;38710:1;38707;38700:12;38659:55;38739:69;38800:7;38793:4;38779:11;38775:2;38771:20;38767:31;38739:69;:::i;:::-;38727:82;;-1:-1:-1;38838:4:34;38829:14;;;;38578;38545:308;;;-1:-1:-1;38939:4:34;38924:20;;;;38918:27;38872:5;;38918:27;;-1:-1:-1;;;;;;37802:1173:34:o;41174:331::-;41279:9;41290;41332:8;41320:10;41317:24;41314:44;;;41354:1;41351;41344:12;41314:44;41383:6;41373:8;41370:20;41367:40;;;41403:1;41400;41393:12;41367:40;-1:-1:-1;;41429:23:34;;;41474:25;;;;;-1:-1:-1;41174:331:34:o",
|
|
989
|
+
object: "0x608060405234801561000f575f5ffd5b506004361061023f575f3560e01c80638b2ec61111610135578063c3fa6f22116100b4578063ddd8f8e311610079578063ddd8f8e31461051a578063ec8e07291461052d578063f3757ad414610557578063f851a44014610577578063ff20370714610589575f5ffd5b8063c3fa6f22146104bb578063ca4051f2146104ce578063cf515d37146104e1578063d39a5cf9146104f4578063d4932b4e14610507575f5ffd5b8063a6df2c01116100fa578063a6df2c011461045c578063ac20d6781461046f578063b8bd487914610482578063b96b161c14610495578063c1b77162146104a8575f5ffd5b80638b2ec611146103f05780638d6937b8146104035780638e2e2e621461041657806398e73ac3146104295780639c1a81a314610449575f5ffd5b806346b758a0116101c157806375829def1161018657806375829def146103645780637e5a88f3146103775780638163f2311461038a578063818694f1146103ca578063847755e3146103dd575f5ffd5b806346b758a01461031b5780635b7ab9291461032e5780635c975abb14610341578063652ba33d146103545780636c40d5d61461035c575f5ffd5b80632e5ce77f116102075780632e5ce77f146102b9578063311a335c146102cc578063320d3b55146102df5780633d6ed975146102f257806341a0e2c214610305575f5ffd5b8063106a2f6d1461024357806316c38b3c1461026b57806316e3d7291461028057806318677f2a146102935780631fac4345146102a6575b5f5ffd5b610256610251366004612a78565b61059c565b60405190151581526020015b60405180910390f35b61027e610279366004612ae2565b610809565b005b61027e61028e366004612afd565b610892565b61027e6102a1366004612b42565b610919565b6102566102b4366004612b6d565b6109c6565b6102566102c7366004612bdc565b6109dc565b6102566102da366004612c13565b610b10565b6102566102ed366004612b6d565b610b28565b610256610300366004612c13565b610b37565b61030d600181565b604051908152602001610262565b610256610329366004612d3d565b610b46565b61025661033c366004612d3d565b610b5c565b5f5461025690600160a01b900460ff1681565b61030d600381565b61030d600281565b61027e610372366004612b42565b610b69565b610256610385366004612d3d565b610c37565b6103b2610398366004612e5b565b60016020525f90815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610262565b6102566103d8366004612bdc565b610c44565b6102566103eb366004612ef6565b610cac565b6102566103fe366004612b6d565b610e74565b61027e610411366004612f92565b610e83565b610256610424366004612b6d565b610f43565b61043c610437366004612afd565b610f51565b6040516102629190612ffe565b610256610457366004612b6d565b61107c565b61027e61046a366004613034565b611096565b61025661047d366004612b6d565b6111c0565b610256610490366004612b6d565b6111da565b6002546103b2906001600160a01b031681565b6102566104b6366004612b6d565b6111f4565b6102566104c9366004612bdc565b611202565b6102566104dc366004612b6d565b611218565b6102566104ef36600461309e565b611226565b610256610502366004612d3d565b61147a565b610256610515366004612bdc565b611487565b610256610528366004612b6d565b6115bb565b61054061053b3660046130e6565b6115d5565b604080519215158352602083019190915201610262565b61056a61056536600461311c565b611bf5565b604051610262919061316a565b5f546103b2906001600160a01b031681565b610256610597366004612bdc565b611d35565b5f5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__63defa8ed9876040518263ffffffff1660e01b81526004016105d89190613360565b608060405180830381865af41580156105f3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106179190613372565b929650909450925090505f6001846001811115610636576106366133be565b1490505f89600281111561064c5761064c6133be565b83600281111561065e5761065e6133be565b1490505f7f2532418a107c5306fa8308c22255792cf77e4a290cbce8a840a642a3e591340b871480156106bc575060018a60028111156106a0576106a06133be565b14806106bc57505f8a60028111156106ba576106ba6133be565b145b8061071c57507f16700a2d9168a194fc85f237af5829b5a2be05b8ae8ac4879ada34cf54a9c2118714801561071c575060028a6002811115610700576107006133be565b148061071c57505f8a600281111561071a5761071a6133be565b145b90505f7f1fa73686cf510f8f85757b0602de0dd72a13e68ae2092462be8b72662e7f179b86148015610779575060018b600281111561075d5761075d6133be565b148061077957505f8b6002811115610777576107776133be565b145b806107d957507f24d9929b248be7eeecaa98e105c034a50539610f3fdd4cb9c8983ef4100d615d861480156107d9575060028b60028111156107bd576107bd6133be565b14806107d957505f8b60028111156107d7576107d76133be565b145b90508380156107e55750825b80156107ee5750815b80156107f75750805b985050505050505050505b9392505050565b5f546001600160a01b0316331461083b5760405162461bcd60e51b8152600401610832906133d2565b60405180910390fd5b5f8054821515600160a01b0260ff60a01b199091161790556040517f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c59061088790831515815260200190565b60405180910390a150565b604051632988ebc960e21b81525f9073__$144f4fe859debe4776cdef2b99f7b97a42$__9063a623af24906108cb908590600401613360565b602060405180830381865af41580156108e6573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061090a9190613409565b905061091581611d42565b5050565b5f546001600160a01b031633146109425760405162461bcd60e51b8152600401610832906133d2565b6001600160a01b0381166109a45760405162461bcd60e51b8152602060048201526024808201527f526f6f742072656769737472792063616e6e6f74206265207a65726f206164646044820152637265737360e01b6064820152608401610832565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b5f6109d48460028585611e03565b949350505050565b5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__6384052813876040518263ffffffff1660e01b8152600401610a179190613360565b606060405180830381865af4158015610a32573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a569190613420565b91945092509050610a68838635611ff5565b610a845760405162461bcd60e51b815260040161083290613461565b60ff811615610afd576040805162461bcd60e51b81526020600482015260248101919091527f5468652070726f6f6620757070657220626f756e64206d75737420626520302c60448201527f20706c65617365207573652069734167654265747765656e20696e73746561646064820152608401610832565b5060ff8681169116149150509392505050565b5f610b1f858560028686612022565b95945050505050565b5f6109d4848560028686612022565b5f610b1f858560038686612022565b5f610b5383600484612343565b90505b92915050565b5f610b5383600784612343565b5f546001600160a01b03163314610b925760405162461bcd60e51b8152600401610832906133d2565b6001600160a01b038116610be85760405162461bcd60e51b815260206004820152601c60248201527f41646d696e2063616e6e6f74206265207a65726f2061646472657373000000006044820152606401610832565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b9190a35050565b5f610b5383600684612343565b5f5f8460ff1611610c975760405162461bcd60e51b815260206004820152601e60248201527f4d617820616765206d7573742062652067726561746572207468616e203000006044820152606401610832565b6109d4610ca56001866134e6565b8484611487565b5f5f610cec86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061245192505050565b610d6657600860028787604051602001610d079291906134ff565b60408051601f1981840301815290829052610d219161350e565b602060405180830381855afa158015610d3c573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610d5f9190613409565b901c610d68565b5f5b90505f610da985858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061245192505050565b610e2357600860028686604051602001610dc49291906134ff565b60408051601f1981840301815290829052610dde9161350e565b602060405180830381855afa158015610df9573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610e1c9190613409565b901c610e25565b5f5b90508189896003818110610e3b57610e3b613524565b90506020020135148015610e6757508089896004818110610e5e57610e5e613524565b90506020020135145b9998505050505050505050565b5f6109d4848560038686612022565b5f546001600160a01b03163314610eac5760405162461bcd60e51b8152600401610832906133d2565b5f5b81811015610f3e5760015f848484818110610ecb57610ecb613524565b602090810292909201358352508101919091526040015f2080546001600160a01b0319169055828282818110610f0357610f03613524565b905060200201357f6fdcbcf8f91bc23f2c9dcfe8fe01d80d1b1afbbf207298e94c0171ccc587424c60405160405180910390a2600101610eae565b505050565b5f6109d48460038585611e03565b60408051606080820183525f80835260208301529181019190915260405163dfda037960e01b81525f9073__$144f4fe859debe4776cdef2b99f7b97a42$__9063dfda037990610fa5908690600401613360565b5f60405180830381865af4158015610fbf573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610fe69190810190613587565b604051630578c5d360e11b815290915073__$144f4fe859debe4776cdef2b99f7b97a42$__90630af18ba6906110209084906004016135b8565b5f60405180830381865af415801561103a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261106191908101906135ca565b604085015260208401526001600160a01b0316825250919050565b5f6109d461108d6201518086613615565b60028585611e03565b5f546001600160a01b031633146110bf5760405162461bcd60e51b8152600401610832906133d2565b5f5b838110156111b9578282828181106110db576110db613524565b90506020020160208101906110f09190612b42565b60015f87878581811061110557611105613524565b9050602002013581526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555082828281811061114e5761114e613524565b90506020020160208101906111639190612b42565b6001600160a01b031685858381811061117e5761117e613524565b905060200201357f636107338a3eb46f1f60562462f3ec11393d35fbc965991aaade3b9e7d89c3f560405160405180910390a36001016110c1565b5050505050565b5f6109d46111d18562015180613628565b60038585612456565b5f6109d46111eb8562015180613628565b60028585612456565b5f6109d48460028585612456565b5f6109d461121185600161363b565b84846109dc565b5f6109d48460038585612456565b5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__6384052813876040518263ffffffff1660e01b81526004016112619190613360565b606060405180830381865af415801561127c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112a09190613420565b919450925090506112b2838635611ff5565b6112ce5760405162461bcd60e51b815260040161083290613461565b8660ff168860ff16111561133a5760405162461bcd60e51b815260206004820152602d60248201527f4d696e20616765206d757374206265206c657373207468616e206f722065717560448201526c616c20746f206d61782061676560981b6064820152608401610832565b8160ff165f036113c75760405162461bcd60e51b815260206004820152604c60248201527f5468652070726f6f66206c6f77657220626f756e64206d757374206265206e6f60448201527f6e2d7a65726f2c20706c656173652075736520697341676542656c6f774f724560648201526b1c5d585b081a5b9cdd19585960a21b608482015260a401610832565b8060ff165f036114545760405162461bcd60e51b815260206004820152604c60248201527f5468652070726f6f6620757070657220626f756e64206d757374206265206e6f60448201527f6e2d7a65726f2c20706c656173652075736520697341676541626f76654f724560648201526b1c5d585b081a5b9cdd19585960a21b608482015260a401610832565b8160ff168860ff1614801561146e57508060ff168760ff16145b98975050505050505050565b5f610b5383600584612343565b5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__6384052813876040518263ffffffff1660e01b81526004016114c29190613360565b606060405180830381865af41580156114dd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115019190613420565b91945092509050611513838635611ff5565b61152f5760405162461bcd60e51b815260040161083290613461565b60ff8216156115a8576040805162461bcd60e51b81526020600482015260248101919091527f5468652070726f6f66206c6f77657220626f756e64206d75737420626520302c60448201527f20706c65617365207573652069734167654265747765656e20696e73746561646064820152608401610832565b60ff878116911614925050509392505050565b5f6109d46115cc6201518086613615565b60038585611e03565b5f80548190600160a01b900460ff16156116265760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b6044820152606401610832565b5f61163a6116348580613654565b35612687565b90506116736116498580613654565b611657906040810190613672565b5f81811061166757611667613524565b905060200201356126e0565b6116ab6116808580613654565b61168e906040810190613672565b600181811061169f5761169f613524565b905060200201356127a8565b61170a6116b88580613654565b6116c6906040810190613672565b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152506117049250505060408701876136b7565b35612866565b6117725760405162461bcd60e51b815260206004820152603360248201527f5468652070726f6f66207761732067656e657261746564206f757473696465206044820152721d1a19481d985b1a591a5d1e481c195c9a5bd9606a1b6064820152608401610832565b6117c361177f8580613654565b61178d906040810190613672565b61179a60408801886136b7565b6117a89060208101906136cb565b6117b560408a018a6136b7565b6103eb9060408101906136cb565b61180f5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420646f6d61696e206f722073636f70650000000000000000006044820152606401610832565b6118a261181c8580613654565b61182a906040810190613672565b60059060016118398980613654565b611847906040810190613672565b611852929150613615565b9261185f9392919061370d565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061189d925050506020870187613738565b612891565b5f6118ad8580613654565b6118bb906040810190613672565b60026118c78880613654565b6118d5906040810190613672565b6118e0929150613615565b8181106118ef576118ef613524565b905060200201355f1c6003811115611909576119096133be565b9050600281600381111561191f5761191f6133be565b1415801561193f5750600381600381111561193c5761193c6133be565b14155b80611963575061195260408601866136b7565b611963906080810190606001612ae2565b6119c05760405162461bcd60e51b815260206004820152602860248201527f4d6f636b2070726f6f667320617265206f6e6c7920616c6c6f77656420696e20604482015267646576206d6f646560c01b6064820152608401610832565b5f8160038111156119d3576119d36133be565b14806119f857506119e760408601866136b7565b6119f8906080810190606001612ae2565b611a585760405162461bcd60e51b815260206004820152602b60248201527f53616c746564206e756c6c69666965727320617265206e6f7420737570706f7260448201526a74656420666f72206e6f7760a81b6064820152608401610832565b6007611a648680613654565b611a72906040810190613672565b611a7d929150613615565b611a8a6020870187613738565b611a98906020810190613672565b905014611af55760405162461bcd60e51b815260206004820152602560248201527f496e76616c696420636f6d6d697474656420696e70757420636f756e7473206c6044820152640cadccee8d60db1b6064820152608401610832565b6001600160a01b03821663ea50d0e4611b0e8780613654565b611b1c9060208101906136cb565b611b268980613654565b611b34906040810190613672565b6040518563ffffffff1660e01b8152600401611b53949392919061374c565b602060405180830381865afa158015611b6e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b92919061377d565b93505f6001611ba18780613654565b611baf906040810190613672565b611bba929150613615565b9050611bc68680613654565b611bd4906040810190613672565b82818110611be457611be4613524565b905060200201359350505050915091565b611c3d60405180610100016040528060608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081525090565b604051635450abb360e11b81525f9073__$144f4fe859debe4776cdef2b99f7b97a42$__9063a8a1576690611c76908790600401613360565b5f60405180830381865af4158015611c90573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611cb79190810190613798565b6040516301e9bf5760e11b815290925073__$144f4fe859debe4776cdef2b99f7b97a42$__91506303d37eae90611cf490849087906004016137f1565b5f60405180830381865af4158015611d0e573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526109d49190810190613814565b5f6109d484858585611226565b6002546040516383578c1160e01b815260036004820152602481018390526001600160a01b03909116906383578c1190604401602060405180830381865afa158015611d90573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611db4919061377d565b611e005760405162461bcd60e51b815260206004820152601f60248201527f496e76616c69642073616e6374696f6e7320726567697374727920726f6f74006044820152606401610832565b50565b5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__6374d9a37e87896040518363ffffffff1660e01b8152600401611e409291906139a5565b606060405180830381865af4158015611e5b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e7f91906139e2565b91945092509050611e91838635611ff5565b611ead5760405162461bcd60e51b815260040161083290613461565b8115611f2b5760405162461bcd60e51b815260206004820152604160248201527f5468652070726f6f66206c6f77657220626f756e64206d75737420626520302c60448201527f20706c6561736520757365206973446174654265747765656e20696e737465616064820152601960fa1b608482015260a401610832565b600287600a811115611f3f57611f3f6133be565b1480611f5c5750600387600a811115611f5a57611f5a6133be565b145b611f785760405162461bcd60e51b815260040161083290613a0d565b600287600a811115611f8c57611f8c6133be565b03611fca57805f03611fb05760405162461bcd60e51b815260040161083290613a39565b611fbe6383aa7e8082613615565b881493505050506109d4565b805f03611fe95760405162461bcd60e51b815260040161083290613ab1565b871492506109d4915050565b5f806120018385613628565b905083421015801561201257508381115b80156109d4575042109392505050565b5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__6374d9a37e87896040518363ffffffff1660e01b815260040161205f9291906139a5565b606060405180830381865af415801561207a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061209e91906139e2565b919450925090506120b0838635611ff5565b6120cc5760405162461bcd60e51b815260040161083290613461565b878911156121345760405162461bcd60e51b815260206004820152602f60248201527f4d696e2064617465206d757374206265206c657373207468616e206f7220657160448201526e75616c20746f206d6178206461746560881b6064820152608401610832565b600287600a811115612148576121486133be565b14806121655750600387600a811115612163576121636133be565b145b6121815760405162461bcd60e51b815260040161083290613a0d565b600287600a811115612195576121956133be565b0361227b57815f0361222a5760405162461bcd60e51b815260206004820152605260248201527f5468652070726f6f66206c6f77657220626f756e64206d757374206265206e6f60448201527f6e2d7a65726f2c20706c656173652075736520697342697274686461746542656064820152711b1bddd3dc915c5d585b081a5b9cdd19585960721b608482015260a401610832565b805f036122495760405162461bcd60e51b815260040161083290613a39565b6122576383aa7e8083613615565b89148015612271575061226e6383aa7e8082613615565b88145b9350505050610b1f565b815f0361230c5760405162461bcd60e51b815260206004820152605360248201527f5468652070726f6f66206c6f77657220626f756e64206d757374206265206e6f60448201527f6e2d7a65726f2c20706c65617365207573652069734578706972794461746542606482015272195b1bddd3dc915c5d585b081a5b9cdd195859606a1b608482015260a401610832565b805f0361232b5760405162461bcd60e51b815260040161083290613ab1565b81891480156122715750909614979650505050505050565b5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__63dc8c5e9a85876040518363ffffffff1660e01b815260040161237f9291906139a5565b5f60405180830381865af4158015612399573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526123c09190810190613b2a565b91509150808651146123d6575f92505050610802565b5f5b818110156124445761242d8782815181106123f5576123f5613524565b602002602001015184838151811061240f5761240f613524565b60200260200101518051602091820120825192909101919091201490565b61243c575f9350505050610802565b6001016123d8565b5060019695505050505050565b511590565b5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__6374d9a37e87896040518363ffffffff1660e01b81526004016124939291906139a5565b606060405180830381865af41580156124ae573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124d291906139e2565b919450925090506124e4838635611ff5565b6125005760405162461bcd60e51b815260040161083290613461565b600287600a811115612514576125146133be565b14806125315750600387600a81111561252f5761252f6133be565b145b61254d5760405162461bcd60e51b815260040161083290613a0d565b600287600a811115612561576125616133be565b036125f75780156125e95760405162461bcd60e51b815260206004820152604660248201527f5468652070726f6f6620757070657220626f756e64206d75737420626520302c60448201527f20706c65617365207573652069734269727468646174654265747765656e20696064820152651b9cdd19585960d21b608482015260a401610832565b611fbe6383aa7e8083613615565b801561267b5760405162461bcd60e51b815260206004820152604760248201527f5468652070726f6f6620757070657220626f756e64206d75737420626520302c60448201527f20706c6561736520757365206973457870697279446174654265747765656e206064820152661a5b9cdd19585960ca1b608482015260a401610832565b50861491506109d49050565b5f818152600160205260408120546001600160a01b031680610b565760405162461bcd60e51b815260206004820152601260248201527115995c9a599a595c881b9bdd08199bdd5b9960721b6044820152606401610832565b6002546040516383578c1160e01b815260016004820152602481018390526001600160a01b03909116906383578c1190604401602060405180830381865afa15801561272e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612752919061377d565b611e005760405162461bcd60e51b815260206004820152602160248201527f496e76616c696420636572746966696361746520726567697374727920726f6f6044820152601d60fa1b6064820152608401610832565b600280546040516383578c1160e01b81526004810192909252602482018390526001600160a01b0316906383578c1190604401602060405180830381865afa1580156127f6573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061281a919061377d565b611e005760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964206369726375697420726567697374727920726f6f740000006044820152606401610832565b5f5f8360028151811061287b5761287b613524565b60200260200101515f1c90506109d48184611ff5565b5f805b6128a16020840184613672565b90508110156129fb575f600860026128b986806136cb565b86906128c860208a018a613672565b888181106128d8576128d8613524565b90506020020135886128ea9190613628565b926128f793929190613be3565b6040516020016129089291906134ff565b60408051601f19818403018152908290526129229161350e565b602060405180830381855afa15801561293d573d5f5f3e3d5ffd5b5050506040513d601f19601f820116820180604052508101906129609190613409565b901c905084828151811061297657612976613524565b602002602001015181146129c15760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a590818dbdb5b5a5d1b595b9d60721b6044820152606401610832565b6129ce6020850185613672565b838181106129de576129de613524565b90506020020135836129f09190613628565b925050600101612894565b50612a0682806136cb565b90508114610f3e5760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420636f6d6d697474656420696e70757473206c656e677468006044820152606401610832565b60038110611e00575f5ffd5b5f60408284031215612a72575f5ffd5b50919050565b5f5f5f60608486031215612a8a575f5ffd5b8335612a9581612a56565b92506020840135612aa581612a56565b915060408401356001600160401b03811115612abf575f5ffd5b612acb86828701612a62565b9150509250925092565b8015158114611e00575f5ffd5b5f60208284031215612af2575f5ffd5b813561080281612ad5565b5f60208284031215612b0d575f5ffd5b81356001600160401b03811115612b22575f5ffd5b6109d484828501612a62565b6001600160a01b0381168114611e00575f5ffd5b5f60208284031215612b52575f5ffd5b813561080281612b2e565b5f60808284031215612a72575f5ffd5b5f5f5f60608486031215612b7f575f5ffd5b8335925060208401356001600160401b03811115612b9b575f5ffd5b612ba786828701612a62565b92505060408401356001600160401b03811115612bc2575f5ffd5b612acb86828701612b5d565b60ff81168114611e00575f5ffd5b5f5f5f60608486031215612bee575f5ffd5b8335612bf981612bce565b925060208401356001600160401b03811115612b9b575f5ffd5b5f5f5f5f60808587031215612c26575f5ffd5b843593506020850135925060408501356001600160401b03811115612c49575f5ffd5b612c5587828801612a62565b92505060608501356001600160401b03811115612c70575f5ffd5b612c7c87828801612b5d565b91505092959194509250565b634e487b7160e01b5f52604160045260245ffd5b60405161010081016001600160401b0381118282101715612cbf57612cbf612c88565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612ced57612ced612c88565b604052919050565b5f6001600160401b03821115612d0d57612d0d612c88565b5060051b60200190565b5f6001600160401b03821115612d2f57612d2f612c88565b50601f01601f191660200190565b5f5f60408385031215612d4e575f5ffd5b82356001600160401b03811115612d63575f5ffd5b8301601f81018513612d73575f5ffd5b8035612d86612d8182612cf5565b612cc5565b8082825260208201915060208360051b850101925087831115612da7575f5ffd5b602084015b83811015612e275780356001600160401b03811115612dc9575f5ffd5b8501603f81018a13612dd9575f5ffd5b6020810135612dea612d8182612d17565b8181526040838301018c1015612dfe575f5ffd5b816040840160208301375f60208383010152808652505050602083019250602081019050612dac565b50945050505060208301356001600160401b03811115612e45575f5ffd5b612e5185828601612a62565b9150509250929050565b5f60208284031215612e6b575f5ffd5b5035919050565b5f5f83601f840112612e82575f5ffd5b5081356001600160401b03811115612e98575f5ffd5b6020830191508360208260051b8501011115612eb2575f5ffd5b9250929050565b5f5f83601f840112612ec9575f5ffd5b5081356001600160401b03811115612edf575f5ffd5b602083019150836020828501011115612eb2575f5ffd5b5f5f5f5f5f5f60608789031215612f0b575f5ffd5b86356001600160401b03811115612f20575f5ffd5b612f2c89828a01612e72565b90975095505060208701356001600160401b03811115612f4a575f5ffd5b612f5689828a01612eb9565b90955093505060408701356001600160401b03811115612f74575f5ffd5b612f8089828a01612eb9565b979a9699509497509295939492505050565b5f5f60208385031215612fa3575f5ffd5b82356001600160401b03811115612fb8575f5ffd5b612fc485828601612e72565b90969095509350505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6020815260018060a01b038251166020820152602082015160408201525f60408301516060808401526109d46080840182612fd0565b5f5f5f5f60408587031215613047575f5ffd5b84356001600160401b0381111561305c575f5ffd5b61306887828801612e72565b90955093505060208501356001600160401b03811115613086575f5ffd5b61309287828801612e72565b95989497509550505050565b5f5f5f5f608085870312156130b1575f5ffd5b84356130bc81612bce565b935060208501356130cc81612bce565b925060408501356001600160401b03811115612c49575f5ffd5b5f602082840312156130f6575f5ffd5b81356001600160401b0381111561310b575f5ffd5b820160608185031215610802575f5ffd5b5f5f6040838503121561312d575f5ffd5b82356001600160401b03811115613142575f5ffd5b61314e85828601612a62565b925050602083013561315f81612ad5565b809150509250929050565b602081525f82516101006020840152613187610120840182612fd0565b90506020840151601f198483030160408501526131a48282612fd0565b9150506040840151601f198483030160608501526131c28282612fd0565b9150506060840151601f198483030160808501526131e08282612fd0565b9150506080840151601f198483030160a08501526131fe8282612fd0565b91505060a0840151601f198483030160c085015261321c8282612fd0565b91505060c0840151601f198483030160e085015261323a8282612fd0565b91505060e0840151601f1984830301610100850152610b1f8282612fd0565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b8183525f6001600160fb1b03831115613298575f5ffd5b8260051b80836020870137939093016020019392505050565b5f8135601e19833603018082126132c6575f5ffd5b602091840191820191356001600160401b038111156132e3575f5ffd5b8036038313156132f1575f5ffd5b60408652613303604087018285613259565b9250506020840135818112613316575f5ffd5b8401602081019150356001600160401b03811115613332575f5ffd5b8060051b3603821315613343575f5ffd5b8583036020870152613356838284613281565b9695505050505050565b602081525f610b5360208301846132b1565b5f5f5f5f60808587031215613385575f5ffd5b845160208601519094506002811061339b575f5ffd5b6040860151606087015191945092506133b381612a56565b939692955090935050565b634e487b7160e01b5f52602160045260245ffd5b6020808252601a908201527f4e6f7420617574686f72697a65643a2061646d696e206f6e6c79000000000000604082015260600190565b5f60208284031215613419575f5ffd5b5051919050565b5f5f5f60608486031215613432575f5ffd5b8351602085015190935061344581612bce565b604085015190925061345681612bce565b809150509250925092565b6020808252604b908201527f5468652063757272656e742064617465207573656420696e207468652070726f60408201527f6f6620646f6573206e6f742066616c6c2077697468696e207468652076616c6960608201526a191a5d1e481c195c9a5bd960aa1b608082015260a00190565b634e487b7160e01b5f52601160045260245ffd5b60ff8281168282160390811115610b5657610b566134d2565b818382375f9101908152919050565b5f82518060208501845e5f920191825250919050565b634e487b7160e01b5f52603260045260245ffd5b5f82601f830112613547575f5ffd5b8151602083015f61355a612d8184612d17565b905082815285838301111561356d575f5ffd5b8282602083015e5f92810160200192909252509392505050565b5f60208284031215613597575f5ffd5b81516001600160401b038111156135ac575f5ffd5b6109d484828501613538565b602081525f610b536020830184612fd0565b5f5f5f606084860312156135dc575f5ffd5b83516135e781612b2e565b6020850151604086015191945092506001600160401b03811115613609575f5ffd5b612acb86828701613538565b81810381811115610b5657610b566134d2565b80820180821115610b5657610b566134d2565b60ff8181168382160190811115610b5657610b566134d2565b5f8235605e19833603018112613668575f5ffd5b9190910192915050565b5f5f8335601e19843603018112613687575f5ffd5b8301803591506001600160401b038211156136a0575f5ffd5b6020019150600581901b3603821315612eb2575f5ffd5b5f8235607e19833603018112613668575f5ffd5b5f5f8335601e198436030181126136e0575f5ffd5b8301803591506001600160401b038211156136f9575f5ffd5b602001915036819003821315612eb2575f5ffd5b5f5f8585111561371b575f5ffd5b83861115613727575f5ffd5b5050600583901b0193919092039150565b5f8235603e19833603018112613668575f5ffd5b604081525f61375f604083018688613259565b8281036020840152613772818587613281565b979650505050505050565b5f6020828403121561378d575f5ffd5b815161080281612ad5565b5f5f604083850312156137a9575f5ffd5b82516001600160401b038111156137be575f5ffd5b6137ca85828601613538565b92505060208301516001600160401b038111156137e5575f5ffd5b612e5185828601613538565b604081525f6138036040830185612fd0565b905082151560208301529392505050565b5f60208284031215613824575f5ffd5b81516001600160401b03811115613839575f5ffd5b8201610100818503121561384b575f5ffd5b613853612c9c565b81516001600160401b03811115613868575f5ffd5b61387486828501613538565b82525060208201516001600160401b0381111561388f575f5ffd5b61389b86828501613538565b60208301525060408201516001600160401b038111156138b9575f5ffd5b6138c586828501613538565b60408301525060608201516001600160401b038111156138e3575f5ffd5b6138ef86828501613538565b60608301525060808201516001600160401b0381111561390d575f5ffd5b61391986828501613538565b60808301525060a08201516001600160401b03811115613937575f5ffd5b61394386828501613538565b60a08301525060c08201516001600160401b03811115613961575f5ffd5b61396d86828501613538565b60c08301525060e08201516001600160401b0381111561398b575f5ffd5b61399786828501613538565b60e083015250949350505050565b604081525f6139b760408301856132b1565b9050600b83106139d557634e487b7160e01b5f52602160045260245ffd5b8260208301529392505050565b5f5f5f606084860312156139f4575f5ffd5b5050815160208301516040909301519094929350919050565b602080825260129082015271496e76616c69642070726f6f66207479706560701b604082015260600190565b60208082526052908201527f5468652070726f6f6620757070657220626f756e64206d757374206265206e6f60408201527f6e2d7a65726f2c20706c656173652075736520697342697274686461746541626060820152711bdd9953dc915c5d585b081a5b9cdd19585960721b608082015260a00190565b60208082526053908201527f5468652070726f6f6620757070657220626f756e64206d757374206265206e6f60408201527f6e2d7a65726f2c20706c65617365207573652069734578706972794461746541606082015272189bdd9953dc915c5d585b081a5b9cdd195859606a1b608082015260a00190565b5f5f60408385031215613b3b575f5ffd5b82516001600160401b03811115613b50575f5ffd5b8301601f81018513613b60575f5ffd5b8051613b6e612d8182612cf5565b8082825260208201915060208360051b850101925087831115613b8f575f5ffd5b602084015b83811015613bcf5780516001600160401b03811115613bb1575f5ffd5b613bc08a602083890101613538565b84525060209283019201613b94565b506020969096015195979596505050505050565b5f5f85851115613bf1575f5ffd5b83861115613bfd575f5ffd5b505082019391909203915056fea2646970667358221220f991155c5f0495dd21a11592eb81a72baddd6126ad66ff51d0de5dd26a8c865164736f6c634300081d0033",
|
|
990
|
+
sourceMap: "706:30507:26:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23756:915;;;;;;:::i;:::-;;:::i;:::-;;;1155:14:34;;1148:22;1130:41;;1118:2;1103:18;23756:915:26;;;;;;;;2527:118;;;;;;:::i;:::-;;:::i;:::-;;23118:224;;;;;;:::i;:::-;;:::i;3178:206::-;;;;;;:::i;:::-;;:::i;14705:261::-;;;;;;:::i;:::-;;:::i;4538:543::-;;;;;;:::i;:::-;;:::i;14091:279::-;;;;;;:::i;:::-;;:::i;15830:247::-;;;;;;:::i;:::-;;:::i;17636:282::-;;;;;;:::i;:::-;;:::i;738:69::-;;804:1;738:69;;;;;5120:25:34;;;5108:2;5093:18;738:69:26;4974:177:34;20526:220:26;;;;;;:::i;:::-;;:::i;22299:228::-;;;;;;:::i;:::-;;:::i;976:18::-;;;;;-1:-1:-1;;;976:18:26;;;;;;880:67;;944:1;880:67;;811:65;;873:1;811:65;;2294:229;;;;;;:::i;:::-;;:::i;21065:227::-;;;;;;:::i;:::-;;:::i;1084:53::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1084:53:26;;;;;;-1:-1:-1;;;;;8330:32:34;;;8312:51;;8300:2;8285:18;1084:53:26;8166:203:34;7831:283:26;;;;;;:::i;:::-;;:::i;25010:706::-;;;;;;:::i;:::-;;:::i;19402:250::-;;;;;;:::i;:::-;;:::i;2943:231::-;;;;;;:::i;:::-;;:::i;18259:264::-;;;;;;:::i;:::-;;:::i;22680:300::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;15265:263::-;;;;;;:::i;:::-;;:::i;2649:290::-;;;;;;:::i;:::-;;:::i;16979:264::-;;;;;;:::i;:::-;;:::i;13445:261::-;;;;;;:::i;:::-;;:::i;1211:33::-;;;;;-1:-1:-1;;;;;1211:33:26;;;12890:259;;;;;;:::i;:::-;;:::i;5355:224::-;;;;;;:::i;:::-;;:::i;16415:262::-;;;;;;:::i;:::-;;:::i;5936:768::-;;;;;;:::i;:::-;;:::i;21681:221::-;;;;;;:::i;:::-;;:::i;7014:543::-;;;;;;:::i;:::-;;:::i;18828:266::-;;;;;;:::i;:::-;;:::i;27654:3557::-;;;;;;:::i;:::-;;:::i;:::-;;;;13891:14:34;;13884:22;13866:41;;13938:2;13923:18;;13916:34;;;;13839:18;27654:3557:26;13698:258:34;3906:322:26;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;952:20::-;;;;;-1:-1:-1;;;;;952:20:26;;;8394:214;;;;;;:::i;:::-;;:::i;23756:915::-;23892:4;23905:19;23926:23;23951:13;23966:36;24006:15;:39;24046:11;24006:52;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23904:154;;-1:-1:-1;23904:154:26;;-1:-1:-1;23904:154:26;-1:-1:-1;23904:154:26;-1:-1:-1;24064:17:26;24099:22;24084:11;:37;;;;;;;;:::i;:::-;;24064:57;;24127:18;24174:13;24148:39;;;;;;;;:::i;:::-;:22;:39;;;;;;;;:::i;:::-;;;-1:-1:-1;24193:25:26;5336:66:19;24222:44:26;;:78;;;;-1:-1:-1;24277:6:26;24271:2;:12;;;;;;;;:::i;:::-;;:28;;;-1:-1:-1;24293:6:26;24287:2;:12;;;;;;;;:::i;:::-;;24271:28;24221:173;;;-1:-1:-1;5508:66:19;24306:49:26;;:87;;;;-1:-1:-1;24366:10:26;24360:2;:16;;;;;;;;:::i;:::-;;:32;;;-1:-1:-1;24386:6:26;24380:2;:12;;;;;;;;:::i;:::-;;24360:32;24193:201;-1:-1:-1;24400:23:26;4953:66:19;24427:34:26;;:68;;;;-1:-1:-1;24472:6:26;24466:2;:12;;;;;;;;:::i;:::-;;:28;;;-1:-1:-1;24488:6:26;24482:2;:12;;;;;;;;:::i;:::-;;24466:28;24426:152;;;-1:-1:-1;5174:66:19;24501:38:26;;:76;;;;-1:-1:-1;24550:10:26;24544:2;:16;;;;;;;;:::i;:::-;;:32;;;-1:-1:-1;24570:6:26;24564:2;:12;;;;;;;;:::i;:::-;;24544:32;24400:178;;24591:12;:29;;;;;24607:13;24591:29;:53;;;;;24624:20;24591:53;:75;;;;;24648:18;24591:75;24584:82;;;;;;;;;;23756:915;;;;;;:::o;2527:118::-;2157:5;;-1:-1:-1;;;;;2157:5:26;2143:10;:19;2135:58;;;;-1:-1:-1;;;2135:58:26;;;;;;;:::i;:::-;;;;;;;;;2585:6:::1;:16:::0;;;::::1;;-1:-1:-1::0;;;2585:16:26::1;-1:-1:-1::0;;;;2585:16:26;;::::1;;::::0;;2612:28:::1;::::0;::::1;::::0;::::1;::::0;2594:7;1155:14:34;1148:22;1130:41;;1118:2;1103:18;;990:187;2612:28:26::1;;;;;;;;2527:118:::0;:::o;23118:224::-;23237:52;;-1:-1:-1;;;23237:52:26;;23208:26;;23237:15;;:39;;:52;;23277:11;;23237:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23208:81;;23295:42;23318:18;23295:22;:42::i;:::-;23202:140;23118:224;:::o;3178:206::-;2157:5;;-1:-1:-1;;;;;2157:5:26;2143:10;:19;2135:58;;;;-1:-1:-1;;;2135:58:26;;;;;;;:::i;:::-;-1:-1:-1;;;;;3262:27:26;::::1;3254:76;;;::::0;-1:-1:-1;;;3254:76:26;;19820:2:34;3254:76:26::1;::::0;::::1;19802:21:34::0;19859:2;19839:18;;;19832:30;19898:34;19878:18;;;19871:62;-1:-1:-1;;;19949:18:34;;;19942:34;19993:19;;3254:76:26::1;19618:400:34::0;3254:76:26::1;3336:12;:43:::0;;-1:-1:-1;;;;;;3336:43:26::1;-1:-1:-1::0;;;;;3336:43:26;;;::::1;::::0;;;::::1;::::0;;3178:206::o;14705:261::-;14865:4;14884:77;14904:7;14913:19;14934:11;14947:13;14884:19;:77::i;:::-;14877:84;14705:261;-1:-1:-1;;;;14705:261:26:o;4538:543::-;4688:4;4701:19;4722:9;4733;4746:15;:33;4780:11;4746:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4700:92;;-1:-1:-1;4700:92:26;-1:-1:-1;4700:92:26;-1:-1:-1;4806:73:26;4700:92;4841:37;;4806:21;:73::i;:::-;4798:161;;;;-1:-1:-1;;;4798:161:26;;;;;;;:::i;:::-;4973:8;;;;4965:85;;;;;-1:-1:-1;;;4965:85:26;;21204:2:34;4965:85:26;;;21186:21:34;21223:18;;;21216:30;;;;21282:34;21262:18;;;21255:62;21353:34;21333:18;;;21326:62;21405:19;;4965:85:26;21002:428:34;4965:85:26;-1:-1:-1;5063:13:26;;;;;;;;-1:-1:-1;;4538:543:26;;;;;:::o;14091:279::-;14266:4;14285:80;14299:7;14308;14317:19;14338:11;14351:13;14285;:80::i;:::-;14278:87;14091:279;-1:-1:-1;;;;;14091:279:26:o;15830:247::-;15979:4;15998:74;16012:4;16018;16024:19;16045:11;16058:13;15998;:74::i;17636:282::-;17812:4;17831:82;17845:7;17854;17863:21;17886:11;17899:13;17831;:82::i;20526:220::-;20647:4;20666:75;20683:11;20696:31;20729:11;20666:16;:75::i;:::-;20659:82;;20526:220;;;;;:::o;22299:228::-;22424:4;22443:79;22460:11;22473:35;22510:11;22443:16;:79::i;2294:229::-;2157:5;;-1:-1:-1;;;;;2157:5:26;2143:10;:19;2135:58;;;;-1:-1:-1;;;2135:58:26;;;;;;;:::i;:::-;-1:-1:-1;;;;;2368:22:26;::::1;2360:63;;;::::0;-1:-1:-1;;;2360:63:26;;21637:2:34;2360:63:26::1;::::0;::::1;21619:21:34::0;21676:2;21656:18;;;21649:30;21715;21695:18;;;21688:58;21763:18;;2360:63:26::1;21435:352:34::0;2360:63:26::1;2429:16;2448:5:::0;;-1:-1:-1;;;;;2459:16:26;;::::1;-1:-1:-1::0;;;;;;2459:16:26;::::1;::::0;::::1;::::0;;2486:32:::1;::::0;2448:5;;;::::1;::::0;;;2486:32:::1;::::0;2429:16;2486:32:::1;2354:169;2294:229:::0;:::o;21065:227::-;21189:4;21208:79;21225:11;21238:35;21275:11;21208:16;:79::i;7831:283::-;7974:4;8003:1;7994:6;:10;;;7986:53;;;;-1:-1:-1;;;7986:53:26;;21994:2:34;7986:53:26;;;21976:21:34;22033:2;22013:18;;;22006:30;22072:32;22052:18;;;22045:60;22122:18;;7986:53:26;21792:354:34;7986:53:26;8052:57;8070:10;8079:1;8070:6;:10;:::i;:::-;8082:11;8095:13;8052:17;:57::i;25010:706::-;25149:4;25263:17;25283:27;25303:6;;25283:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25283:19:26;;-1:-1:-1;;;25283:27:26:i;:::-;:92;;25374:1;25338:32;25362:6;;25345:24;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;25345:24:26;;;;;;;;;;25338:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:37;;25283:92;;;25327:1;25283:92;25263:112;;25475:20;25498:26;25518:5;;25498:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25498:19:26;;-1:-1:-1;;;25498:26:26:i;:::-;:90;;25587:1;25552:31;25576:5;;25559:23;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;25559:23:26;;;;;;;;;;25552:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:36;;25498:90;;;25541:1;25498:90;25475:113;;25642:9;25601:12;;1108:1:19;25601:37:26;;;;;;;:::i;:::-;;;;;;;:50;:110;;;;;25699:12;25655;;1147:1:19;25655:40:26;;;;;;;:::i;:::-;;;;;;;:56;25601:110;25594:117;25010:706;-1:-1:-1;;;;;;;;;25010:706:26:o;19402:250::-;19552:4;19571:76;19585:4;19591;19597:21;19620:11;19633:13;19571;:76::i;2943:231::-;2157:5;;-1:-1:-1;;;;;2157:5:26;2143:10;:19;2135:58;;;;-1:-1:-1;;;2135:58:26;;;;;;;:::i;:::-;3029:9:::1;3024:146;3044:21:::0;;::::1;3024:146;;;3087:18;:33;3106:10;;3117:1;3106:13;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;::::1;;3087:33:::0;;-1:-1:-1;3087:33:26;::::1;::::0;;;;;;-1:-1:-1;3087:33:26;3080:40;;-1:-1:-1;;;;;;3080:40:26::1;::::0;;3149:10;;3160:1;3149:13;;::::1;;;;;:::i;:::-;;;;;;;3133:30;;;;;;;;;;3067:3;;3024:146;;;;2943:231:::0;;:::o;18259:264::-;18420:4;18439:79;18459:7;18468:21;18491:11;18504:13;18439:19;:79::i;22680:300::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;22819:47:26;;-1:-1:-1;;;22819:47:26;;22799:17;;22819:15;;:34;;:47;;22854:11;;22819:47;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;22819:47:26;;;;;;;;;;;;:::i;:::-;22941:34;;-1:-1:-1;;;22941:34:26;;22799:67;;-1:-1:-1;22941:15:26;;:28;;:34;;22799:67;;22941:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;22941:34:26;;;;;;;;;;;;:::i;:::-;22917:20;;;22872:103;22898:17;;;22872:103;-1:-1:-1;;;;;22872:103:26;;;-1:-1:-1;22873:9:26;22680:300;-1:-1:-1;22680:300:26:o;15265:263::-;15418:4;15437:86;15457:16;15467:6;15457:7;:16;:::i;:::-;15475:19;15496:11;15509:13;15437:19;:86::i;2649:290::-;2157:5;;-1:-1:-1;;;;;2157:5:26;2143:10;:19;2135:58;;;;-1:-1:-1;;;2135:58:26;;;;;;;:::i;:::-;2774:9:::1;2769:166;2789:21:::0;;::::1;2769:166;;;2861:9;;2871:1;2861:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;2825:18;:33;2844:10;;2855:1;2844:13;;;;;;;:::i;:::-;;;;;;;2825:33;;;;;;;;;;;;:48;;;;;-1:-1:-1::0;;;;;2825:48:26::1;;;;;-1:-1:-1::0;;;;;2825:48:26::1;;;;;;2915:9;;2925:1;2915:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;2886:42:26::1;2900:10;;2911:1;2900:13;;;;;;;:::i;:::-;;;;;;;2886:42;;;;;;;;;;2812:3;;2769:166;;;;2649:290:::0;;;;:::o;16979:264::-;17132:4;17151:87;17170:16;:7;17180:6;17170:16;:::i;:::-;17188:21;17211:11;17224:13;17151:18;:87::i;13445:261::-;13597:4;13616:85;13635:16;:7;13645:6;13635:16;:::i;:::-;13653:19;13674:11;13687:13;13616:18;:85::i;12890:259::-;13049:4;13068:76;13087:7;13096:19;13117:11;13130:13;13068:18;:76::i;5355:224::-;5498:4;5517:57;5535:10;:6;5544:1;5535:10;:::i;:::-;5547:11;5560:13;5517:17;:57::i;16415:262::-;16575:4;16594:78;16613:7;16622:21;16645:11;16658:13;16594:18;:78::i;5936:768::-;6099:4;6112:19;6133:9;6144;6157:15;:33;6191:11;6157:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6111:92;;-1:-1:-1;6111:92:26;-1:-1:-1;6111:92:26;-1:-1:-1;6217:73:26;6111:92;6252:37;;6217:21;:73::i;:::-;6209:161;;;;-1:-1:-1;;;6209:161:26;;;;;;;:::i;:::-;6394:6;6384:16;;:6;:16;;;;6376:74;;;;-1:-1:-1;;;6376:74:26;;25445:2:34;6376:74:26;;;25427:21:34;25484:2;25464:18;;;25457:30;25523:34;25503:18;;;25496:62;-1:-1:-1;;;25574:18:34;;;25567:43;25627:19;;6376:74:26;25243:409:34;6376:74:26;6464:3;:8;;6471:1;6464:8;6456:97;;;;-1:-1:-1;;;6456:97:26;;25859:2:34;6456:97:26;;;25841:21:34;25898:2;25878:18;;;25871:30;25937:34;25917:18;;;25910:62;26008:34;25988:18;;;25981:62;-1:-1:-1;;;26059:19:34;;;26052:43;26112:19;;6456:97:26;25657:480:34;6456:97:26;6567:3;:8;;6574:1;6567:8;6559:97;;;;-1:-1:-1;;;6559:97:26;;26344:2:34;6559:97:26;;;26326:21:34;26383:2;26363:18;;;26356:30;26422:34;26402:18;;;26395:62;26493:34;26473:18;;;26466:62;-1:-1:-1;;;26544:19:34;;;26537:43;26597:19;;6559:97:26;26142:480:34;6559:97:26;6679:3;6669:13;;:6;:13;;;:30;;;;;6696:3;6686:13;;:6;:13;;;6669:30;6662:37;5936:768;-1:-1:-1;;;;;;;;5936:768:26:o;21681:221::-;21803:4;21822:75;21839:11;21852:31;21885:11;21822:16;:75::i;7014:543::-;7164:4;7177:19;7198:9;7209;7222:15;:33;7256:11;7222:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7176:92;;-1:-1:-1;7176:92:26;-1:-1:-1;7176:92:26;-1:-1:-1;7282:73:26;7176:92;7317:37;;7282:21;:73::i;:::-;7274:161;;;;-1:-1:-1;;;7274:161:26;;;;;;;:::i;:::-;7449:8;;;;7441:85;;;;;-1:-1:-1;;;7441:85:26;;26829:2:34;7441:85:26;;;26811:21:34;26848:18;;;26841:30;;;;26907:34;26887:18;;;26880:62;26978:34;26958:18;;;26951:62;27030:19;;7441:85:26;26627:428:34;7441:85:26;7539:13;;;;;;;;-1:-1:-1;;;7014:543:26;;;;;:::o;18828:266::-;18982:4;19001:88;19021:16;19031:6;19021:7;:16;:::i;:::-;19039:21;19062:11;19075:13;19001:19;:88::i;27654:3557::-;27761:12;2249:6;;27761:12;;-1:-1:-1;;;2249:6:26;;;;2248:7;2240:38;;;;-1:-1:-1;;;2240:38:26;;27262:2:34;2240:38:26;;;27244:21:34;27301:2;27281:18;;;27274:30;-1:-1:-1;;;27320:18:34;;;27313:48;27378:18;;2240:38:26;27060:342:34;2240:38:26;27884:16:::1;27903:51;27916:28;:6:::0;;:28:::1;:::i;:::-;:37;27903:12;:51::i;:::-;27884:70:::0;-1:-1:-1;28003:112:26::1;28028:28;:6:::0;;:28:::1;:::i;:::-;:41;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;977:1:19;28028:86:26;;;;;;;:::i;:::-;;;;;;;28003:24;:112::i;:::-;28160:104;28181:28;:6:::0;;:28:::1;:::i;:::-;:41;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;1029:1:19;28181:82:26;;;;;;;:::i;:::-;;;;;;;28160:20;:104::i;:::-;28322:98;28332:28;:6:::0;;:28:::1;:::i;:::-;:41;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;28322:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;28375:20:26::1;::::0;-1:-1:-1;;;28375:20:26::1;::::0;::::1;::::0;::::1;:::i;:::-;:44;28322:9;:98::i;:::-;28307:180;;;::::0;-1:-1:-1;;;28307:180:26;;28840:2:34;28307:180:26::1;::::0;::::1;28822:21:34::0;28879:2;28859:18;;;28852:30;28918:34;28898:18;;;28891:62;-1:-1:-1;;;28969:18:34;;;28962:49;29028:19;;28307:180:26::1;28638:415:34::0;28307:180:26::1;28831:112;28844:28;:6:::0;;:28:::1;:::i;:::-;:41;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;28887:20;;::::0;::::1;:6:::0;:20:::1;:::i;:::-;:27;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;28916:20;;::::0;::::1;:6:::0;:20:::1;:::i;:::-;:26;::::0;::::1;::::0;::::1;::::0;::::1;:::i;28831:112::-;28823:148;;;::::0;-1:-1:-1;;;28823:148:26;;29787:2:34;28823:148:26::1;::::0;::::1;29769:21:34::0;29826:2;29806:18;;;29799:30;29865:25;29845:18;;;29838:53;29908:18;;28823:148:26::1;29585:347:34::0;28823:148:26::1;29039:249;29125:28;:6:::0;;:28:::1;:::i;:::-;:41;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;1195:1:19;::::0;29254::26::1;29203:28;:6:::0;;:28:::1;:::i;:::-;:41;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;:52;::::0;;-1:-1:-1;29203:52:26::1;:::i;:::-;29125:131;;;;;;;:::i;:::-;29039:249;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;29264:18:26::1;::::0;-1:-1:-1;;;29264:18:26::1;::::0;::::1;::::0;::::1;:::i;:::-;29039:21;:249::i;:::-;29295:27;29347:28;:6:::0;;:28:::1;:::i;:::-;:41;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;29440:1;29389:28;:6:::0;;:28:::1;:::i;:::-;:41;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;:52;::::0;;-1:-1:-1;29389:52:26::1;:::i;:::-;29347:95;;;;;;;:::i;:::-;;;;;;;29339:104;;29325:119;;;;;;;;:::i;:::-;29295:149:::0;-1:-1:-1;29708:39:26::1;29691:13;:56;;;;;;;;:::i;:::-;;;:112;;;;-1:-1:-1::0;29768:35:26::1;29751:13;:52;;;;;;;;:::i;:::-;;;29691:112;29690:152;;;-1:-1:-1::0;29814:20:26::1;;::::0;::::1;:6:::0;:20:::1;:::i;:::-;:28;::::0;;;;;::::1;;;:::i;:::-;29675:223;;;::::0;-1:-1:-1;;;29675:223:26;;30833:2:34;29675:223:26::1;::::0;::::1;30815:21:34::0;30872:2;30852:18;;;30845:30;30911:34;30891:18;;;30884:62;-1:-1:-1;;;30962:18:34;;;30955:38;31010:19;;29675:223:26::1;30631:404:34::0;29675:223:26::1;30129:34;30112:13;:51;;;;;;;;:::i;:::-;;:83;;;-1:-1:-1::0;30167:20:26::1;;::::0;::::1;:6:::0;:20:::1;:::i;:::-;:28;::::0;;;;;::::1;;;:::i;:::-;30097:157;;;::::0;-1:-1:-1;;;30097:157:26;;31242:2:34;30097:157:26::1;::::0;::::1;31224:21:34::0;31281:2;31261:18;;;31254:30;31320:34;31300:18;;;31293:62;-1:-1:-1;;;31371:18:34;;;31364:41;31422:19;;30097:157:26::1;31040:407:34::0;30097:157:26::1;1337:1:19;30484:28:26;:6:::0;;:28:::1;:::i;:::-;:41;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;:111;::::0;;-1:-1:-1;30484:111:26::1;:::i;:::-;30434:18;;::::0;::::1;:6:::0;:18:::1;:::i;:::-;:39;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;:46;;:161;30426:211;;;::::0;-1:-1:-1;;;30426:211:26;;32204:2:34;30426:211:26::1;::::0;::::1;32186:21:34::0;32243:2;32223:18;;;32216:30;32282:34;32262:18;;;32255:62;-1:-1:-1;;;32333:18:34;;;32326:35;32378:19;;30426:211:26::1;32002:401:34::0;30426:211:26::1;-1:-1:-1::0;;;;;30756:26:26;::::1;;30783:28;:6:::0;;:28:::1;:::i;:::-;:34;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;30819:28;:6:::0;;:28:::1;:::i;:::-;:41;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;30756:105;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30746:115:::0;-1:-1:-1;30924:29:26::1;31007:1;30956:28;:6:::0;;:28:::1;:::i;:::-;:41;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;:52;::::0;;-1:-1:-1;30956:52:26::1;:::i;:::-;30924:84:::0;-1:-1:-1;31033:28:26::1;:6:::0;;:28:::1;:::i;:::-;:41;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;31075:21;31033:64;;;;;;;:::i;:::-;;;;;;;31014:83;;31172:34;;;27654:3557:::0;;;:::o;3906:322::-;4018:34;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4018:34:26;4093:51;;-1:-1:-1;;;4093:51:26;;4063:26;;4093:15;;:38;;:51;;4132:11;;4093:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4093:51:26;;;;;;;;;;;;:::i;:::-;4166:57;;-1:-1:-1;;;4166:57:26;;4060:84;;-1:-1:-1;4166:15:26;;-1:-1:-1;4166:32:26;;:57;;4060:84;;4214:8;;4166:57;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4166:57:26;;;;;;;;;;;;:::i;8394:214::-;8534:4;8553:50;8566:3;8571;8576:11;8589:13;8553:12;:50::i;27157:204::-;27247:12;;:62;;-1:-1:-1;;;27247:62:26;;944:1;27247:62;;;36685:25:34;36726:18;;;36719:34;;;-1:-1:-1;;;;;27247:12:26;;;;:24;;36658:18:34;;27247:62:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27232:124;;;;-1:-1:-1;;;27232:124:26;;36966:2:34;27232:124:26;;;36948:21:34;37005:2;36985:18;;;36978:30;37044:33;37024:18;;;37017:61;37095:18;;27232:124:26;36764:355:34;27232:124:26;27157:204;:::o;11306:1252::-;11487:4;11500:19;11521:11;11534;11549:15;:34;11584:11;11597:9;11549:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11499:108;;-1:-1:-1;11499:108:26;-1:-1:-1;11499:108:26;-1:-1:-1;11621:73:26;11499:108;11656:37;;11621:21;:73::i;:::-;11613:161;;;;-1:-1:-1;;;11613:161:26;;;;;;;:::i;:::-;11788:8;;11780:86;;;;-1:-1:-1;;;11780:86:26;;38321:2:34;11780:86:26;;;38303:21:34;38360:2;38340:18;;;38333:30;38399:34;38379:18;;;38372:62;38470:34;38450:18;;;38443:62;-1:-1:-1;;;38521:19:34;;;38514:32;38563:19;;11780:86:26;38119:469:34;11780:86:26;11893:19;11880:9;:32;;;;;;;;:::i;:::-;;:70;;;-1:-1:-1;11929:21:26;11916:9;:34;;;;;;;;:::i;:::-;;11880:70;11872:101;;;;-1:-1:-1;;;11872:101:26;;;;;;;:::i;:::-;11996:19;11983:9;:32;;;;;;;;:::i;:::-;;11979:575;;12033:3;12040:1;12033:8;12025:103;;;;-1:-1:-1;;;12025:103:26;;;;;;;:::i;:::-;12358:35;144:10:19;12358:3:26;:35;:::i;:::-;12347:7;:46;12340:53;;;;;;;11979:575;12422:3;12429:1;12422:8;12414:104;;;;-1:-1:-1;;;12414:104:26;;;;;;;:::i;:::-;12533:14;;;-1:-1:-1;12526:21:26;;-1:-1:-1;;12526:21:26;392:337:20;500:4;;546:35;558:23;546:9;:35;:::i;:::-;512:69;;619:9;600:15;:28;;:73;;;;;664:9;638:23;:35;600:73;:124;;;;-1:-1:-1;709:15:20;-1:-1:-1;683:41:20;392:337;-1:-1:-1;;;392:337:20:o;9751:1551:26:-;9947:4;9960:19;9981:11;9994;10009:15;:34;10044:11;10057:9;10009:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9959:108;;-1:-1:-1;9959:108:26;-1:-1:-1;9959:108:26;-1:-1:-1;10081:73:26;9959:108;10116:37;;10081:21;:73::i;:::-;10073:161;;;;-1:-1:-1;;;10073:161:26;;;;;;;:::i;:::-;10259:7;10248;:18;;10240:78;;;;-1:-1:-1;;;10240:78:26;;40125:2:34;10240:78:26;;;40107:21:34;40164:2;40144:18;;;40137:30;40203:34;40183:18;;;40176:62;-1:-1:-1;;;40254:18:34;;;40247:45;40309:19;;10240:78:26;39923:411:34;10240:78:26;10345:19;10332:9;:32;;;;;;;;:::i;:::-;;:70;;;-1:-1:-1;10381:21:26;10368:9;:34;;;;;;;;:::i;:::-;;10332:70;10324:101;;;;-1:-1:-1;;;10324:101:26;;;;;;;:::i;:::-;10448:19;10435:9;:32;;;;;;;;:::i;:::-;;10431:867;;10485:3;10492:1;10485:8;10477:103;;;;-1:-1:-1;;;10477:103:26;;40541:2:34;10477:103:26;;;40523:21:34;40580:2;40560:18;;;40553:30;40619:34;40599:18;;;40592:62;40690:34;40670:18;;;40663:62;-1:-1:-1;;;40741:19:34;;;40734:49;40800:19;;10477:103:26;40339:486:34;10477:103:26;10596:3;10603:1;10596:8;10588:103;;;;-1:-1:-1;;;10588:103:26;;;;;;;:::i;:::-;10922:35;144:10:19;10922:3:26;:35;:::i;:::-;10911:7;:46;:96;;;;-1:-1:-1;10972:35:26;144:10:19;10972:3:26;:35;:::i;:::-;10961:7;:46;10911:96;10904:103;;;;;;;10431:867;11036:3;11043:1;11036:8;11028:104;;;;-1:-1:-1;;;11028:104:26;;41032:2:34;11028:104:26;;;41014:21:34;41071:2;41051:18;;;41044:30;41110:34;41090:18;;;41083:62;41181:34;41161:18;;;41154:62;-1:-1:-1;;;41232:19:34;;;41225:50;41292:19;;11028:104:26;40830:487:34;11028:104:26;11148:3;11155:1;11148:8;11140:104;;;;-1:-1:-1;;;11140:104:26;;;;;;;:::i;:::-;11270:3;11259:7;:14;:32;;;;-1:-1:-1;11277:14:26;;;;9751:1551;-1:-1:-1;;;;;;;9751:1551:26:o;19656:559::-;19804:4;19817:32;19851:30;19885:15;:37;19923:11;19936:9;19885:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19885:61:26;;;;;;;;;;;;:::i;:::-;19816:130;;;;19978:22;19956:11;:18;:44;19952:77;;20017:5;20010:12;;;;;;19952:77;20039:9;20034:160;20058:22;20054:1;:26;20034:160;;;20100:55;20119:11;20131:1;20119:14;;;;;;;;:::i;:::-;;;;;;;20135:16;20152:1;20135:19;;;;;;;;:::i;:::-;;;;;;;234::24;;;;;;;211;;;;;;;;;;:42;;119:139;20100:55:26;20095:93;;20174:5;20167:12;;;;;;;20095:93;20082:3;;20034:160;;;-1:-1:-1;20206:4:26;;19656:559;-1:-1:-1;;;;;;19656:559:26:o;262:101:24:-;338:15;:20;;262:101::o;8612:1135:26:-;8792:4;8805:19;8826:11;8839;8854:15;:34;8889:11;8902:9;8854:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8804:108;;-1:-1:-1;8804:108:26;-1:-1:-1;8804:108:26;-1:-1:-1;8926:73:26;8804:108;8961:37;;8926:21;:73::i;:::-;8918:161;;;;-1:-1:-1;;;8918:161:26;;;;;;;:::i;:::-;9106:19;9093:9;:32;;;;;;;;:::i;:::-;;:70;;;-1:-1:-1;9142:21:26;9129:9;:34;;;;;;;;:::i;:::-;;9093:70;9085:101;;;;-1:-1:-1;;;9085:101:26;;;;;;;:::i;:::-;9209:19;9196:9;:32;;;;;;;;:::i;:::-;;9192:551;;9246:8;;9238:91;;;;-1:-1:-1;;;9238:91:26;;42702:2:34;9238:91:26;;;42684:21:34;42741:2;42721:18;;;42714:30;42780:34;42760:18;;;42753:62;42851:34;42831:18;;;42824:62;-1:-1:-1;;;42902:19:34;;;42895:37;42949:19;;9238:91:26;42500:474:34;9238:91:26;9559:35;144:10:19;9559:3:26;:35;:::i;9192:551::-;9623:8;;9615:92;;;;-1:-1:-1;;;9615:92:26;;43181:2:34;9615:92:26;;;43163:21:34;43220:2;43200:18;;;43193:30;43259:34;43239:18;;;43232:62;43330:34;43310:18;;;43303:62;-1:-1:-1;;;43381:19:34;;;43374:38;43429:19;;9615:92:26;42979:475:34;9615:92:26;-1:-1:-1;9722:14:26;;;-1:-1:-1;9715:21:26;;-1:-1:-1;9715:21:26;26527:210;26590:7;26624:28;;;:18;:28;;;;;;-1:-1:-1;;;;;26624:28:26;;26658:53;;;;-1:-1:-1;;;26658:53:26;;43661:2:34;26658:53:26;;;43643:21:34;43700:2;43680:18;;;43673:30;-1:-1:-1;;;43719:18:34;;;43712:48;43777:18;;26658:53:26;43459:342:34;26741:214:26;26835:12;;:66;;-1:-1:-1;;;26835:66:26;;:12;:66;;;36685:25:34;36726:18;;;36719:34;;;-1:-1:-1;;;;;26835:12:26;;;;:24;;36658:18:34;;26835:66:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26820:130;;;;-1:-1:-1;;;26820:130:26;;44008:2:34;26820:130:26;;;43990:21:34;44047:2;44027:18;;;44020:30;44086:34;44066:18;;;44059:62;-1:-1:-1;;;44137:18:34;;;44130:31;44178:19;;26820:130:26;43806:397:34;26959:194:26;27045:12;;;:58;;-1:-1:-1;;;27045:58:26;;;;;36685:25:34;;;;36726:18;;;36719:34;;;-1:-1:-1;;;;;27045:12:26;;:24;;36658:18:34;;27045:58:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27030:118;;;;-1:-1:-1;;;27030:118:26;;44410:2:34;27030:118:26;;;44392:21:34;44449:2;44429:18;;;44422:30;44488:31;44468:18;;;44461:59;44537:18;;27030:118:26;44208:353:34;3388:300:26;3506:4;3518:28;3557:12;1072:1:19;3557:44:26;;;;;;;;:::i;:::-;;;;;;;3549:53;;3518:84;;3615:68;3637:20;3659:23;3615:21;:68::i;25720:803::-;25852:14;;25876:458;25900:32;;;;:11;:32;:::i;:::-;:39;;25896:1;:43;25876:458;;;26034:28;26191:1;26065:122;26098:27;:11;;:27;:::i;:::-;26126:6;;26142:32;;;;:11;:32;:::i;:::-;26175:1;26142:35;;;;;;;:::i;:::-;;;;;;;26133:6;:44;;;;:::i;:::-;26098:80;;;;;;;:::i;:::-;26081:98;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;26081:98:26;;;;;;;;;;26065:122;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:127;;26034:158;;26232:16;26249:1;26232:19;;;;;;;;:::i;:::-;;;;;;;26208:20;:43;26200:74;;;;-1:-1:-1;;;26200:74:26;;45386:2:34;26200:74:26;;;45368:21:34;45425:2;45405:18;;;45398:30;-1:-1:-1;;;45444:18:34;;;45437:48;45502:18;;26200:74:26;45184:342:34;26200:74:26;26292:32;;;;:11;:32;:::i;:::-;26325:1;26292:35;;;;;;;:::i;:::-;;;;;;;26282:45;;;;;:::i;:::-;;-1:-1:-1;;25941:3:26;;25876:458;;;-1:-1:-1;26448:27:26;:11;;:27;:::i;:::-;:34;;26438:6;:44;26430:88;;;;-1:-1:-1;;;26430:88:26;;45733:2:34;26430:88:26;;;45715:21:34;45772:2;45752:18;;;45745:30;45811:33;45791:18;;;45784:61;45862:18;;26430:88:26;45531:355:34;14:112;100:1;93:5;90:12;80:40;;116:1;113;106:12;131:159;195:5;240:2;231:6;226:3;222:16;218:25;215:45;;;256:1;253;246:12;215:45;-1:-1:-1;278:6:34;131:159;-1:-1:-1;131:159:34:o;295:690::-;431:6;439;447;500:2;488:9;479:7;475:23;471:32;468:52;;;516:1;513;506:12;468:52;555:9;542:23;574:42;610:5;574:42;:::i;:::-;635:5;-1:-1:-1;692:2:34;677:18;;664:32;705:44;664:32;705:44;:::i;:::-;768:7;-1:-1:-1;826:2:34;811:18;;798:32;-1:-1:-1;;;;;842:30:34;;839:50;;;885:1;882;875:12;839:50;908:71;971:7;962:6;951:9;947:22;908:71;:::i;:::-;898:81;;;295:690;;;;;:::o;1182:118::-;1268:5;1261:13;1254:21;1247:5;1244:32;1234:60;;1290:1;1287;1280:12;1305:241;1361:6;1414:2;1402:9;1393:7;1389:23;1385:32;1382:52;;;1430:1;1427;1420:12;1382:52;1469:9;1456:23;1488:28;1510:5;1488:28;:::i;1551:365::-;1642:6;1695:2;1683:9;1674:7;1670:23;1666:32;1663:52;;;1711:1;1708;1701:12;1663:52;1751:9;1738:23;-1:-1:-1;;;;;1776:6:34;1773:30;1770:50;;;1816:1;1813;1806:12;1770:50;1839:71;1902:7;1893:6;1882:9;1878:22;1839:71;:::i;1921:131::-;-1:-1:-1;;;;;1996:31:34;;1986:42;;1976:70;;2042:1;2039;2032:12;2057:247;2116:6;2169:2;2157:9;2148:7;2144:23;2140:32;2137:52;;;2185:1;2182;2175:12;2137:52;2224:9;2211:23;2243:31;2268:5;2243:31;:::i;2309:162::-;2375:5;2420:3;2411:6;2406:3;2402:16;2398:26;2395:46;;;2437:1;2434;2427:12;2476:742;2619:6;2627;2635;2688:2;2676:9;2667:7;2663:23;2659:32;2656:52;;;2704:1;2701;2694:12;2656:52;2749:23;;;-1:-1:-1;2847:2:34;2832:18;;2819:32;-1:-1:-1;;;;;2863:30:34;;2860:50;;;2906:1;2903;2896:12;2860:50;2929:71;2992:7;2983:6;2972:9;2968:22;2929:71;:::i;:::-;2919:81;;;3053:2;3042:9;3038:18;3025:32;-1:-1:-1;;;;;3072:8:34;3069:32;3066:52;;;3114:1;3111;3104:12;3066:52;3137:75;3204:7;3193:8;3182:9;3178:24;3137:75;:::i;3223:114::-;3307:4;3300:5;3296:16;3289:5;3286:27;3276:55;;3327:1;3324;3317:12;3342:759;3483:6;3491;3499;3552:2;3540:9;3531:7;3527:23;3523:32;3520:52;;;3568:1;3565;3558:12;3520:52;3607:9;3594:23;3626:29;3649:5;3626:29;:::i;:::-;3674:5;-1:-1:-1;3730:2:34;3715:18;;3702:32;-1:-1:-1;;;;;3746:30:34;;3743:50;;;3789:1;3786;3779:12;4106:863;4258:6;4266;4274;4282;4335:3;4323:9;4314:7;4310:23;4306:33;4303:53;;;4352:1;4349;4342:12;4303:53;4397:23;;;-1:-1:-1;4517:2:34;4502:18;;4489:32;;-1:-1:-1;4598:2:34;4583:18;;4570:32;-1:-1:-1;;;;;4614:30:34;;4611:50;;;4657:1;4654;4647:12;4611:50;4680:71;4743:7;4734:6;4723:9;4719:22;4680:71;:::i;:::-;4670:81;;;4804:2;4793:9;4789:18;4776:32;-1:-1:-1;;;;;4823:8:34;4820:32;4817:52;;;4865:1;4862;4855:12;4817:52;4888:75;4955:7;4944:8;4933:9;4929:24;4888:75;:::i;:::-;4878:85;;;4106:863;;;;;;;:::o;5156:127::-;5217:10;5212:3;5208:20;5205:1;5198:31;5248:4;5245:1;5238:15;5272:4;5269:1;5262:15;5288:255;5360:2;5354:9;5402:6;5390:19;;-1:-1:-1;;;;;5424:34:34;;5460:22;;;5421:62;5418:88;;;5486:18;;:::i;:::-;5522:2;5515:22;5288:255;:::o;5548:275::-;5619:2;5613:9;5684:2;5665:13;;-1:-1:-1;;5661:27:34;5649:40;;-1:-1:-1;;;;;5704:34:34;;5740:22;;;5701:62;5698:88;;;5766:18;;:::i;:::-;5802:2;5795:22;5548:275;;-1:-1:-1;5548:275:34:o;5828:182::-;5887:4;-1:-1:-1;;;;;5912:6:34;5909:30;5906:56;;;5942:18;;:::i;:::-;-1:-1:-1;5987:1:34;5983:14;5999:4;5979:25;;5828:182::o;6015:187::-;6064:4;-1:-1:-1;;;;;6089:6:34;6086:30;6083:56;;;6119:18;;:::i;:::-;-1:-1:-1;6185:2:34;6164:15;-1:-1:-1;;6160:29:34;6191:4;6156:40;;6015:187::o;6207:1769::-;6342:6;6350;6403:2;6391:9;6382:7;6378:23;6374:32;6371:52;;;6419:1;6416;6409:12;6371:52;6459:9;6446:23;-1:-1:-1;;;;;6484:6:34;6481:30;6478:50;;;6524:1;6521;6514:12;6478:50;6547:22;;6600:4;6592:13;;6588:27;-1:-1:-1;6578:55:34;;6629:1;6626;6619:12;6578:55;6669:2;6656:16;6692:63;6708:46;6747:6;6708:46;:::i;:::-;6692:63;:::i;:::-;6777:3;6801:6;6796:3;6789:19;6833:4;6828:3;6824:14;6817:21;;6890:4;6880:6;6877:1;6873:14;6869:2;6865:23;6861:34;6847:48;;6918:7;6910:6;6907:19;6904:39;;;6939:1;6936;6929:12;6904:39;6971:4;6967:2;6963:13;6985:749;7001:6;6996:3;6993:15;6985:749;;;7089:3;7076:17;-1:-1:-1;;;;;7112:11:34;7109:35;7106:55;;;7157:1;7154;7147:12;7106:55;7184:20;;7239:2;7231:11;;7227:25;-1:-1:-1;7217:53:34;;7266:1;7263;7256:12;7217:53;7320:4;7316:2;7312:13;7299:27;7354:55;7370:38;7399:8;7370:38;:::i;7354:55::-;7422:25;;;7466:39;7474:17;;;7466:39;7463:52;-1:-1:-1;7460:72:34;;;7528:1;7525;7518:12;7460:72;7591:8;7586:2;7582;7578:11;7571:4;7562:7;7558:18;7545:55;7655:1;7648:4;7637:8;7628:7;7624:22;7620:33;7613:44;7682:7;7677:3;7670:20;;;;7719:4;7714:3;7710:14;7703:21;;7027:4;7022:3;7018:14;7011:21;;6985:749;;;-1:-1:-1;7753:5:34;-1:-1:-1;;;;7811:4:34;7796:20;;7783:34;-1:-1:-1;;;;;7829:32:34;;7826:52;;;7874:1;7871;7864:12;7826:52;7897:73;7962:7;7951:8;7940:9;7936:24;7897:73;:::i;:::-;7887:83;;;6207:1769;;;;;:::o;7981:180::-;8040:6;8093:2;8081:9;8072:7;8068:23;8064:32;8061:52;;;8109:1;8106;8099:12;8061:52;-1:-1:-1;8132:23:34;;7981:180;-1:-1:-1;7981:180:34:o;8374:367::-;8437:8;8447:6;8501:3;8494:4;8486:6;8482:17;8478:27;8468:55;;8519:1;8516;8509:12;8468:55;-1:-1:-1;8542:20:34;;-1:-1:-1;;;;;8574:30:34;;8571:50;;;8617:1;8614;8607:12;8571:50;8654:4;8646:6;8642:17;8630:29;;8714:3;8707:4;8697:6;8694:1;8690:14;8682:6;8678:27;8674:38;8671:47;8668:67;;;8731:1;8728;8721:12;8668:67;8374:367;;;;;:::o;8746:348::-;8798:8;8808:6;8862:3;8855:4;8847:6;8843:17;8839:27;8829:55;;8880:1;8877;8870:12;8829:55;-1:-1:-1;8903:20:34;;-1:-1:-1;;;;;8935:30:34;;8932:50;;;8978:1;8975;8968:12;8932:50;9015:4;9007:6;9003:17;8991:29;;9067:3;9060:4;9051:6;9043;9039:19;9035:30;9032:39;9029:59;;;9084:1;9081;9074:12;9099:1047;9227:6;9235;9243;9251;9259;9267;9320:2;9308:9;9299:7;9295:23;9291:32;9288:52;;;9336:1;9333;9326:12;9288:52;9376:9;9363:23;-1:-1:-1;;;;;9401:6:34;9398:30;9395:50;;;9441:1;9438;9431:12;9395:50;9480:70;9542:7;9533:6;9522:9;9518:22;9480:70;:::i;:::-;9569:8;;-1:-1:-1;9454:96:34;-1:-1:-1;;9657:2:34;9642:18;;9629:32;-1:-1:-1;;;;;9673:32:34;;9670:52;;;9718:1;9715;9708:12;9670:52;9757:61;9810:7;9799:8;9788:9;9784:24;9757:61;:::i;:::-;9837:8;;-1:-1:-1;9731:87:34;-1:-1:-1;;9925:2:34;9910:18;;9897:32;-1:-1:-1;;;;;9941:32:34;;9938:52;;;9986:1;9983;9976:12;9938:52;10025:61;10078:7;10067:8;10056:9;10052:24;10025:61;:::i;:::-;9099:1047;;;;-1:-1:-1;9099:1047:34;;-1:-1:-1;9099:1047:34;;10105:8;;9099:1047;-1:-1:-1;;;9099:1047:34:o;10151:437::-;10237:6;10245;10298:2;10286:9;10277:7;10273:23;10269:32;10266:52;;;10314:1;10311;10304:12;10266:52;10354:9;10341:23;-1:-1:-1;;;;;10379:6:34;10376:30;10373:50;;;10419:1;10416;10409:12;10373:50;10458:70;10520:7;10511:6;10500:9;10496:22;10458:70;:::i;:::-;10547:8;;10432:96;;-1:-1:-1;10151:437:34;-1:-1:-1;;;;10151:437:34:o;10593:289::-;10635:3;10673:5;10667:12;10700:6;10695:3;10688:19;10756:6;10749:4;10742:5;10738:16;10731:4;10726:3;10722:14;10716:47;10808:1;10801:4;10792:6;10787:3;10783:16;10779:27;10772:38;10871:4;10864:2;10860:7;10855:2;10847:6;10843:15;10839:29;10834:3;10830:39;10826:50;10819:57;;;10593:289;;;;:::o;10887:492::-;11072:2;11061:9;11054:21;11147:1;11143;11138:3;11134:11;11130:19;11121:6;11115:13;11111:39;11106:2;11095:9;11091:18;11084:67;11205:2;11197:6;11193:15;11187:22;11182:2;11171:9;11167:18;11160:50;11035:4;11257:2;11249:6;11245:15;11239:22;11299:4;11292;11281:9;11277:20;11270:34;11321:52;11368:3;11357:9;11353:19;11339:12;11321:52;:::i;11384:768::-;11506:6;11514;11522;11530;11583:2;11571:9;11562:7;11558:23;11554:32;11551:52;;;11599:1;11596;11589:12;11551:52;11639:9;11626:23;-1:-1:-1;;;;;11664:6:34;11661:30;11658:50;;;11704:1;11701;11694:12;11658:50;11743:70;11805:7;11796:6;11785:9;11781:22;11743:70;:::i;:::-;11832:8;;-1:-1:-1;11717:96:34;-1:-1:-1;;11920:2:34;11905:18;;11892:32;-1:-1:-1;;;;;11936:32:34;;11933:52;;;11981:1;11978;11971:12;11933:52;12020:72;12084:7;12073:8;12062:9;12058:24;12020:72;:::i;:::-;11384:768;;;;-1:-1:-1;12111:8:34;-1:-1:-1;;;;11384:768:34:o;12388:897::-;12536:6;12544;12552;12560;12613:3;12601:9;12592:7;12588:23;12584:33;12581:53;;;12630:1;12627;12620:12;12581:53;12669:9;12656:23;12688:29;12711:5;12688:29;:::i;:::-;12736:5;-1:-1:-1;12793:2:34;12778:18;;12765:32;12806:31;12765:32;12806:31;:::i;:::-;12856:7;-1:-1:-1;12914:2:34;12899:18;;12886:32;-1:-1:-1;;;;;12930:30:34;;12927:50;;;12973:1;12970;12963:12;13290:403;13393:6;13446:2;13434:9;13425:7;13421:23;13417:32;13414:52;;;13462:1;13459;13452:12;13414:52;13502:9;13489:23;-1:-1:-1;;;;;13527:6:34;13524:30;13521:50;;;13567:1;13564;13557:12;13521:50;13590:22;;13646:2;13628:16;;;13624:25;13621:45;;;13662:1;13659;13652:12;13961:494;14058:6;14066;14119:2;14107:9;14098:7;14094:23;14090:32;14087:52;;;14135:1;14132;14125:12;14087:52;14175:9;14162:23;-1:-1:-1;;;;;14200:6:34;14197:30;14194:50;;;14240:1;14237;14230:12;14194:50;14263:71;14326:7;14317:6;14306:9;14302:22;14263:71;:::i;:::-;14253:81;;;14384:2;14373:9;14369:18;14356:32;14397:28;14419:5;14397:28;:::i;:::-;14444:5;14434:15;;;13961:494;;;;;:::o;14460:1698::-;14653:2;14642:9;14635:21;14616:4;14691:6;14685:13;14734:6;14729:2;14718:9;14714:18;14707:34;14764:52;14811:3;14800:9;14796:19;14782:12;14764:52;:::i;:::-;14750:66;;14865:2;14857:6;14853:15;14847:22;14937:2;14933:7;14921:9;14913:6;14909:22;14905:36;14900:2;14889:9;14885:18;14878:64;14965:41;14999:6;14983:14;14965:41;:::i;:::-;14951:55;;;15055:2;15047:6;15043:15;15037:22;15127:2;15123:7;15111:9;15103:6;15099:22;15095:36;15090:2;15079:9;15075:18;15068:64;15155:41;15189:6;15173:14;15155:41;:::i;:::-;15141:55;;;15245:2;15237:6;15233:15;15227:22;15318:2;15314:7;15302:9;15294:6;15290:22;15286:36;15280:3;15269:9;15265:19;15258:65;15346:41;15380:6;15364:14;15346:41;:::i;:::-;15332:55;;;15436:3;15428:6;15424:16;15418:23;15510:2;15506:7;15494:9;15486:6;15482:22;15478:36;15472:3;15461:9;15457:19;15450:65;15538:41;15572:6;15556:14;15538:41;:::i;:::-;15524:55;;;15628:3;15620:6;15616:16;15610:23;15702:2;15698:7;15686:9;15678:6;15674:22;15670:36;15664:3;15653:9;15649:19;15642:65;15730:41;15764:6;15748:14;15730:41;:::i;:::-;15716:55;;;15820:3;15812:6;15808:16;15802:23;15894:2;15890:7;15878:9;15870:6;15866:22;15862:36;15856:3;15845:9;15841:19;15834:65;15922:41;15956:6;15940:14;15922:41;:::i;:::-;15908:55;;;16012:3;16004:6;16000:16;15994:23;16089:2;16085:7;16073:9;16065:6;16061:22;16057:36;16048:6;16037:9;16033:22;16026:68;16111:41;16145:6;16129:14;16111:41;:::i;16163:266::-;16251:6;16246:3;16239:19;16303:6;16296:5;16289:4;16284:3;16280:14;16267:43;-1:-1:-1;16355:1:34;16330:16;;;16348:4;16326:27;;;16319:38;;;;16411:2;16390:15;;;-1:-1:-1;;16386:29:34;16377:39;;;16373:50;;16163:266::o;16434:311::-;16522:19;;;16504:3;-1:-1:-1;;;;;16553:31:34;;16550:51;;;16597:1;16594;16587:12;16550:51;16633:6;16630:1;16626:14;16685:8;16678:5;16671:4;16666:3;16662:14;16649:45;16714:18;;;;16734:4;16710:29;;16434:311;-1:-1:-1;;;16434:311:34:o;16750:1172::-;16813:3;16870:5;16857:19;16931:2;16927:7;16919:5;16903:14;16899:26;16895:40;16978:2;16958:18;16954:27;16944:55;;16995:1;16992;16985:12;16944:55;17134:4;17023:30;;;17121:18;;;;17076:21;-1:-1:-1;;;;;17151:30:34;;17148:50;;;17194:1;17191;17184:12;17148:50;17243:6;17227:14;17223:27;17214:7;17210:41;17207:61;;;17264:1;17261;17254:12;17207:61;17289:4;17284:3;17277:17;17315:58;17367:4;17362:3;17358:14;17350:6;17341:7;17315:58;:::i;:::-;17303:70;;;17434:4;17427:5;17423:16;17410:30;17485:2;17463:20;17459:29;17449:57;;17502:1;17499;17492:12;17449:57;17530:32;;17645:4;17632:18;;;-1:-1:-1;17587:21:34;-1:-1:-1;;;;;17662:32:34;;17659:52;;;17707:1;17704;17697:12;17659:52;17763:8;17760:1;17756:16;17740:14;17736:37;17727:7;17723:51;17720:71;;;17787:1;17784;17777:12;17720:71;17833:3;17827:4;17823:14;17816:4;17811:3;17807:14;17800:38;17854:62;17911:4;17901:8;17892:7;17854:62;:::i;:::-;17847:69;16750:1172;-1:-1:-1;;;;;;16750:1172:34:o;17927:291::-;18126:2;18115:9;18108:21;18089:4;18146:66;18208:2;18197:9;18193:18;18185:6;18146:66;:::i;18223:668::-;18356:6;18364;18372;18380;18433:3;18421:9;18412:7;18408:23;18404:33;18401:53;;;18450:1;18447;18440:12;18401:53;18495:16;;18580:2;18565:18;;18559:25;18495:16;;-1:-1:-1;18615:1:34;18603:14;;18593:42;;18631:1;18628;18621:12;18593:42;18727:2;18712:18;;18706:25;18802:2;18787:18;;18781:25;18654:7;;-1:-1:-1;18706:25:34;-1:-1:-1;18815:44:34;18781:25;18815:44;:::i;:::-;18223:668;;;;-1:-1:-1;18223:668:34;;-1:-1:-1;;18223:668:34:o;18896:127::-;18957:10;18952:3;18948:20;18945:1;18938:31;18988:4;18985:1;18978:15;19012:4;19009:1;19002:15;19028:350;19230:2;19212:21;;;19269:2;19249:18;;;19242:30;19308:28;19303:2;19288:18;;19281:56;19369:2;19354:18;;19028:350::o;19383:230::-;19453:6;19506:2;19494:9;19485:7;19481:23;19477:32;19474:52;;;19522:1;19519;19512:12;19474:52;-1:-1:-1;19567:16:34;;19383:230;-1:-1:-1;19383:230:34:o;20023:490::-;20107:6;20115;20123;20176:2;20164:9;20155:7;20151:23;20147:32;20144:52;;;20192:1;20189;20182:12;20144:52;20237:16;;20322:2;20307:18;;20301:25;20237:16;;-1:-1:-1;20335:31:34;20301:25;20335:31;:::i;:::-;20437:2;20422:18;;20416:25;20385:7;;-1:-1:-1;20450:31:34;20416:25;20450:31;:::i;:::-;20500:7;20490:17;;;20023:490;;;;;:::o;20518:479::-;20720:2;20702:21;;;20759:2;20739:18;;;20732:30;20798:34;20793:2;20778:18;;20771:62;20869:34;20864:2;20849:18;;20842:62;-1:-1:-1;;;20935:3:34;20920:19;;20913:42;20987:3;20972:19;;20518:479::o;22151:127::-;22212:10;22207:3;22203:20;22200:1;22193:31;22243:4;22240:1;22233:15;22267:4;22264:1;22257:15;22283:151;22373:4;22366:12;;;22352;;;22348:31;;22391:14;;22388:40;;;22408:18;;:::i;22439:273::-;22624:6;22616;22611:3;22598:33;22580:3;22650:16;;22675:13;;;22650:16;22439:273;-1:-1:-1;22439:273:34:o;22717:301::-;22846:3;22884:6;22878:13;22930:6;22923:4;22915:6;22911:17;22906:3;22900:37;22992:1;22956:16;;22981:13;;;-1:-1:-1;22956:16:34;22717:301;-1:-1:-1;22717:301:34:o;23023:127::-;23084:10;23079:3;23075:20;23072:1;23065:31;23115:4;23112:1;23105:15;23139:4;23136:1;23129:15;23155:514;23208:5;23261:3;23254:4;23246:6;23242:17;23238:27;23228:55;;23279:1;23276;23269:12;23228:55;23312:6;23306:13;23351:4;23343:6;23339:17;23380:1;23401:53;23417:36;23446:6;23417:36;:::i;23401:53::-;23390:64;;23479:6;23470:7;23463:23;23519:3;23510:6;23505:3;23501:16;23498:25;23495:45;;;23536:1;23533;23526:12;23495:45;23580:6;23575:3;23568:4;23559:7;23555:18;23549:38;23636:1;23607:20;;;23629:4;23603:31;23596:42;;;;-1:-1:-1;23611:7:34;23155:514;-1:-1:-1;;;23155:514:34:o;23674:335::-;23753:6;23806:2;23794:9;23785:7;23781:23;23777:32;23774:52;;;23822:1;23819;23812:12;23774:52;23855:9;23849:16;-1:-1:-1;;;;;23880:6:34;23877:30;23874:50;;;23920:1;23917;23910:12;23874:50;23943:60;23995:7;23986:6;23975:9;23971:22;23943:60;:::i;24014:226::-;24169:2;24158:9;24151:21;24132:4;24189:45;24230:2;24219:9;24215:18;24207:6;24189:45;:::i;24245:577::-;24343:6;24351;24359;24412:2;24400:9;24391:7;24387:23;24383:32;24380:52;;;24428:1;24425;24418:12;24380:52;24460:9;24454:16;24479:31;24504:5;24479:31;:::i;:::-;24600:2;24585:18;;24579:25;24674:2;24659:18;;24653:25;24529:5;;-1:-1:-1;24579:25:34;-1:-1:-1;;;;;;24690:30:34;;24687:50;;;24733:1;24730;24723:12;24687:50;24756:60;24808:7;24799:6;24788:9;24784:22;24756:60;:::i;24827:128::-;24894:9;;;24915:11;;;24912:37;;;24929:18;;:::i;24960:125::-;25025:9;;;25046:10;;;25043:36;;;25059:18;;:::i;25090:148::-;25178:4;25157:12;;;25171;;;25153:31;;25196:13;;25193:39;;;25212:18;;:::i;27407:339::-;27515:4;27573:11;27560:25;27667:2;27663:7;27652:8;27636:14;27632:29;27628:43;27608:18;27604:68;27594:96;;27686:1;27683;27676:12;27594:96;27707:33;;;;;27407:339;-1:-1:-1;;27407:339:34:o;27751:545::-;27844:4;27850:6;27910:11;27897:25;28004:2;28000:7;27989:8;27973:14;27969:29;27965:43;27945:18;27941:68;27931:96;;28023:1;28020;28013:12;27931:96;28050:33;;28102:20;;;-1:-1:-1;;;;;;28134:30:34;;28131:50;;;28177:1;28174;28167:12;28131:50;28210:4;28198:17;;-1:-1:-1;28261:1:34;28257:14;;;28241;28237:35;28227:46;;28224:66;;;28286:1;28283;28276:12;28301:332;28401:4;28459:11;28446:25;28553:3;28549:8;28538;28522:14;28518:29;28514:44;28494:18;28490:69;28480:97;;28573:1;28570;28563:12;29058:522;29136:4;29142:6;29202:11;29189:25;29296:2;29292:7;29281:8;29265:14;29261:29;29257:43;29237:18;29233:68;29223:96;;29315:1;29312;29305:12;29223:96;29342:33;;29394:20;;;-1:-1:-1;;;;;;29426:30:34;;29423:50;;;29469:1;29466;29459:12;29423:50;29502:4;29490:17;;-1:-1:-1;29533:14:34;29529:27;;;29519:38;;29516:58;;;29570:1;29567;29560:12;29937:355;30058:9;30069;30111:8;30099:10;30096:24;30093:44;;;30133:1;30130;30123:12;30093:44;30162:6;30152:8;30149:20;30146:40;;;30182:1;30179;30172:12;30146:40;-1:-1:-1;;30224:1:34;30220:18;;;30208:31;;30261:25;;;;;-1:-1:-1;29937:355:34:o;30297:329::-;30395:4;30453:11;30440:25;30547:2;30543:7;30532:8;30516:14;30512:29;30508:43;30488:18;30484:68;30474:96;;30566:1;30563;30556:12;32934:475;33179:2;33168:9;33161:21;33142:4;33205:61;33262:2;33251:9;33247:18;33239:6;33231;33205:61;:::i;:::-;33314:9;33306:6;33302:22;33297:2;33286:9;33282:18;33275:50;33342:61;33396:6;33388;33380;33342:61;:::i;:::-;33334:69;32934:475;-1:-1:-1;;;;;;;32934:475:34:o;33414:245::-;33481:6;33534:2;33522:9;33513:7;33509:23;33505:32;33502:52;;;33550:1;33547;33540:12;33502:52;33582:9;33576:16;33601:28;33623:5;33601:28;:::i;33664:553::-;33761:6;33769;33822:2;33810:9;33801:7;33797:23;33793:32;33790:52;;;33838:1;33835;33828:12;33790:52;33871:9;33865:16;-1:-1:-1;;;;;33896:6:34;33893:30;33890:50;;;33936:1;33933;33926:12;33890:50;33959:60;34011:7;34002:6;33991:9;33987:22;33959:60;:::i;:::-;33949:70;;;34065:2;34054:9;34050:18;34044:25;-1:-1:-1;;;;;34084:8:34;34081:32;34078:52;;;34126:1;34123;34116:12;34078:52;34149:62;34203:7;34192:8;34181:9;34177:24;34149:62;:::i;34222:307::-;34399:2;34388:9;34381:21;34362:4;34419:45;34460:2;34449:9;34445:18;34437:6;34419:45;:::i;:::-;34411:53;;34514:6;34507:14;34500:22;34495:2;34484:9;34480:18;34473:50;34222:307;;;;;:::o;34534:1972::-;34636:6;34689:2;34677:9;34668:7;34664:23;34660:32;34657:52;;;34705:1;34702;34695:12;34657:52;34738:9;34732:16;-1:-1:-1;;;;;34763:6:34;34760:30;34757:50;;;34803:1;34800;34793:12;34757:50;34826:22;;34882:6;34864:16;;;34860:29;34857:49;;;34902:1;34899;34892:12;34857:49;34928:22;;:::i;:::-;34981:2;34975:9;-1:-1:-1;;;;;34999:8:34;34996:32;34993:52;;;35041:1;35038;35031:12;34993:52;35068:55;35115:7;35104:8;35100:2;35096:17;35068:55;:::i;:::-;35061:5;35054:70;;35163:2;35159;35155:11;35149:18;-1:-1:-1;;;;;35182:8:34;35179:32;35176:52;;;35224:1;35221;35214:12;35176:52;35260:55;35307:7;35296:8;35292:2;35288:17;35260:55;:::i;:::-;35255:2;35248:5;35244:14;35237:79;;35355:2;35351;35347:11;35341:18;-1:-1:-1;;;;;35374:8:34;35371:32;35368:52;;;35416:1;35413;35406:12;35368:52;35452:55;35499:7;35488:8;35484:2;35480:17;35452:55;:::i;:::-;35447:2;35440:5;35436:14;35429:79;;35547:2;35543;35539:11;35533:18;-1:-1:-1;;;;;35566:8:34;35563:32;35560:52;;;35608:1;35605;35598:12;35560:52;35644:55;35691:7;35680:8;35676:2;35672:17;35644:55;:::i;:::-;35639:2;35632:5;35628:14;35621:79;;35739:3;35735:2;35731:12;35725:19;-1:-1:-1;;;;;35759:8:34;35756:32;35753:52;;;35801:1;35798;35791:12;35753:52;35838:55;35885:7;35874:8;35870:2;35866:17;35838:55;:::i;:::-;35832:3;35825:5;35821:15;35814:80;;35933:3;35929:2;35925:12;35919:19;-1:-1:-1;;;;;35953:8:34;35950:32;35947:52;;;35995:1;35992;35985:12;35947:52;36032:55;36079:7;36068:8;36064:2;36060:17;36032:55;:::i;:::-;36026:3;36019:5;36015:15;36008:80;;36127:3;36123:2;36119:12;36113:19;-1:-1:-1;;;;;36147:8:34;36144:32;36141:52;;;36189:1;36186;36179:12;36141:52;36226:55;36273:7;36262:8;36258:2;36254:17;36226:55;:::i;:::-;36220:3;36213:5;36209:15;36202:80;;36321:3;36317:2;36313:12;36307:19;-1:-1:-1;;;;;36341:8:34;36338:32;36335:52;;;36383:1;36380;36373:12;36335:52;36420:55;36467:7;36456:8;36452:2;36448:17;36420:55;:::i;:::-;36414:3;36403:15;;36396:80;-1:-1:-1;36407:5:34;34534:1972;-1:-1:-1;;;;34534:1972:34:o;37124:529::-;37364:2;37353:9;37346:21;37327:4;37384:66;37446:2;37435:9;37431:18;37423:6;37384:66;:::i;:::-;37376:74;;37480:2;37472:6;37469:14;37459:145;;37526:10;37521:3;37517:20;37514:1;37507:31;37561:4;37558:1;37551:15;37589:4;37586:1;37579:15;37459:145;37640:6;37635:2;37624:9;37620:18;37613:34;37124:529;;;;;:::o;37658:456::-;37746:6;37754;37762;37815:2;37803:9;37794:7;37790:23;37786:32;37783:52;;;37831:1;37828;37821:12;37783:52;-1:-1:-1;;37876:16:34;;37982:2;37967:18;;37961:25;38078:2;38063:18;;;38057:25;37876:16;;37961:25;;-1:-1:-1;38057:25:34;37658:456;-1:-1:-1;37658:456:34:o;38593:342::-;38795:2;38777:21;;;38834:2;38814:18;;;38807:30;-1:-1:-1;;;38868:2:34;38853:18;;38846:48;38926:2;38911:18;;38593:342::o;38940:486::-;39142:2;39124:21;;;39181:2;39161:18;;;39154:30;39220:34;39215:2;39200:18;;39193:62;39291:34;39286:2;39271:18;;39264:62;-1:-1:-1;;;39357:3:34;39342:19;;39335:49;39416:3;39401:19;;38940:486::o;39431:487::-;39633:2;39615:21;;;39672:2;39652:18;;;39645:30;39711:34;39706:2;39691:18;;39684:62;39782:34;39777:2;39762:18;;39755:62;-1:-1:-1;;;39848:3:34;39833:19;;39826:50;39908:3;39893:19;;39431:487::o;41322:1173::-;41436:6;41444;41497:2;41485:9;41476:7;41472:23;41468:32;41465:52;;;41513:1;41510;41503:12;41465:52;41546:9;41540:16;-1:-1:-1;;;;;41571:6:34;41568:30;41565:50;;;41611:1;41608;41601:12;41565:50;41634:22;;41687:4;41679:13;;41675:27;-1:-1:-1;41665:55:34;;41716:1;41713;41706:12;41665:55;41749:2;41743:9;41772:63;41788:46;41827:6;41788:46;:::i;41772:63::-;41857:3;41881:6;41876:3;41869:19;41913:4;41908:3;41904:14;41897:21;;41970:4;41960:6;41957:1;41953:14;41949:2;41945:23;41941:34;41927:48;;41998:7;41990:6;41987:19;41984:39;;;42019:1;42016;42009:12;41984:39;42051:4;42047:2;42043:13;42065:308;42081:6;42076:3;42073:15;42065:308;;;42162:3;42156:10;-1:-1:-1;;;;;42185:11:34;42182:35;42179:55;;;42230:1;42227;42220:12;42179:55;42259:69;42320:7;42313:4;42299:11;42295:2;42291:20;42287:31;42259:69;:::i;:::-;42247:82;;-1:-1:-1;42358:4:34;42349:14;;;;42098;42065:308;;;-1:-1:-1;42459:4:34;42444:20;;;;42438:27;42392:5;;42438:27;;-1:-1:-1;;;;;;41322:1173:34:o;44566:331::-;44671:9;44682;44724:8;44712:10;44709:24;44706:44;;;44746:1;44743;44736:12;44706:44;44775:6;44765:8;44762:20;44759:40;;;44795:1;44792;44785:12;44759:40;-1:-1:-1;;44821:23:34;;;44866:25;;;;;-1:-1:-1;44566:331:34:o",
|
|
953
991
|
linkReferences: {
|
|
954
992
|
"src/InputsExtractor.sol": {
|
|
955
993
|
InputsExtractor: [
|
|
956
|
-
{ start:
|
|
957
|
-
{ start:
|
|
958
|
-
{ start:
|
|
959
|
-
{ start:
|
|
960
|
-
{ start:
|
|
961
|
-
{ start:
|
|
962
|
-
{ start:
|
|
963
|
-
{ start:
|
|
964
|
-
{ start:
|
|
965
|
-
{ start:
|
|
966
|
-
{ start:
|
|
967
|
-
{ start:
|
|
968
|
-
{ start:
|
|
994
|
+
{ start: 1443, length: 20 },
|
|
995
|
+
{ start: 2211, length: 20 },
|
|
996
|
+
{ start: 2530, length: 20 },
|
|
997
|
+
{ start: 3965, length: 20 },
|
|
998
|
+
{ start: 4088, length: 20 },
|
|
999
|
+
{ start: 4652, length: 20 },
|
|
1000
|
+
{ start: 5261, length: 20 },
|
|
1001
|
+
{ start: 7246, length: 20 },
|
|
1002
|
+
{ start: 7369, length: 20 },
|
|
1003
|
+
{ start: 7689, length: 20 },
|
|
1004
|
+
{ start: 8232, length: 20 },
|
|
1005
|
+
{ start: 9032, length: 20 },
|
|
1006
|
+
{ start: 9308, length: 20 }
|
|
969
1007
|
]
|
|
970
1008
|
}
|
|
971
1009
|
}
|
|
@@ -976,43 +1014,43 @@ var ZKPassportVerifier_default = {
|
|
|
976
1014
|
"SANCTIONS_REGISTRY_ID()": "652ba33d",
|
|
977
1015
|
"addVerifiers(bytes32[],address[])": "a6df2c01",
|
|
978
1016
|
"admin()": "f851a440",
|
|
979
|
-
"enforceSanctionsRoot((
|
|
980
|
-
"getBoundData((
|
|
981
|
-
"getDisclosedData((
|
|
982
|
-
"isAgeAbove(uint8,(
|
|
983
|
-
"isAgeAboveOrEqual(uint8,(
|
|
984
|
-
"isAgeBelow(uint8,(
|
|
985
|
-
"isAgeBelowOrEqual(uint8,(
|
|
986
|
-
"isAgeBetween(uint8,uint8,(
|
|
987
|
-
"isAgeEqual(uint8,(
|
|
988
|
-
"isBirthdateAfter(uint256,(
|
|
989
|
-
"isBirthdateAfterOrEqual(uint256,(
|
|
990
|
-
"isBirthdateBefore(uint256,(
|
|
991
|
-
"isBirthdateBeforeOrEqual(uint256,(
|
|
992
|
-
"isBirthdateBetween(uint256,uint256,(
|
|
993
|
-
"isBirthdateEqual(uint256,(
|
|
994
|
-
"isExpiryDateAfter(uint256,(
|
|
995
|
-
"isExpiryDateAfterOrEqual(uint256,(
|
|
996
|
-
"isExpiryDateBefore(uint256,(
|
|
997
|
-
"isExpiryDateBeforeOrEqual(uint256,(
|
|
998
|
-
"isExpiryDateBetween(uint256,uint256,(
|
|
999
|
-
"isExpiryDateEqual(uint256,(
|
|
1000
|
-
"isFaceMatchVerified(uint8,(
|
|
1001
|
-
"isIssuingCountryIn(string[],(
|
|
1002
|
-
"isIssuingCountryOut(string[],(
|
|
1003
|
-
"isNationalityIn(string[],(
|
|
1004
|
-
"isNationalityOut(string[],(
|
|
1017
|
+
"enforceSanctionsRoot((bytes,uint256[]))": "16e3d729",
|
|
1018
|
+
"getBoundData((bytes,uint256[]))": "98e73ac3",
|
|
1019
|
+
"getDisclosedData((bytes,uint256[]),bool)": "f3757ad4",
|
|
1020
|
+
"isAgeAbove(uint8,(bytes,uint256[]),(uint256,string,string,bool))": "c3fa6f22",
|
|
1021
|
+
"isAgeAboveOrEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))": "2e5ce77f",
|
|
1022
|
+
"isAgeBelow(uint8,(bytes,uint256[]),(uint256,string,string,bool))": "818694f1",
|
|
1023
|
+
"isAgeBelowOrEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))": "d4932b4e",
|
|
1024
|
+
"isAgeBetween(uint8,uint8,(bytes,uint256[]),(uint256,string,string,bool))": "cf515d37",
|
|
1025
|
+
"isAgeEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))": "ff203707",
|
|
1026
|
+
"isBirthdateAfter(uint256,(bytes,uint256[]),(uint256,string,string,bool))": "b8bd4879",
|
|
1027
|
+
"isBirthdateAfterOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": "c1b77162",
|
|
1028
|
+
"isBirthdateBefore(uint256,(bytes,uint256[]),(uint256,string,string,bool))": "9c1a81a3",
|
|
1029
|
+
"isBirthdateBeforeOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": "1fac4345",
|
|
1030
|
+
"isBirthdateBetween(uint256,uint256,(bytes,uint256[]),(uint256,string,string,bool))": "311a335c",
|
|
1031
|
+
"isBirthdateEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": "320d3b55",
|
|
1032
|
+
"isExpiryDateAfter(uint256,(bytes,uint256[]),(uint256,string,string,bool))": "ac20d678",
|
|
1033
|
+
"isExpiryDateAfterOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": "ca4051f2",
|
|
1034
|
+
"isExpiryDateBefore(uint256,(bytes,uint256[]),(uint256,string,string,bool))": "ddd8f8e3",
|
|
1035
|
+
"isExpiryDateBeforeOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": "8e2e2e62",
|
|
1036
|
+
"isExpiryDateBetween(uint256,uint256,(bytes,uint256[]),(uint256,string,string,bool))": "3d6ed975",
|
|
1037
|
+
"isExpiryDateEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": "8b2ec611",
|
|
1038
|
+
"isFaceMatchVerified(uint8,uint8,(bytes,uint256[]))": "106a2f6d",
|
|
1039
|
+
"isIssuingCountryIn(string[],(bytes,uint256[]))": "7e5a88f3",
|
|
1040
|
+
"isIssuingCountryOut(string[],(bytes,uint256[]))": "5b7ab929",
|
|
1041
|
+
"isNationalityIn(string[],(bytes,uint256[]))": "46b758a0",
|
|
1042
|
+
"isNationalityOut(string[],(bytes,uint256[]))": "d39a5cf9",
|
|
1005
1043
|
"paused()": "5c975abb",
|
|
1006
1044
|
"removeVerifiers(bytes32[])": "8d6937b8",
|
|
1007
1045
|
"rootRegistry()": "b96b161c",
|
|
1008
1046
|
"setPaused(bool)": "16c38b3c",
|
|
1009
1047
|
"transferAdmin(address)": "75829def",
|
|
1010
1048
|
"updateRootRegistry(address)": "18677f2a",
|
|
1011
|
-
"verifyProof((bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))": "
|
|
1049
|
+
"verifyProof(((bytes32,bytes,bytes32[]),(bytes,uint256[]),(uint256,string,string,bool)))": "ec8e0729",
|
|
1012
1050
|
"verifyScopes(bytes32[],string,string)": "847755e3",
|
|
1013
1051
|
"vkeyHashToVerifier(bytes32)": "8163f231"
|
|
1014
1052
|
},
|
|
1015
|
-
rawMetadata: '{"compiler":{"version":"0.8.29+commit.ab55807c"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_rootRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"certificateRegistryRoot","type":"bytes32"}],"name":"CertificateRegistryRootAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"certificateRegistryRoot","type":"bytes32"}],"name":"CertificateRegistryRootRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"paused","type":"bool"}],"name":"PausedStatusChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_sanctionsTreesRoot","type":"bytes32"}],"name":"SanctionsTreesRootUpdates","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"verifier","type":"address"}],"name":"VerifierAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"vkeyHash","type":"bytes32"}],"name":"VerifierRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"admin","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"ZKPassportVerifierDeployed","type":"event"},{"inputs":[],"name":"CERTIFICATE_REGISTRY_ID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CIRCUIT_REGISTRY_ID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SANCTIONS_REGISTRY_ID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"vkeyHashes","type":"bytes32[]"},{"internalType":"address[]","name":"verifiers","type":"address[]"}],"name":"addVerifiers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"enforceSanctionsRoot","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"getBoundData","outputs":[{"components":[{"internalType":"address","name":"senderAddress","type":"address"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"string","name":"customData","type":"string"}],"internalType":"struct BoundData","name":"boundData","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"},{"internalType":"bool","name":"isIDCard","type":"bool"}],"name":"getDisclosedData","outputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"issuingCountry","type":"string"},{"internalType":"string","name":"nationality","type":"string"},{"internalType":"string","name":"gender","type":"string"},{"internalType":"string","name":"birthDate","type":"string"},{"internalType":"string","name":"expiryDate","type":"string"},{"internalType":"string","name":"documentNumber","type":"string"},{"internalType":"string","name":"documentType","type":"string"}],"internalType":"struct DisclosedData","name":"disclosedData","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint8","name":"minAge","type":"uint8"},{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"isAgeAbove","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"minAge","type":"uint8"},{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"isAgeAboveOrEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"maxAge","type":"uint8"},{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"isAgeBelow","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"maxAge","type":"uint8"},{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"isAgeBelowOrEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"minAge","type":"uint8"},{"internalType":"uint8","name":"maxAge","type":"uint8"},{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"isAgeBetween","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"age","type":"uint8"},{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"isAgeEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"minDate","type":"uint256"},{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"isBirthdateAfter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"minDate","type":"uint256"},{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"isBirthdateAfterOrEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxDate","type":"uint256"},{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"isBirthdateBefore","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxDate","type":"uint256"},{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"isBirthdateBeforeOrEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"minDate","type":"uint256"},{"internalType":"uint256","name":"maxDate","type":"uint256"},{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"isBirthdateBetween","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"date","type":"uint256"},{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"isBirthdateEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"minDate","type":"uint256"},{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"isExpiryDateAfter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"minDate","type":"uint256"},{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"isExpiryDateAfterOrEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxDate","type":"uint256"},{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"isExpiryDateBefore","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxDate","type":"uint256"},{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"isExpiryDateBeforeOrEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"minDate","type":"uint256"},{"internalType":"uint256","name":"maxDate","type":"uint256"},{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"isExpiryDateBetween","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"date","type":"uint256"},{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"isExpiryDateEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum FaceMatchMode","name":"faceMatchMode","type":"uint8"},{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"isFaceMatchVerified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string[]","name":"countryList","type":"string[]"},{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"isIssuingCountryIn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string[]","name":"countryList","type":"string[]"},{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"isIssuingCountryOut","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string[]","name":"countryList","type":"string[]"},{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"isNationalityIn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string[]","name":"countryList","type":"string[]"},{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"isNationalityOut","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"vkeyHashes","type":"bytes32[]"}],"name":"removeVerifiers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rootRegistry","outputs":[{"internalType":"contract IRootRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_paused","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"transferAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rootRegistry","type":"address"}],"name":"updateRootRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"},{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"verifyProof","outputs":[{"internalType":"bool","name":"isValid","type":"bool"},{"internalType":"bytes32","name":"uniqueIdentifier","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"}],"name":"verifyScopes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"vkeyHashToVerifier","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Constructor"},"enforceSanctionsRoot((bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"params":"The proof verification parameters"}},"getBoundData((bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"params":"The proof verification parameters"},"returns":{"boundData":"The data bound to the proof"}},"getDisclosedData((bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool),bool)":{"params":{"isIDCard":"Whether the proof is an ID card","params":"The proof verification parameters"},"returns":{"disclosedData":"The data disclosed by the proof"}},"isAgeAbove(uint8,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"minAge":"The age must be above this age","params":"The proof verification parameters"},"returns":{"_0":"True if the age is above the given age, false otherwise"}},"isAgeAboveOrEqual(uint8,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"minAge":"The age must be above or equal to this age","params":"The proof verification parameters"},"returns":{"_0":"True if the age is above or equal to the given age, false otherwise"}},"isAgeBelow(uint8,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"maxAge":"The age must be below this age","params":"The proof verification parameters"},"returns":{"_0":"True if the age is below the given age, false otherwise"}},"isAgeBelowOrEqual(uint8,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"maxAge":"The age must be below or equal to this age","params":"The proof verification parameters"},"returns":{"_0":"True if the age is below or equal to the given age, false otherwise"}},"isAgeBetween(uint8,uint8,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"maxAge":"The age must be less than or equal to this age","minAge":"The age must be greater than or equal to this age","params":"The proof verification parameters"},"returns":{"_0":"True if the age is in the given range, false otherwise"}},"isAgeEqual(uint8,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"age":"The age must be equal to this age","params":"The proof verification parameters"},"returns":{"_0":"True if the age is equal to the given age, false otherwise"}},"isBirthdateAfter(uint256,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"minDate":"The birthdate must be after this date","params":"The proof verification parameters"},"returns":{"_0":"True if the birthdate is after the given date, false otherwise"}},"isBirthdateAfterOrEqual(uint256,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"minDate":"The birthdate must be after or equal to this date","params":"The proof verification parameters"},"returns":{"_0":"True if the birthdate is after or equal to the given date, false otherwise"}},"isBirthdateBefore(uint256,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"maxDate":"The birthdate must be before this date","params":"The proof verification parameters"},"returns":{"_0":"True if the birthdate is before the given date, false otherwise"}},"isBirthdateBeforeOrEqual(uint256,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"maxDate":"The birthdate must be before or equal to this date","params":"The proof verification parameters"},"returns":{"_0":"True if the birthdate is before or equal to the given date, false otherwise"}},"isBirthdateBetween(uint256,uint256,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"maxDate":"The birthdate must be before or equal to this date","minDate":"The birthdate must be after or equal to this date","params":"The proof verification parameters"},"returns":{"_0":"True if the birthdate is between the given dates, false otherwise"}},"isBirthdateEqual(uint256,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"date":"The birthdate must be equal to this date","params":"The proof verification parameters"},"returns":{"_0":"True if the birthdate is equal to the given date, false otherwise"}},"isExpiryDateAfter(uint256,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"minDate":"The expiry date must be after this date","params":"The proof verification parameters"},"returns":{"_0":"True if the expiry date is after the given date, false otherwise"}},"isExpiryDateAfterOrEqual(uint256,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"minDate":"The expiry date must be after or equal to this date","params":"The proof verification parameters"},"returns":{"_0":"True if the expiry date is after or equal to the given date, false otherwise"}},"isExpiryDateBefore(uint256,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"maxDate":"The expiry date must be before this date","params":"The proof verification parameters"},"returns":{"_0":"True if the expiry date is before the given date, false otherwise"}},"isExpiryDateBeforeOrEqual(uint256,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"maxDate":"The expiry date must be before or equal to this date","params":"The proof verification parameters"},"returns":{"_0":"True if the expiry date is before or equal to the given date, false otherwise"}},"isExpiryDateBetween(uint256,uint256,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"maxDate":"The expiry date must be before or equal to this date","minDate":"The expiry date must be after or equal to this date","params":"The proof verification parameters"},"returns":{"_0":"True if the expiry date is between the given dates, false otherwise"}},"isExpiryDateEqual(uint256,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"date":"The expiry date must be equal to this date","params":"The proof verification parameters"},"returns":{"_0":"True if the expiry date is equal to the given date, false otherwise"}},"isFaceMatchVerified(uint8,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"faceMatchMode":"The FaceMatch mode expected to be used in the verification","params":"The proof verification parameters"},"returns":{"_0":"True if the proof is tied to a valid FaceMatch verification, false otherwise"}},"isIssuingCountryIn(string[],(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"countryList":"The list of countries (needs to match exactly the list of countries in the proof)","params":"The proof verification parameters"},"returns":{"_0":"True if the issuing country is in the list of countries, false otherwise"}},"isIssuingCountryOut(string[],(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"countryList":"The list of countries (needs to match exactly the list of countries in the proof) Note: The list of countries must be sorted in alphabetical order","params":"The proof verification parameters"},"returns":{"_0":"True if the issuing country is not in the list of countries, false otherwise"}},"isNationalityIn(string[],(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"countryList":"The list of countries (needs to match exactly the list of countries in the proof)","params":"The proof verification parameters"},"returns":{"_0":"True if the nationality is in the list of countries, false otherwise"}},"isNationalityOut(string[],(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"countryList":"The list of countries (needs to match exactly the list of countries in the proof) Note: The list of countries must be sorted in alphabetical order","params":"The proof verification parameters"},"returns":{"_0":"True if the nationality is not in the list of countries, false otherwise"}},"verifyProof((bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"params":{"params":"The proof verification parameters"},"returns":{"isValid":"True if the proof is valid, false otherwise","uniqueIdentifier":"The unique identifier associated to the identity document that generated the proof"}},"verifyScopes(bytes32[],string,string)":{"params":{"domain":"The domain to check against","publicInputs":"The public inputs of the proof","scope":"The scope to check against"},"returns":{"_0":"True if the proof was generated for the given domain and scope, false otherwise"}}},"version":1},"userdoc":{"kind":"user","methods":{"enforceSanctionsRoot((bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Enforces that the proof checks against the expected sanction list(s)"},"getBoundData((bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Gets the data bound to the proof"},"getDisclosedData((bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool),bool)":{"notice":"Gets the data disclosed by the proof"},"isAgeAbove(uint8,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Checks if the age is above the given age"},"isAgeAboveOrEqual(uint8,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Checks if the age is above or equal to the given age"},"isAgeBelow(uint8,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Checks if the age is below the given age"},"isAgeBelowOrEqual(uint8,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Checks if the age is below or equal to the given age"},"isAgeBetween(uint8,uint8,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Checks if the age is in the given range"},"isAgeEqual(uint8,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Checks if the age is equal to the given age"},"isBirthdateAfter(uint256,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Checks if the birthdate is after the given date"},"isBirthdateAfterOrEqual(uint256,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Checks if the birthdate is after or equal to the given date"},"isBirthdateBefore(uint256,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Checks if the birthdate is before the given date"},"isBirthdateBeforeOrEqual(uint256,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Checks if the birthdate is before or equal to the given date"},"isBirthdateBetween(uint256,uint256,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Checks if the birthdate is between the given dates"},"isBirthdateEqual(uint256,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Checks if the birthdate is equal to the given date"},"isExpiryDateAfter(uint256,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Checks if the expiry date is after the given date"},"isExpiryDateAfterOrEqual(uint256,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Checks if the expiry date is after or equal to the given date"},"isExpiryDateBefore(uint256,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Checks if the expiry date is before the given date"},"isExpiryDateBeforeOrEqual(uint256,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Checks if the expiry date is before or equal to the given date"},"isExpiryDateBetween(uint256,uint256,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Checks if the expiry date is between the given dates"},"isExpiryDateEqual(uint256,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Checks if the expiry date is equal to the given date"},"isFaceMatchVerified(uint8,(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Checks if the proof is tied to a FaceMatch verification"},"isIssuingCountryIn(string[],(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Checks if the issuing country is in the list of countries"},"isIssuingCountryOut(string[],(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Checks if the issuing country is not in the list of countries"},"isNationalityIn(string[],(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Checks if the nationality is in the list of countries"},"isNationalityOut(string[],(bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Checks if the nationality is not in the list of countries"},"verifyProof((bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))":{"notice":"Verifies a proof from ZKPassport"},"verifyScopes(bytes32[],string,string)":{"notice":"Verifies that the proof was generated for the given domain and scope"}},"version":1}},"settings":{"compilationTarget":{"src/ZKPassportVerifier.sol":"ZKPassportVerifier"},"evmVersion":"cancun","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[":forge-std/=lib/forge-std/src/"]},"sources":{"src/Constants.sol":{"keccak256":"0xedfdbd23c885320a6400c29a47cfd2e359fa67feaa7e72eb576a36ab47757126","license":"Apache-2.0","urls":["bzz-raw://752ce1099ed498206732837c776e1f364cb89a18356601f92c8c23c5b176a2cb","dweb:/ipfs/QmdnGyvFCHvtm2FVAAYUoTRRXUC1nLWXjz3pkHpAnM9rfn"]},"src/DateUtils.sol":{"keccak256":"0xc04aef2f5732f8c3b28077a0af19e2fbbdec2f9178f3800563bf64ccdecefc77","license":"Apache-2.0","urls":["bzz-raw://bcc2610f3bdd3411fc040d39efe9e68f826b48986b2df7987f3adb6a1467c833","dweb:/ipfs/Qmc7uyW8Y7ekaKEdjd3kU9e1eDcCiAqsujGc5ZavuzGx4w"]},"src/IRootRegistry.sol":{"keccak256":"0xa9955e80821ca9ccbdf7d05a8ce9a3e237b4771e1f6e09190ed1c803a5e1e516","license":"MIT","urls":["bzz-raw://fd9fc9fbd7057a6bcc16a682e52be9ebd012954898626a11f0a0e8788644789d","dweb:/ipfs/QmZYpMRHdv4gMCNXCQtGQu8XqRVtNR9Kgkzh7u1YMpvrEB"]},"src/InputsExtractor.sol":{"keccak256":"0xfcf678bb8fead1820159845e47c2efefdca16452ab2f30b1704efc13253512eb","license":"Apache-2.0","urls":["bzz-raw://aa83383e296a2b748c093b017e12719aeb1897ca3a677f3def76929951440111","dweb:/ipfs/QmYSCdnm5EuQwrF2mnpRVtTLg4uPH1uUJQxYKyJtjEwq3y"]},"src/StringUtils.sol":{"keccak256":"0x0174454c28003f489bcdf636c93ccb512d80f3dbdca7485e11b51cf2c8ebfff1","license":"Apache-2.0","urls":["bzz-raw://92ea71064b8199c9a05cbe279cf42adaaa7b29604d960a84754d3d997b1c2342","dweb:/ipfs/QmcsrqRJ2YZABCZHzS782RqKmWEegSK1LCmTTjJ94gdh5q"]},"src/Types.sol":{"keccak256":"0x96820d882e9fbdfe5b8d28992a59c4df49733c39fa811282f42b6550fa0d4fe9","license":"Apache-2.0","urls":["bzz-raw://c1cc625bfa759185e433b71f5fc22eef47236f57d217354d180beef91077dcc1","dweb:/ipfs/QmXh6MDGjMx7AL4FjstCEtqNLHp9sCExw5CEzFpD8orYh2"]},"src/ZKPassportVerifier.sol":{"keccak256":"0xcb976ea606732493b4497f5f12e2c6296f397735b1286a8bb1477e7cde195e43","license":"Apache-2.0","urls":["bzz-raw://d186a469d3e30743ddbb719a1ecf71c9787359b2a8287e86c9ac294a17e6db38","dweb:/ipfs/QmSxzqPo33R3EhPzm8fF4k4ShUSp58Nr7qzBVadHWBXxMr"]},"src/ultra-honk-verifiers/OuterCount4.sol":{"keccak256":"0xc0b2358f1cb49d10ab783b6ccf321e8bde6eb8ce70efe325fdf49987f1688b94","license":"Apache-2.0","urls":["bzz-raw://c5ddd3b3c3e2522e766c5ab95d2559ce4e79fe54e9aeb50b1c995ad1d8ed18ee","dweb:/ipfs/Qmcu7WhWMk3TPxb3HuwEPiXF95F6eD8KmJ12RXxFBdCYgM"]}},"version":1}',
|
|
1053
|
+
rawMetadata: '{"compiler":{"version":"0.8.29+commit.ab55807c"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_rootRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"certificateRegistryRoot","type":"bytes32"}],"name":"CertificateRegistryRootAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"certificateRegistryRoot","type":"bytes32"}],"name":"CertificateRegistryRootRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"paused","type":"bool"}],"name":"PausedStatusChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_sanctionsTreesRoot","type":"bytes32"}],"name":"SanctionsTreesRootUpdates","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"verifier","type":"address"}],"name":"VerifierAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"vkeyHash","type":"bytes32"}],"name":"VerifierRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"admin","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"ZKPassportVerifierDeployed","type":"event"},{"inputs":[],"name":"CERTIFICATE_REGISTRY_ID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CIRCUIT_REGISTRY_ID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SANCTIONS_REGISTRY_ID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"vkeyHashes","type":"bytes32[]"},{"internalType":"address[]","name":"verifiers","type":"address[]"}],"name":"addVerifiers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"}],"name":"enforceSanctionsRoot","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"}],"name":"getBoundData","outputs":[{"components":[{"internalType":"address","name":"senderAddress","type":"address"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"string","name":"customData","type":"string"}],"internalType":"struct BoundData","name":"boundData","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"internalType":"bool","name":"isIDCard","type":"bool"}],"name":"getDisclosedData","outputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"issuingCountry","type":"string"},{"internalType":"string","name":"nationality","type":"string"},{"internalType":"string","name":"gender","type":"string"},{"internalType":"string","name":"birthDate","type":"string"},{"internalType":"string","name":"expiryDate","type":"string"},{"internalType":"string","name":"documentNumber","type":"string"},{"internalType":"string","name":"documentType","type":"string"}],"internalType":"struct DisclosedData","name":"disclosedData","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint8","name":"minAge","type":"uint8"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isAgeAbove","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"minAge","type":"uint8"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isAgeAboveOrEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"maxAge","type":"uint8"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isAgeBelow","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"maxAge","type":"uint8"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isAgeBelowOrEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"minAge","type":"uint8"},{"internalType":"uint8","name":"maxAge","type":"uint8"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isAgeBetween","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"age","type":"uint8"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isAgeEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"minDate","type":"uint256"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isBirthdateAfter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"minDate","type":"uint256"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isBirthdateAfterOrEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxDate","type":"uint256"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isBirthdateBefore","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxDate","type":"uint256"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isBirthdateBeforeOrEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"minDate","type":"uint256"},{"internalType":"uint256","name":"maxDate","type":"uint256"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isBirthdateBetween","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"date","type":"uint256"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isBirthdateEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"minDate","type":"uint256"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isExpiryDateAfter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"minDate","type":"uint256"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isExpiryDateAfterOrEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxDate","type":"uint256"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isExpiryDateBefore","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxDate","type":"uint256"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isExpiryDateBeforeOrEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"minDate","type":"uint256"},{"internalType":"uint256","name":"maxDate","type":"uint256"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isExpiryDateBetween","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"date","type":"uint256"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isExpiryDateEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum FaceMatchMode","name":"faceMatchMode","type":"uint8"},{"internalType":"enum OS","name":"os","type":"uint8"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"}],"name":"isFaceMatchVerified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string[]","name":"countryList","type":"string[]"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"}],"name":"isIssuingCountryIn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string[]","name":"countryList","type":"string[]"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"}],"name":"isIssuingCountryOut","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string[]","name":"countryList","type":"string[]"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"}],"name":"isNationalityIn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string[]","name":"countryList","type":"string[]"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"}],"name":"isNationalityOut","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"vkeyHashes","type":"bytes32[]"}],"name":"removeVerifiers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rootRegistry","outputs":[{"internalType":"contract IRootRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_paused","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"transferAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rootRegistry","type":"address"}],"name":"updateRootRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"}],"internalType":"struct ProofVerificationData","name":"proofVerificationData","type":"tuple"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"verifyProof","outputs":[{"internalType":"bool","name":"isValid","type":"bool"},{"internalType":"bytes32","name":"uniqueIdentifier","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"}],"name":"verifyScopes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"vkeyHashToVerifier","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Constructor"},"enforceSanctionsRoot((bytes,uint256[]))":{"params":{"commitments":"The commitments"}},"getBoundData((bytes,uint256[]))":{"params":{"commitments":"The commitments"},"returns":{"boundData":"The data bound to the proof"}},"getDisclosedData((bytes,uint256[]),bool)":{"params":{"commitments":"The commitments","isIDCard":"Whether the proof is an ID card"},"returns":{"disclosedData":"The data disclosed by the proof"}},"isAgeAbove(uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","minAge":"The age must be above this age","serviceConfig":"The service config"},"returns":{"_0":"True if the age is above the given age, false otherwise"}},"isAgeAboveOrEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","minAge":"The age must be above or equal to this age","serviceConfig":"The service config"},"returns":{"_0":"True if the age is above or equal to the given age, false otherwise"}},"isAgeBelow(uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","maxAge":"The age must be below this age","serviceConfig":"The service config"},"returns":{"_0":"True if the age is below the given age, false otherwise"}},"isAgeBelowOrEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","maxAge":"The age must be below or equal to this age","serviceConfig":"The service config"},"returns":{"_0":"True if the age is below or equal to the given age, false otherwise"}},"isAgeBetween(uint8,uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","maxAge":"The age must be less than or equal to this age","minAge":"The age must be greater than or equal to this age","serviceConfig":"The service config"},"returns":{"_0":"True if the age is in the given range, false otherwise"}},"isAgeEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"age":"The age must be equal to this age","commitments":"The commitments","serviceConfig":"The service config"},"returns":{"_0":"True if the age is equal to the given age, false otherwise"}},"isBirthdateAfter(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","minDate":"The birthdate must be after this date","serviceConfig":"The service config"},"returns":{"_0":"True if the birthdate is after the given date, false otherwise"}},"isBirthdateAfterOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","minDate":"The birthdate must be after or equal to this date","serviceConfig":"The service config"},"returns":{"_0":"True if the birthdate is after or equal to the given date, false otherwise"}},"isBirthdateBefore(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","maxDate":"The birthdate must be before this date","serviceConfig":"The service config"},"returns":{"_0":"True if the birthdate is before the given date, false otherwise"}},"isBirthdateBeforeOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","maxDate":"The birthdate must be before or equal to this date","serviceConfig":"The service config"},"returns":{"_0":"True if the birthdate is before or equal to the given date, false otherwise"}},"isBirthdateBetween(uint256,uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","maxDate":"The birthdate must be before or equal to this date","minDate":"The birthdate must be after or equal to this date","serviceConfig":"The service config"},"returns":{"_0":"True if the birthdate is between the given dates, false otherwise"}},"isBirthdateEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","date":"The birthdate must be equal to this date","serviceConfig":"The service config"},"returns":{"_0":"True if the birthdate is equal to the given date, false otherwise"}},"isExpiryDateAfter(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","minDate":"The expiry date must be after this date","serviceConfig":"The service config"},"returns":{"_0":"True if the expiry date is after the given date, false otherwise"}},"isExpiryDateAfterOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","minDate":"The expiry date must be after or equal to this date","serviceConfig":"The service config"},"returns":{"_0":"True if the expiry date is after or equal to the given date, false otherwise"}},"isExpiryDateBefore(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","maxDate":"The expiry date must be before this date","serviceConfig":"The service config"},"returns":{"_0":"True if the expiry date is before the given date, false otherwise"}},"isExpiryDateBeforeOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","maxDate":"The expiry date must be before or equal to this date","serviceConfig":"The service config"},"returns":{"_0":"True if the expiry date is before or equal to the given date, false otherwise"}},"isExpiryDateBetween(uint256,uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","maxDate":"The expiry date must be before or equal to this date","minDate":"The expiry date must be after or equal to this date","serviceConfig":"The service config"},"returns":{"_0":"True if the expiry date is between the given dates, false otherwise"}},"isExpiryDateEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","date":"The expiry date must be equal to this date","serviceConfig":"The service config"},"returns":{"_0":"True if the expiry date is equal to the given date, false otherwise"}},"isFaceMatchVerified(uint8,uint8,(bytes,uint256[]))":{"params":{"commitments":"The commitments","faceMatchMode":"The FaceMatch mode expected to be used in the verification","os":"The operating system on which the proof should have been generated (Any (0), iOS (1), Android (2))"},"returns":{"_0":"True if the proof is tied to a valid FaceMatch verification, false otherwise"}},"isIssuingCountryIn(string[],(bytes,uint256[]))":{"params":{"commitments":"The commitments","countryList":"The list of countries (needs to match exactly the list of countries in the proof)"},"returns":{"_0":"True if the issuing country is in the list of countries, false otherwise"}},"isIssuingCountryOut(string[],(bytes,uint256[]))":{"params":{"commitments":"The commitments","countryList":"The list of countries (needs to match exactly the list of countries in the proof) Note: The list of countries must be sorted in alphabetical order"},"returns":{"_0":"True if the issuing country is not in the list of countries, false otherwise"}},"isNationalityIn(string[],(bytes,uint256[]))":{"params":{"commitments":"The commitments","countryList":"The list of countries (needs to match exactly the list of countries in the proof)"},"returns":{"_0":"True if the nationality is in the list of countries, false otherwise"}},"isNationalityOut(string[],(bytes,uint256[]))":{"params":{"commitments":"The commitments","countryList":"The list of countries (needs to match exactly the list of countries in the proof) Note: The list of countries must be sorted in alphabetical order"},"returns":{"_0":"True if the nationality is not in the list of countries, false otherwise"}},"verifyProof(((bytes32,bytes,bytes32[]),(bytes,uint256[]),(uint256,string,string,bool)))":{"params":{"params":"The proof verification parameters"},"returns":{"isValid":"True if the proof is valid, false otherwise","uniqueIdentifier":"The unique identifier associated to the identity document that generated the proof"}},"verifyScopes(bytes32[],string,string)":{"params":{"domain":"The domain to check against","publicInputs":"The public inputs of the proof","scope":"The scope to check against"},"returns":{"_0":"True if the proof was generated for the given domain and scope, false otherwise"}}},"version":1},"userdoc":{"kind":"user","methods":{"enforceSanctionsRoot((bytes,uint256[]))":{"notice":"Enforces that the proof checks against the expected sanction list(s)"},"getBoundData((bytes,uint256[]))":{"notice":"Gets the data bound to the proof"},"getDisclosedData((bytes,uint256[]),bool)":{"notice":"Gets the data disclosed by the proof"},"isAgeAbove(uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the age is above the given age"},"isAgeAboveOrEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the age is above or equal to the given age"},"isAgeBelow(uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the age is below the given age"},"isAgeBelowOrEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the age is below or equal to the given age"},"isAgeBetween(uint8,uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the age is in the given range"},"isAgeEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the age is equal to the given age"},"isBirthdateAfter(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the birthdate is after the given date"},"isBirthdateAfterOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the birthdate is after or equal to the given date"},"isBirthdateBefore(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the birthdate is before the given date"},"isBirthdateBeforeOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the birthdate is before or equal to the given date"},"isBirthdateBetween(uint256,uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the birthdate is between the given dates"},"isBirthdateEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the birthdate is equal to the given date"},"isExpiryDateAfter(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the expiry date is after the given date"},"isExpiryDateAfterOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the expiry date is after or equal to the given date"},"isExpiryDateBefore(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the expiry date is before the given date"},"isExpiryDateBeforeOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the expiry date is before or equal to the given date"},"isExpiryDateBetween(uint256,uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the expiry date is between the given dates"},"isExpiryDateEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the expiry date is equal to the given date"},"isFaceMatchVerified(uint8,uint8,(bytes,uint256[]))":{"notice":"Checks if the proof is tied to a FaceMatch verification"},"isIssuingCountryIn(string[],(bytes,uint256[]))":{"notice":"Checks if the issuing country is in the list of countries"},"isIssuingCountryOut(string[],(bytes,uint256[]))":{"notice":"Checks if the issuing country is not in the list of countries"},"isNationalityIn(string[],(bytes,uint256[]))":{"notice":"Checks if the nationality is in the list of countries"},"isNationalityOut(string[],(bytes,uint256[]))":{"notice":"Checks if the nationality is not in the list of countries"},"verifyProof(((bytes32,bytes,bytes32[]),(bytes,uint256[]),(uint256,string,string,bool)))":{"notice":"Verifies a proof from ZKPassport"},"verifyScopes(bytes32[],string,string)":{"notice":"Verifies that the proof was generated for the given domain and scope"}},"version":1}},"settings":{"compilationTarget":{"src/ZKPassportVerifier.sol":"ZKPassportVerifier"},"evmVersion":"cancun","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[":forge-std/=lib/forge-std/src/"]},"sources":{"src/Constants.sol":{"keccak256":"0x6f011f7c9038b4552283dd9801d5686ad4047ad6c281cf0a8620bfec503a9060","license":"Apache-2.0","urls":["bzz-raw://d4052ca894163688d25d78d297f86dd1c562cfd4e9de7253f2c1da30796a538c","dweb:/ipfs/QmbMJ9gCMsqo22f6ih8Sk3MTxCwBJfPEFAMbYoBVXMydAW"]},"src/DateUtils.sol":{"keccak256":"0xc04aef2f5732f8c3b28077a0af19e2fbbdec2f9178f3800563bf64ccdecefc77","license":"Apache-2.0","urls":["bzz-raw://bcc2610f3bdd3411fc040d39efe9e68f826b48986b2df7987f3adb6a1467c833","dweb:/ipfs/Qmc7uyW8Y7ekaKEdjd3kU9e1eDcCiAqsujGc5ZavuzGx4w"]},"src/IRootRegistry.sol":{"keccak256":"0xa9955e80821ca9ccbdf7d05a8ce9a3e237b4771e1f6e09190ed1c803a5e1e516","license":"MIT","urls":["bzz-raw://fd9fc9fbd7057a6bcc16a682e52be9ebd012954898626a11f0a0e8788644789d","dweb:/ipfs/QmZYpMRHdv4gMCNXCQtGQu8XqRVtNR9Kgkzh7u1YMpvrEB"]},"src/InputsExtractor.sol":{"keccak256":"0xca3a90807b75bff710d97a53c65838a19a87d0bc96c3e1f7a7caa2eb831ef373","license":"Apache-2.0","urls":["bzz-raw://7e1360632f22afd864807ae616cd29c80f90142f2065a131dc996758b9388650","dweb:/ipfs/QmSaRNmHoZs8pLKgfrgBhe9oMrNX82huzDXq1K5TvTwWad"]},"src/StringUtils.sol":{"keccak256":"0x0174454c28003f489bcdf636c93ccb512d80f3dbdca7485e11b51cf2c8ebfff1","license":"Apache-2.0","urls":["bzz-raw://92ea71064b8199c9a05cbe279cf42adaaa7b29604d960a84754d3d997b1c2342","dweb:/ipfs/QmcsrqRJ2YZABCZHzS782RqKmWEegSK1LCmTTjJ94gdh5q"]},"src/Types.sol":{"keccak256":"0x1cb492c099b71287da0349afef0c72c430e2476ad7373a0ea1456e7145207a06","license":"Apache-2.0","urls":["bzz-raw://a158753948b82917aa802c4b475a1ffb4b5f09b2a86ebcb64db11437ab297047","dweb:/ipfs/QmPgGhT59MzcG4TA5PmKjzaoNMZ4VRmcLJH6w5LkWQYjxV"]},"src/ZKPassportVerifier.sol":{"keccak256":"0x12322e58cc69dcc634b07dca3715b81b08aeb1618bcbfcf3de9edbe120f08de9","license":"Apache-2.0","urls":["bzz-raw://769194840e10dd878e1fcac248d386ba6cdb8e0fd96915111133c7f122265bf2","dweb:/ipfs/QmR5ML1N26F8bPMZd2GgSKrGxtUfbLtpKp4dN1FbBMXDNG"]},"src/ultra-honk-verifiers/OuterCount4.sol":{"keccak256":"0xc0b2358f1cb49d10ab783b6ccf321e8bde6eb8ce70efe325fdf49987f1688b94","license":"Apache-2.0","urls":["bzz-raw://c5ddd3b3c3e2522e766c5ab95d2559ce4e79fe54e9aeb50b1c995ad1d8ed18ee","dweb:/ipfs/Qmcu7WhWMk3TPxb3HuwEPiXF95F6eD8KmJ12RXxFBdCYgM"]}},"version":1}',
|
|
1016
1054
|
metadata: {
|
|
1017
1055
|
compiler: { version: "0.8.29+commit.ab55807c" },
|
|
1018
1056
|
language: "Solidity",
|
|
@@ -1145,23 +1183,12 @@ var ZKPassportVerifier_default = {
|
|
|
1145
1183
|
{
|
|
1146
1184
|
inputs: [
|
|
1147
1185
|
{
|
|
1148
|
-
internalType: "struct
|
|
1149
|
-
name: "
|
|
1186
|
+
internalType: "struct Commitments",
|
|
1187
|
+
name: "commitments",
|
|
1150
1188
|
type: "tuple",
|
|
1151
1189
|
components: [
|
|
1152
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1153
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1154
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1155
1190
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1156
|
-
{
|
|
1157
|
-
internalType: "uint256[]",
|
|
1158
|
-
name: "committedInputCounts",
|
|
1159
|
-
type: "uint256[]"
|
|
1160
|
-
},
|
|
1161
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1162
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1163
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1164
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1191
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1165
1192
|
]
|
|
1166
1193
|
}
|
|
1167
1194
|
],
|
|
@@ -1172,23 +1199,12 @@ var ZKPassportVerifier_default = {
|
|
|
1172
1199
|
{
|
|
1173
1200
|
inputs: [
|
|
1174
1201
|
{
|
|
1175
|
-
internalType: "struct
|
|
1176
|
-
name: "
|
|
1202
|
+
internalType: "struct Commitments",
|
|
1203
|
+
name: "commitments",
|
|
1177
1204
|
type: "tuple",
|
|
1178
1205
|
components: [
|
|
1179
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1180
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1181
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1182
1206
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1183
|
-
{
|
|
1184
|
-
internalType: "uint256[]",
|
|
1185
|
-
name: "committedInputCounts",
|
|
1186
|
-
type: "uint256[]"
|
|
1187
|
-
},
|
|
1188
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1189
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1190
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1191
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1207
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1192
1208
|
]
|
|
1193
1209
|
}
|
|
1194
1210
|
],
|
|
@@ -1211,23 +1227,12 @@ var ZKPassportVerifier_default = {
|
|
|
1211
1227
|
{
|
|
1212
1228
|
inputs: [
|
|
1213
1229
|
{
|
|
1214
|
-
internalType: "struct
|
|
1215
|
-
name: "
|
|
1230
|
+
internalType: "struct Commitments",
|
|
1231
|
+
name: "commitments",
|
|
1216
1232
|
type: "tuple",
|
|
1217
1233
|
components: [
|
|
1218
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1219
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1220
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1221
1234
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1222
|
-
{
|
|
1223
|
-
internalType: "uint256[]",
|
|
1224
|
-
name: "committedInputCounts",
|
|
1225
|
-
type: "uint256[]"
|
|
1226
|
-
},
|
|
1227
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1228
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1229
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1230
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1235
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1231
1236
|
]
|
|
1232
1237
|
},
|
|
1233
1238
|
{ internalType: "bool", name: "isIDCard", type: "bool" }
|
|
@@ -1257,19 +1262,19 @@ var ZKPassportVerifier_default = {
|
|
|
1257
1262
|
inputs: [
|
|
1258
1263
|
{ internalType: "uint8", name: "minAge", type: "uint8" },
|
|
1259
1264
|
{
|
|
1260
|
-
internalType: "struct
|
|
1261
|
-
name: "
|
|
1265
|
+
internalType: "struct Commitments",
|
|
1266
|
+
name: "commitments",
|
|
1262
1267
|
type: "tuple",
|
|
1263
1268
|
components: [
|
|
1264
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1265
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1266
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1267
1269
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1268
|
-
{
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1270
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1271
|
+
]
|
|
1272
|
+
},
|
|
1273
|
+
{
|
|
1274
|
+
internalType: "struct ServiceConfig",
|
|
1275
|
+
name: "serviceConfig",
|
|
1276
|
+
type: "tuple",
|
|
1277
|
+
components: [
|
|
1273
1278
|
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1274
1279
|
{ internalType: "string", name: "domain", type: "string" },
|
|
1275
1280
|
{ internalType: "string", name: "scope", type: "string" },
|
|
@@ -1286,19 +1291,19 @@ var ZKPassportVerifier_default = {
|
|
|
1286
1291
|
inputs: [
|
|
1287
1292
|
{ internalType: "uint8", name: "minAge", type: "uint8" },
|
|
1288
1293
|
{
|
|
1289
|
-
internalType: "struct
|
|
1290
|
-
name: "
|
|
1294
|
+
internalType: "struct Commitments",
|
|
1295
|
+
name: "commitments",
|
|
1291
1296
|
type: "tuple",
|
|
1292
1297
|
components: [
|
|
1293
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1294
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1295
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1296
1298
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1297
|
-
{
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1299
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1300
|
+
]
|
|
1301
|
+
},
|
|
1302
|
+
{
|
|
1303
|
+
internalType: "struct ServiceConfig",
|
|
1304
|
+
name: "serviceConfig",
|
|
1305
|
+
type: "tuple",
|
|
1306
|
+
components: [
|
|
1302
1307
|
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1303
1308
|
{ internalType: "string", name: "domain", type: "string" },
|
|
1304
1309
|
{ internalType: "string", name: "scope", type: "string" },
|
|
@@ -1315,19 +1320,19 @@ var ZKPassportVerifier_default = {
|
|
|
1315
1320
|
inputs: [
|
|
1316
1321
|
{ internalType: "uint8", name: "maxAge", type: "uint8" },
|
|
1317
1322
|
{
|
|
1318
|
-
internalType: "struct
|
|
1319
|
-
name: "
|
|
1323
|
+
internalType: "struct Commitments",
|
|
1324
|
+
name: "commitments",
|
|
1320
1325
|
type: "tuple",
|
|
1321
1326
|
components: [
|
|
1322
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1323
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1324
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1325
1327
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1326
|
-
{
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1328
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1329
|
+
]
|
|
1330
|
+
},
|
|
1331
|
+
{
|
|
1332
|
+
internalType: "struct ServiceConfig",
|
|
1333
|
+
name: "serviceConfig",
|
|
1334
|
+
type: "tuple",
|
|
1335
|
+
components: [
|
|
1331
1336
|
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1332
1337
|
{ internalType: "string", name: "domain", type: "string" },
|
|
1333
1338
|
{ internalType: "string", name: "scope", type: "string" },
|
|
@@ -1344,19 +1349,19 @@ var ZKPassportVerifier_default = {
|
|
|
1344
1349
|
inputs: [
|
|
1345
1350
|
{ internalType: "uint8", name: "maxAge", type: "uint8" },
|
|
1346
1351
|
{
|
|
1347
|
-
internalType: "struct
|
|
1348
|
-
name: "
|
|
1352
|
+
internalType: "struct Commitments",
|
|
1353
|
+
name: "commitments",
|
|
1349
1354
|
type: "tuple",
|
|
1350
1355
|
components: [
|
|
1351
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1352
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1353
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1354
1356
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1355
|
-
{
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1357
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1358
|
+
]
|
|
1359
|
+
},
|
|
1360
|
+
{
|
|
1361
|
+
internalType: "struct ServiceConfig",
|
|
1362
|
+
name: "serviceConfig",
|
|
1363
|
+
type: "tuple",
|
|
1364
|
+
components: [
|
|
1360
1365
|
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1361
1366
|
{ internalType: "string", name: "domain", type: "string" },
|
|
1362
1367
|
{ internalType: "string", name: "scope", type: "string" },
|
|
@@ -1374,19 +1379,19 @@ var ZKPassportVerifier_default = {
|
|
|
1374
1379
|
{ internalType: "uint8", name: "minAge", type: "uint8" },
|
|
1375
1380
|
{ internalType: "uint8", name: "maxAge", type: "uint8" },
|
|
1376
1381
|
{
|
|
1377
|
-
internalType: "struct
|
|
1378
|
-
name: "
|
|
1382
|
+
internalType: "struct Commitments",
|
|
1383
|
+
name: "commitments",
|
|
1379
1384
|
type: "tuple",
|
|
1380
1385
|
components: [
|
|
1381
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1382
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1383
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1384
1386
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1385
|
-
{
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1387
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1388
|
+
]
|
|
1389
|
+
},
|
|
1390
|
+
{
|
|
1391
|
+
internalType: "struct ServiceConfig",
|
|
1392
|
+
name: "serviceConfig",
|
|
1393
|
+
type: "tuple",
|
|
1394
|
+
components: [
|
|
1390
1395
|
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1391
1396
|
{ internalType: "string", name: "domain", type: "string" },
|
|
1392
1397
|
{ internalType: "string", name: "scope", type: "string" },
|
|
@@ -1403,19 +1408,19 @@ var ZKPassportVerifier_default = {
|
|
|
1403
1408
|
inputs: [
|
|
1404
1409
|
{ internalType: "uint8", name: "age", type: "uint8" },
|
|
1405
1410
|
{
|
|
1406
|
-
internalType: "struct
|
|
1407
|
-
name: "
|
|
1411
|
+
internalType: "struct Commitments",
|
|
1412
|
+
name: "commitments",
|
|
1408
1413
|
type: "tuple",
|
|
1409
1414
|
components: [
|
|
1410
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1411
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1412
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1413
1415
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1414
|
-
{
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1416
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1417
|
+
]
|
|
1418
|
+
},
|
|
1419
|
+
{
|
|
1420
|
+
internalType: "struct ServiceConfig",
|
|
1421
|
+
name: "serviceConfig",
|
|
1422
|
+
type: "tuple",
|
|
1423
|
+
components: [
|
|
1419
1424
|
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1420
1425
|
{ internalType: "string", name: "domain", type: "string" },
|
|
1421
1426
|
{ internalType: "string", name: "scope", type: "string" },
|
|
@@ -1432,19 +1437,19 @@ var ZKPassportVerifier_default = {
|
|
|
1432
1437
|
inputs: [
|
|
1433
1438
|
{ internalType: "uint256", name: "minDate", type: "uint256" },
|
|
1434
1439
|
{
|
|
1435
|
-
internalType: "struct
|
|
1436
|
-
name: "
|
|
1440
|
+
internalType: "struct Commitments",
|
|
1441
|
+
name: "commitments",
|
|
1437
1442
|
type: "tuple",
|
|
1438
1443
|
components: [
|
|
1439
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1440
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1441
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1442
1444
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1443
|
-
{
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1445
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1446
|
+
]
|
|
1447
|
+
},
|
|
1448
|
+
{
|
|
1449
|
+
internalType: "struct ServiceConfig",
|
|
1450
|
+
name: "serviceConfig",
|
|
1451
|
+
type: "tuple",
|
|
1452
|
+
components: [
|
|
1448
1453
|
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1449
1454
|
{ internalType: "string", name: "domain", type: "string" },
|
|
1450
1455
|
{ internalType: "string", name: "scope", type: "string" },
|
|
@@ -1461,19 +1466,19 @@ var ZKPassportVerifier_default = {
|
|
|
1461
1466
|
inputs: [
|
|
1462
1467
|
{ internalType: "uint256", name: "minDate", type: "uint256" },
|
|
1463
1468
|
{
|
|
1464
|
-
internalType: "struct
|
|
1465
|
-
name: "
|
|
1469
|
+
internalType: "struct Commitments",
|
|
1470
|
+
name: "commitments",
|
|
1466
1471
|
type: "tuple",
|
|
1467
1472
|
components: [
|
|
1468
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1469
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1470
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1471
1473
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1472
|
-
{
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1474
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1475
|
+
]
|
|
1476
|
+
},
|
|
1477
|
+
{
|
|
1478
|
+
internalType: "struct ServiceConfig",
|
|
1479
|
+
name: "serviceConfig",
|
|
1480
|
+
type: "tuple",
|
|
1481
|
+
components: [
|
|
1477
1482
|
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1478
1483
|
{ internalType: "string", name: "domain", type: "string" },
|
|
1479
1484
|
{ internalType: "string", name: "scope", type: "string" },
|
|
@@ -1490,19 +1495,19 @@ var ZKPassportVerifier_default = {
|
|
|
1490
1495
|
inputs: [
|
|
1491
1496
|
{ internalType: "uint256", name: "maxDate", type: "uint256" },
|
|
1492
1497
|
{
|
|
1493
|
-
internalType: "struct
|
|
1494
|
-
name: "
|
|
1498
|
+
internalType: "struct Commitments",
|
|
1499
|
+
name: "commitments",
|
|
1495
1500
|
type: "tuple",
|
|
1496
1501
|
components: [
|
|
1497
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1498
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1499
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1500
1502
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1501
|
-
{
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1503
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1504
|
+
]
|
|
1505
|
+
},
|
|
1506
|
+
{
|
|
1507
|
+
internalType: "struct ServiceConfig",
|
|
1508
|
+
name: "serviceConfig",
|
|
1509
|
+
type: "tuple",
|
|
1510
|
+
components: [
|
|
1506
1511
|
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1507
1512
|
{ internalType: "string", name: "domain", type: "string" },
|
|
1508
1513
|
{ internalType: "string", name: "scope", type: "string" },
|
|
@@ -1519,19 +1524,19 @@ var ZKPassportVerifier_default = {
|
|
|
1519
1524
|
inputs: [
|
|
1520
1525
|
{ internalType: "uint256", name: "maxDate", type: "uint256" },
|
|
1521
1526
|
{
|
|
1522
|
-
internalType: "struct
|
|
1523
|
-
name: "
|
|
1527
|
+
internalType: "struct Commitments",
|
|
1528
|
+
name: "commitments",
|
|
1524
1529
|
type: "tuple",
|
|
1525
1530
|
components: [
|
|
1526
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1527
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1528
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1529
1531
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1530
|
-
{
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1532
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1533
|
+
]
|
|
1534
|
+
},
|
|
1535
|
+
{
|
|
1536
|
+
internalType: "struct ServiceConfig",
|
|
1537
|
+
name: "serviceConfig",
|
|
1538
|
+
type: "tuple",
|
|
1539
|
+
components: [
|
|
1535
1540
|
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1536
1541
|
{ internalType: "string", name: "domain", type: "string" },
|
|
1537
1542
|
{ internalType: "string", name: "scope", type: "string" },
|
|
@@ -1549,19 +1554,19 @@ var ZKPassportVerifier_default = {
|
|
|
1549
1554
|
{ internalType: "uint256", name: "minDate", type: "uint256" },
|
|
1550
1555
|
{ internalType: "uint256", name: "maxDate", type: "uint256" },
|
|
1551
1556
|
{
|
|
1552
|
-
internalType: "struct
|
|
1553
|
-
name: "
|
|
1557
|
+
internalType: "struct Commitments",
|
|
1558
|
+
name: "commitments",
|
|
1554
1559
|
type: "tuple",
|
|
1555
1560
|
components: [
|
|
1556
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1557
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1558
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1559
1561
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1560
|
-
{
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1562
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1563
|
+
]
|
|
1564
|
+
},
|
|
1565
|
+
{
|
|
1566
|
+
internalType: "struct ServiceConfig",
|
|
1567
|
+
name: "serviceConfig",
|
|
1568
|
+
type: "tuple",
|
|
1569
|
+
components: [
|
|
1565
1570
|
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1566
1571
|
{ internalType: "string", name: "domain", type: "string" },
|
|
1567
1572
|
{ internalType: "string", name: "scope", type: "string" },
|
|
@@ -1578,19 +1583,19 @@ var ZKPassportVerifier_default = {
|
|
|
1578
1583
|
inputs: [
|
|
1579
1584
|
{ internalType: "uint256", name: "date", type: "uint256" },
|
|
1580
1585
|
{
|
|
1581
|
-
internalType: "struct
|
|
1582
|
-
name: "
|
|
1586
|
+
internalType: "struct Commitments",
|
|
1587
|
+
name: "commitments",
|
|
1583
1588
|
type: "tuple",
|
|
1584
1589
|
components: [
|
|
1585
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1586
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1587
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1588
1590
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1589
|
-
{
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1591
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1592
|
+
]
|
|
1593
|
+
},
|
|
1594
|
+
{
|
|
1595
|
+
internalType: "struct ServiceConfig",
|
|
1596
|
+
name: "serviceConfig",
|
|
1597
|
+
type: "tuple",
|
|
1598
|
+
components: [
|
|
1594
1599
|
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1595
1600
|
{ internalType: "string", name: "domain", type: "string" },
|
|
1596
1601
|
{ internalType: "string", name: "scope", type: "string" },
|
|
@@ -1607,19 +1612,19 @@ var ZKPassportVerifier_default = {
|
|
|
1607
1612
|
inputs: [
|
|
1608
1613
|
{ internalType: "uint256", name: "minDate", type: "uint256" },
|
|
1609
1614
|
{
|
|
1610
|
-
internalType: "struct
|
|
1611
|
-
name: "
|
|
1615
|
+
internalType: "struct Commitments",
|
|
1616
|
+
name: "commitments",
|
|
1612
1617
|
type: "tuple",
|
|
1613
1618
|
components: [
|
|
1614
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1615
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1616
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1617
1619
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1618
|
-
{
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1620
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1621
|
+
]
|
|
1622
|
+
},
|
|
1623
|
+
{
|
|
1624
|
+
internalType: "struct ServiceConfig",
|
|
1625
|
+
name: "serviceConfig",
|
|
1626
|
+
type: "tuple",
|
|
1627
|
+
components: [
|
|
1623
1628
|
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1624
1629
|
{ internalType: "string", name: "domain", type: "string" },
|
|
1625
1630
|
{ internalType: "string", name: "scope", type: "string" },
|
|
@@ -1636,19 +1641,19 @@ var ZKPassportVerifier_default = {
|
|
|
1636
1641
|
inputs: [
|
|
1637
1642
|
{ internalType: "uint256", name: "minDate", type: "uint256" },
|
|
1638
1643
|
{
|
|
1639
|
-
internalType: "struct
|
|
1640
|
-
name: "
|
|
1644
|
+
internalType: "struct Commitments",
|
|
1645
|
+
name: "commitments",
|
|
1641
1646
|
type: "tuple",
|
|
1642
1647
|
components: [
|
|
1643
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1644
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1645
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1646
1648
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1647
|
-
{
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1649
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1650
|
+
]
|
|
1651
|
+
},
|
|
1652
|
+
{
|
|
1653
|
+
internalType: "struct ServiceConfig",
|
|
1654
|
+
name: "serviceConfig",
|
|
1655
|
+
type: "tuple",
|
|
1656
|
+
components: [
|
|
1652
1657
|
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1653
1658
|
{ internalType: "string", name: "domain", type: "string" },
|
|
1654
1659
|
{ internalType: "string", name: "scope", type: "string" },
|
|
@@ -1665,19 +1670,19 @@ var ZKPassportVerifier_default = {
|
|
|
1665
1670
|
inputs: [
|
|
1666
1671
|
{ internalType: "uint256", name: "maxDate", type: "uint256" },
|
|
1667
1672
|
{
|
|
1668
|
-
internalType: "struct
|
|
1669
|
-
name: "
|
|
1673
|
+
internalType: "struct Commitments",
|
|
1674
|
+
name: "commitments",
|
|
1670
1675
|
type: "tuple",
|
|
1671
1676
|
components: [
|
|
1672
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1673
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1674
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1675
1677
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1676
|
-
{
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1678
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1679
|
+
]
|
|
1680
|
+
},
|
|
1681
|
+
{
|
|
1682
|
+
internalType: "struct ServiceConfig",
|
|
1683
|
+
name: "serviceConfig",
|
|
1684
|
+
type: "tuple",
|
|
1685
|
+
components: [
|
|
1681
1686
|
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1682
1687
|
{ internalType: "string", name: "domain", type: "string" },
|
|
1683
1688
|
{ internalType: "string", name: "scope", type: "string" },
|
|
@@ -1694,19 +1699,19 @@ var ZKPassportVerifier_default = {
|
|
|
1694
1699
|
inputs: [
|
|
1695
1700
|
{ internalType: "uint256", name: "maxDate", type: "uint256" },
|
|
1696
1701
|
{
|
|
1697
|
-
internalType: "struct
|
|
1698
|
-
name: "
|
|
1702
|
+
internalType: "struct Commitments",
|
|
1703
|
+
name: "commitments",
|
|
1699
1704
|
type: "tuple",
|
|
1700
1705
|
components: [
|
|
1701
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1702
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1703
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1704
1706
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1705
|
-
{
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1707
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1708
|
+
]
|
|
1709
|
+
},
|
|
1710
|
+
{
|
|
1711
|
+
internalType: "struct ServiceConfig",
|
|
1712
|
+
name: "serviceConfig",
|
|
1713
|
+
type: "tuple",
|
|
1714
|
+
components: [
|
|
1710
1715
|
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1711
1716
|
{ internalType: "string", name: "domain", type: "string" },
|
|
1712
1717
|
{ internalType: "string", name: "scope", type: "string" },
|
|
@@ -1724,19 +1729,19 @@ var ZKPassportVerifier_default = {
|
|
|
1724
1729
|
{ internalType: "uint256", name: "minDate", type: "uint256" },
|
|
1725
1730
|
{ internalType: "uint256", name: "maxDate", type: "uint256" },
|
|
1726
1731
|
{
|
|
1727
|
-
internalType: "struct
|
|
1728
|
-
name: "
|
|
1732
|
+
internalType: "struct Commitments",
|
|
1733
|
+
name: "commitments",
|
|
1729
1734
|
type: "tuple",
|
|
1730
1735
|
components: [
|
|
1731
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1732
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1733
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1734
1736
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1735
|
-
{
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1737
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1738
|
+
]
|
|
1739
|
+
},
|
|
1740
|
+
{
|
|
1741
|
+
internalType: "struct ServiceConfig",
|
|
1742
|
+
name: "serviceConfig",
|
|
1743
|
+
type: "tuple",
|
|
1744
|
+
components: [
|
|
1740
1745
|
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1741
1746
|
{ internalType: "string", name: "domain", type: "string" },
|
|
1742
1747
|
{ internalType: "string", name: "scope", type: "string" },
|
|
@@ -1753,19 +1758,19 @@ var ZKPassportVerifier_default = {
|
|
|
1753
1758
|
inputs: [
|
|
1754
1759
|
{ internalType: "uint256", name: "date", type: "uint256" },
|
|
1755
1760
|
{
|
|
1756
|
-
internalType: "struct
|
|
1757
|
-
name: "
|
|
1761
|
+
internalType: "struct Commitments",
|
|
1762
|
+
name: "commitments",
|
|
1758
1763
|
type: "tuple",
|
|
1759
1764
|
components: [
|
|
1760
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1761
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1762
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1763
1765
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1764
|
-
{
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1766
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1767
|
+
]
|
|
1768
|
+
},
|
|
1769
|
+
{
|
|
1770
|
+
internalType: "struct ServiceConfig",
|
|
1771
|
+
name: "serviceConfig",
|
|
1772
|
+
type: "tuple",
|
|
1773
|
+
components: [
|
|
1769
1774
|
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1770
1775
|
{ internalType: "string", name: "domain", type: "string" },
|
|
1771
1776
|
{ internalType: "string", name: "scope", type: "string" },
|
|
@@ -1781,24 +1786,14 @@ var ZKPassportVerifier_default = {
|
|
|
1781
1786
|
{
|
|
1782
1787
|
inputs: [
|
|
1783
1788
|
{ internalType: "enum FaceMatchMode", name: "faceMatchMode", type: "uint8" },
|
|
1789
|
+
{ internalType: "enum OS", name: "os", type: "uint8" },
|
|
1784
1790
|
{
|
|
1785
|
-
internalType: "struct
|
|
1786
|
-
name: "
|
|
1791
|
+
internalType: "struct Commitments",
|
|
1792
|
+
name: "commitments",
|
|
1787
1793
|
type: "tuple",
|
|
1788
1794
|
components: [
|
|
1789
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1790
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1791
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1792
1795
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1793
|
-
{
|
|
1794
|
-
internalType: "uint256[]",
|
|
1795
|
-
name: "committedInputCounts",
|
|
1796
|
-
type: "uint256[]"
|
|
1797
|
-
},
|
|
1798
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1799
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1800
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1801
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1796
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1802
1797
|
]
|
|
1803
1798
|
}
|
|
1804
1799
|
],
|
|
@@ -1811,23 +1806,12 @@ var ZKPassportVerifier_default = {
|
|
|
1811
1806
|
inputs: [
|
|
1812
1807
|
{ internalType: "string[]", name: "countryList", type: "string[]" },
|
|
1813
1808
|
{
|
|
1814
|
-
internalType: "struct
|
|
1815
|
-
name: "
|
|
1809
|
+
internalType: "struct Commitments",
|
|
1810
|
+
name: "commitments",
|
|
1816
1811
|
type: "tuple",
|
|
1817
1812
|
components: [
|
|
1818
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1819
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1820
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1821
1813
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1822
|
-
{
|
|
1823
|
-
internalType: "uint256[]",
|
|
1824
|
-
name: "committedInputCounts",
|
|
1825
|
-
type: "uint256[]"
|
|
1826
|
-
},
|
|
1827
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1828
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1829
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1830
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1814
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1831
1815
|
]
|
|
1832
1816
|
}
|
|
1833
1817
|
],
|
|
@@ -1840,23 +1824,12 @@ var ZKPassportVerifier_default = {
|
|
|
1840
1824
|
inputs: [
|
|
1841
1825
|
{ internalType: "string[]", name: "countryList", type: "string[]" },
|
|
1842
1826
|
{
|
|
1843
|
-
internalType: "struct
|
|
1844
|
-
name: "
|
|
1827
|
+
internalType: "struct Commitments",
|
|
1828
|
+
name: "commitments",
|
|
1845
1829
|
type: "tuple",
|
|
1846
1830
|
components: [
|
|
1847
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1848
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1849
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1850
1831
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1851
|
-
{
|
|
1852
|
-
internalType: "uint256[]",
|
|
1853
|
-
name: "committedInputCounts",
|
|
1854
|
-
type: "uint256[]"
|
|
1855
|
-
},
|
|
1856
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1857
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1858
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1859
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1832
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1860
1833
|
]
|
|
1861
1834
|
}
|
|
1862
1835
|
],
|
|
@@ -1869,23 +1842,12 @@ var ZKPassportVerifier_default = {
|
|
|
1869
1842
|
inputs: [
|
|
1870
1843
|
{ internalType: "string[]", name: "countryList", type: "string[]" },
|
|
1871
1844
|
{
|
|
1872
|
-
internalType: "struct
|
|
1873
|
-
name: "
|
|
1845
|
+
internalType: "struct Commitments",
|
|
1846
|
+
name: "commitments",
|
|
1874
1847
|
type: "tuple",
|
|
1875
1848
|
components: [
|
|
1876
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1877
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1878
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1879
1849
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1880
|
-
{
|
|
1881
|
-
internalType: "uint256[]",
|
|
1882
|
-
name: "committedInputCounts",
|
|
1883
|
-
type: "uint256[]"
|
|
1884
|
-
},
|
|
1885
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1886
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1887
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1888
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1850
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1889
1851
|
]
|
|
1890
1852
|
}
|
|
1891
1853
|
],
|
|
@@ -1898,23 +1860,12 @@ var ZKPassportVerifier_default = {
|
|
|
1898
1860
|
inputs: [
|
|
1899
1861
|
{ internalType: "string[]", name: "countryList", type: "string[]" },
|
|
1900
1862
|
{
|
|
1901
|
-
internalType: "struct
|
|
1902
|
-
name: "
|
|
1863
|
+
internalType: "struct Commitments",
|
|
1864
|
+
name: "commitments",
|
|
1903
1865
|
type: "tuple",
|
|
1904
1866
|
components: [
|
|
1905
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1906
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1907
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1908
1867
|
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1909
|
-
{
|
|
1910
|
-
internalType: "uint256[]",
|
|
1911
|
-
name: "committedInputCounts",
|
|
1912
|
-
type: "uint256[]"
|
|
1913
|
-
},
|
|
1914
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1915
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1916
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1917
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1868
|
+
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1918
1869
|
]
|
|
1919
1870
|
}
|
|
1920
1871
|
],
|
|
@@ -1968,19 +1919,44 @@ var ZKPassportVerifier_default = {
|
|
|
1968
1919
|
name: "params",
|
|
1969
1920
|
type: "tuple",
|
|
1970
1921
|
components: [
|
|
1971
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1972
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1973
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1974
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1975
1922
|
{
|
|
1976
|
-
internalType: "
|
|
1977
|
-
name: "
|
|
1978
|
-
type: "
|
|
1923
|
+
internalType: "struct ProofVerificationData",
|
|
1924
|
+
name: "proofVerificationData",
|
|
1925
|
+
type: "tuple",
|
|
1926
|
+
components: [
|
|
1927
|
+
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1928
|
+
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1929
|
+
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" }
|
|
1930
|
+
]
|
|
1979
1931
|
},
|
|
1980
|
-
{
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
1932
|
+
{
|
|
1933
|
+
internalType: "struct Commitments",
|
|
1934
|
+
name: "commitments",
|
|
1935
|
+
type: "tuple",
|
|
1936
|
+
components: [
|
|
1937
|
+
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1938
|
+
{
|
|
1939
|
+
internalType: "uint256[]",
|
|
1940
|
+
name: "committedInputCounts",
|
|
1941
|
+
type: "uint256[]"
|
|
1942
|
+
}
|
|
1943
|
+
]
|
|
1944
|
+
},
|
|
1945
|
+
{
|
|
1946
|
+
internalType: "struct ServiceConfig",
|
|
1947
|
+
name: "serviceConfig",
|
|
1948
|
+
type: "tuple",
|
|
1949
|
+
components: [
|
|
1950
|
+
{
|
|
1951
|
+
internalType: "uint256",
|
|
1952
|
+
name: "validityPeriodInSeconds",
|
|
1953
|
+
type: "uint256"
|
|
1954
|
+
},
|
|
1955
|
+
{ internalType: "string", name: "domain", type: "string" },
|
|
1956
|
+
{ internalType: "string", name: "scope", type: "string" },
|
|
1957
|
+
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1958
|
+
]
|
|
1959
|
+
}
|
|
1984
1960
|
]
|
|
1985
1961
|
}
|
|
1986
1962
|
],
|
|
@@ -2015,211 +1991,230 @@ var ZKPassportVerifier_default = {
|
|
|
2015
1991
|
kind: "dev",
|
|
2016
1992
|
methods: {
|
|
2017
1993
|
constructor: { details: "Constructor" },
|
|
2018
|
-
"enforceSanctionsRoot((
|
|
2019
|
-
params: {
|
|
1994
|
+
"enforceSanctionsRoot((bytes,uint256[]))": {
|
|
1995
|
+
params: { commitments: "The commitments" }
|
|
2020
1996
|
},
|
|
2021
|
-
"getBoundData((
|
|
2022
|
-
params: {
|
|
1997
|
+
"getBoundData((bytes,uint256[]))": {
|
|
1998
|
+
params: { commitments: "The commitments" },
|
|
2023
1999
|
returns: { boundData: "The data bound to the proof" }
|
|
2024
2000
|
},
|
|
2025
|
-
"getDisclosedData((
|
|
2001
|
+
"getDisclosedData((bytes,uint256[]),bool)": {
|
|
2026
2002
|
params: {
|
|
2027
|
-
|
|
2028
|
-
|
|
2003
|
+
commitments: "The commitments",
|
|
2004
|
+
isIDCard: "Whether the proof is an ID card"
|
|
2029
2005
|
},
|
|
2030
2006
|
returns: { disclosedData: "The data disclosed by the proof" }
|
|
2031
2007
|
},
|
|
2032
|
-
"isAgeAbove(uint8,(
|
|
2008
|
+
"isAgeAbove(uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2033
2009
|
params: {
|
|
2010
|
+
commitments: "The commitments",
|
|
2034
2011
|
minAge: "The age must be above this age",
|
|
2035
|
-
|
|
2012
|
+
serviceConfig: "The service config"
|
|
2036
2013
|
},
|
|
2037
2014
|
returns: { _0: "True if the age is above the given age, false otherwise" }
|
|
2038
2015
|
},
|
|
2039
|
-
"isAgeAboveOrEqual(uint8,(
|
|
2016
|
+
"isAgeAboveOrEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2040
2017
|
params: {
|
|
2018
|
+
commitments: "The commitments",
|
|
2041
2019
|
minAge: "The age must be above or equal to this age",
|
|
2042
|
-
|
|
2020
|
+
serviceConfig: "The service config"
|
|
2043
2021
|
},
|
|
2044
2022
|
returns: {
|
|
2045
2023
|
_0: "True if the age is above or equal to the given age, false otherwise"
|
|
2046
2024
|
}
|
|
2047
2025
|
},
|
|
2048
|
-
"isAgeBelow(uint8,(
|
|
2026
|
+
"isAgeBelow(uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2049
2027
|
params: {
|
|
2028
|
+
commitments: "The commitments",
|
|
2050
2029
|
maxAge: "The age must be below this age",
|
|
2051
|
-
|
|
2030
|
+
serviceConfig: "The service config"
|
|
2052
2031
|
},
|
|
2053
2032
|
returns: { _0: "True if the age is below the given age, false otherwise" }
|
|
2054
2033
|
},
|
|
2055
|
-
"isAgeBelowOrEqual(uint8,(
|
|
2034
|
+
"isAgeBelowOrEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2056
2035
|
params: {
|
|
2036
|
+
commitments: "The commitments",
|
|
2057
2037
|
maxAge: "The age must be below or equal to this age",
|
|
2058
|
-
|
|
2038
|
+
serviceConfig: "The service config"
|
|
2059
2039
|
},
|
|
2060
2040
|
returns: {
|
|
2061
2041
|
_0: "True if the age is below or equal to the given age, false otherwise"
|
|
2062
2042
|
}
|
|
2063
2043
|
},
|
|
2064
|
-
"isAgeBetween(uint8,uint8,(
|
|
2044
|
+
"isAgeBetween(uint8,uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2065
2045
|
params: {
|
|
2046
|
+
commitments: "The commitments",
|
|
2066
2047
|
maxAge: "The age must be less than or equal to this age",
|
|
2067
2048
|
minAge: "The age must be greater than or equal to this age",
|
|
2068
|
-
|
|
2049
|
+
serviceConfig: "The service config"
|
|
2069
2050
|
},
|
|
2070
2051
|
returns: { _0: "True if the age is in the given range, false otherwise" }
|
|
2071
2052
|
},
|
|
2072
|
-
"isAgeEqual(uint8,(
|
|
2053
|
+
"isAgeEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2073
2054
|
params: {
|
|
2074
2055
|
age: "The age must be equal to this age",
|
|
2075
|
-
|
|
2056
|
+
commitments: "The commitments",
|
|
2057
|
+
serviceConfig: "The service config"
|
|
2076
2058
|
},
|
|
2077
2059
|
returns: { _0: "True if the age is equal to the given age, false otherwise" }
|
|
2078
2060
|
},
|
|
2079
|
-
"isBirthdateAfter(uint256,(
|
|
2061
|
+
"isBirthdateAfter(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2080
2062
|
params: {
|
|
2063
|
+
commitments: "The commitments",
|
|
2081
2064
|
minDate: "The birthdate must be after this date",
|
|
2082
|
-
|
|
2065
|
+
serviceConfig: "The service config"
|
|
2083
2066
|
},
|
|
2084
2067
|
returns: { _0: "True if the birthdate is after the given date, false otherwise" }
|
|
2085
2068
|
},
|
|
2086
|
-
"isBirthdateAfterOrEqual(uint256,(
|
|
2069
|
+
"isBirthdateAfterOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2087
2070
|
params: {
|
|
2071
|
+
commitments: "The commitments",
|
|
2088
2072
|
minDate: "The birthdate must be after or equal to this date",
|
|
2089
|
-
|
|
2073
|
+
serviceConfig: "The service config"
|
|
2090
2074
|
},
|
|
2091
2075
|
returns: {
|
|
2092
2076
|
_0: "True if the birthdate is after or equal to the given date, false otherwise"
|
|
2093
2077
|
}
|
|
2094
2078
|
},
|
|
2095
|
-
"isBirthdateBefore(uint256,(
|
|
2079
|
+
"isBirthdateBefore(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2096
2080
|
params: {
|
|
2081
|
+
commitments: "The commitments",
|
|
2097
2082
|
maxDate: "The birthdate must be before this date",
|
|
2098
|
-
|
|
2083
|
+
serviceConfig: "The service config"
|
|
2099
2084
|
},
|
|
2100
2085
|
returns: { _0: "True if the birthdate is before the given date, false otherwise" }
|
|
2101
2086
|
},
|
|
2102
|
-
"isBirthdateBeforeOrEqual(uint256,(
|
|
2087
|
+
"isBirthdateBeforeOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2103
2088
|
params: {
|
|
2089
|
+
commitments: "The commitments",
|
|
2104
2090
|
maxDate: "The birthdate must be before or equal to this date",
|
|
2105
|
-
|
|
2091
|
+
serviceConfig: "The service config"
|
|
2106
2092
|
},
|
|
2107
2093
|
returns: {
|
|
2108
2094
|
_0: "True if the birthdate is before or equal to the given date, false otherwise"
|
|
2109
2095
|
}
|
|
2110
2096
|
},
|
|
2111
|
-
"isBirthdateBetween(uint256,uint256,(
|
|
2097
|
+
"isBirthdateBetween(uint256,uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2112
2098
|
params: {
|
|
2099
|
+
commitments: "The commitments",
|
|
2113
2100
|
maxDate: "The birthdate must be before or equal to this date",
|
|
2114
2101
|
minDate: "The birthdate must be after or equal to this date",
|
|
2115
|
-
|
|
2102
|
+
serviceConfig: "The service config"
|
|
2116
2103
|
},
|
|
2117
2104
|
returns: { _0: "True if the birthdate is between the given dates, false otherwise" }
|
|
2118
2105
|
},
|
|
2119
|
-
"isBirthdateEqual(uint256,(
|
|
2106
|
+
"isBirthdateEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2120
2107
|
params: {
|
|
2108
|
+
commitments: "The commitments",
|
|
2121
2109
|
date: "The birthdate must be equal to this date",
|
|
2122
|
-
|
|
2110
|
+
serviceConfig: "The service config"
|
|
2123
2111
|
},
|
|
2124
2112
|
returns: { _0: "True if the birthdate is equal to the given date, false otherwise" }
|
|
2125
2113
|
},
|
|
2126
|
-
"isExpiryDateAfter(uint256,(
|
|
2114
|
+
"isExpiryDateAfter(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2127
2115
|
params: {
|
|
2116
|
+
commitments: "The commitments",
|
|
2128
2117
|
minDate: "The expiry date must be after this date",
|
|
2129
|
-
|
|
2118
|
+
serviceConfig: "The service config"
|
|
2130
2119
|
},
|
|
2131
2120
|
returns: { _0: "True if the expiry date is after the given date, false otherwise" }
|
|
2132
2121
|
},
|
|
2133
|
-
"isExpiryDateAfterOrEqual(uint256,(
|
|
2122
|
+
"isExpiryDateAfterOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2134
2123
|
params: {
|
|
2124
|
+
commitments: "The commitments",
|
|
2135
2125
|
minDate: "The expiry date must be after or equal to this date",
|
|
2136
|
-
|
|
2126
|
+
serviceConfig: "The service config"
|
|
2137
2127
|
},
|
|
2138
2128
|
returns: {
|
|
2139
2129
|
_0: "True if the expiry date is after or equal to the given date, false otherwise"
|
|
2140
2130
|
}
|
|
2141
2131
|
},
|
|
2142
|
-
"isExpiryDateBefore(uint256,(
|
|
2132
|
+
"isExpiryDateBefore(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2143
2133
|
params: {
|
|
2134
|
+
commitments: "The commitments",
|
|
2144
2135
|
maxDate: "The expiry date must be before this date",
|
|
2145
|
-
|
|
2136
|
+
serviceConfig: "The service config"
|
|
2146
2137
|
},
|
|
2147
2138
|
returns: { _0: "True if the expiry date is before the given date, false otherwise" }
|
|
2148
2139
|
},
|
|
2149
|
-
"isExpiryDateBeforeOrEqual(uint256,(
|
|
2140
|
+
"isExpiryDateBeforeOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2150
2141
|
params: {
|
|
2142
|
+
commitments: "The commitments",
|
|
2151
2143
|
maxDate: "The expiry date must be before or equal to this date",
|
|
2152
|
-
|
|
2144
|
+
serviceConfig: "The service config"
|
|
2153
2145
|
},
|
|
2154
2146
|
returns: {
|
|
2155
2147
|
_0: "True if the expiry date is before or equal to the given date, false otherwise"
|
|
2156
2148
|
}
|
|
2157
2149
|
},
|
|
2158
|
-
"isExpiryDateBetween(uint256,uint256,(
|
|
2150
|
+
"isExpiryDateBetween(uint256,uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2159
2151
|
params: {
|
|
2152
|
+
commitments: "The commitments",
|
|
2160
2153
|
maxDate: "The expiry date must be before or equal to this date",
|
|
2161
2154
|
minDate: "The expiry date must be after or equal to this date",
|
|
2162
|
-
|
|
2155
|
+
serviceConfig: "The service config"
|
|
2163
2156
|
},
|
|
2164
2157
|
returns: {
|
|
2165
2158
|
_0: "True if the expiry date is between the given dates, false otherwise"
|
|
2166
2159
|
}
|
|
2167
2160
|
},
|
|
2168
|
-
"isExpiryDateEqual(uint256,(
|
|
2161
|
+
"isExpiryDateEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2169
2162
|
params: {
|
|
2163
|
+
commitments: "The commitments",
|
|
2170
2164
|
date: "The expiry date must be equal to this date",
|
|
2171
|
-
|
|
2165
|
+
serviceConfig: "The service config"
|
|
2172
2166
|
},
|
|
2173
2167
|
returns: {
|
|
2174
2168
|
_0: "True if the expiry date is equal to the given date, false otherwise"
|
|
2175
2169
|
}
|
|
2176
2170
|
},
|
|
2177
|
-
"isFaceMatchVerified(uint8,(
|
|
2171
|
+
"isFaceMatchVerified(uint8,uint8,(bytes,uint256[]))": {
|
|
2178
2172
|
params: {
|
|
2173
|
+
commitments: "The commitments",
|
|
2179
2174
|
faceMatchMode: "The FaceMatch mode expected to be used in the verification",
|
|
2180
|
-
|
|
2175
|
+
os: "The operating system on which the proof should have been generated (Any (0), iOS (1), Android (2))"
|
|
2181
2176
|
},
|
|
2182
2177
|
returns: {
|
|
2183
2178
|
_0: "True if the proof is tied to a valid FaceMatch verification, false otherwise"
|
|
2184
2179
|
}
|
|
2185
2180
|
},
|
|
2186
|
-
"isIssuingCountryIn(string[],(
|
|
2181
|
+
"isIssuingCountryIn(string[],(bytes,uint256[]))": {
|
|
2187
2182
|
params: {
|
|
2188
|
-
|
|
2189
|
-
|
|
2183
|
+
commitments: "The commitments",
|
|
2184
|
+
countryList: "The list of countries (needs to match exactly the list of countries in the proof)"
|
|
2190
2185
|
},
|
|
2191
2186
|
returns: {
|
|
2192
2187
|
_0: "True if the issuing country is in the list of countries, false otherwise"
|
|
2193
2188
|
}
|
|
2194
2189
|
},
|
|
2195
|
-
"isIssuingCountryOut(string[],(
|
|
2190
|
+
"isIssuingCountryOut(string[],(bytes,uint256[]))": {
|
|
2196
2191
|
params: {
|
|
2197
|
-
|
|
2198
|
-
|
|
2192
|
+
commitments: "The commitments",
|
|
2193
|
+
countryList: "The list of countries (needs to match exactly the list of countries in the proof) Note: The list of countries must be sorted in alphabetical order"
|
|
2199
2194
|
},
|
|
2200
2195
|
returns: {
|
|
2201
2196
|
_0: "True if the issuing country is not in the list of countries, false otherwise"
|
|
2202
2197
|
}
|
|
2203
2198
|
},
|
|
2204
|
-
"isNationalityIn(string[],(
|
|
2199
|
+
"isNationalityIn(string[],(bytes,uint256[]))": {
|
|
2205
2200
|
params: {
|
|
2206
|
-
|
|
2207
|
-
|
|
2201
|
+
commitments: "The commitments",
|
|
2202
|
+
countryList: "The list of countries (needs to match exactly the list of countries in the proof)"
|
|
2208
2203
|
},
|
|
2209
2204
|
returns: {
|
|
2210
2205
|
_0: "True if the nationality is in the list of countries, false otherwise"
|
|
2211
2206
|
}
|
|
2212
2207
|
},
|
|
2213
|
-
"isNationalityOut(string[],(
|
|
2208
|
+
"isNationalityOut(string[],(bytes,uint256[]))": {
|
|
2214
2209
|
params: {
|
|
2215
|
-
|
|
2216
|
-
|
|
2210
|
+
commitments: "The commitments",
|
|
2211
|
+
countryList: "The list of countries (needs to match exactly the list of countries in the proof) Note: The list of countries must be sorted in alphabetical order"
|
|
2217
2212
|
},
|
|
2218
2213
|
returns: {
|
|
2219
2214
|
_0: "True if the nationality is not in the list of countries, false otherwise"
|
|
2220
2215
|
}
|
|
2221
2216
|
},
|
|
2222
|
-
"verifyProof((bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))": {
|
|
2217
|
+
"verifyProof(((bytes32,bytes,bytes32[]),(bytes,uint256[]),(uint256,string,string,bool)))": {
|
|
2223
2218
|
params: { params: "The proof verification parameters" },
|
|
2224
2219
|
returns: {
|
|
2225
2220
|
isValid: "True if the proof is valid, false otherwise",
|
|
@@ -2242,85 +2237,83 @@ var ZKPassportVerifier_default = {
|
|
|
2242
2237
|
userdoc: {
|
|
2243
2238
|
kind: "user",
|
|
2244
2239
|
methods: {
|
|
2245
|
-
"enforceSanctionsRoot((
|
|
2240
|
+
"enforceSanctionsRoot((bytes,uint256[]))": {
|
|
2246
2241
|
notice: "Enforces that the proof checks against the expected sanction list(s)"
|
|
2247
2242
|
},
|
|
2248
|
-
"getBoundData((
|
|
2249
|
-
|
|
2250
|
-
},
|
|
2251
|
-
"getDisclosedData((bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool),bool)": {
|
|
2243
|
+
"getBoundData((bytes,uint256[]))": { notice: "Gets the data bound to the proof" },
|
|
2244
|
+
"getDisclosedData((bytes,uint256[]),bool)": {
|
|
2252
2245
|
notice: "Gets the data disclosed by the proof"
|
|
2253
2246
|
},
|
|
2254
|
-
"isAgeAbove(uint8,(
|
|
2247
|
+
"isAgeAbove(uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2255
2248
|
notice: "Checks if the age is above the given age"
|
|
2256
2249
|
},
|
|
2257
|
-
"isAgeAboveOrEqual(uint8,(
|
|
2250
|
+
"isAgeAboveOrEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2258
2251
|
notice: "Checks if the age is above or equal to the given age"
|
|
2259
2252
|
},
|
|
2260
|
-
"isAgeBelow(uint8,(
|
|
2253
|
+
"isAgeBelow(uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2261
2254
|
notice: "Checks if the age is below the given age"
|
|
2262
2255
|
},
|
|
2263
|
-
"isAgeBelowOrEqual(uint8,(
|
|
2256
|
+
"isAgeBelowOrEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2264
2257
|
notice: "Checks if the age is below or equal to the given age"
|
|
2265
2258
|
},
|
|
2266
|
-
"isAgeBetween(uint8,uint8,(
|
|
2259
|
+
"isAgeBetween(uint8,uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2267
2260
|
notice: "Checks if the age is in the given range"
|
|
2268
2261
|
},
|
|
2269
|
-
"isAgeEqual(uint8,(
|
|
2262
|
+
"isAgeEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2270
2263
|
notice: "Checks if the age is equal to the given age"
|
|
2271
2264
|
},
|
|
2272
|
-
"isBirthdateAfter(uint256,(
|
|
2265
|
+
"isBirthdateAfter(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2273
2266
|
notice: "Checks if the birthdate is after the given date"
|
|
2274
2267
|
},
|
|
2275
|
-
"isBirthdateAfterOrEqual(uint256,(
|
|
2268
|
+
"isBirthdateAfterOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2276
2269
|
notice: "Checks if the birthdate is after or equal to the given date"
|
|
2277
2270
|
},
|
|
2278
|
-
"isBirthdateBefore(uint256,(
|
|
2271
|
+
"isBirthdateBefore(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2279
2272
|
notice: "Checks if the birthdate is before the given date"
|
|
2280
2273
|
},
|
|
2281
|
-
"isBirthdateBeforeOrEqual(uint256,(
|
|
2274
|
+
"isBirthdateBeforeOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2282
2275
|
notice: "Checks if the birthdate is before or equal to the given date"
|
|
2283
2276
|
},
|
|
2284
|
-
"isBirthdateBetween(uint256,uint256,(
|
|
2277
|
+
"isBirthdateBetween(uint256,uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2285
2278
|
notice: "Checks if the birthdate is between the given dates"
|
|
2286
2279
|
},
|
|
2287
|
-
"isBirthdateEqual(uint256,(
|
|
2280
|
+
"isBirthdateEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2288
2281
|
notice: "Checks if the birthdate is equal to the given date"
|
|
2289
2282
|
},
|
|
2290
|
-
"isExpiryDateAfter(uint256,(
|
|
2283
|
+
"isExpiryDateAfter(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2291
2284
|
notice: "Checks if the expiry date is after the given date"
|
|
2292
2285
|
},
|
|
2293
|
-
"isExpiryDateAfterOrEqual(uint256,(
|
|
2286
|
+
"isExpiryDateAfterOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2294
2287
|
notice: "Checks if the expiry date is after or equal to the given date"
|
|
2295
2288
|
},
|
|
2296
|
-
"isExpiryDateBefore(uint256,(
|
|
2289
|
+
"isExpiryDateBefore(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2297
2290
|
notice: "Checks if the expiry date is before the given date"
|
|
2298
2291
|
},
|
|
2299
|
-
"isExpiryDateBeforeOrEqual(uint256,(
|
|
2292
|
+
"isExpiryDateBeforeOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2300
2293
|
notice: "Checks if the expiry date is before or equal to the given date"
|
|
2301
2294
|
},
|
|
2302
|
-
"isExpiryDateBetween(uint256,uint256,(
|
|
2295
|
+
"isExpiryDateBetween(uint256,uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2303
2296
|
notice: "Checks if the expiry date is between the given dates"
|
|
2304
2297
|
},
|
|
2305
|
-
"isExpiryDateEqual(uint256,(
|
|
2298
|
+
"isExpiryDateEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2306
2299
|
notice: "Checks if the expiry date is equal to the given date"
|
|
2307
2300
|
},
|
|
2308
|
-
"isFaceMatchVerified(uint8,(
|
|
2301
|
+
"isFaceMatchVerified(uint8,uint8,(bytes,uint256[]))": {
|
|
2309
2302
|
notice: "Checks if the proof is tied to a FaceMatch verification"
|
|
2310
2303
|
},
|
|
2311
|
-
"isIssuingCountryIn(string[],(
|
|
2304
|
+
"isIssuingCountryIn(string[],(bytes,uint256[]))": {
|
|
2312
2305
|
notice: "Checks if the issuing country is in the list of countries"
|
|
2313
2306
|
},
|
|
2314
|
-
"isIssuingCountryOut(string[],(
|
|
2307
|
+
"isIssuingCountryOut(string[],(bytes,uint256[]))": {
|
|
2315
2308
|
notice: "Checks if the issuing country is not in the list of countries"
|
|
2316
2309
|
},
|
|
2317
|
-
"isNationalityIn(string[],(
|
|
2310
|
+
"isNationalityIn(string[],(bytes,uint256[]))": {
|
|
2318
2311
|
notice: "Checks if the nationality is in the list of countries"
|
|
2319
2312
|
},
|
|
2320
|
-
"isNationalityOut(string[],(
|
|
2313
|
+
"isNationalityOut(string[],(bytes,uint256[]))": {
|
|
2321
2314
|
notice: "Checks if the nationality is not in the list of countries"
|
|
2322
2315
|
},
|
|
2323
|
-
"verifyProof((bytes32,bytes,bytes32[],bytes,uint256[],uint256,string,string,bool))": {
|
|
2316
|
+
"verifyProof(((bytes32,bytes,bytes32[]),(bytes,uint256[]),(uint256,string,string,bool)))": {
|
|
2324
2317
|
notice: "Verifies a proof from ZKPassport"
|
|
2325
2318
|
},
|
|
2326
2319
|
"verifyScopes(bytes32[],string,string)": {
|
|
@@ -2340,10 +2333,10 @@ var ZKPassportVerifier_default = {
|
|
|
2340
2333
|
},
|
|
2341
2334
|
sources: {
|
|
2342
2335
|
"src/Constants.sol": {
|
|
2343
|
-
keccak256: "
|
|
2336
|
+
keccak256: "0x6f011f7c9038b4552283dd9801d5686ad4047ad6c281cf0a8620bfec503a9060",
|
|
2344
2337
|
urls: [
|
|
2345
|
-
"bzz-raw://
|
|
2346
|
-
"dweb:/ipfs/
|
|
2338
|
+
"bzz-raw://d4052ca894163688d25d78d297f86dd1c562cfd4e9de7253f2c1da30796a538c",
|
|
2339
|
+
"dweb:/ipfs/QmbMJ9gCMsqo22f6ih8Sk3MTxCwBJfPEFAMbYoBVXMydAW"
|
|
2347
2340
|
],
|
|
2348
2341
|
license: "Apache-2.0"
|
|
2349
2342
|
},
|
|
@@ -2364,10 +2357,10 @@ var ZKPassportVerifier_default = {
|
|
|
2364
2357
|
license: "MIT"
|
|
2365
2358
|
},
|
|
2366
2359
|
"src/InputsExtractor.sol": {
|
|
2367
|
-
keccak256: "
|
|
2360
|
+
keccak256: "0xca3a90807b75bff710d97a53c65838a19a87d0bc96c3e1f7a7caa2eb831ef373",
|
|
2368
2361
|
urls: [
|
|
2369
|
-
"bzz-raw://
|
|
2370
|
-
"dweb:/ipfs/
|
|
2362
|
+
"bzz-raw://7e1360632f22afd864807ae616cd29c80f90142f2065a131dc996758b9388650",
|
|
2363
|
+
"dweb:/ipfs/QmSaRNmHoZs8pLKgfrgBhe9oMrNX82huzDXq1K5TvTwWad"
|
|
2371
2364
|
],
|
|
2372
2365
|
license: "Apache-2.0"
|
|
2373
2366
|
},
|
|
@@ -2380,18 +2373,18 @@ var ZKPassportVerifier_default = {
|
|
|
2380
2373
|
license: "Apache-2.0"
|
|
2381
2374
|
},
|
|
2382
2375
|
"src/Types.sol": {
|
|
2383
|
-
keccak256: "
|
|
2376
|
+
keccak256: "0x1cb492c099b71287da0349afef0c72c430e2476ad7373a0ea1456e7145207a06",
|
|
2384
2377
|
urls: [
|
|
2385
|
-
"bzz-raw://
|
|
2386
|
-
"dweb:/ipfs/
|
|
2378
|
+
"bzz-raw://a158753948b82917aa802c4b475a1ffb4b5f09b2a86ebcb64db11437ab297047",
|
|
2379
|
+
"dweb:/ipfs/QmPgGhT59MzcG4TA5PmKjzaoNMZ4VRmcLJH6w5LkWQYjxV"
|
|
2387
2380
|
],
|
|
2388
2381
|
license: "Apache-2.0"
|
|
2389
2382
|
},
|
|
2390
2383
|
"src/ZKPassportVerifier.sol": {
|
|
2391
|
-
keccak256: "
|
|
2384
|
+
keccak256: "0x12322e58cc69dcc634b07dca3715b81b08aeb1618bcbfcf3de9edbe120f08de9",
|
|
2392
2385
|
urls: [
|
|
2393
|
-
"bzz-raw://
|
|
2394
|
-
"dweb:/ipfs/
|
|
2386
|
+
"bzz-raw://769194840e10dd878e1fcac248d386ba6cdb8e0fd96915111133c7f122265bf2",
|
|
2387
|
+
"dweb:/ipfs/QmR5ML1N26F8bPMZd2GgSKrGxtUfbLtpKp4dN1FbBMXDNG"
|
|
2395
2388
|
],
|
|
2396
2389
|
license: "Apache-2.0"
|
|
2397
2390
|
},
|
|
@@ -2419,7 +2412,7 @@ var SolidityVerifier = class {
|
|
|
2419
2412
|
if (network === "ethereum_sepolia") {
|
|
2420
2413
|
return {
|
|
2421
2414
|
...baseConfig,
|
|
2422
|
-
address: "
|
|
2415
|
+
address: "0xf36cdd408d28fe57Ee7060951098a84F72945705"
|
|
2423
2416
|
};
|
|
2424
2417
|
} else if (network === "local_anvil") {
|
|
2425
2418
|
return {
|
|
@@ -2496,13 +2489,13 @@ var SolidityVerifier = class {
|
|
|
2496
2489
|
} else if (circuitName === "exclusion_check_sanctions_evm") {
|
|
2497
2490
|
const value = proof.committedInputs[circuitName];
|
|
2498
2491
|
compressedCommittedInputs2 = import_utils.ProofType.SANCTIONS_EXCLUSION.toString(16).padStart(2, "0") + Array.from((0, import_utils.numberToBytesBE)(BigInt(value.rootHash), 32)).map((x) => x.toString(16).padStart(2, "0")).join("");
|
|
2499
|
-
} else if (circuitName
|
|
2492
|
+
} else if (circuitName.startsWith("facematch") && circuitName.endsWith("_evm")) {
|
|
2500
2493
|
const value = proof.committedInputs[circuitName];
|
|
2501
2494
|
compressedCommittedInputs2 += import_utils.ProofType.FACEMATCH.toString(16).padStart(2, "0");
|
|
2502
2495
|
compressedCommittedInputs2 += Array.from((0, import_utils.numberToBytesBE)(BigInt(value.rootKeyLeaf), 32)).map((x) => x.toString(16).padStart(2, "0")).join("");
|
|
2503
2496
|
compressedCommittedInputs2 += value.environment === "development" ? "00" : "01";
|
|
2504
2497
|
compressedCommittedInputs2 += Array.from((0, import_utils.numberToBytesBE)(BigInt(value.appId), 32)).map((x) => x.toString(16).padStart(2, "0")).join("");
|
|
2505
|
-
compressedCommittedInputs2 += "01";
|
|
2498
|
+
compressedCommittedInputs2 += value.mode === "regular" ? "01" : "02";
|
|
2506
2499
|
} else {
|
|
2507
2500
|
throw new Error(`Unsupported circuit for EVM verification: ${circuitName}`);
|
|
2508
2501
|
}
|
|
@@ -2538,16 +2531,22 @@ var SolidityVerifier = class {
|
|
|
2538
2531
|
}
|
|
2539
2532
|
}
|
|
2540
2533
|
const params = {
|
|
2541
|
-
|
|
2542
|
-
|
|
2543
|
-
|
|
2544
|
-
|
|
2545
|
-
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
|
|
2549
|
-
|
|
2550
|
-
|
|
2534
|
+
proofVerificationData: {
|
|
2535
|
+
// Make sure the vkeyHash is 32 bytes
|
|
2536
|
+
vkeyHash: `0x${proof.vkeyHash.replace("0x", "").padStart(64, "0")}`,
|
|
2537
|
+
proof: `0x${proofData.proof.join("")}`,
|
|
2538
|
+
publicInputs: proofData.publicInputs
|
|
2539
|
+
},
|
|
2540
|
+
commitments: {
|
|
2541
|
+
committedInputs: `0x${compressedCommittedInputs}`,
|
|
2542
|
+
committedInputCounts: committedInputCountsArray
|
|
2543
|
+
},
|
|
2544
|
+
serviceConfig: {
|
|
2545
|
+
validityPeriodInSeconds,
|
|
2546
|
+
domain,
|
|
2547
|
+
scope: scope ?? "",
|
|
2548
|
+
devMode
|
|
2549
|
+
}
|
|
2551
2550
|
};
|
|
2552
2551
|
return params;
|
|
2553
2552
|
}
|