UNPKG

46.4 kBJSONView Raw
1{
2 "_format": "hh-sol-artifact-1",
3 "contractName": "SellableMetadataMembershipContract",
4 "sourceName": "contracts/membership/SellableMetadataMembershipContract.sol",
5 "abi": [
6 {
7 "inputs": [],
8 "stateMutability": "nonpayable",
9 "type": "constructor"
10 },
11 {
12 "anonymous": false,
13 "inputs": [
14 {
15 "indexed": true,
16 "internalType": "address",
17 "name": "target",
18 "type": "address"
19 }
20 ],
21 "name": "MembershipAdded",
22 "type": "event"
23 },
24 {
25 "anonymous": false,
26 "inputs": [
27 {
28 "indexed": true,
29 "internalType": "address",
30 "name": "target",
31 "type": "address"
32 }
33 ],
34 "name": "MembershipRemoved",
35 "type": "event"
36 },
37 {
38 "inputs": [
39 {
40 "internalType": "address",
41 "name": "contractAddress",
42 "type": "address"
43 }
44 ],
45 "name": "addAvailableCurrencyTokenContract",
46 "outputs": [],
47 "stateMutability": "nonpayable",
48 "type": "function"
49 },
50 {
51 "inputs": [
52 {
53 "internalType": "address",
54 "name": "customerAddress",
55 "type": "address"
56 },
57 {
58 "internalType": "string",
59 "name": "metadata",
60 "type": "string"
61 }
62 ],
63 "name": "addMembership",
64 "outputs": [],
65 "stateMutability": "nonpayable",
66 "type": "function"
67 },
68 {
69 "inputs": [
70 {
71 "internalType": "address",
72 "name": "customerAddress",
73 "type": "address"
74 },
75 {
76 "internalType": "string",
77 "name": "metadata",
78 "type": "string"
79 },
80 {
81 "internalType": "uint256",
82 "name": "timestamp",
83 "type": "uint256"
84 }
85 ],
86 "name": "addMembershipWithExpiration",
87 "outputs": [],
88 "stateMutability": "nonpayable",
89 "type": "function"
90 },
91 {
92 "inputs": [
93 {
94 "internalType": "address",
95 "name": "newOwner",
96 "type": "address"
97 }
98 ],
99 "name": "addOwner",
100 "outputs": [],
101 "stateMutability": "nonpayable",
102 "type": "function"
103 },
104 {
105 "inputs": [
106 {
107 "internalType": "uint256",
108 "name": "tokenId",
109 "type": "uint256"
110 },
111 {
112 "internalType": "uint256",
113 "name": "requestedAmount",
114 "type": "uint256"
115 },
116 {
117 "internalType": "address",
118 "name": "recipient",
119 "type": "address"
120 }
121 ],
122 "name": "buyWithEther",
123 "outputs": [],
124 "stateMutability": "payable",
125 "type": "function"
126 },
127 {
128 "inputs": [
129 {
130 "internalType": "uint256",
131 "name": "tokenId",
132 "type": "uint256"
133 },
134 {
135 "internalType": "uint256",
136 "name": "requestedAmount",
137 "type": "uint256"
138 },
139 {
140 "internalType": "address",
141 "name": "recipient",
142 "type": "address"
143 },
144 {
145 "internalType": "address",
146 "name": "currencyTokenContract",
147 "type": "address"
148 }
149 ],
150 "name": "buyWithToken",
151 "outputs": [],
152 "stateMutability": "nonpayable",
153 "type": "function"
154 },
155 {
156 "inputs": [
157 {
158 "internalType": "uint256",
159 "name": "tokenId",
160 "type": "uint256"
161 },
162 {
163 "internalType": "uint256",
164 "name": "requestedAmount",
165 "type": "uint256"
166 },
167 {
168 "internalType": "address",
169 "name": "recipient",
170 "type": "address"
171 }
172 ],
173 "name": "buyWithToken",
174 "outputs": [],
175 "stateMutability": "nonpayable",
176 "type": "function"
177 },
178 {
179 "inputs": [
180 {
181 "internalType": "address",
182 "name": "customerAddress",
183 "type": "address"
184 }
185 ],
186 "name": "confirmMembership",
187 "outputs": [
188 {
189 "internalType": "bool",
190 "name": "",
191 "type": "bool"
192 }
193 ],
194 "stateMutability": "view",
195 "type": "function"
196 },
197 {
198 "inputs": [],
199 "name": "getAvailableCurrencyTokenContractsList",
200 "outputs": [
201 {
202 "internalType": "address[]",
203 "name": "",
204 "type": "address[]"
205 }
206 ],
207 "stateMutability": "view",
208 "type": "function"
209 },
210 {
211 "inputs": [],
212 "name": "getBeneficiaryAddress",
213 "outputs": [
214 {
215 "internalType": "address",
216 "name": "",
217 "type": "address"
218 }
219 ],
220 "stateMutability": "view",
221 "type": "function"
222 },
223 {
224 "inputs": [],
225 "name": "getDefaultCurrencyTokenContract",
226 "outputs": [
227 {
228 "internalType": "address",
229 "name": "",
230 "type": "address"
231 }
232 ],
233 "stateMutability": "view",
234 "type": "function"
235 },
236 {
237 "inputs": [],
238 "name": "getDefaultExpiration",
239 "outputs": [
240 {
241 "internalType": "uint256",
242 "name": "",
243 "type": "uint256"
244 }
245 ],
246 "stateMutability": "view",
247 "type": "function"
248 },
249 {
250 "inputs": [],
251 "name": "getDescription",
252 "outputs": [
253 {
254 "internalType": "string",
255 "name": "",
256 "type": "string"
257 }
258 ],
259 "stateMutability": "view",
260 "type": "function"
261 },
262 {
263 "inputs": [
264 {
265 "internalType": "address",
266 "name": "customerAddress",
267 "type": "address"
268 }
269 ],
270 "name": "getMembershipExpiration",
271 "outputs": [
272 {
273 "internalType": "uint256",
274 "name": "",
275 "type": "uint256"
276 }
277 ],
278 "stateMutability": "view",
279 "type": "function"
280 },
281 {
282 "inputs": [
283 {
284 "internalType": "address",
285 "name": "customerAddress",
286 "type": "address"
287 }
288 ],
289 "name": "getMembershipMetadata",
290 "outputs": [
291 {
292 "internalType": "string",
293 "name": "",
294 "type": "string"
295 }
296 ],
297 "stateMutability": "view",
298 "type": "function"
299 },
300 {
301 "inputs": [],
302 "name": "getOwners",
303 "outputs": [
304 {
305 "internalType": "address[]",
306 "name": "",
307 "type": "address[]"
308 }
309 ],
310 "stateMutability": "view",
311 "type": "function"
312 },
313 {
314 "inputs": [
315 {
316 "internalType": "uint256",
317 "name": "id",
318 "type": "uint256"
319 }
320 ],
321 "name": "getPriceEther",
322 "outputs": [
323 {
324 "internalType": "uint256",
325 "name": "",
326 "type": "uint256"
327 }
328 ],
329 "stateMutability": "view",
330 "type": "function"
331 },
332 {
333 "inputs": [
334 {
335 "internalType": "uint256",
336 "name": "id",
337 "type": "uint256"
338 }
339 ],
340 "name": "getPriceFiat",
341 "outputs": [
342 {
343 "internalType": "uint256",
344 "name": "",
345 "type": "uint256"
346 }
347 ],
348 "stateMutability": "view",
349 "type": "function"
350 },
351 {
352 "inputs": [
353 {
354 "internalType": "address",
355 "name": "currencyContract",
356 "type": "address"
357 },
358 {
359 "internalType": "uint256",
360 "name": "id",
361 "type": "uint256"
362 }
363 ],
364 "name": "getPriceToken",
365 "outputs": [
366 {
367 "internalType": "uint256",
368 "name": "",
369 "type": "uint256"
370 }
371 ],
372 "stateMutability": "view",
373 "type": "function"
374 },
375 {
376 "inputs": [
377 {
378 "internalType": "uint256",
379 "name": "id",
380 "type": "uint256"
381 }
382 ],
383 "name": "getPriceToken",
384 "outputs": [
385 {
386 "internalType": "uint256",
387 "name": "",
388 "type": "uint256"
389 }
390 ],
391 "stateMutability": "view",
392 "type": "function"
393 },
394 {
395 "inputs": [],
396 "name": "getTrustedForwarder",
397 "outputs": [
398 {
399 "internalType": "address",
400 "name": "forwarder",
401 "type": "address"
402 }
403 ],
404 "stateMutability": "view",
405 "type": "function"
406 },
407 {
408 "inputs": [],
409 "name": "getVersion",
410 "outputs": [
411 {
412 "internalType": "string",
413 "name": "",
414 "type": "string"
415 }
416 ],
417 "stateMutability": "pure",
418 "type": "function"
419 },
420 {
421 "inputs": [
422 {
423 "internalType": "address",
424 "name": "contractAddress",
425 "type": "address"
426 }
427 ],
428 "name": "isAvailableCurrencyTokenContract",
429 "outputs": [
430 {
431 "internalType": "bool",
432 "name": "",
433 "type": "bool"
434 }
435 ],
436 "stateMutability": "view",
437 "type": "function"
438 },
439 {
440 "inputs": [
441 {
442 "internalType": "address",
443 "name": "addr",
444 "type": "address"
445 }
446 ],
447 "name": "isOwner",
448 "outputs": [
449 {
450 "internalType": "bool",
451 "name": "",
452 "type": "bool"
453 }
454 ],
455 "stateMutability": "view",
456 "type": "function"
457 },
458 {
459 "inputs": [
460 {
461 "internalType": "address",
462 "name": "forwarder",
463 "type": "address"
464 }
465 ],
466 "name": "isTrustedForwarder",
467 "outputs": [
468 {
469 "internalType": "bool",
470 "name": "",
471 "type": "bool"
472 }
473 ],
474 "stateMutability": "view",
475 "type": "function"
476 },
477 {
478 "inputs": [
479 {
480 "internalType": "address",
481 "name": "contractAddress",
482 "type": "address"
483 }
484 ],
485 "name": "removeAvailableCurrencyTokenContract",
486 "outputs": [],
487 "stateMutability": "nonpayable",
488 "type": "function"
489 },
490 {
491 "inputs": [
492 {
493 "internalType": "address",
494 "name": "customerAddress",
495 "type": "address"
496 }
497 ],
498 "name": "removeMembership",
499 "outputs": [],
500 "stateMutability": "nonpayable",
501 "type": "function"
502 },
503 {
504 "inputs": [
505 {
506 "internalType": "address",
507 "name": "owner",
508 "type": "address"
509 }
510 ],
511 "name": "removeOwner",
512 "outputs": [],
513 "stateMutability": "nonpayable",
514 "type": "function"
515 },
516 {
517 "inputs": [
518 {
519 "internalType": "address payable",
520 "name": "addr",
521 "type": "address"
522 }
523 ],
524 "name": "setBeneficiaryAddress",
525 "outputs": [],
526 "stateMutability": "nonpayable",
527 "type": "function"
528 },
529 {
530 "inputs": [
531 {
532 "internalType": "address",
533 "name": "tokenContract",
534 "type": "address"
535 }
536 ],
537 "name": "setDefaultCurrencyTokenContractAddress",
538 "outputs": [],
539 "stateMutability": "nonpayable",
540 "type": "function"
541 },
542 {
543 "inputs": [
544 {
545 "internalType": "uint256",
546 "name": "time",
547 "type": "uint256"
548 }
549 ],
550 "name": "setDefaultExpiration",
551 "outputs": [],
552 "stateMutability": "nonpayable",
553 "type": "function"
554 },
555 {
556 "inputs": [
557 {
558 "internalType": "string",
559 "name": "description",
560 "type": "string"
561 }
562 ],
563 "name": "setDescription",
564 "outputs": [],
565 "stateMutability": "nonpayable",
566 "type": "function"
567 },
568 {
569 "inputs": [
570 {
571 "internalType": "address",
572 "name": "customerAddress",
573 "type": "address"
574 },
575 {
576 "internalType": "uint256",
577 "name": "timestamp",
578 "type": "uint256"
579 }
580 ],
581 "name": "setMembershipExpiration",
582 "outputs": [],
583 "stateMutability": "nonpayable",
584 "type": "function"
585 },
586 {
587 "inputs": [
588 {
589 "internalType": "address",
590 "name": "customerAddress",
591 "type": "address"
592 },
593 {
594 "internalType": "string",
595 "name": "metadata",
596 "type": "string"
597 }
598 ],
599 "name": "setMembershipMetadata",
600 "outputs": [],
601 "stateMutability": "nonpayable",
602 "type": "function"
603 },
604 {
605 "inputs": [
606 {
607 "internalType": "uint256",
608 "name": "id",
609 "type": "uint256"
610 },
611 {
612 "internalType": "uint256",
613 "name": "price",
614 "type": "uint256"
615 }
616 ],
617 "name": "setPriceEther",
618 "outputs": [],
619 "stateMutability": "nonpayable",
620 "type": "function"
621 },
622 {
623 "inputs": [
624 {
625 "internalType": "uint256",
626 "name": "id",
627 "type": "uint256"
628 },
629 {
630 "internalType": "uint256",
631 "name": "price",
632 "type": "uint256"
633 }
634 ],
635 "name": "setPriceFiat",
636 "outputs": [],
637 "stateMutability": "nonpayable",
638 "type": "function"
639 },
640 {
641 "inputs": [
642 {
643 "internalType": "uint256",
644 "name": "id",
645 "type": "uint256"
646 },
647 {
648 "internalType": "uint256",
649 "name": "price",
650 "type": "uint256"
651 }
652 ],
653 "name": "setPriceToken",
654 "outputs": [],
655 "stateMutability": "nonpayable",
656 "type": "function"
657 },
658 {
659 "inputs": [
660 {
661 "internalType": "address",
662 "name": "currencyContract",
663 "type": "address"
664 },
665 {
666 "internalType": "uint256",
667 "name": "id",
668 "type": "uint256"
669 },
670 {
671 "internalType": "uint256",
672 "name": "price",
673 "type": "uint256"
674 }
675 ],
676 "name": "setPriceToken",
677 "outputs": [],
678 "stateMutability": "nonpayable",
679 "type": "function"
680 },
681 {
682 "inputs": [
683 {
684 "internalType": "address",
685 "name": "_forwarder",
686 "type": "address"
687 }
688 ],
689 "name": "setTrustedForwarder",
690 "outputs": [],
691 "stateMutability": "nonpayable",
692 "type": "function"
693 }
694 ],
695 "bytecode": "0x60806040523480156200001157600080fd5b5062000026620000206200002c565b62000062565b62000169565b6000601436108015906200004a57506003546001600160a01b031633145b156200005d575060131936013560601c90565b503390565b600154158015906200008457503360009081526020819052604090205460ff16155b15620000e15760405162461bcd60e51b815260206004820152602260248201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f604482015261371760f11b606482015260840160405180910390fd5b6001600160a01b03811660009081526020819052604090205460ff1615620001065750565b6001600160a01b03166000818152602081905260408120805460ff191660019081179091558054808201825591527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319169091179055565b611e2980620001796000396000f3fe6080604052600436106102305760003560e01c8063724e5c171161012e578063bb7b4036116100ab578063da7422281161006f578063da742228146106e2578063e1461f1214610702578063ec6be06e1461072f578063f17fa44e1461074f578063fb989cea1461076f57600080fd5b8063bb7b403614610646578063ce1b815f14610666578063d1eff89514610684578063d36223f1146106a2578063d93f5bed146106c257600080fd5b8063a0e67e2b116100f2578063a0e67e2b1461058b578063adfadad3146105a0578063b33a599f146105cd578063b3d68181146105ed578063b68de9741461060d57600080fd5b8063724e5c17146104f65780638003e27f1461051657806380dc439e1461053857806388d0f86a1461054b57806390c3f38f1461056b57600080fd5b806338a8f569116101bc57806353c324771161018057806353c3247714610452578063572b6c0514610467578063578680be146104965780635b64bed0146104b65780637065cb48146104d657600080fd5b806338a8f569146103b25780633a932dba146103d25780633de4fdc8146103f2578063502ccb091461041257806351ae4cd31461043257600080fd5b8063173825d911610203578063173825d9146102f2578063177ed0f3146103145780631a092541146103345780631abe7cb3146103495780632f54bf6e1461036957600080fd5b80630118173c14610235578063031f5c871461027e5780630d8e6e2c1461029e57806316bef596146102c0575b600080fd5b34801561024157600080fd5b5061026b61025036600461199f565b6001600160a01b03166000908152600c602052604090205490565b6040519081526020015b60405180910390f35b34801561028a57600080fd5b5061026b610299366004611a67565b61078f565b3480156102aa57600080fd5b506102b36107b7565b6040516102759190611c28565b3480156102cc57600080fd5b506007546001600160a01b03165b6040516001600160a01b039091168152602001610275565b3480156102fe57600080fd5b5061031261030d36600461199f565b6107d7565b005b34801561032057600080fd5b5061026b61032f366004611b21565b61089d565b34801561034057600080fd5b506102b36108bc565b34801561035557600080fd5b50610312610364366004611b39565b61094e565b34801561037557600080fd5b506103a261038436600461199f565b6001600160a01b031660009081526020819052604090205460ff1690565b6040519015158152602001610275565b3480156103be57600080fd5b506103126103cd366004611a10565b610987565b3480156103de57600080fd5b506103126103ed36600461199f565b6109d8565b3480156103fe57600080fd5b5061031261040d36600461199f565b610a1f565b34801561041e57600080fd5b5061031261042d3660046119c2565b610ad0565b34801561043e57600080fd5b5061031261044d366004611b21565b610b05565b34801561045e57600080fd5b50600e5461026b565b34801561047357600080fd5b506103a261048236600461199f565b6003546001600160a01b0391821691161490565b3480156104a257600080fd5b506103126104b1366004611b39565b610b31565b3480156104c257600080fd5b506102b36104d136600461199f565b610b6f565b3480156104e257600080fd5b506103126104f136600461199f565b610ca9565b34801561050257600080fd5b50610312610511366004611b92565b610d6e565b34801561052257600080fd5b5061052b610dab565b6040516102759190611bdb565b610312610546366004611b5a565b610e0c565b34801561055757600080fd5b50610312610566366004611b39565b610e85565b34801561057757600080fd5b50610312610586366004611ae6565b610ebe565b34801561059757600080fd5b5061052b610ef8565b3480156105ac57600080fd5b5061026b6105bb366004611b21565b60009081526005602052604090205490565b3480156105d957600080fd5b506103126105e836600461199f565b610f58565b3480156105f957600080fd5b5061031261060836600461199f565b611012565b34801561061957600080fd5b506103a261062836600461199f565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561065257600080fd5b50610312610661366004611a67565b61108f565b34801561067257600080fd5b506003546001600160a01b03166102da565b34801561069057600080fd5b50600a546001600160a01b03166102da565b3480156106ae57600080fd5b506103126106bd366004611b5a565b61113c565b3480156106ce57600080fd5b506103126106dd366004611a92565b611197565b3480156106ee57600080fd5b506103126106fd36600461199f565b6111e4565b34801561070e57600080fd5b5061026b61071d366004611b21565b60009081526004602052604090205490565b34801561073b57600080fd5b5061031261074a36600461199f565b611229565b34801561075b57600080fd5b506103a261076a36600461199f565b611272565b34801561077b57600080fd5b5061031261078a3660046119c2565b6112d3565b6001600160a01b03919091166000908152600660209081526040808320938352929052205490565b60606040518060600160405280602a8152602001611dca602a9139905090565b6107e26103846113a8565b6108075760405162461bcd60e51b81526004016107fe90611c7b565b60405180910390fd5b6001600160a01b03811660009081526020819052604090205460ff1661086f5760405162461bcd60e51b815260206004820152601e60248201527f5461726765742061646472657373206973206e6f7420616e206f776e6572000060448201526064016107fe565b6001600160a01b0381166000908152602081905260409020805460ff1916905561089a6001826113dc565b50565b6007546000906108b6906001600160a01b03168361078f565b92915050565b6060600280546108cb90611d32565b80601f01602080910402602001604051908101604052809291908181526020018280546108f790611d32565b80156109445780601f1061091957610100808354040283529160200191610944565b820191906000526020600020905b81548152906001019060200180831161092757829003601f168201915b5050505050905090565b6109596103846113a8565b6109755760405162461bcd60e51b81526004016107fe90611c7b565b60009182526004602052604090912055565b6109926103846113a8565b6109ae5760405162461bcd60e51b81526004016107fe90611c7b565b6109b8838361151e565b6001600160a01b039092166000908152600c602052604090209190915550565b6109e36103846113a8565b6109ff5760405162461bcd60e51b81526004016107fe90611c7b565b600780546001600160a01b0319166001600160a01b03831617905561089a815b610a2a6103846113a8565b610a465760405162461bcd60e51b81526004016107fe90611c7b565b6001600160a01b03811660009081526008602052604090205460ff1615610a6a5750565b6001600160a01b03166000818152600860205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b610adb6103846113a8565b610af75760405162461bcd60e51b81526004016107fe90611c7b565b610b01828261151e565b5050565b610b106103846113a8565b610b2c5760405162461bcd60e51b81526004016107fe90611c7b565b600e55565b610b3c6103846113a8565b610b585760405162461bcd60e51b81526004016107fe90611c7b565b600754610b01906001600160a01b03168383611197565b6040516378bfd22760e11b81526001600160a01b0382166004820152606090309063f17fa44e9060240160206040518083038186803b158015610bb157600080fd5b505afa158015610bc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be99190611ac6565b610c0157505060408051602081019091526000815290565b6001600160a01b0382166000908152600d602052604090208054610c2490611d32565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5090611d32565b8015610c9d5780601f10610c7257610100808354040283529160200191610c9d565b820191906000526020600020905b815481529060010190602001808311610c8057829003601f168201915b50505050509050919050565b60015415801590610cca57503360009081526020819052604090205460ff16155b15610ce75760405162461bcd60e51b81526004016107fe90611c7b565b6001600160a01b03811660009081526020819052604090205460ff1615610d0b5750565b6001600160a01b03166000818152602081905260408120805460ff191660019081179091558054808201825591527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319169091179055565b60405162461bcd60e51b815260206004820152601260248201527113d4115490551253d397d11254d05093115160721b60448201526064016107fe565b6060600980548060200260200160405190810160405280929190818152602001828054801561094457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610de5575050505050905090565b610e1581611272565b15610e5b5760405162461bcd60e51b81526020600482015260166024820152750414c52454144595f4841535f4d454d424552534849560541b60448201526064016107fe565b610e67600060016115df565b610e80816040518060200160405280600081525061151e565b505050565b610e906103846113a8565b610eac5760405162461bcd60e51b81526004016107fe90611c7b565b60009182526005602052604090912055565b610ec96103846113a8565b610ee55760405162461bcd60e51b81526004016107fe90611c7b565b8051610b0190600290602084019061187f565b60606001805480602002602001604051908101604052809291908181526020018280548015610944576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610de5575050505050905090565b610f636103846113a8565b610f7f5760405162461bcd60e51b81526004016107fe90611c7b565b6001600160a01b03811660009081526008602052604090205460ff16610fe75760405162461bcd60e51b815260206004820181905260248201527f54617267657420636f6e7472616374206973206e6f7420617661696c61626c6560448201526064016107fe565b6001600160a01b0381166000908152600860205260409020805460ff1916905561089a6009826113dc565b61101d6103846113a8565b6110395760405162461bcd60e51b81526004016107fe90611c7b565b6001600160a01b0381166000818152600b60209081526040808320805460ff19169055600c909152808220829055517fb06142a803b635c046318ced2e53320bc58e5d67cd8a097a74abebb81ea4a23f9190a250565b61109a6103846113a8565b6110b65760405162461bcd60e51b81526004016107fe90611c7b565b6001600160a01b0382166000908152600b602052604090205460ff16611120576001600160a01b0382166000818152600b6020526040808220805460ff19166001179055517f893e16c93d8f47d85366f981752a56e333030c5450f51db6c8136ec34e28c7c09190a25b6001600160a01b039091166000908152600c6020526040902055565b61114581611272565b1561118b5760405162461bcd60e51b81526020600482015260166024820152750414c52454144595f4841535f4d454d424552534849560541b60448201526064016107fe565b610e67600060016116d3565b6111a26103846113a8565b6111be5760405162461bcd60e51b81526004016107fe90611c7b565b6001600160a01b0390921660009081526006602090815260408083209383529290522055565b6111ef6103846113a8565b61120b5760405162461bcd60e51b81526004016107fe90611c7b565b600380546001600160a01b0319166001600160a01b03831617905550565b6112346103846113a8565b6112505760405162461bcd60e51b81526004016107fe90611c7b565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166000908152600b602052604081205460ff1680156108b657506001600160a01b0382166000908152600c602052604090205415806108b65750506001600160a01b03166000908152600c6020526040902054421090565b6112de6103846113a8565b6112fa5760405162461bcd60e51b81526004016107fe90611c7b565b6040516378bfd22760e11b81526001600160a01b0383166004820152309063f17fa44e9060240160206040518083038186803b15801561133957600080fd5b505afa15801561134d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113719190611ac6565b61137f57610b018282610ad0565b6001600160a01b0382166000908152600d602090815260409091208251610e809284019061187f565b6000601436108015906113c557506003546001600160a01b031633145b156113d7575060131936013560601c90565b503390565b60005b8254811015610e8057816001600160a01b031683828154811061141257634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b0316141561150c578254839061143d90600190611d1b565b8154811061145b57634e487b7160e01b600052603260045260246000fd5b9060005260206000200160009054906101000a90046001600160a01b031683828154811061149957634e487b7160e01b600052603260045260246000fd5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550828054806114e557634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b0319169055019055505050565b8061151681611d6d565b9150506113df565b6001600160a01b0382166000908152600b60209081526040808320805460ff19166001179055600d825290912082516115599284019061187f565b50600e541561158d57600e5461156f9042611ce4565b6001600160a01b0383166000908152600c60205260409020556115a7565b6001600160a01b0382166000908152600c60205260408120555b6040516001600160a01b038316907f893e16c93d8f47d85366f981752a56e333030c5450f51db6c8136ec34e28c7c090600090a25050565b6000828152600560205260408120541161160b5760405162461bcd60e51b81526004016107fe90611cbd565b600a546001600160a01b03166116335760405162461bcd60e51b81526004016107fe90611cbd565b60008281526005602052604081205461164d908390611cfc565b9050803410156116945760405162461bcd60e51b8152602060048201526012602482015271494e53554646494349454e545f56414c554560701b60448201526064016107fe565b600a546040516001600160a01b03909116903480156108fc02916000818181858888f193505050501580156116cd573d6000803e3d6000fd5b50505050565b6007546001600160a01b0316600081815260086020526040902054610b0191849184919060ff166117465760405162461bcd60e51b815260206004820152601f60248201527f43555252454e43595f434f4e54524143545f4e4f545f535550504f525445440060448201526064016107fe565b6000611752828561078f565b1161176f5760405162461bcd60e51b81526004016107fe90611cbd565b600a546001600160a01b03166117975760405162461bcd60e51b81526004016107fe90611cbd565b6001600160a01b0381166117bd5760405162461bcd60e51b81526004016107fe90611cbd565b60006117c9828561078f565b6117d39084611cfc565b9050816001600160a01b0381166323b872dd6117ed6113a8565b600a5460405160e084901b6001600160e01b03191681526001600160a01b0392831660048201529116602482015260448101859052606401602060405180830381600087803b15801561183f57600080fd5b505af1158015611853573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118779190611ac6565b505050505050565b82805461188b90611d32565b90600052602060002090601f0160209004810192826118ad57600085556118f3565b82601f106118c657805160ff19168380011785556118f3565b828001600101855582156118f3579182015b828111156118f35782518255916020019190600101906118d8565b506118ff929150611903565b5090565b5b808211156118ff5760008155600101611904565b600082601f830112611928578081fd5b813567ffffffffffffffff8082111561194357611943611d9e565b604051601f8301601f19908116603f0116810190828211818310171561196b5761196b611d9e565b81604052838152866020858801011115611983578485fd5b8360208701602083013792830160200193909352509392505050565b6000602082840312156119b0578081fd5b81356119bb81611db4565b9392505050565b600080604083850312156119d4578081fd5b82356119df81611db4565b9150602083013567ffffffffffffffff8111156119fa578182fd5b611a0685828601611918565b9150509250929050565b600080600060608486031215611a24578081fd5b8335611a2f81611db4565b9250602084013567ffffffffffffffff811115611a4a578182fd5b611a5686828701611918565b925050604084013590509250925092565b60008060408385031215611a79578182fd5b8235611a8481611db4565b946020939093013593505050565b600080600060608486031215611aa6578283fd5b8335611ab181611db4565b95602085013595506040909401359392505050565b600060208284031215611ad7578081fd5b815180151581146119bb578182fd5b600060208284031215611af7578081fd5b813567ffffffffffffffff811115611b0d578182fd5b611b1984828501611918565b949350505050565b600060208284031215611b32578081fd5b5035919050565b60008060408385031215611b4b578182fd5b50508035926020909101359150565b600080600060608486031215611b6e578283fd5b83359250602084013591506040840135611b8781611db4565b809150509250925092565b60008060008060808587031215611ba7578081fd5b84359350602085013592506040850135611bc081611db4565b91506060850135611bd081611db4565b939692955090935050565b6020808252825182820181905260009190848201906040850190845b81811015611c1c5783516001600160a01b031683529284019291840191600101611bf7565b50909695505050505050565b6000602080835283518082850152825b81811015611c5457858101830151858201604001528201611c38565b81811115611c655783604083870101525b50601f01601f1916929092016040019392505050565b60208082526022908201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f604082015261371760f11b606082015260800190565b6020808252600d908201526c14d1531317d11254d050931151609a1b604082015260600190565b60008219821115611cf757611cf7611d88565b500190565b6000816000190483118215151615611d1657611d16611d88565b500290565b600082821015611d2d57611d2d611d88565b500390565b600181811c90821680611d4657607f821691505b60208210811415611d6757634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611d8157611d81611d88565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461089a57600080fdfe53656c6c61626c654d657461646174614d656d62657273686970436f6e7472616374207620312e312e30a2646970667358221220d19ef69eaf1d3c09ca99df989f993e3707361bd9f832961a6f87ce5b36d97f0264736f6c63430008040033",
696 "deployedBytecode": "0x6080604052600436106102305760003560e01c8063724e5c171161012e578063bb7b4036116100ab578063da7422281161006f578063da742228146106e2578063e1461f1214610702578063ec6be06e1461072f578063f17fa44e1461074f578063fb989cea1461076f57600080fd5b8063bb7b403614610646578063ce1b815f14610666578063d1eff89514610684578063d36223f1146106a2578063d93f5bed146106c257600080fd5b8063a0e67e2b116100f2578063a0e67e2b1461058b578063adfadad3146105a0578063b33a599f146105cd578063b3d68181146105ed578063b68de9741461060d57600080fd5b8063724e5c17146104f65780638003e27f1461051657806380dc439e1461053857806388d0f86a1461054b57806390c3f38f1461056b57600080fd5b806338a8f569116101bc57806353c324771161018057806353c3247714610452578063572b6c0514610467578063578680be146104965780635b64bed0146104b65780637065cb48146104d657600080fd5b806338a8f569146103b25780633a932dba146103d25780633de4fdc8146103f2578063502ccb091461041257806351ae4cd31461043257600080fd5b8063173825d911610203578063173825d9146102f2578063177ed0f3146103145780631a092541146103345780631abe7cb3146103495780632f54bf6e1461036957600080fd5b80630118173c14610235578063031f5c871461027e5780630d8e6e2c1461029e57806316bef596146102c0575b600080fd5b34801561024157600080fd5b5061026b61025036600461199f565b6001600160a01b03166000908152600c602052604090205490565b6040519081526020015b60405180910390f35b34801561028a57600080fd5b5061026b610299366004611a67565b61078f565b3480156102aa57600080fd5b506102b36107b7565b6040516102759190611c28565b3480156102cc57600080fd5b506007546001600160a01b03165b6040516001600160a01b039091168152602001610275565b3480156102fe57600080fd5b5061031261030d36600461199f565b6107d7565b005b34801561032057600080fd5b5061026b61032f366004611b21565b61089d565b34801561034057600080fd5b506102b36108bc565b34801561035557600080fd5b50610312610364366004611b39565b61094e565b34801561037557600080fd5b506103a261038436600461199f565b6001600160a01b031660009081526020819052604090205460ff1690565b6040519015158152602001610275565b3480156103be57600080fd5b506103126103cd366004611a10565b610987565b3480156103de57600080fd5b506103126103ed36600461199f565b6109d8565b3480156103fe57600080fd5b5061031261040d36600461199f565b610a1f565b34801561041e57600080fd5b5061031261042d3660046119c2565b610ad0565b34801561043e57600080fd5b5061031261044d366004611b21565b610b05565b34801561045e57600080fd5b50600e5461026b565b34801561047357600080fd5b506103a261048236600461199f565b6003546001600160a01b0391821691161490565b3480156104a257600080fd5b506103126104b1366004611b39565b610b31565b3480156104c257600080fd5b506102b36104d136600461199f565b610b6f565b3480156104e257600080fd5b506103126104f136600461199f565b610ca9565b34801561050257600080fd5b50610312610511366004611b92565b610d6e565b34801561052257600080fd5b5061052b610dab565b6040516102759190611bdb565b610312610546366004611b5a565b610e0c565b34801561055757600080fd5b50610312610566366004611b39565b610e85565b34801561057757600080fd5b50610312610586366004611ae6565b610ebe565b34801561059757600080fd5b5061052b610ef8565b3480156105ac57600080fd5b5061026b6105bb366004611b21565b60009081526005602052604090205490565b3480156105d957600080fd5b506103126105e836600461199f565b610f58565b3480156105f957600080fd5b5061031261060836600461199f565b611012565b34801561061957600080fd5b506103a261062836600461199f565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561065257600080fd5b50610312610661366004611a67565b61108f565b34801561067257600080fd5b506003546001600160a01b03166102da565b34801561069057600080fd5b50600a546001600160a01b03166102da565b3480156106ae57600080fd5b506103126106bd366004611b5a565b61113c565b3480156106ce57600080fd5b506103126106dd366004611a92565b611197565b3480156106ee57600080fd5b506103126106fd36600461199f565b6111e4565b34801561070e57600080fd5b5061026b61071d366004611b21565b60009081526004602052604090205490565b34801561073b57600080fd5b5061031261074a36600461199f565b611229565b34801561075b57600080fd5b506103a261076a36600461199f565b611272565b34801561077b57600080fd5b5061031261078a3660046119c2565b6112d3565b6001600160a01b03919091166000908152600660209081526040808320938352929052205490565b60606040518060600160405280602a8152602001611dca602a9139905090565b6107e26103846113a8565b6108075760405162461bcd60e51b81526004016107fe90611c7b565b60405180910390fd5b6001600160a01b03811660009081526020819052604090205460ff1661086f5760405162461bcd60e51b815260206004820152601e60248201527f5461726765742061646472657373206973206e6f7420616e206f776e6572000060448201526064016107fe565b6001600160a01b0381166000908152602081905260409020805460ff1916905561089a6001826113dc565b50565b6007546000906108b6906001600160a01b03168361078f565b92915050565b6060600280546108cb90611d32565b80601f01602080910402602001604051908101604052809291908181526020018280546108f790611d32565b80156109445780601f1061091957610100808354040283529160200191610944565b820191906000526020600020905b81548152906001019060200180831161092757829003601f168201915b5050505050905090565b6109596103846113a8565b6109755760405162461bcd60e51b81526004016107fe90611c7b565b60009182526004602052604090912055565b6109926103846113a8565b6109ae5760405162461bcd60e51b81526004016107fe90611c7b565b6109b8838361151e565b6001600160a01b039092166000908152600c602052604090209190915550565b6109e36103846113a8565b6109ff5760405162461bcd60e51b81526004016107fe90611c7b565b600780546001600160a01b0319166001600160a01b03831617905561089a815b610a2a6103846113a8565b610a465760405162461bcd60e51b81526004016107fe90611c7b565b6001600160a01b03811660009081526008602052604090205460ff1615610a6a5750565b6001600160a01b03166000818152600860205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b610adb6103846113a8565b610af75760405162461bcd60e51b81526004016107fe90611c7b565b610b01828261151e565b5050565b610b106103846113a8565b610b2c5760405162461bcd60e51b81526004016107fe90611c7b565b600e55565b610b3c6103846113a8565b610b585760405162461bcd60e51b81526004016107fe90611c7b565b600754610b01906001600160a01b03168383611197565b6040516378bfd22760e11b81526001600160a01b0382166004820152606090309063f17fa44e9060240160206040518083038186803b158015610bb157600080fd5b505afa158015610bc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be99190611ac6565b610c0157505060408051602081019091526000815290565b6001600160a01b0382166000908152600d602052604090208054610c2490611d32565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5090611d32565b8015610c9d5780601f10610c7257610100808354040283529160200191610c9d565b820191906000526020600020905b815481529060010190602001808311610c8057829003601f168201915b50505050509050919050565b60015415801590610cca57503360009081526020819052604090205460ff16155b15610ce75760405162461bcd60e51b81526004016107fe90611c7b565b6001600160a01b03811660009081526020819052604090205460ff1615610d0b5750565b6001600160a01b03166000818152602081905260408120805460ff191660019081179091558054808201825591527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319169091179055565b60405162461bcd60e51b815260206004820152601260248201527113d4115490551253d397d11254d05093115160721b60448201526064016107fe565b6060600980548060200260200160405190810160405280929190818152602001828054801561094457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610de5575050505050905090565b610e1581611272565b15610e5b5760405162461bcd60e51b81526020600482015260166024820152750414c52454144595f4841535f4d454d424552534849560541b60448201526064016107fe565b610e67600060016115df565b610e80816040518060200160405280600081525061151e565b505050565b610e906103846113a8565b610eac5760405162461bcd60e51b81526004016107fe90611c7b565b60009182526005602052604090912055565b610ec96103846113a8565b610ee55760405162461bcd60e51b81526004016107fe90611c7b565b8051610b0190600290602084019061187f565b60606001805480602002602001604051908101604052809291908181526020018280548015610944576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610de5575050505050905090565b610f636103846113a8565b610f7f5760405162461bcd60e51b81526004016107fe90611c7b565b6001600160a01b03811660009081526008602052604090205460ff16610fe75760405162461bcd60e51b815260206004820181905260248201527f54617267657420636f6e7472616374206973206e6f7420617661696c61626c6560448201526064016107fe565b6001600160a01b0381166000908152600860205260409020805460ff1916905561089a6009826113dc565b61101d6103846113a8565b6110395760405162461bcd60e51b81526004016107fe90611c7b565b6001600160a01b0381166000818152600b60209081526040808320805460ff19169055600c909152808220829055517fb06142a803b635c046318ced2e53320bc58e5d67cd8a097a74abebb81ea4a23f9190a250565b61109a6103846113a8565b6110b65760405162461bcd60e51b81526004016107fe90611c7b565b6001600160a01b0382166000908152600b602052604090205460ff16611120576001600160a01b0382166000818152600b6020526040808220805460ff19166001179055517f893e16c93d8f47d85366f981752a56e333030c5450f51db6c8136ec34e28c7c09190a25b6001600160a01b039091166000908152600c6020526040902055565b61114581611272565b1561118b5760405162461bcd60e51b81526020600482015260166024820152750414c52454144595f4841535f4d454d424552534849560541b60448201526064016107fe565b610e67600060016116d3565b6111a26103846113a8565b6111be5760405162461bcd60e51b81526004016107fe90611c7b565b6001600160a01b0390921660009081526006602090815260408083209383529290522055565b6111ef6103846113a8565b61120b5760405162461bcd60e51b81526004016107fe90611c7b565b600380546001600160a01b0319166001600160a01b03831617905550565b6112346103846113a8565b6112505760405162461bcd60e51b81526004016107fe90611c7b565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166000908152600b602052604081205460ff1680156108b657506001600160a01b0382166000908152600c602052604090205415806108b65750506001600160a01b03166000908152600c6020526040902054421090565b6112de6103846113a8565b6112fa5760405162461bcd60e51b81526004016107fe90611c7b565b6040516378bfd22760e11b81526001600160a01b0383166004820152309063f17fa44e9060240160206040518083038186803b15801561133957600080fd5b505afa15801561134d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113719190611ac6565b61137f57610b018282610ad0565b6001600160a01b0382166000908152600d602090815260409091208251610e809284019061187f565b6000601436108015906113c557506003546001600160a01b031633145b156113d7575060131936013560601c90565b503390565b60005b8254811015610e8057816001600160a01b031683828154811061141257634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b0316141561150c578254839061143d90600190611d1b565b8154811061145b57634e487b7160e01b600052603260045260246000fd5b9060005260206000200160009054906101000a90046001600160a01b031683828154811061149957634e487b7160e01b600052603260045260246000fd5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550828054806114e557634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b0319169055019055505050565b8061151681611d6d565b9150506113df565b6001600160a01b0382166000908152600b60209081526040808320805460ff19166001179055600d825290912082516115599284019061187f565b50600e541561158d57600e5461156f9042611ce4565b6001600160a01b0383166000908152600c60205260409020556115a7565b6001600160a01b0382166000908152600c60205260408120555b6040516001600160a01b038316907f893e16c93d8f47d85366f981752a56e333030c5450f51db6c8136ec34e28c7c090600090a25050565b6000828152600560205260408120541161160b5760405162461bcd60e51b81526004016107fe90611cbd565b600a546001600160a01b03166116335760405162461bcd60e51b81526004016107fe90611cbd565b60008281526005602052604081205461164d908390611cfc565b9050803410156116945760405162461bcd60e51b8152602060048201526012602482015271494e53554646494349454e545f56414c554560701b60448201526064016107fe565b600a546040516001600160a01b03909116903480156108fc02916000818181858888f193505050501580156116cd573d6000803e3d6000fd5b50505050565b6007546001600160a01b0316600081815260086020526040902054610b0191849184919060ff166117465760405162461bcd60e51b815260206004820152601f60248201527f43555252454e43595f434f4e54524143545f4e4f545f535550504f525445440060448201526064016107fe565b6000611752828561078f565b1161176f5760405162461bcd60e51b81526004016107fe90611cbd565b600a546001600160a01b03166117975760405162461bcd60e51b81526004016107fe90611cbd565b6001600160a01b0381166117bd5760405162461bcd60e51b81526004016107fe90611cbd565b60006117c9828561078f565b6117d39084611cfc565b9050816001600160a01b0381166323b872dd6117ed6113a8565b600a5460405160e084901b6001600160e01b03191681526001600160a01b0392831660048201529116602482015260448101859052606401602060405180830381600087803b15801561183f57600080fd5b505af1158015611853573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118779190611ac6565b505050505050565b82805461188b90611d32565b90600052602060002090601f0160209004810192826118ad57600085556118f3565b82601f106118c657805160ff19168380011785556118f3565b828001600101855582156118f3579182015b828111156118f35782518255916020019190600101906118d8565b506118ff929150611903565b5090565b5b808211156118ff5760008155600101611904565b600082601f830112611928578081fd5b813567ffffffffffffffff8082111561194357611943611d9e565b604051601f8301601f19908116603f0116810190828211818310171561196b5761196b611d9e565b81604052838152866020858801011115611983578485fd5b8360208701602083013792830160200193909352509392505050565b6000602082840312156119b0578081fd5b81356119bb81611db4565b9392505050565b600080604083850312156119d4578081fd5b82356119df81611db4565b9150602083013567ffffffffffffffff8111156119fa578182fd5b611a0685828601611918565b9150509250929050565b600080600060608486031215611a24578081fd5b8335611a2f81611db4565b9250602084013567ffffffffffffffff811115611a4a578182fd5b611a5686828701611918565b925050604084013590509250925092565b60008060408385031215611a79578182fd5b8235611a8481611db4565b946020939093013593505050565b600080600060608486031215611aa6578283fd5b8335611ab181611db4565b95602085013595506040909401359392505050565b600060208284031215611ad7578081fd5b815180151581146119bb578182fd5b600060208284031215611af7578081fd5b813567ffffffffffffffff811115611b0d578182fd5b611b1984828501611918565b949350505050565b600060208284031215611b32578081fd5b5035919050565b60008060408385031215611b4b578182fd5b50508035926020909101359150565b600080600060608486031215611b6e578283fd5b83359250602084013591506040840135611b8781611db4565b809150509250925092565b60008060008060808587031215611ba7578081fd5b84359350602085013592506040850135611bc081611db4565b91506060850135611bd081611db4565b939692955090935050565b6020808252825182820181905260009190848201906040850190845b81811015611c1c5783516001600160a01b031683529284019291840191600101611bf7565b50909695505050505050565b6000602080835283518082850152825b81811015611c5457858101830151858201604001528201611c38565b81811115611c655783604083870101525b50601f01601f1916929092016040019392505050565b60208082526022908201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f604082015261371760f11b606082015260800190565b6020808252600d908201526c14d1531317d11254d050931151609a1b604082015260600190565b60008219821115611cf757611cf7611d88565b500190565b6000816000190483118215151615611d1657611d16611d88565b500290565b600082821015611d2d57611d2d611d88565b500390565b600181811c90821680611d4657607f821691505b60208210811415611d6757634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611d8157611d81611d88565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461089a57600080fdfe53656c6c61626c654d657461646174614d656d62657273686970436f6e7472616374207620312e312e30a2646970667358221220d19ef69eaf1d3c09ca99df989f993e3707361bd9f832961a6f87ce5b36d97f0264736f6c63430008040033",
697 "linkReferences": {},
698 "deployedLinkReferences": {}
699}