UNPKG

781 kBJSONView Raw
1{
2 "contractName": "FactoryToken",
3 "abi": [
4 {
5 "constant": true,
6 "inputs": [],
7 "name": "mintingFinished",
8 "outputs": [
9 {
10 "name": "",
11 "type": "bool"
12 }
13 ],
14 "payable": false,
15 "stateMutability": "view",
16 "type": "function"
17 },
18 {
19 "constant": true,
20 "inputs": [],
21 "name": "name",
22 "outputs": [
23 {
24 "name": "",
25 "type": "string"
26 }
27 ],
28 "payable": false,
29 "stateMutability": "view",
30 "type": "function"
31 },
32 {
33 "constant": true,
34 "inputs": [],
35 "name": "decimals",
36 "outputs": [
37 {
38 "name": "",
39 "type": "uint8"
40 }
41 ],
42 "payable": false,
43 "stateMutability": "view",
44 "type": "function"
45 },
46 {
47 "constant": true,
48 "inputs": [],
49 "name": "owner",
50 "outputs": [
51 {
52 "name": "",
53 "type": "address"
54 }
55 ],
56 "payable": false,
57 "stateMutability": "view",
58 "type": "function"
59 },
60 {
61 "constant": true,
62 "inputs": [],
63 "name": "symbol",
64 "outputs": [
65 {
66 "name": "",
67 "type": "string"
68 }
69 ],
70 "payable": false,
71 "stateMutability": "view",
72 "type": "function"
73 },
74 {
75 "constant": false,
76 "inputs": [
77 {
78 "name": "newOwner",
79 "type": "address"
80 }
81 ],
82 "name": "transferOwnership",
83 "outputs": [],
84 "payable": false,
85 "stateMutability": "nonpayable",
86 "type": "function"
87 },
88 {
89 "inputs": [
90 {
91 "name": "_name",
92 "type": "string"
93 },
94 {
95 "name": "_symbol",
96 "type": "string"
97 }
98 ],
99 "payable": false,
100 "stateMutability": "nonpayable",
101 "type": "constructor"
102 },
103 {
104 "anonymous": false,
105 "inputs": [
106 {
107 "indexed": true,
108 "name": "burner",
109 "type": "address"
110 },
111 {
112 "indexed": false,
113 "name": "value",
114 "type": "uint256"
115 }
116 ],
117 "name": "Burn",
118 "type": "event"
119 },
120 {
121 "anonymous": false,
122 "inputs": [
123 {
124 "indexed": false,
125 "name": "_from",
126 "type": "address"
127 },
128 {
129 "indexed": false,
130 "name": "_to",
131 "type": "address"
132 },
133 {
134 "indexed": false,
135 "name": "_amount",
136 "type": "uint256"
137 }
138 ],
139 "name": "Transfer",
140 "type": "event"
141 },
142 {
143 "anonymous": false,
144 "inputs": [
145 {
146 "indexed": true,
147 "name": "to",
148 "type": "address"
149 },
150 {
151 "indexed": false,
152 "name": "amount",
153 "type": "uint256"
154 }
155 ],
156 "name": "Mint",
157 "type": "event"
158 },
159 {
160 "anonymous": false,
161 "inputs": [],
162 "name": "MintFinished",
163 "type": "event"
164 },
165 {
166 "anonymous": false,
167 "inputs": [
168 {
169 "indexed": false,
170 "name": "_from",
171 "type": "address"
172 },
173 {
174 "indexed": false,
175 "name": "_spender",
176 "type": "address"
177 },
178 {
179 "indexed": false,
180 "name": "_value",
181 "type": "uint256"
182 }
183 ],
184 "name": "Approval",
185 "type": "event"
186 },
187 {
188 "anonymous": false,
189 "inputs": [
190 {
191 "indexed": true,
192 "name": "previousOwner",
193 "type": "address"
194 },
195 {
196 "indexed": true,
197 "name": "newOwner",
198 "type": "address"
199 }
200 ],
201 "name": "OwnershipTransferred",
202 "type": "event"
203 },
204 {
205 "constant": true,
206 "inputs": [],
207 "name": "totalSupply",
208 "outputs": [
209 {
210 "name": "",
211 "type": "uint256"
212 }
213 ],
214 "payable": false,
215 "stateMutability": "view",
216 "type": "function"
217 },
218 {
219 "constant": false,
220 "inputs": [
221 {
222 "name": "_to",
223 "type": "address"
224 },
225 {
226 "name": "_value",
227 "type": "uint256"
228 }
229 ],
230 "name": "transfer",
231 "outputs": [
232 {
233 "name": "",
234 "type": "bool"
235 }
236 ],
237 "payable": false,
238 "stateMutability": "nonpayable",
239 "type": "function"
240 },
241 {
242 "constant": true,
243 "inputs": [
244 {
245 "name": "_owner",
246 "type": "address"
247 }
248 ],
249 "name": "balanceOf",
250 "outputs": [
251 {
252 "name": "",
253 "type": "uint256"
254 }
255 ],
256 "payable": false,
257 "stateMutability": "view",
258 "type": "function"
259 },
260 {
261 "constant": false,
262 "inputs": [
263 {
264 "name": "_value",
265 "type": "uint256"
266 }
267 ],
268 "name": "ownableBurn",
269 "outputs": [
270 {
271 "name": "",
272 "type": "bool"
273 }
274 ],
275 "payable": false,
276 "stateMutability": "nonpayable",
277 "type": "function"
278 },
279 {
280 "constant": false,
281 "inputs": [
282 {
283 "name": "_from",
284 "type": "address"
285 },
286 {
287 "name": "_value",
288 "type": "uint256"
289 }
290 ],
291 "name": "burnFrom",
292 "outputs": [],
293 "payable": false,
294 "stateMutability": "nonpayable",
295 "type": "function"
296 },
297 {
298 "constant": false,
299 "inputs": [
300 {
301 "name": "_value",
302 "type": "uint256"
303 }
304 ],
305 "name": "burn",
306 "outputs": [],
307 "payable": false,
308 "stateMutability": "nonpayable",
309 "type": "function"
310 },
311 {
312 "constant": false,
313 "inputs": [
314 {
315 "name": "_to",
316 "type": "address"
317 },
318 {
319 "name": "_amount",
320 "type": "uint256"
321 }
322 ],
323 "name": "mint",
324 "outputs": [
325 {
326 "name": "",
327 "type": "bool"
328 }
329 ],
330 "payable": false,
331 "stateMutability": "nonpayable",
332 "type": "function"
333 },
334 {
335 "constant": false,
336 "inputs": [],
337 "name": "finishMinting",
338 "outputs": [
339 {
340 "name": "",
341 "type": "bool"
342 }
343 ],
344 "payable": false,
345 "stateMutability": "nonpayable",
346 "type": "function"
347 },
348 {
349 "constant": false,
350 "inputs": [
351 {
352 "name": "_from",
353 "type": "address"
354 },
355 {
356 "name": "_to",
357 "type": "address"
358 },
359 {
360 "name": "_value",
361 "type": "uint256"
362 }
363 ],
364 "name": "transferFrom",
365 "outputs": [
366 {
367 "name": "",
368 "type": "bool"
369 }
370 ],
371 "payable": false,
372 "stateMutability": "nonpayable",
373 "type": "function"
374 },
375 {
376 "constant": false,
377 "inputs": [
378 {
379 "name": "_spender",
380 "type": "address"
381 },
382 {
383 "name": "_value",
384 "type": "uint256"
385 }
386 ],
387 "name": "approve",
388 "outputs": [
389 {
390 "name": "",
391 "type": "bool"
392 }
393 ],
394 "payable": false,
395 "stateMutability": "nonpayable",
396 "type": "function"
397 },
398 {
399 "constant": true,
400 "inputs": [
401 {
402 "name": "_owner",
403 "type": "address"
404 },
405 {
406 "name": "_spender",
407 "type": "address"
408 }
409 ],
410 "name": "allowance",
411 "outputs": [
412 {
413 "name": "",
414 "type": "uint256"
415 }
416 ],
417 "payable": false,
418 "stateMutability": "view",
419 "type": "function"
420 },
421 {
422 "constant": false,
423 "inputs": [
424 {
425 "name": "_spender",
426 "type": "address"
427 },
428 {
429 "name": "_addedValue",
430 "type": "uint256"
431 }
432 ],
433 "name": "increaseApproval",
434 "outputs": [
435 {
436 "name": "",
437 "type": "bool"
438 }
439 ],
440 "payable": false,
441 "stateMutability": "nonpayable",
442 "type": "function"
443 },
444 {
445 "constant": false,
446 "inputs": [
447 {
448 "name": "_spender",
449 "type": "address"
450 },
451 {
452 "name": "_subtractedValue",
453 "type": "uint256"
454 }
455 ],
456 "name": "decreaseApproval",
457 "outputs": [
458 {
459 "name": "",
460 "type": "bool"
461 }
462 ],
463 "payable": false,
464 "stateMutability": "nonpayable",
465 "type": "function"
466 }
467 ],
468 "bytecode": "0x608060405260038060006101000a81548160ff021916908360ff1602179055506000600760006101000a81548160ff0219169083151502179055503480156200004757600080fd5b50604051620020d1380380620020d18339810180604052810190808051820192919060200180518201929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160019080519060200190620000ce929190620000f0565b508060029080519060200190620000e7929190620000f0565b5050506200019f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200013357805160ff191683800117855562000164565b8280016001018555821562000164579182015b828111156200016357825182559160200191906001019062000146565b5b50905062000173919062000177565b5090565b6200019c91905b80821115620001985760008160009055506001016200017e565b5090565b90565b611f2280620001af6000396000f300608060405260043610610107576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b1461010c57806306fdde031461013b578063095ea7b3146101cb57806318160ddd1461023057806323b872dd1461025b578063313ce567146102e057806340c10f191461031157806342966c681461037657806366188463146103a357806370a082311461040857806379cc67901461045f5780637d64bcb4146104ac5780638da5cb5b146104db57806395d89b4114610532578063a9059cbb146105c2578063ac8e6e5014610627578063d73dd6231461066c578063dd62ed3e146106d1578063f2fde38b14610748575b600080fd5b34801561011857600080fd5b5061012161078b565b604051808215151515815260200191505060405180910390f35b34801561014757600080fd5b5061015061079e565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610190578082015181840152602081019050610175565b50505050905090810190601f1680156101bd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d757600080fd5b50610216600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061083c565b604051808215151515815260200191505060405180910390f35b34801561023c57600080fd5b50610245610968565b6040518082815260200191505060405180910390f35b34801561026757600080fd5b506102c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610972565b604051808215151515815260200191505060405180910390f35b3480156102ec57600080fd5b506102f5610d6b565b604051808260ff1660ff16815260200191505060405180910390f35b34801561031d57600080fd5b5061035c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d7e565b604051808215151515815260200191505060405180910390f35b34801561038257600080fd5b506103a160048036038101908080359060200190929190505050610f9f565b005b3480156103af57600080fd5b506103ee600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fac565b604051808215151515815260200191505060405180910390f35b34801561041457600080fd5b50610449600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611277565b6040518082815260200191505060405180910390f35b34801561046b57600080fd5b506104aa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112c0565b005b3480156104b857600080fd5b506104c1611468565b604051808215151515815260200191505060405180910390f35b3480156104e757600080fd5b506104f061152f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053e57600080fd5b50610547611554565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561058757808201518184015260208101905061056c565b50505050905090810190601f1680156105b45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105ce57600080fd5b5061060d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115f2565b604051808215151515815260200191505060405180910390f35b34801561063357600080fd5b5061065260048036038101908080359060200190929190505050611850565b604051808215151515815260200191505060405180910390f35b34801561067857600080fd5b506106b7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118bf565b604051808215151515815260200191505060405180910390f35b3480156106dd57600080fd5b50610732600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611af5565b6040518082815260200191505060405180910390f35b34801561075457600080fd5b50610789600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b7c565b005b600760009054906101000a900460ff1681565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108345780601f1061080957610100808354040283529160200191610834565b820191906000526020600020905b81548152906001019060200180831161081757829003601f168201915b505050505081565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925338484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a16001905092915050565b6000600454905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156109af57600080fd5b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156109fd57600080fd5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610a8857600080fd5b610ada82600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cd190919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b6f82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cea90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c4182600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cd190919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef848484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1600190509392505050565b600360009054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ddb57600080fd5b600760009054906101000a900460ff16151515610df757600080fd5b610e0c82600454611cea90919063ffffffff16565b600481905550610e6482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cea90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a27fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60008484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a16001905092915050565b610fa93382611d06565b50565b600080600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808311156110bd576000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611151565b6110d08382611cd190919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9253385600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1600191505092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561134b57600080fd5b6113da81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cd190919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114648282611d06565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114c557600080fd5b600760009054906101000a900460ff161515156114e157600080fd5b6001600760006101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115ea5780601f106115bf576101008083540402835291602001916115ea565b820191906000526020600020905b8154815290600101906020018083116115cd57829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561162f57600080fd5b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561167d57600080fd5b6116cf82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cd190919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061176482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cea90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef338484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a16001905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118ad57600080fd5b6118b682610f9f565b60019050919050565b600061195082600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cea90919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9253384600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a16001905092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bd757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611c1357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000828211151515611cdf57fe5b818303905092915050565b60008183019050828110151515611cfd57fe5b80905092915050565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611d5457600080fd5b611da681600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cd190919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dfe81600454611cd190919063ffffffff16565b6004819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a27fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef82600083604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a150505600a165627a7a7230582068c3ca5f2239696c28a84c20291775c7c65980759b31ddbd47679a15290164760029",
469 "deployedBytecode": "0x608060405260043610610107576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b1461010c57806306fdde031461013b578063095ea7b3146101cb57806318160ddd1461023057806323b872dd1461025b578063313ce567146102e057806340c10f191461031157806342966c681461037657806366188463146103a357806370a082311461040857806379cc67901461045f5780637d64bcb4146104ac5780638da5cb5b146104db57806395d89b4114610532578063a9059cbb146105c2578063ac8e6e5014610627578063d73dd6231461066c578063dd62ed3e146106d1578063f2fde38b14610748575b600080fd5b34801561011857600080fd5b5061012161078b565b604051808215151515815260200191505060405180910390f35b34801561014757600080fd5b5061015061079e565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610190578082015181840152602081019050610175565b50505050905090810190601f1680156101bd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d757600080fd5b50610216600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061083c565b604051808215151515815260200191505060405180910390f35b34801561023c57600080fd5b50610245610968565b6040518082815260200191505060405180910390f35b34801561026757600080fd5b506102c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610972565b604051808215151515815260200191505060405180910390f35b3480156102ec57600080fd5b506102f5610d6b565b604051808260ff1660ff16815260200191505060405180910390f35b34801561031d57600080fd5b5061035c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d7e565b604051808215151515815260200191505060405180910390f35b34801561038257600080fd5b506103a160048036038101908080359060200190929190505050610f9f565b005b3480156103af57600080fd5b506103ee600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fac565b604051808215151515815260200191505060405180910390f35b34801561041457600080fd5b50610449600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611277565b6040518082815260200191505060405180910390f35b34801561046b57600080fd5b506104aa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112c0565b005b3480156104b857600080fd5b506104c1611468565b604051808215151515815260200191505060405180910390f35b3480156104e757600080fd5b506104f061152f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053e57600080fd5b50610547611554565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561058757808201518184015260208101905061056c565b50505050905090810190601f1680156105b45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105ce57600080fd5b5061060d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115f2565b604051808215151515815260200191505060405180910390f35b34801561063357600080fd5b5061065260048036038101908080359060200190929190505050611850565b604051808215151515815260200191505060405180910390f35b34801561067857600080fd5b506106b7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118bf565b604051808215151515815260200191505060405180910390f35b3480156106dd57600080fd5b50610732600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611af5565b6040518082815260200191505060405180910390f35b34801561075457600080fd5b50610789600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b7c565b005b600760009054906101000a900460ff1681565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108345780601f1061080957610100808354040283529160200191610834565b820191906000526020600020905b81548152906001019060200180831161081757829003601f168201915b505050505081565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925338484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a16001905092915050565b6000600454905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156109af57600080fd5b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156109fd57600080fd5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610a8857600080fd5b610ada82600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cd190919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b6f82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cea90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c4182600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cd190919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef848484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1600190509392505050565b600360009054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ddb57600080fd5b600760009054906101000a900460ff16151515610df757600080fd5b610e0c82600454611cea90919063ffffffff16565b600481905550610e6482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cea90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a27fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60008484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a16001905092915050565b610fa93382611d06565b50565b600080600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808311156110bd576000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611151565b6110d08382611cd190919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9253385600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1600191505092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561134b57600080fd5b6113da81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cd190919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114648282611d06565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114c557600080fd5b600760009054906101000a900460ff161515156114e157600080fd5b6001600760006101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115ea5780601f106115bf576101008083540402835291602001916115ea565b820191906000526020600020905b8154815290600101906020018083116115cd57829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561162f57600080fd5b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561167d57600080fd5b6116cf82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cd190919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061176482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cea90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef338484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a16001905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118ad57600080fd5b6118b682610f9f565b60019050919050565b600061195082600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cea90919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9253384600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a16001905092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bd757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611c1357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000828211151515611cdf57fe5b818303905092915050565b60008183019050828110151515611cfd57fe5b80905092915050565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611d5457600080fd5b611da681600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cd190919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dfe81600454611cd190919063ffffffff16565b6004819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a27fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef82600083604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a150505600a165627a7a7230582068c3ca5f2239696c28a84c20291775c7c65980759b31ddbd47679a15290164760029",
470 "sourceMap": "1571:8121:22:-;;;1731:1;1707:25;;;;;;;;;;;;;;;;;;;;1908:5;1878:35;;;;;;;;;;;;;;;;;;;;2357:104;8:9:-1;5:2;;;30:1;27;20:12;5:2;2357:104:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;297:10:3;289:5;;:18;;;;;;;;;;;;;;;;;;2423:5:22;2416:4;:12;;;;;;;;;;;;:::i;:::-;;2447:7;2438:6;:16;;;;;;;;;;;;:::i;:::-;;2357:104;;1571:8121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;",
471 "deployedSourceMap": "1571:8121:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1878:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1878:35:22;;;;;;;;;;;;;;;;;;;;;;;;;;;1657:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1657:18:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1657:18:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7226:202;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7226:202:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2529:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2529:89:22;;;;;;;;;;;;;;;;;;;;;;;6061:520;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6061:520:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1707:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1707:25:22;;;;;;;;;;;;;;;;;;;;;;;;;;;5148:346;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5148:346:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4344:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4344:79:22;;;;;;;;;;;;;;;;;;;;;;;;;;9215:475;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9215:475:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3345:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3345:105:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3827:392;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3827:392:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5618:154;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5618:154:22;;;;;;;;;;;;;;;;;;;;;;;;;;;49:20:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;49:20:3;;;;;;;;;;;;;;;;;;;;;;;;;;;1681::22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1681:20:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1681:20:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2784:347;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2784:347:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3456:121;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3456:121:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8410:321;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8410:321:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7761:170;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7761:170:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;632:188:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;632:188:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;1878:35:22;;;;;;;;;;;;;:::o;1657:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7226:202::-;7293:4;7341:6;7309:7;:19;7317:10;7309:19;;;;;;;;;;;;;;;:29;7329:8;7309:29;;;;;;;;;;;;;;;:38;;;;7362;7371:10;7383:8;7393:6;7362:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7417:4;7410:11;;7226:202;;;;:::o;2529:89::-;2573:7;2599:12;;2592:19;;2529:89;:::o;6061:520::-;6181:4;6224:1;6209:17;;:3;:17;;;;6201:26;;;;;;;;6255:8;:15;6264:5;6255:15;;;;;;;;;;;;;;;;6245:6;:25;;6237:34;;;;;;;;6299:7;:14;6307:5;6299:14;;;;;;;;;;;;;;;:26;6314:10;6299:26;;;;;;;;;;;;;;;;6289:6;:36;;6281:45;;;;;;;;6355:27;6375:6;6355:8;:15;6364:5;6355:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;6337:8;:15;6346:5;6337:15;;;;;;;;;;;;;;;:45;;;;6408:25;6426:6;6408:8;:13;6417:3;6408:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;6392:8;:13;6401:3;6392:13;;;;;;;;;;;;;;;:41;;;;6472:38;6503:6;6472:7;:14;6480:5;6472:14;;;;;;;;;;;;;;;:26;6487:10;6472:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;6443:7;:14;6451:5;6443:14;;;;;;;;;;;;;;;:26;6458:10;6443:26;;;;;;;;;;;;;;;:67;;;;6525:28;6534:5;6541:3;6546:6;6525:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6570:4;6563:11;;6061:520;;;;;:::o;1707:25::-;;;;;;;;;;;;;:::o;5148:346::-;5272:4;2327:5;;;;;;;;;;;2313:19;;:10;:19;;;2305:28;;;;;;;;2226:15;;;;;;;;;;;2225:16;2217:25;;;;;;;;5307;5324:7;5307:12;;:16;;:25;;;;:::i;:::-;5292:12;:40;;;;5358:26;5376:7;5358:8;:13;5367:3;5358:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;5342:8;:13;5351:3;5342:13;;;;;;;;;;;;;;;:42;;;;5404:3;5399:18;;;5409:7;5399:18;;;;;;;;;;;;;;;;;;5432:34;5449:1;5453:3;5458:7;5432:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5483:4;5476:11;;5148:346;;;;:::o;4344:79::-;4391:25;4397:10;4409:6;4391:5;:25::i;:::-;4344:79;:::o;9215:475::-;9328:4;9348:13;9364:7;:19;9372:10;9364:19;;;;;;;;;;;;;;;:29;9384:8;9364:29;;;;;;;;;;;;;;;;9348:45;;9426:8;9407:16;:27;9403:184;;;9482:1;9450:7;:19;9458:10;9450:19;;;;;;;;;;;;;;;:29;9470:8;9450:29;;;;;;;;;;;;;;;:33;;;;9403:184;;;9546:30;9559:16;9546:8;:12;;:30;;;;:::i;:::-;9514:7;:19;9522:10;9514:19;;;;;;;;;;;;;;;:29;9534:8;9514:29;;;;;;;;;;;;;;;:62;;;;9403:184;9601:61;9610:10;9622:8;9632:7;:19;9640:10;9632:19;;;;;;;;;;;;;;;:29;9652:8;9632:29;;;;;;;;;;;;;;;;9601:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9679:4;9672:11;;9215:475;;;;;:::o;3345:105::-;3401:7;3427:8;:16;3436:6;3427:16;;;;;;;;;;;;;;;;3420:23;;3345:105;;;:::o;3827:392::-;3911:7;:14;3919:5;3911:14;;;;;;;;;;;;;;;:26;3926:10;3911:26;;;;;;;;;;;;;;;;3901:6;:36;;3893:45;;;;;;;;4144:38;4175:6;4144:7;:14;4152:5;4144:14;;;;;;;;;;;;;;;:26;4159:10;4144:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;4115:7;:14;4123:5;4115:14;;;;;;;;;;;;;;;:26;4130:10;4115:26;;;;;;;;;;;;;;;:67;;;;4192:20;4198:5;4205:6;4192:5;:20::i;:::-;3827:392;;:::o;5618:154::-;5677:4;451:5:3;;;;;;;;;;;437:19;;:10;:19;;;429:28;;;;;;;;2226:15:22;;;;;;;;;;;2225:16;2217:25;;;;;;;;5711:4;5693:15;;:22;;;;;;;;;;;;;;;;;;5730:14;;;;;;;;;;5761:4;5754:11;;5618:154;:::o;49:20:3:-;;;;;;;;;;;;;:::o;1681::22:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2784:347::-;2847:4;2886:1;2871:17;;:3;:17;;;;2863:26;;;;;;;;2917:8;:20;2926:10;2917:20;;;;;;;;;;;;;;;;2907:6;:30;;2899:39;;;;;;;;2972:32;2997:6;2972:8;:20;2981:10;2972:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;2949:8;:20;2958:10;2949:20;;;;;;;;;;;;;;;:55;;;;3030:25;3048:6;3030:8;:13;3039:3;3030:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;3014:8;:13;3023:3;3014:13;;;;;;;;;;;;;;;:41;;;;3070:33;3079:10;3091:3;3096:6;3070:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3120:4;3113:11;;2784:347;;;;:::o;3456:121::-;3521:4;451:5:3;;;;;;;;;;;437:19;;:10;:19;;;429:28;;;;;;;;3537:12:22;3542:6;3537:4;:12::i;:::-;3566:4;3559:11;;3456:121;;;:::o;8410:321::-;8518:4;8580:46;8614:11;8580:7;:19;8588:10;8580:19;;;;;;;;;;;;;;;:29;8600:8;8580:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;8538:7;:19;8546:10;8538:19;;;;;;;;;;;;;;;:29;8558:8;8538:29;;;;;;;;;;;;;;;:89;;;;8642:61;8651:10;8663:8;8673:7;:19;8681:10;8673:19;;;;;;;;;;;;;;;:29;8693:8;8673:29;;;;;;;;;;;;;;;;8642:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8720:4;8713:11;;8410:321;;;;:::o;7761:170::-;7869:7;7899;:15;7907:6;7899:15;;;;;;;;;;;;;;;:25;7915:8;7899:25;;;;;;;;;;;;;;;;7892:32;;7761:170;;;;:::o;632:188:3:-;451:5;;;;;;;;;;;437:19;;:10;:19;;;429:28;;;;;;;;732:1;712:22;;:8;:22;;;;704:31;;;;;;;;778:8;750:37;;771:5;;;;;;;;;;;750:37;;;;;;;;;;;;805:8;797:5;;:16;;;;;;;;;;;;;;;;;;632:188;:::o;1204:120:22:-;1262:7;1293:1;1288;:6;;1281:14;;;;;;1316:1;1312;:5;1305:12;;1204:120;;;;:::o;1394:137::-;1452:9;1481:1;1477;:5;1473:9;;1504:1;1499;:6;;1492:14;;;;;;1523:1;1516:8;;1394:137;;;;:::o;4429:468::-;4511:8;:14;4520:4;4511:14;;;;;;;;;;;;;;;;4501:6;:24;;4493:33;;;;;;;;4733:26;4752:6;4733:8;:14;4742:4;4733:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;4716:8;:14;4725:4;4716:14;;;;;;;;;;;;;;;:43;;;;4784:24;4801:6;4784:12;;:16;;:24;;;;:::i;:::-;4769:12;:39;;;;4828:4;4823:18;;;4834:6;4823:18;;;;;;;;;;;;;;;;;;4856:34;4865:4;4879:1;4883:6;4856:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4429:468;;:::o",
472 "source": "pragma solidity ^0.4.24;\n\nimport \"./FactoryTokenInterface.sol\";\n\n// File: contracts/lib/math/SafeMath.sol\n\n/**\n * @title SafeMath\n * @dev Math operations with safety checks that throw on error\n */\nlibrary SafeMath {\n\n /**\n * @dev Multiplies two numbers, throws on overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {\n // Gas optimization: this is cheaper than asserting 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\n if (a == 0) {\n return 0;\n }\n\n c = a * b;\n assert(c / a == b);\n return c;\n }\n\n /**\n * @dev Integer division of two numbers, truncating the quotient.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n // assert(b > 0); // Solidity automatically throws when dividing by 0\n // uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n return a / b;\n }\n\n /**\n * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n assert(b <= a);\n return a - b;\n }\n\n /**\n * @dev Adds two numbers, throws on overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256 c) {\n c = a + b;\n assert(c >= a);\n return c;\n }\n}\n\n// File: contracts/token/Token.sol\n\ncontract FactoryToken is FactoryTokenInterface {\n using SafeMath for uint256;\n\n string public name;\n string public symbol;\n uint8 public decimals = 3;\n uint256 totalSupply_;\n\n mapping(address => mapping(address => uint256)) internal allowed;\n mapping(address => uint256) balances;\n\n bool public mintingFinished = false;\n\n event Burn(address indexed burner, uint256 value);\n event Transfer(address _from, address _to, uint256 _amount);\n event Mint(address indexed to, uint256 amount);\n event MintFinished();\n event Approval(address _from, address _spender, uint256 _value);\n\n modifier canMint() {\n require(!mintingFinished);\n _;\n }\n\n modifier hasMintPermission() {\n require(msg.sender == owner);\n _;\n }\n\n constructor(string _name, string _symbol) public {\n name = _name;\n symbol = _symbol;\n }\n\n /**\n * @dev Total number of tokens in existence\n */\n function totalSupply() public view returns (uint256) {\n return totalSupply_;\n }\n\n /**\n * @dev Transfer token for a specified address\n * @param _to The address to transfer to.\n * @param _value The amount to be transferred.\n */\n function transfer(address _to, uint256 _value) public returns (bool) {\n require(_to != address(0));\n require(_value <= balances[msg.sender]);\n\n balances[msg.sender] = balances[msg.sender].sub(_value);\n balances[_to] = balances[_to].add(_value);\n emit Transfer(msg.sender, _to, _value);\n return true;\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param _owner The address to query the the balance of.\n * @return An uint256 representing the amount owned by the passed address.\n */\n function balanceOf(address _owner) public view returns (uint256) {\n return balances[_owner];\n }\n\n function ownableBurn(uint256 _value) external onlyOwner returns (bool) {\n burn(_value);\n return true;\n }\n\n /**\n * @dev Burns a specific amount of tokens from the target address and decrements allowance\n * @param _from address The address which you want to send tokens from\n * @param _value uint256 The amount of token to be burned\n */\n function burnFrom(address _from, uint256 _value) public {\n require(_value <= allowed[_from][msg.sender]);\n // Should https://github.com/OpenZeppelin/zeppelin-solidity/issues/707 be accepted,\n // this function needs to emit an event with the updated approval.\n allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);\n _burn(_from, _value);\n }\n\n\n /**\n * @dev Burns a specific amount of tokens.\n * @param _value The amount of token to be burned.\n */\n function burn(uint256 _value) public {\n _burn(msg.sender, _value);\n }\n\n function _burn(address _who, uint256 _value) internal {\n require(_value <= balances[_who]);\n // no need to require value <= totalSupply, since that would imply the\n // sender's balance is greater than the totalSupply, which *should* be an assertion failure\n\n balances[_who] = balances[_who].sub(_value);\n totalSupply_ = totalSupply_.sub(_value);\n emit Burn(_who, _value);\n emit Transfer(_who, address(0), _value);\n }\n\n\n /**\n * @dev Function to mint tokens\n * @param _to The address that will receive the minted tokens.\n * @param _amount The amount of tokens to mint.\n * @return A boolean that indicates if the operation was successful.\n */\n function mint(\n address _to,\n uint256 _amount\n )\n hasMintPermission\n canMint\n public\n returns (bool)\n {\n totalSupply_ = totalSupply_.add(_amount);\n balances[_to] = balances[_to].add(_amount);\n emit Mint(_to, _amount);\n emit Transfer(address(0), _to, _amount);\n return true;\n }\n\n /**\n * @dev Function to stop minting new tokens.\n * @return True if the operation was successful.\n */\n function finishMinting() onlyOwner canMint public returns (bool) {\n mintingFinished = true;\n emit MintFinished();\n return true;\n }\n\n /**\n * @dev Transfer tokens from one address to another\n * @param _from address The address which you want to send tokens from\n * @param _to address The address which you want to transfer to\n * @param _value uint256 the amount of tokens to be transferred\n */\n function transferFrom(\n address _from,\n address _to,\n uint256 _value\n )\n public\n returns (bool)\n {\n require(_to != address(0));\n require(_value <= balances[_from]);\n require(_value <= allowed[_from][msg.sender]);\n\n balances[_from] = balances[_from].sub(_value);\n balances[_to] = balances[_to].add(_value);\n allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);\n emit Transfer(_from, _to, _value);\n return true;\n }\n\n /**\n * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n *\n * Beware that changing an allowance with this method brings the risk that someone may use both the old\n * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\n * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n * @param _spender The address which will spend the funds.\n * @param _value The amount of tokens to be spent.\n */\n function approve(address _spender, uint256 _value) public returns (bool) {\n allowed[msg.sender][_spender] = _value;\n emit Approval(msg.sender, _spender, _value);\n return true;\n }\n\n /**\n * @dev Function to check the amount of tokens that an owner allowed to a spender.\n * @param _owner address The address which owns the funds.\n * @param _spender address The address which will spend the funds.\n * @return A uint256 specifying the amount of tokens still available for the spender.\n */\n function allowance(\n address _owner,\n address _spender\n )\n public\n view\n returns (uint256)\n {\n return allowed[_owner][_spender];\n }\n\n /**\n * @dev Increase the amount of tokens that an owner allowed to a spender.\n *\n * approve should be called when allowed[_spender] == 0. To increment\n * allowed value is better to use this function to avoid 2 calls (and wait until\n * the first transaction is mined)\n * From MonolithDAO Token.sol\n * @param _spender The address which will spend the funds.\n * @param _addedValue The amount of tokens to increase the allowance by.\n */\n function increaseApproval(\n address _spender,\n uint _addedValue\n )\n public\n returns (bool)\n {\n allowed[msg.sender][_spender] = (\n allowed[msg.sender][_spender].add(_addedValue));\n emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);\n return true;\n }\n\n /**\n * @dev Decrease the amount of tokens that an owner allowed to a spender.\n *\n * approve should be called when allowed[_spender] == 0. To decrement\n * allowed value is better to use this function to avoid 2 calls (and wait until\n * the first transaction is mined)\n * From MonolithDAO Token.sol\n * @param _spender The address which will spend the funds.\n * @param _subtractedValue The amount of tokens to decrease the allowance by.\n */\n function decreaseApproval(\n address _spender,\n uint _subtractedValue\n )\n public\n returns (bool)\n {\n uint oldValue = allowed[msg.sender][_spender];\n if (_subtractedValue > oldValue) {\n allowed[msg.sender][_spender] = 0;\n } else {\n allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);\n }\n emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);\n return true;\n }\n}\n",
473 "sourcePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/token/Token.sol",
474 "ast": {
475 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/token/Token.sol",
476 "exportedSymbols": {
477 "FactoryToken": [
478 5881
479 ],
480 "SafeMath": [
481 5293
482 ]
483 },
484 "id": 5882,
485 "nodeType": "SourceUnit",
486 "nodes": [
487 {
488 "id": 5200,
489 "literals": [
490 "solidity",
491 "^",
492 "0.4",
493 ".24"
494 ],
495 "nodeType": "PragmaDirective",
496 "src": "0:24:22"
497 },
498 {
499 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/token/FactoryTokenInterface.sol",
500 "file": "./FactoryTokenInterface.sol",
501 "id": 5201,
502 "nodeType": "ImportDirective",
503 "scope": 5882,
504 "sourceUnit": 5199,
505 "src": "26:37:22",
506 "symbolAliases": [],
507 "unitAlias": ""
508 },
509 {
510 "baseContracts": [],
511 "contractDependencies": [],
512 "contractKind": "library",
513 "documentation": "@title SafeMath\n@dev Math operations with safety checks that throw on error",
514 "fullyImplemented": true,
515 "id": 5293,
516 "linearizedBaseContracts": [
517 5293
518 ],
519 "name": "SafeMath",
520 "nodeType": "ContractDefinition",
521 "nodes": [
522 {
523 "body": {
524 "id": 5233,
525 "nodeType": "Block",
526 "src": "360:344:22",
527 "statements": [
528 {
529 "condition": {
530 "argumentTypes": null,
531 "commonType": {
532 "typeIdentifier": "t_uint256",
533 "typeString": "uint256"
534 },
535 "id": 5212,
536 "isConstant": false,
537 "isLValue": false,
538 "isPure": false,
539 "lValueRequested": false,
540 "leftExpression": {
541 "argumentTypes": null,
542 "id": 5210,
543 "name": "a",
544 "nodeType": "Identifier",
545 "overloadedDeclarations": [],
546 "referencedDeclaration": 5203,
547 "src": "591:1:22",
548 "typeDescriptions": {
549 "typeIdentifier": "t_uint256",
550 "typeString": "uint256"
551 }
552 },
553 "nodeType": "BinaryOperation",
554 "operator": "==",
555 "rightExpression": {
556 "argumentTypes": null,
557 "hexValue": "30",
558 "id": 5211,
559 "isConstant": false,
560 "isLValue": false,
561 "isPure": true,
562 "kind": "number",
563 "lValueRequested": false,
564 "nodeType": "Literal",
565 "src": "596:1:22",
566 "subdenomination": null,
567 "typeDescriptions": {
568 "typeIdentifier": "t_rational_0_by_1",
569 "typeString": "int_const 0"
570 },
571 "value": "0"
572 },
573 "src": "591:6:22",
574 "typeDescriptions": {
575 "typeIdentifier": "t_bool",
576 "typeString": "bool"
577 }
578 },
579 "falseBody": null,
580 "id": 5216,
581 "nodeType": "IfStatement",
582 "src": "587:45:22",
583 "trueBody": {
584 "id": 5215,
585 "nodeType": "Block",
586 "src": "599:33:22",
587 "statements": [
588 {
589 "expression": {
590 "argumentTypes": null,
591 "hexValue": "30",
592 "id": 5213,
593 "isConstant": false,
594 "isLValue": false,
595 "isPure": true,
596 "kind": "number",
597 "lValueRequested": false,
598 "nodeType": "Literal",
599 "src": "620:1:22",
600 "subdenomination": null,
601 "typeDescriptions": {
602 "typeIdentifier": "t_rational_0_by_1",
603 "typeString": "int_const 0"
604 },
605 "value": "0"
606 },
607 "functionReturnParameters": 5209,
608 "id": 5214,
609 "nodeType": "Return",
610 "src": "613:8:22"
611 }
612 ]
613 }
614 },
615 {
616 "expression": {
617 "argumentTypes": null,
618 "id": 5221,
619 "isConstant": false,
620 "isLValue": false,
621 "isPure": false,
622 "lValueRequested": false,
623 "leftHandSide": {
624 "argumentTypes": null,
625 "id": 5217,
626 "name": "c",
627 "nodeType": "Identifier",
628 "overloadedDeclarations": [],
629 "referencedDeclaration": 5208,
630 "src": "642:1:22",
631 "typeDescriptions": {
632 "typeIdentifier": "t_uint256",
633 "typeString": "uint256"
634 }
635 },
636 "nodeType": "Assignment",
637 "operator": "=",
638 "rightHandSide": {
639 "argumentTypes": null,
640 "commonType": {
641 "typeIdentifier": "t_uint256",
642 "typeString": "uint256"
643 },
644 "id": 5220,
645 "isConstant": false,
646 "isLValue": false,
647 "isPure": false,
648 "lValueRequested": false,
649 "leftExpression": {
650 "argumentTypes": null,
651 "id": 5218,
652 "name": "a",
653 "nodeType": "Identifier",
654 "overloadedDeclarations": [],
655 "referencedDeclaration": 5203,
656 "src": "646:1:22",
657 "typeDescriptions": {
658 "typeIdentifier": "t_uint256",
659 "typeString": "uint256"
660 }
661 },
662 "nodeType": "BinaryOperation",
663 "operator": "*",
664 "rightExpression": {
665 "argumentTypes": null,
666 "id": 5219,
667 "name": "b",
668 "nodeType": "Identifier",
669 "overloadedDeclarations": [],
670 "referencedDeclaration": 5205,
671 "src": "650:1:22",
672 "typeDescriptions": {
673 "typeIdentifier": "t_uint256",
674 "typeString": "uint256"
675 }
676 },
677 "src": "646:5:22",
678 "typeDescriptions": {
679 "typeIdentifier": "t_uint256",
680 "typeString": "uint256"
681 }
682 },
683 "src": "642:9:22",
684 "typeDescriptions": {
685 "typeIdentifier": "t_uint256",
686 "typeString": "uint256"
687 }
688 },
689 "id": 5222,
690 "nodeType": "ExpressionStatement",
691 "src": "642:9:22"
692 },
693 {
694 "expression": {
695 "argumentTypes": null,
696 "arguments": [
697 {
698 "argumentTypes": null,
699 "commonType": {
700 "typeIdentifier": "t_uint256",
701 "typeString": "uint256"
702 },
703 "id": 5228,
704 "isConstant": false,
705 "isLValue": false,
706 "isPure": false,
707 "lValueRequested": false,
708 "leftExpression": {
709 "argumentTypes": null,
710 "commonType": {
711 "typeIdentifier": "t_uint256",
712 "typeString": "uint256"
713 },
714 "id": 5226,
715 "isConstant": false,
716 "isLValue": false,
717 "isPure": false,
718 "lValueRequested": false,
719 "leftExpression": {
720 "argumentTypes": null,
721 "id": 5224,
722 "name": "c",
723 "nodeType": "Identifier",
724 "overloadedDeclarations": [],
725 "referencedDeclaration": 5208,
726 "src": "668:1:22",
727 "typeDescriptions": {
728 "typeIdentifier": "t_uint256",
729 "typeString": "uint256"
730 }
731 },
732 "nodeType": "BinaryOperation",
733 "operator": "/",
734 "rightExpression": {
735 "argumentTypes": null,
736 "id": 5225,
737 "name": "a",
738 "nodeType": "Identifier",
739 "overloadedDeclarations": [],
740 "referencedDeclaration": 5203,
741 "src": "672:1:22",
742 "typeDescriptions": {
743 "typeIdentifier": "t_uint256",
744 "typeString": "uint256"
745 }
746 },
747 "src": "668:5:22",
748 "typeDescriptions": {
749 "typeIdentifier": "t_uint256",
750 "typeString": "uint256"
751 }
752 },
753 "nodeType": "BinaryOperation",
754 "operator": "==",
755 "rightExpression": {
756 "argumentTypes": null,
757 "id": 5227,
758 "name": "b",
759 "nodeType": "Identifier",
760 "overloadedDeclarations": [],
761 "referencedDeclaration": 5205,
762 "src": "677:1:22",
763 "typeDescriptions": {
764 "typeIdentifier": "t_uint256",
765 "typeString": "uint256"
766 }
767 },
768 "src": "668:10:22",
769 "typeDescriptions": {
770 "typeIdentifier": "t_bool",
771 "typeString": "bool"
772 }
773 }
774 ],
775 "expression": {
776 "argumentTypes": [
777 {
778 "typeIdentifier": "t_bool",
779 "typeString": "bool"
780 }
781 ],
782 "id": 5223,
783 "name": "assert",
784 "nodeType": "Identifier",
785 "overloadedDeclarations": [],
786 "referencedDeclaration": 12081,
787 "src": "661:6:22",
788 "typeDescriptions": {
789 "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
790 "typeString": "function (bool) pure"
791 }
792 },
793 "id": 5229,
794 "isConstant": false,
795 "isLValue": false,
796 "isPure": false,
797 "kind": "functionCall",
798 "lValueRequested": false,
799 "names": [],
800 "nodeType": "FunctionCall",
801 "src": "661:18:22",
802 "typeDescriptions": {
803 "typeIdentifier": "t_tuple$__$",
804 "typeString": "tuple()"
805 }
806 },
807 "id": 5230,
808 "nodeType": "ExpressionStatement",
809 "src": "661:18:22"
810 },
811 {
812 "expression": {
813 "argumentTypes": null,
814 "id": 5231,
815 "name": "c",
816 "nodeType": "Identifier",
817 "overloadedDeclarations": [],
818 "referencedDeclaration": 5208,
819 "src": "696:1:22",
820 "typeDescriptions": {
821 "typeIdentifier": "t_uint256",
822 "typeString": "uint256"
823 }
824 },
825 "functionReturnParameters": 5209,
826 "id": 5232,
827 "nodeType": "Return",
828 "src": "689:8:22"
829 }
830 ]
831 },
832 "documentation": "@dev Multiplies two numbers, throws on overflow.",
833 "id": 5234,
834 "implemented": true,
835 "isConstructor": false,
836 "isDeclaredConst": true,
837 "modifiers": [],
838 "name": "mul",
839 "nodeType": "FunctionDefinition",
840 "parameters": {
841 "id": 5206,
842 "nodeType": "ParameterList",
843 "parameters": [
844 {
845 "constant": false,
846 "id": 5203,
847 "name": "a",
848 "nodeType": "VariableDeclaration",
849 "scope": 5234,
850 "src": "304:9:22",
851 "stateVariable": false,
852 "storageLocation": "default",
853 "typeDescriptions": {
854 "typeIdentifier": "t_uint256",
855 "typeString": "uint256"
856 },
857 "typeName": {
858 "id": 5202,
859 "name": "uint256",
860 "nodeType": "ElementaryTypeName",
861 "src": "304:7:22",
862 "typeDescriptions": {
863 "typeIdentifier": "t_uint256",
864 "typeString": "uint256"
865 }
866 },
867 "value": null,
868 "visibility": "internal"
869 },
870 {
871 "constant": false,
872 "id": 5205,
873 "name": "b",
874 "nodeType": "VariableDeclaration",
875 "scope": 5234,
876 "src": "315:9:22",
877 "stateVariable": false,
878 "storageLocation": "default",
879 "typeDescriptions": {
880 "typeIdentifier": "t_uint256",
881 "typeString": "uint256"
882 },
883 "typeName": {
884 "id": 5204,
885 "name": "uint256",
886 "nodeType": "ElementaryTypeName",
887 "src": "315:7:22",
888 "typeDescriptions": {
889 "typeIdentifier": "t_uint256",
890 "typeString": "uint256"
891 }
892 },
893 "value": null,
894 "visibility": "internal"
895 }
896 ],
897 "src": "303:22:22"
898 },
899 "payable": false,
900 "returnParameters": {
901 "id": 5209,
902 "nodeType": "ParameterList",
903 "parameters": [
904 {
905 "constant": false,
906 "id": 5208,
907 "name": "c",
908 "nodeType": "VariableDeclaration",
909 "scope": 5234,
910 "src": "349:9:22",
911 "stateVariable": false,
912 "storageLocation": "default",
913 "typeDescriptions": {
914 "typeIdentifier": "t_uint256",
915 "typeString": "uint256"
916 },
917 "typeName": {
918 "id": 5207,
919 "name": "uint256",
920 "nodeType": "ElementaryTypeName",
921 "src": "349:7:22",
922 "typeDescriptions": {
923 "typeIdentifier": "t_uint256",
924 "typeString": "uint256"
925 }
926 },
927 "value": null,
928 "visibility": "internal"
929 }
930 ],
931 "src": "348:11:22"
932 },
933 "scope": 5293,
934 "src": "291:413:22",
935 "stateMutability": "pure",
936 "superFunction": null,
937 "visibility": "internal"
938 },
939 {
940 "body": {
941 "id": 5247,
942 "nodeType": "Block",
943 "src": "861:223:22",
944 "statements": [
945 {
946 "expression": {
947 "argumentTypes": null,
948 "commonType": {
949 "typeIdentifier": "t_uint256",
950 "typeString": "uint256"
951 },
952 "id": 5245,
953 "isConstant": false,
954 "isLValue": false,
955 "isPure": false,
956 "lValueRequested": false,
957 "leftExpression": {
958 "argumentTypes": null,
959 "id": 5243,
960 "name": "a",
961 "nodeType": "Identifier",
962 "overloadedDeclarations": [],
963 "referencedDeclaration": 5236,
964 "src": "1072:1:22",
965 "typeDescriptions": {
966 "typeIdentifier": "t_uint256",
967 "typeString": "uint256"
968 }
969 },
970 "nodeType": "BinaryOperation",
971 "operator": "/",
972 "rightExpression": {
973 "argumentTypes": null,
974 "id": 5244,
975 "name": "b",
976 "nodeType": "Identifier",
977 "overloadedDeclarations": [],
978 "referencedDeclaration": 5238,
979 "src": "1076:1:22",
980 "typeDescriptions": {
981 "typeIdentifier": "t_uint256",
982 "typeString": "uint256"
983 }
984 },
985 "src": "1072:5:22",
986 "typeDescriptions": {
987 "typeIdentifier": "t_uint256",
988 "typeString": "uint256"
989 }
990 },
991 "functionReturnParameters": 5242,
992 "id": 5246,
993 "nodeType": "Return",
994 "src": "1065:12:22"
995 }
996 ]
997 },
998 "documentation": "@dev Integer division of two numbers, truncating the quotient.",
999 "id": 5248,
1000 "implemented": true,
1001 "isConstructor": false,
1002 "isDeclaredConst": true,
1003 "modifiers": [],
1004 "name": "div",
1005 "nodeType": "FunctionDefinition",
1006 "parameters": {
1007 "id": 5239,
1008 "nodeType": "ParameterList",
1009 "parameters": [
1010 {
1011 "constant": false,
1012 "id": 5236,
1013 "name": "a",
1014 "nodeType": "VariableDeclaration",
1015 "scope": 5248,
1016 "src": "807:9:22",
1017 "stateVariable": false,
1018 "storageLocation": "default",
1019 "typeDescriptions": {
1020 "typeIdentifier": "t_uint256",
1021 "typeString": "uint256"
1022 },
1023 "typeName": {
1024 "id": 5235,
1025 "name": "uint256",
1026 "nodeType": "ElementaryTypeName",
1027 "src": "807:7:22",
1028 "typeDescriptions": {
1029 "typeIdentifier": "t_uint256",
1030 "typeString": "uint256"
1031 }
1032 },
1033 "value": null,
1034 "visibility": "internal"
1035 },
1036 {
1037 "constant": false,
1038 "id": 5238,
1039 "name": "b",
1040 "nodeType": "VariableDeclaration",
1041 "scope": 5248,
1042 "src": "818:9:22",
1043 "stateVariable": false,
1044 "storageLocation": "default",
1045 "typeDescriptions": {
1046 "typeIdentifier": "t_uint256",
1047 "typeString": "uint256"
1048 },
1049 "typeName": {
1050 "id": 5237,
1051 "name": "uint256",
1052 "nodeType": "ElementaryTypeName",
1053 "src": "818:7:22",
1054 "typeDescriptions": {
1055 "typeIdentifier": "t_uint256",
1056 "typeString": "uint256"
1057 }
1058 },
1059 "value": null,
1060 "visibility": "internal"
1061 }
1062 ],
1063 "src": "806:22:22"
1064 },
1065 "payable": false,
1066 "returnParameters": {
1067 "id": 5242,
1068 "nodeType": "ParameterList",
1069 "parameters": [
1070 {
1071 "constant": false,
1072 "id": 5241,
1073 "name": "",
1074 "nodeType": "VariableDeclaration",
1075 "scope": 5248,
1076 "src": "852:7:22",
1077 "stateVariable": false,
1078 "storageLocation": "default",
1079 "typeDescriptions": {
1080 "typeIdentifier": "t_uint256",
1081 "typeString": "uint256"
1082 },
1083 "typeName": {
1084 "id": 5240,
1085 "name": "uint256",
1086 "nodeType": "ElementaryTypeName",
1087 "src": "852:7:22",
1088 "typeDescriptions": {
1089 "typeIdentifier": "t_uint256",
1090 "typeString": "uint256"
1091 }
1092 },
1093 "value": null,
1094 "visibility": "internal"
1095 }
1096 ],
1097 "src": "851:9:22"
1098 },
1099 "scope": 5293,
1100 "src": "794:290:22",
1101 "stateMutability": "pure",
1102 "superFunction": null,
1103 "visibility": "internal"
1104 },
1105 {
1106 "body": {
1107 "id": 5267,
1108 "nodeType": "Block",
1109 "src": "1271:53:22",
1110 "statements": [
1111 {
1112 "expression": {
1113 "argumentTypes": null,
1114 "arguments": [
1115 {
1116 "argumentTypes": null,
1117 "commonType": {
1118 "typeIdentifier": "t_uint256",
1119 "typeString": "uint256"
1120 },
1121 "id": 5260,
1122 "isConstant": false,
1123 "isLValue": false,
1124 "isPure": false,
1125 "lValueRequested": false,
1126 "leftExpression": {
1127 "argumentTypes": null,
1128 "id": 5258,
1129 "name": "b",
1130 "nodeType": "Identifier",
1131 "overloadedDeclarations": [],
1132 "referencedDeclaration": 5252,
1133 "src": "1288:1:22",
1134 "typeDescriptions": {
1135 "typeIdentifier": "t_uint256",
1136 "typeString": "uint256"
1137 }
1138 },
1139 "nodeType": "BinaryOperation",
1140 "operator": "<=",
1141 "rightExpression": {
1142 "argumentTypes": null,
1143 "id": 5259,
1144 "name": "a",
1145 "nodeType": "Identifier",
1146 "overloadedDeclarations": [],
1147 "referencedDeclaration": 5250,
1148 "src": "1293:1:22",
1149 "typeDescriptions": {
1150 "typeIdentifier": "t_uint256",
1151 "typeString": "uint256"
1152 }
1153 },
1154 "src": "1288:6:22",
1155 "typeDescriptions": {
1156 "typeIdentifier": "t_bool",
1157 "typeString": "bool"
1158 }
1159 }
1160 ],
1161 "expression": {
1162 "argumentTypes": [
1163 {
1164 "typeIdentifier": "t_bool",
1165 "typeString": "bool"
1166 }
1167 ],
1168 "id": 5257,
1169 "name": "assert",
1170 "nodeType": "Identifier",
1171 "overloadedDeclarations": [],
1172 "referencedDeclaration": 12081,
1173 "src": "1281:6:22",
1174 "typeDescriptions": {
1175 "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
1176 "typeString": "function (bool) pure"
1177 }
1178 },
1179 "id": 5261,
1180 "isConstant": false,
1181 "isLValue": false,
1182 "isPure": false,
1183 "kind": "functionCall",
1184 "lValueRequested": false,
1185 "names": [],
1186 "nodeType": "FunctionCall",
1187 "src": "1281:14:22",
1188 "typeDescriptions": {
1189 "typeIdentifier": "t_tuple$__$",
1190 "typeString": "tuple()"
1191 }
1192 },
1193 "id": 5262,
1194 "nodeType": "ExpressionStatement",
1195 "src": "1281:14:22"
1196 },
1197 {
1198 "expression": {
1199 "argumentTypes": null,
1200 "commonType": {
1201 "typeIdentifier": "t_uint256",
1202 "typeString": "uint256"
1203 },
1204 "id": 5265,
1205 "isConstant": false,
1206 "isLValue": false,
1207 "isPure": false,
1208 "lValueRequested": false,
1209 "leftExpression": {
1210 "argumentTypes": null,
1211 "id": 5263,
1212 "name": "a",
1213 "nodeType": "Identifier",
1214 "overloadedDeclarations": [],
1215 "referencedDeclaration": 5250,
1216 "src": "1312:1:22",
1217 "typeDescriptions": {
1218 "typeIdentifier": "t_uint256",
1219 "typeString": "uint256"
1220 }
1221 },
1222 "nodeType": "BinaryOperation",
1223 "operator": "-",
1224 "rightExpression": {
1225 "argumentTypes": null,
1226 "id": 5264,
1227 "name": "b",
1228 "nodeType": "Identifier",
1229 "overloadedDeclarations": [],
1230 "referencedDeclaration": 5252,
1231 "src": "1316:1:22",
1232 "typeDescriptions": {
1233 "typeIdentifier": "t_uint256",
1234 "typeString": "uint256"
1235 }
1236 },
1237 "src": "1312:5:22",
1238 "typeDescriptions": {
1239 "typeIdentifier": "t_uint256",
1240 "typeString": "uint256"
1241 }
1242 },
1243 "functionReturnParameters": 5256,
1244 "id": 5266,
1245 "nodeType": "Return",
1246 "src": "1305:12:22"
1247 }
1248 ]
1249 },
1250 "documentation": "@dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).",
1251 "id": 5268,
1252 "implemented": true,
1253 "isConstructor": false,
1254 "isDeclaredConst": true,
1255 "modifiers": [],
1256 "name": "sub",
1257 "nodeType": "FunctionDefinition",
1258 "parameters": {
1259 "id": 5253,
1260 "nodeType": "ParameterList",
1261 "parameters": [
1262 {
1263 "constant": false,
1264 "id": 5250,
1265 "name": "a",
1266 "nodeType": "VariableDeclaration",
1267 "scope": 5268,
1268 "src": "1217:9:22",
1269 "stateVariable": false,
1270 "storageLocation": "default",
1271 "typeDescriptions": {
1272 "typeIdentifier": "t_uint256",
1273 "typeString": "uint256"
1274 },
1275 "typeName": {
1276 "id": 5249,
1277 "name": "uint256",
1278 "nodeType": "ElementaryTypeName",
1279 "src": "1217:7:22",
1280 "typeDescriptions": {
1281 "typeIdentifier": "t_uint256",
1282 "typeString": "uint256"
1283 }
1284 },
1285 "value": null,
1286 "visibility": "internal"
1287 },
1288 {
1289 "constant": false,
1290 "id": 5252,
1291 "name": "b",
1292 "nodeType": "VariableDeclaration",
1293 "scope": 5268,
1294 "src": "1228:9:22",
1295 "stateVariable": false,
1296 "storageLocation": "default",
1297 "typeDescriptions": {
1298 "typeIdentifier": "t_uint256",
1299 "typeString": "uint256"
1300 },
1301 "typeName": {
1302 "id": 5251,
1303 "name": "uint256",
1304 "nodeType": "ElementaryTypeName",
1305 "src": "1228:7:22",
1306 "typeDescriptions": {
1307 "typeIdentifier": "t_uint256",
1308 "typeString": "uint256"
1309 }
1310 },
1311 "value": null,
1312 "visibility": "internal"
1313 }
1314 ],
1315 "src": "1216:22:22"
1316 },
1317 "payable": false,
1318 "returnParameters": {
1319 "id": 5256,
1320 "nodeType": "ParameterList",
1321 "parameters": [
1322 {
1323 "constant": false,
1324 "id": 5255,
1325 "name": "",
1326 "nodeType": "VariableDeclaration",
1327 "scope": 5268,
1328 "src": "1262:7:22",
1329 "stateVariable": false,
1330 "storageLocation": "default",
1331 "typeDescriptions": {
1332 "typeIdentifier": "t_uint256",
1333 "typeString": "uint256"
1334 },
1335 "typeName": {
1336 "id": 5254,
1337 "name": "uint256",
1338 "nodeType": "ElementaryTypeName",
1339 "src": "1262:7:22",
1340 "typeDescriptions": {
1341 "typeIdentifier": "t_uint256",
1342 "typeString": "uint256"
1343 }
1344 },
1345 "value": null,
1346 "visibility": "internal"
1347 }
1348 ],
1349 "src": "1261:9:22"
1350 },
1351 "scope": 5293,
1352 "src": "1204:120:22",
1353 "stateMutability": "pure",
1354 "superFunction": null,
1355 "visibility": "internal"
1356 },
1357 {
1358 "body": {
1359 "id": 5291,
1360 "nodeType": "Block",
1361 "src": "1463:68:22",
1362 "statements": [
1363 {
1364 "expression": {
1365 "argumentTypes": null,
1366 "id": 5281,
1367 "isConstant": false,
1368 "isLValue": false,
1369 "isPure": false,
1370 "lValueRequested": false,
1371 "leftHandSide": {
1372 "argumentTypes": null,
1373 "id": 5277,
1374 "name": "c",
1375 "nodeType": "Identifier",
1376 "overloadedDeclarations": [],
1377 "referencedDeclaration": 5275,
1378 "src": "1473:1:22",
1379 "typeDescriptions": {
1380 "typeIdentifier": "t_uint256",
1381 "typeString": "uint256"
1382 }
1383 },
1384 "nodeType": "Assignment",
1385 "operator": "=",
1386 "rightHandSide": {
1387 "argumentTypes": null,
1388 "commonType": {
1389 "typeIdentifier": "t_uint256",
1390 "typeString": "uint256"
1391 },
1392 "id": 5280,
1393 "isConstant": false,
1394 "isLValue": false,
1395 "isPure": false,
1396 "lValueRequested": false,
1397 "leftExpression": {
1398 "argumentTypes": null,
1399 "id": 5278,
1400 "name": "a",
1401 "nodeType": "Identifier",
1402 "overloadedDeclarations": [],
1403 "referencedDeclaration": 5270,
1404 "src": "1477:1:22",
1405 "typeDescriptions": {
1406 "typeIdentifier": "t_uint256",
1407 "typeString": "uint256"
1408 }
1409 },
1410 "nodeType": "BinaryOperation",
1411 "operator": "+",
1412 "rightExpression": {
1413 "argumentTypes": null,
1414 "id": 5279,
1415 "name": "b",
1416 "nodeType": "Identifier",
1417 "overloadedDeclarations": [],
1418 "referencedDeclaration": 5272,
1419 "src": "1481:1:22",
1420 "typeDescriptions": {
1421 "typeIdentifier": "t_uint256",
1422 "typeString": "uint256"
1423 }
1424 },
1425 "src": "1477:5:22",
1426 "typeDescriptions": {
1427 "typeIdentifier": "t_uint256",
1428 "typeString": "uint256"
1429 }
1430 },
1431 "src": "1473:9:22",
1432 "typeDescriptions": {
1433 "typeIdentifier": "t_uint256",
1434 "typeString": "uint256"
1435 }
1436 },
1437 "id": 5282,
1438 "nodeType": "ExpressionStatement",
1439 "src": "1473:9:22"
1440 },
1441 {
1442 "expression": {
1443 "argumentTypes": null,
1444 "arguments": [
1445 {
1446 "argumentTypes": null,
1447 "commonType": {
1448 "typeIdentifier": "t_uint256",
1449 "typeString": "uint256"
1450 },
1451 "id": 5286,
1452 "isConstant": false,
1453 "isLValue": false,
1454 "isPure": false,
1455 "lValueRequested": false,
1456 "leftExpression": {
1457 "argumentTypes": null,
1458 "id": 5284,
1459 "name": "c",
1460 "nodeType": "Identifier",
1461 "overloadedDeclarations": [],
1462 "referencedDeclaration": 5275,
1463 "src": "1499:1:22",
1464 "typeDescriptions": {
1465 "typeIdentifier": "t_uint256",
1466 "typeString": "uint256"
1467 }
1468 },
1469 "nodeType": "BinaryOperation",
1470 "operator": ">=",
1471 "rightExpression": {
1472 "argumentTypes": null,
1473 "id": 5285,
1474 "name": "a",
1475 "nodeType": "Identifier",
1476 "overloadedDeclarations": [],
1477 "referencedDeclaration": 5270,
1478 "src": "1504:1:22",
1479 "typeDescriptions": {
1480 "typeIdentifier": "t_uint256",
1481 "typeString": "uint256"
1482 }
1483 },
1484 "src": "1499:6:22",
1485 "typeDescriptions": {
1486 "typeIdentifier": "t_bool",
1487 "typeString": "bool"
1488 }
1489 }
1490 ],
1491 "expression": {
1492 "argumentTypes": [
1493 {
1494 "typeIdentifier": "t_bool",
1495 "typeString": "bool"
1496 }
1497 ],
1498 "id": 5283,
1499 "name": "assert",
1500 "nodeType": "Identifier",
1501 "overloadedDeclarations": [],
1502 "referencedDeclaration": 12081,
1503 "src": "1492:6:22",
1504 "typeDescriptions": {
1505 "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
1506 "typeString": "function (bool) pure"
1507 }
1508 },
1509 "id": 5287,
1510 "isConstant": false,
1511 "isLValue": false,
1512 "isPure": false,
1513 "kind": "functionCall",
1514 "lValueRequested": false,
1515 "names": [],
1516 "nodeType": "FunctionCall",
1517 "src": "1492:14:22",
1518 "typeDescriptions": {
1519 "typeIdentifier": "t_tuple$__$",
1520 "typeString": "tuple()"
1521 }
1522 },
1523 "id": 5288,
1524 "nodeType": "ExpressionStatement",
1525 "src": "1492:14:22"
1526 },
1527 {
1528 "expression": {
1529 "argumentTypes": null,
1530 "id": 5289,
1531 "name": "c",
1532 "nodeType": "Identifier",
1533 "overloadedDeclarations": [],
1534 "referencedDeclaration": 5275,
1535 "src": "1523:1:22",
1536 "typeDescriptions": {
1537 "typeIdentifier": "t_uint256",
1538 "typeString": "uint256"
1539 }
1540 },
1541 "functionReturnParameters": 5276,
1542 "id": 5290,
1543 "nodeType": "Return",
1544 "src": "1516:8:22"
1545 }
1546 ]
1547 },
1548 "documentation": "@dev Adds two numbers, throws on overflow.",
1549 "id": 5292,
1550 "implemented": true,
1551 "isConstructor": false,
1552 "isDeclaredConst": true,
1553 "modifiers": [],
1554 "name": "add",
1555 "nodeType": "FunctionDefinition",
1556 "parameters": {
1557 "id": 5273,
1558 "nodeType": "ParameterList",
1559 "parameters": [
1560 {
1561 "constant": false,
1562 "id": 5270,
1563 "name": "a",
1564 "nodeType": "VariableDeclaration",
1565 "scope": 5292,
1566 "src": "1407:9:22",
1567 "stateVariable": false,
1568 "storageLocation": "default",
1569 "typeDescriptions": {
1570 "typeIdentifier": "t_uint256",
1571 "typeString": "uint256"
1572 },
1573 "typeName": {
1574 "id": 5269,
1575 "name": "uint256",
1576 "nodeType": "ElementaryTypeName",
1577 "src": "1407:7:22",
1578 "typeDescriptions": {
1579 "typeIdentifier": "t_uint256",
1580 "typeString": "uint256"
1581 }
1582 },
1583 "value": null,
1584 "visibility": "internal"
1585 },
1586 {
1587 "constant": false,
1588 "id": 5272,
1589 "name": "b",
1590 "nodeType": "VariableDeclaration",
1591 "scope": 5292,
1592 "src": "1418:9:22",
1593 "stateVariable": false,
1594 "storageLocation": "default",
1595 "typeDescriptions": {
1596 "typeIdentifier": "t_uint256",
1597 "typeString": "uint256"
1598 },
1599 "typeName": {
1600 "id": 5271,
1601 "name": "uint256",
1602 "nodeType": "ElementaryTypeName",
1603 "src": "1418:7:22",
1604 "typeDescriptions": {
1605 "typeIdentifier": "t_uint256",
1606 "typeString": "uint256"
1607 }
1608 },
1609 "value": null,
1610 "visibility": "internal"
1611 }
1612 ],
1613 "src": "1406:22:22"
1614 },
1615 "payable": false,
1616 "returnParameters": {
1617 "id": 5276,
1618 "nodeType": "ParameterList",
1619 "parameters": [
1620 {
1621 "constant": false,
1622 "id": 5275,
1623 "name": "c",
1624 "nodeType": "VariableDeclaration",
1625 "scope": 5292,
1626 "src": "1452:9:22",
1627 "stateVariable": false,
1628 "storageLocation": "default",
1629 "typeDescriptions": {
1630 "typeIdentifier": "t_uint256",
1631 "typeString": "uint256"
1632 },
1633 "typeName": {
1634 "id": 5274,
1635 "name": "uint256",
1636 "nodeType": "ElementaryTypeName",
1637 "src": "1452:7:22",
1638 "typeDescriptions": {
1639 "typeIdentifier": "t_uint256",
1640 "typeString": "uint256"
1641 }
1642 },
1643 "value": null,
1644 "visibility": "internal"
1645 }
1646 ],
1647 "src": "1451:11:22"
1648 },
1649 "scope": 5293,
1650 "src": "1394:137:22",
1651 "stateMutability": "pure",
1652 "superFunction": null,
1653 "visibility": "internal"
1654 }
1655 ],
1656 "scope": 5882,
1657 "src": "197:1336:22"
1658 },
1659 {
1660 "baseContracts": [
1661 {
1662 "arguments": null,
1663 "baseName": {
1664 "contractScope": null,
1665 "id": 5294,
1666 "name": "FactoryTokenInterface",
1667 "nodeType": "UserDefinedTypeName",
1668 "referencedDeclaration": 5198,
1669 "src": "1596:21:22",
1670 "typeDescriptions": {
1671 "typeIdentifier": "t_contract$_FactoryTokenInterface_$5198",
1672 "typeString": "contract FactoryTokenInterface"
1673 }
1674 },
1675 "id": 5295,
1676 "nodeType": "InheritanceSpecifier",
1677 "src": "1596:21:22"
1678 }
1679 ],
1680 "contractDependencies": [
1681 203,
1682 5198
1683 ],
1684 "contractKind": "contract",
1685 "documentation": null,
1686 "fullyImplemented": true,
1687 "id": 5881,
1688 "linearizedBaseContracts": [
1689 5881,
1690 5198,
1691 203
1692 ],
1693 "name": "FactoryToken",
1694 "nodeType": "ContractDefinition",
1695 "nodes": [
1696 {
1697 "id": 5298,
1698 "libraryName": {
1699 "contractScope": null,
1700 "id": 5296,
1701 "name": "SafeMath",
1702 "nodeType": "UserDefinedTypeName",
1703 "referencedDeclaration": 5293,
1704 "src": "1630:8:22",
1705 "typeDescriptions": {
1706 "typeIdentifier": "t_contract$_SafeMath_$5293",
1707 "typeString": "library SafeMath"
1708 }
1709 },
1710 "nodeType": "UsingForDirective",
1711 "src": "1624:27:22",
1712 "typeName": {
1713 "id": 5297,
1714 "name": "uint256",
1715 "nodeType": "ElementaryTypeName",
1716 "src": "1643:7:22",
1717 "typeDescriptions": {
1718 "typeIdentifier": "t_uint256",
1719 "typeString": "uint256"
1720 }
1721 }
1722 },
1723 {
1724 "constant": false,
1725 "id": 5300,
1726 "name": "name",
1727 "nodeType": "VariableDeclaration",
1728 "scope": 5881,
1729 "src": "1657:18:22",
1730 "stateVariable": true,
1731 "storageLocation": "default",
1732 "typeDescriptions": {
1733 "typeIdentifier": "t_string_storage",
1734 "typeString": "string"
1735 },
1736 "typeName": {
1737 "id": 5299,
1738 "name": "string",
1739 "nodeType": "ElementaryTypeName",
1740 "src": "1657:6:22",
1741 "typeDescriptions": {
1742 "typeIdentifier": "t_string_storage_ptr",
1743 "typeString": "string"
1744 }
1745 },
1746 "value": null,
1747 "visibility": "public"
1748 },
1749 {
1750 "constant": false,
1751 "id": 5302,
1752 "name": "symbol",
1753 "nodeType": "VariableDeclaration",
1754 "scope": 5881,
1755 "src": "1681:20:22",
1756 "stateVariable": true,
1757 "storageLocation": "default",
1758 "typeDescriptions": {
1759 "typeIdentifier": "t_string_storage",
1760 "typeString": "string"
1761 },
1762 "typeName": {
1763 "id": 5301,
1764 "name": "string",
1765 "nodeType": "ElementaryTypeName",
1766 "src": "1681:6:22",
1767 "typeDescriptions": {
1768 "typeIdentifier": "t_string_storage_ptr",
1769 "typeString": "string"
1770 }
1771 },
1772 "value": null,
1773 "visibility": "public"
1774 },
1775 {
1776 "constant": false,
1777 "id": 5305,
1778 "name": "decimals",
1779 "nodeType": "VariableDeclaration",
1780 "scope": 5881,
1781 "src": "1707:25:22",
1782 "stateVariable": true,
1783 "storageLocation": "default",
1784 "typeDescriptions": {
1785 "typeIdentifier": "t_uint8",
1786 "typeString": "uint8"
1787 },
1788 "typeName": {
1789 "id": 5303,
1790 "name": "uint8",
1791 "nodeType": "ElementaryTypeName",
1792 "src": "1707:5:22",
1793 "typeDescriptions": {
1794 "typeIdentifier": "t_uint8",
1795 "typeString": "uint8"
1796 }
1797 },
1798 "value": {
1799 "argumentTypes": null,
1800 "hexValue": "33",
1801 "id": 5304,
1802 "isConstant": false,
1803 "isLValue": false,
1804 "isPure": true,
1805 "kind": "number",
1806 "lValueRequested": false,
1807 "nodeType": "Literal",
1808 "src": "1731:1:22",
1809 "subdenomination": null,
1810 "typeDescriptions": {
1811 "typeIdentifier": "t_rational_3_by_1",
1812 "typeString": "int_const 3"
1813 },
1814 "value": "3"
1815 },
1816 "visibility": "public"
1817 },
1818 {
1819 "constant": false,
1820 "id": 5307,
1821 "name": "totalSupply_",
1822 "nodeType": "VariableDeclaration",
1823 "scope": 5881,
1824 "src": "1738:20:22",
1825 "stateVariable": true,
1826 "storageLocation": "default",
1827 "typeDescriptions": {
1828 "typeIdentifier": "t_uint256",
1829 "typeString": "uint256"
1830 },
1831 "typeName": {
1832 "id": 5306,
1833 "name": "uint256",
1834 "nodeType": "ElementaryTypeName",
1835 "src": "1738:7:22",
1836 "typeDescriptions": {
1837 "typeIdentifier": "t_uint256",
1838 "typeString": "uint256"
1839 }
1840 },
1841 "value": null,
1842 "visibility": "internal"
1843 },
1844 {
1845 "constant": false,
1846 "id": 5313,
1847 "name": "allowed",
1848 "nodeType": "VariableDeclaration",
1849 "scope": 5881,
1850 "src": "1765:64:22",
1851 "stateVariable": true,
1852 "storageLocation": "default",
1853 "typeDescriptions": {
1854 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
1855 "typeString": "mapping(address => mapping(address => uint256))"
1856 },
1857 "typeName": {
1858 "id": 5312,
1859 "keyType": {
1860 "id": 5308,
1861 "name": "address",
1862 "nodeType": "ElementaryTypeName",
1863 "src": "1773:7:22",
1864 "typeDescriptions": {
1865 "typeIdentifier": "t_address",
1866 "typeString": "address"
1867 }
1868 },
1869 "nodeType": "Mapping",
1870 "src": "1765:47:22",
1871 "typeDescriptions": {
1872 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
1873 "typeString": "mapping(address => mapping(address => uint256))"
1874 },
1875 "valueType": {
1876 "id": 5311,
1877 "keyType": {
1878 "id": 5309,
1879 "name": "address",
1880 "nodeType": "ElementaryTypeName",
1881 "src": "1792:7:22",
1882 "typeDescriptions": {
1883 "typeIdentifier": "t_address",
1884 "typeString": "address"
1885 }
1886 },
1887 "nodeType": "Mapping",
1888 "src": "1784:27:22",
1889 "typeDescriptions": {
1890 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
1891 "typeString": "mapping(address => uint256)"
1892 },
1893 "valueType": {
1894 "id": 5310,
1895 "name": "uint256",
1896 "nodeType": "ElementaryTypeName",
1897 "src": "1803:7:22",
1898 "typeDescriptions": {
1899 "typeIdentifier": "t_uint256",
1900 "typeString": "uint256"
1901 }
1902 }
1903 }
1904 },
1905 "value": null,
1906 "visibility": "internal"
1907 },
1908 {
1909 "constant": false,
1910 "id": 5317,
1911 "name": "balances",
1912 "nodeType": "VariableDeclaration",
1913 "scope": 5881,
1914 "src": "1835:36:22",
1915 "stateVariable": true,
1916 "storageLocation": "default",
1917 "typeDescriptions": {
1918 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
1919 "typeString": "mapping(address => uint256)"
1920 },
1921 "typeName": {
1922 "id": 5316,
1923 "keyType": {
1924 "id": 5314,
1925 "name": "address",
1926 "nodeType": "ElementaryTypeName",
1927 "src": "1843:7:22",
1928 "typeDescriptions": {
1929 "typeIdentifier": "t_address",
1930 "typeString": "address"
1931 }
1932 },
1933 "nodeType": "Mapping",
1934 "src": "1835:27:22",
1935 "typeDescriptions": {
1936 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
1937 "typeString": "mapping(address => uint256)"
1938 },
1939 "valueType": {
1940 "id": 5315,
1941 "name": "uint256",
1942 "nodeType": "ElementaryTypeName",
1943 "src": "1854:7:22",
1944 "typeDescriptions": {
1945 "typeIdentifier": "t_uint256",
1946 "typeString": "uint256"
1947 }
1948 }
1949 },
1950 "value": null,
1951 "visibility": "internal"
1952 },
1953 {
1954 "constant": false,
1955 "id": 5320,
1956 "name": "mintingFinished",
1957 "nodeType": "VariableDeclaration",
1958 "scope": 5881,
1959 "src": "1878:35:22",
1960 "stateVariable": true,
1961 "storageLocation": "default",
1962 "typeDescriptions": {
1963 "typeIdentifier": "t_bool",
1964 "typeString": "bool"
1965 },
1966 "typeName": {
1967 "id": 5318,
1968 "name": "bool",
1969 "nodeType": "ElementaryTypeName",
1970 "src": "1878:4:22",
1971 "typeDescriptions": {
1972 "typeIdentifier": "t_bool",
1973 "typeString": "bool"
1974 }
1975 },
1976 "value": {
1977 "argumentTypes": null,
1978 "hexValue": "66616c7365",
1979 "id": 5319,
1980 "isConstant": false,
1981 "isLValue": false,
1982 "isPure": true,
1983 "kind": "bool",
1984 "lValueRequested": false,
1985 "nodeType": "Literal",
1986 "src": "1908:5:22",
1987 "subdenomination": null,
1988 "typeDescriptions": {
1989 "typeIdentifier": "t_bool",
1990 "typeString": "bool"
1991 },
1992 "value": "false"
1993 },
1994 "visibility": "public"
1995 },
1996 {
1997 "anonymous": false,
1998 "documentation": null,
1999 "id": 5326,
2000 "name": "Burn",
2001 "nodeType": "EventDefinition",
2002 "parameters": {
2003 "id": 5325,
2004 "nodeType": "ParameterList",
2005 "parameters": [
2006 {
2007 "constant": false,
2008 "id": 5322,
2009 "indexed": true,
2010 "name": "burner",
2011 "nodeType": "VariableDeclaration",
2012 "scope": 5326,
2013 "src": "1931:22:22",
2014 "stateVariable": false,
2015 "storageLocation": "default",
2016 "typeDescriptions": {
2017 "typeIdentifier": "t_address",
2018 "typeString": "address"
2019 },
2020 "typeName": {
2021 "id": 5321,
2022 "name": "address",
2023 "nodeType": "ElementaryTypeName",
2024 "src": "1931:7:22",
2025 "typeDescriptions": {
2026 "typeIdentifier": "t_address",
2027 "typeString": "address"
2028 }
2029 },
2030 "value": null,
2031 "visibility": "internal"
2032 },
2033 {
2034 "constant": false,
2035 "id": 5324,
2036 "indexed": false,
2037 "name": "value",
2038 "nodeType": "VariableDeclaration",
2039 "scope": 5326,
2040 "src": "1955:13:22",
2041 "stateVariable": false,
2042 "storageLocation": "default",
2043 "typeDescriptions": {
2044 "typeIdentifier": "t_uint256",
2045 "typeString": "uint256"
2046 },
2047 "typeName": {
2048 "id": 5323,
2049 "name": "uint256",
2050 "nodeType": "ElementaryTypeName",
2051 "src": "1955:7:22",
2052 "typeDescriptions": {
2053 "typeIdentifier": "t_uint256",
2054 "typeString": "uint256"
2055 }
2056 },
2057 "value": null,
2058 "visibility": "internal"
2059 }
2060 ],
2061 "src": "1930:39:22"
2062 },
2063 "src": "1920:50:22"
2064 },
2065 {
2066 "anonymous": false,
2067 "documentation": null,
2068 "id": 5334,
2069 "name": "Transfer",
2070 "nodeType": "EventDefinition",
2071 "parameters": {
2072 "id": 5333,
2073 "nodeType": "ParameterList",
2074 "parameters": [
2075 {
2076 "constant": false,
2077 "id": 5328,
2078 "indexed": false,
2079 "name": "_from",
2080 "nodeType": "VariableDeclaration",
2081 "scope": 5334,
2082 "src": "1990:13:22",
2083 "stateVariable": false,
2084 "storageLocation": "default",
2085 "typeDescriptions": {
2086 "typeIdentifier": "t_address",
2087 "typeString": "address"
2088 },
2089 "typeName": {
2090 "id": 5327,
2091 "name": "address",
2092 "nodeType": "ElementaryTypeName",
2093 "src": "1990:7:22",
2094 "typeDescriptions": {
2095 "typeIdentifier": "t_address",
2096 "typeString": "address"
2097 }
2098 },
2099 "value": null,
2100 "visibility": "internal"
2101 },
2102 {
2103 "constant": false,
2104 "id": 5330,
2105 "indexed": false,
2106 "name": "_to",
2107 "nodeType": "VariableDeclaration",
2108 "scope": 5334,
2109 "src": "2005:11:22",
2110 "stateVariable": false,
2111 "storageLocation": "default",
2112 "typeDescriptions": {
2113 "typeIdentifier": "t_address",
2114 "typeString": "address"
2115 },
2116 "typeName": {
2117 "id": 5329,
2118 "name": "address",
2119 "nodeType": "ElementaryTypeName",
2120 "src": "2005:7:22",
2121 "typeDescriptions": {
2122 "typeIdentifier": "t_address",
2123 "typeString": "address"
2124 }
2125 },
2126 "value": null,
2127 "visibility": "internal"
2128 },
2129 {
2130 "constant": false,
2131 "id": 5332,
2132 "indexed": false,
2133 "name": "_amount",
2134 "nodeType": "VariableDeclaration",
2135 "scope": 5334,
2136 "src": "2018:15:22",
2137 "stateVariable": false,
2138 "storageLocation": "default",
2139 "typeDescriptions": {
2140 "typeIdentifier": "t_uint256",
2141 "typeString": "uint256"
2142 },
2143 "typeName": {
2144 "id": 5331,
2145 "name": "uint256",
2146 "nodeType": "ElementaryTypeName",
2147 "src": "2018:7:22",
2148 "typeDescriptions": {
2149 "typeIdentifier": "t_uint256",
2150 "typeString": "uint256"
2151 }
2152 },
2153 "value": null,
2154 "visibility": "internal"
2155 }
2156 ],
2157 "src": "1989:45:22"
2158 },
2159 "src": "1975:60:22"
2160 },
2161 {
2162 "anonymous": false,
2163 "documentation": null,
2164 "id": 5340,
2165 "name": "Mint",
2166 "nodeType": "EventDefinition",
2167 "parameters": {
2168 "id": 5339,
2169 "nodeType": "ParameterList",
2170 "parameters": [
2171 {
2172 "constant": false,
2173 "id": 5336,
2174 "indexed": true,
2175 "name": "to",
2176 "nodeType": "VariableDeclaration",
2177 "scope": 5340,
2178 "src": "2051:18:22",
2179 "stateVariable": false,
2180 "storageLocation": "default",
2181 "typeDescriptions": {
2182 "typeIdentifier": "t_address",
2183 "typeString": "address"
2184 },
2185 "typeName": {
2186 "id": 5335,
2187 "name": "address",
2188 "nodeType": "ElementaryTypeName",
2189 "src": "2051:7:22",
2190 "typeDescriptions": {
2191 "typeIdentifier": "t_address",
2192 "typeString": "address"
2193 }
2194 },
2195 "value": null,
2196 "visibility": "internal"
2197 },
2198 {
2199 "constant": false,
2200 "id": 5338,
2201 "indexed": false,
2202 "name": "amount",
2203 "nodeType": "VariableDeclaration",
2204 "scope": 5340,
2205 "src": "2071:14:22",
2206 "stateVariable": false,
2207 "storageLocation": "default",
2208 "typeDescriptions": {
2209 "typeIdentifier": "t_uint256",
2210 "typeString": "uint256"
2211 },
2212 "typeName": {
2213 "id": 5337,
2214 "name": "uint256",
2215 "nodeType": "ElementaryTypeName",
2216 "src": "2071:7:22",
2217 "typeDescriptions": {
2218 "typeIdentifier": "t_uint256",
2219 "typeString": "uint256"
2220 }
2221 },
2222 "value": null,
2223 "visibility": "internal"
2224 }
2225 ],
2226 "src": "2050:36:22"
2227 },
2228 "src": "2040:47:22"
2229 },
2230 {
2231 "anonymous": false,
2232 "documentation": null,
2233 "id": 5342,
2234 "name": "MintFinished",
2235 "nodeType": "EventDefinition",
2236 "parameters": {
2237 "id": 5341,
2238 "nodeType": "ParameterList",
2239 "parameters": [],
2240 "src": "2110:2:22"
2241 },
2242 "src": "2092:21:22"
2243 },
2244 {
2245 "anonymous": false,
2246 "documentation": null,
2247 "id": 5350,
2248 "name": "Approval",
2249 "nodeType": "EventDefinition",
2250 "parameters": {
2251 "id": 5349,
2252 "nodeType": "ParameterList",
2253 "parameters": [
2254 {
2255 "constant": false,
2256 "id": 5344,
2257 "indexed": false,
2258 "name": "_from",
2259 "nodeType": "VariableDeclaration",
2260 "scope": 5350,
2261 "src": "2133:13:22",
2262 "stateVariable": false,
2263 "storageLocation": "default",
2264 "typeDescriptions": {
2265 "typeIdentifier": "t_address",
2266 "typeString": "address"
2267 },
2268 "typeName": {
2269 "id": 5343,
2270 "name": "address",
2271 "nodeType": "ElementaryTypeName",
2272 "src": "2133:7:22",
2273 "typeDescriptions": {
2274 "typeIdentifier": "t_address",
2275 "typeString": "address"
2276 }
2277 },
2278 "value": null,
2279 "visibility": "internal"
2280 },
2281 {
2282 "constant": false,
2283 "id": 5346,
2284 "indexed": false,
2285 "name": "_spender",
2286 "nodeType": "VariableDeclaration",
2287 "scope": 5350,
2288 "src": "2148:16:22",
2289 "stateVariable": false,
2290 "storageLocation": "default",
2291 "typeDescriptions": {
2292 "typeIdentifier": "t_address",
2293 "typeString": "address"
2294 },
2295 "typeName": {
2296 "id": 5345,
2297 "name": "address",
2298 "nodeType": "ElementaryTypeName",
2299 "src": "2148:7:22",
2300 "typeDescriptions": {
2301 "typeIdentifier": "t_address",
2302 "typeString": "address"
2303 }
2304 },
2305 "value": null,
2306 "visibility": "internal"
2307 },
2308 {
2309 "constant": false,
2310 "id": 5348,
2311 "indexed": false,
2312 "name": "_value",
2313 "nodeType": "VariableDeclaration",
2314 "scope": 5350,
2315 "src": "2166:14:22",
2316 "stateVariable": false,
2317 "storageLocation": "default",
2318 "typeDescriptions": {
2319 "typeIdentifier": "t_uint256",
2320 "typeString": "uint256"
2321 },
2322 "typeName": {
2323 "id": 5347,
2324 "name": "uint256",
2325 "nodeType": "ElementaryTypeName",
2326 "src": "2166:7:22",
2327 "typeDescriptions": {
2328 "typeIdentifier": "t_uint256",
2329 "typeString": "uint256"
2330 }
2331 },
2332 "value": null,
2333 "visibility": "internal"
2334 }
2335 ],
2336 "src": "2132:49:22"
2337 },
2338 "src": "2118:64:22"
2339 },
2340 {
2341 "body": {
2342 "id": 5358,
2343 "nodeType": "Block",
2344 "src": "2207:53:22",
2345 "statements": [
2346 {
2347 "expression": {
2348 "argumentTypes": null,
2349 "arguments": [
2350 {
2351 "argumentTypes": null,
2352 "id": 5354,
2353 "isConstant": false,
2354 "isLValue": false,
2355 "isPure": false,
2356 "lValueRequested": false,
2357 "nodeType": "UnaryOperation",
2358 "operator": "!",
2359 "prefix": true,
2360 "src": "2225:16:22",
2361 "subExpression": {
2362 "argumentTypes": null,
2363 "id": 5353,
2364 "name": "mintingFinished",
2365 "nodeType": "Identifier",
2366 "overloadedDeclarations": [],
2367 "referencedDeclaration": 5320,
2368 "src": "2226:15:22",
2369 "typeDescriptions": {
2370 "typeIdentifier": "t_bool",
2371 "typeString": "bool"
2372 }
2373 },
2374 "typeDescriptions": {
2375 "typeIdentifier": "t_bool",
2376 "typeString": "bool"
2377 }
2378 }
2379 ],
2380 "expression": {
2381 "argumentTypes": [
2382 {
2383 "typeIdentifier": "t_bool",
2384 "typeString": "bool"
2385 }
2386 ],
2387 "id": 5352,
2388 "name": "require",
2389 "nodeType": "Identifier",
2390 "overloadedDeclarations": [
2391 12095,
2392 12096
2393 ],
2394 "referencedDeclaration": 12095,
2395 "src": "2217:7:22",
2396 "typeDescriptions": {
2397 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
2398 "typeString": "function (bool) pure"
2399 }
2400 },
2401 "id": 5355,
2402 "isConstant": false,
2403 "isLValue": false,
2404 "isPure": false,
2405 "kind": "functionCall",
2406 "lValueRequested": false,
2407 "names": [],
2408 "nodeType": "FunctionCall",
2409 "src": "2217:25:22",
2410 "typeDescriptions": {
2411 "typeIdentifier": "t_tuple$__$",
2412 "typeString": "tuple()"
2413 }
2414 },
2415 "id": 5356,
2416 "nodeType": "ExpressionStatement",
2417 "src": "2217:25:22"
2418 },
2419 {
2420 "id": 5357,
2421 "nodeType": "PlaceholderStatement",
2422 "src": "2252:1:22"
2423 }
2424 ]
2425 },
2426 "documentation": null,
2427 "id": 5359,
2428 "name": "canMint",
2429 "nodeType": "ModifierDefinition",
2430 "parameters": {
2431 "id": 5351,
2432 "nodeType": "ParameterList",
2433 "parameters": [],
2434 "src": "2204:2:22"
2435 },
2436 "src": "2188:72:22",
2437 "visibility": "internal"
2438 },
2439 {
2440 "body": {
2441 "id": 5369,
2442 "nodeType": "Block",
2443 "src": "2295:56:22",
2444 "statements": [
2445 {
2446 "expression": {
2447 "argumentTypes": null,
2448 "arguments": [
2449 {
2450 "argumentTypes": null,
2451 "commonType": {
2452 "typeIdentifier": "t_address",
2453 "typeString": "address"
2454 },
2455 "id": 5365,
2456 "isConstant": false,
2457 "isLValue": false,
2458 "isPure": false,
2459 "lValueRequested": false,
2460 "leftExpression": {
2461 "argumentTypes": null,
2462 "expression": {
2463 "argumentTypes": null,
2464 "id": 5362,
2465 "name": "msg",
2466 "nodeType": "Identifier",
2467 "overloadedDeclarations": [],
2468 "referencedDeclaration": 12092,
2469 "src": "2313:3:22",
2470 "typeDescriptions": {
2471 "typeIdentifier": "t_magic_message",
2472 "typeString": "msg"
2473 }
2474 },
2475 "id": 5363,
2476 "isConstant": false,
2477 "isLValue": false,
2478 "isPure": false,
2479 "lValueRequested": false,
2480 "memberName": "sender",
2481 "nodeType": "MemberAccess",
2482 "referencedDeclaration": null,
2483 "src": "2313:10:22",
2484 "typeDescriptions": {
2485 "typeIdentifier": "t_address",
2486 "typeString": "address"
2487 }
2488 },
2489 "nodeType": "BinaryOperation",
2490 "operator": "==",
2491 "rightExpression": {
2492 "argumentTypes": null,
2493 "id": 5364,
2494 "name": "owner",
2495 "nodeType": "Identifier",
2496 "overloadedDeclarations": [],
2497 "referencedDeclaration": 151,
2498 "src": "2327:5:22",
2499 "typeDescriptions": {
2500 "typeIdentifier": "t_address",
2501 "typeString": "address"
2502 }
2503 },
2504 "src": "2313:19:22",
2505 "typeDescriptions": {
2506 "typeIdentifier": "t_bool",
2507 "typeString": "bool"
2508 }
2509 }
2510 ],
2511 "expression": {
2512 "argumentTypes": [
2513 {
2514 "typeIdentifier": "t_bool",
2515 "typeString": "bool"
2516 }
2517 ],
2518 "id": 5361,
2519 "name": "require",
2520 "nodeType": "Identifier",
2521 "overloadedDeclarations": [
2522 12095,
2523 12096
2524 ],
2525 "referencedDeclaration": 12095,
2526 "src": "2305:7:22",
2527 "typeDescriptions": {
2528 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
2529 "typeString": "function (bool) pure"
2530 }
2531 },
2532 "id": 5366,
2533 "isConstant": false,
2534 "isLValue": false,
2535 "isPure": false,
2536 "kind": "functionCall",
2537 "lValueRequested": false,
2538 "names": [],
2539 "nodeType": "FunctionCall",
2540 "src": "2305:28:22",
2541 "typeDescriptions": {
2542 "typeIdentifier": "t_tuple$__$",
2543 "typeString": "tuple()"
2544 }
2545 },
2546 "id": 5367,
2547 "nodeType": "ExpressionStatement",
2548 "src": "2305:28:22"
2549 },
2550 {
2551 "id": 5368,
2552 "nodeType": "PlaceholderStatement",
2553 "src": "2343:1:22"
2554 }
2555 ]
2556 },
2557 "documentation": null,
2558 "id": 5370,
2559 "name": "hasMintPermission",
2560 "nodeType": "ModifierDefinition",
2561 "parameters": {
2562 "id": 5360,
2563 "nodeType": "ParameterList",
2564 "parameters": [],
2565 "src": "2292:2:22"
2566 },
2567 "src": "2266:85:22",
2568 "visibility": "internal"
2569 },
2570 {
2571 "body": {
2572 "id": 5385,
2573 "nodeType": "Block",
2574 "src": "2406:55:22",
2575 "statements": [
2576 {
2577 "expression": {
2578 "argumentTypes": null,
2579 "id": 5379,
2580 "isConstant": false,
2581 "isLValue": false,
2582 "isPure": false,
2583 "lValueRequested": false,
2584 "leftHandSide": {
2585 "argumentTypes": null,
2586 "id": 5377,
2587 "name": "name",
2588 "nodeType": "Identifier",
2589 "overloadedDeclarations": [],
2590 "referencedDeclaration": 5300,
2591 "src": "2416:4:22",
2592 "typeDescriptions": {
2593 "typeIdentifier": "t_string_storage",
2594 "typeString": "string storage ref"
2595 }
2596 },
2597 "nodeType": "Assignment",
2598 "operator": "=",
2599 "rightHandSide": {
2600 "argumentTypes": null,
2601 "id": 5378,
2602 "name": "_name",
2603 "nodeType": "Identifier",
2604 "overloadedDeclarations": [],
2605 "referencedDeclaration": 5372,
2606 "src": "2423:5:22",
2607 "typeDescriptions": {
2608 "typeIdentifier": "t_string_memory_ptr",
2609 "typeString": "string memory"
2610 }
2611 },
2612 "src": "2416:12:22",
2613 "typeDescriptions": {
2614 "typeIdentifier": "t_string_storage",
2615 "typeString": "string storage ref"
2616 }
2617 },
2618 "id": 5380,
2619 "nodeType": "ExpressionStatement",
2620 "src": "2416:12:22"
2621 },
2622 {
2623 "expression": {
2624 "argumentTypes": null,
2625 "id": 5383,
2626 "isConstant": false,
2627 "isLValue": false,
2628 "isPure": false,
2629 "lValueRequested": false,
2630 "leftHandSide": {
2631 "argumentTypes": null,
2632 "id": 5381,
2633 "name": "symbol",
2634 "nodeType": "Identifier",
2635 "overloadedDeclarations": [],
2636 "referencedDeclaration": 5302,
2637 "src": "2438:6:22",
2638 "typeDescriptions": {
2639 "typeIdentifier": "t_string_storage",
2640 "typeString": "string storage ref"
2641 }
2642 },
2643 "nodeType": "Assignment",
2644 "operator": "=",
2645 "rightHandSide": {
2646 "argumentTypes": null,
2647 "id": 5382,
2648 "name": "_symbol",
2649 "nodeType": "Identifier",
2650 "overloadedDeclarations": [],
2651 "referencedDeclaration": 5374,
2652 "src": "2447:7:22",
2653 "typeDescriptions": {
2654 "typeIdentifier": "t_string_memory_ptr",
2655 "typeString": "string memory"
2656 }
2657 },
2658 "src": "2438:16:22",
2659 "typeDescriptions": {
2660 "typeIdentifier": "t_string_storage",
2661 "typeString": "string storage ref"
2662 }
2663 },
2664 "id": 5384,
2665 "nodeType": "ExpressionStatement",
2666 "src": "2438:16:22"
2667 }
2668 ]
2669 },
2670 "documentation": null,
2671 "id": 5386,
2672 "implemented": true,
2673 "isConstructor": true,
2674 "isDeclaredConst": false,
2675 "modifiers": [],
2676 "name": "",
2677 "nodeType": "FunctionDefinition",
2678 "parameters": {
2679 "id": 5375,
2680 "nodeType": "ParameterList",
2681 "parameters": [
2682 {
2683 "constant": false,
2684 "id": 5372,
2685 "name": "_name",
2686 "nodeType": "VariableDeclaration",
2687 "scope": 5386,
2688 "src": "2369:12:22",
2689 "stateVariable": false,
2690 "storageLocation": "default",
2691 "typeDescriptions": {
2692 "typeIdentifier": "t_string_memory_ptr",
2693 "typeString": "string"
2694 },
2695 "typeName": {
2696 "id": 5371,
2697 "name": "string",
2698 "nodeType": "ElementaryTypeName",
2699 "src": "2369:6:22",
2700 "typeDescriptions": {
2701 "typeIdentifier": "t_string_storage_ptr",
2702 "typeString": "string"
2703 }
2704 },
2705 "value": null,
2706 "visibility": "internal"
2707 },
2708 {
2709 "constant": false,
2710 "id": 5374,
2711 "name": "_symbol",
2712 "nodeType": "VariableDeclaration",
2713 "scope": 5386,
2714 "src": "2383:14:22",
2715 "stateVariable": false,
2716 "storageLocation": "default",
2717 "typeDescriptions": {
2718 "typeIdentifier": "t_string_memory_ptr",
2719 "typeString": "string"
2720 },
2721 "typeName": {
2722 "id": 5373,
2723 "name": "string",
2724 "nodeType": "ElementaryTypeName",
2725 "src": "2383:6:22",
2726 "typeDescriptions": {
2727 "typeIdentifier": "t_string_storage_ptr",
2728 "typeString": "string"
2729 }
2730 },
2731 "value": null,
2732 "visibility": "internal"
2733 }
2734 ],
2735 "src": "2368:30:22"
2736 },
2737 "payable": false,
2738 "returnParameters": {
2739 "id": 5376,
2740 "nodeType": "ParameterList",
2741 "parameters": [],
2742 "src": "2406:0:22"
2743 },
2744 "scope": 5881,
2745 "src": "2357:104:22",
2746 "stateMutability": "nonpayable",
2747 "superFunction": null,
2748 "visibility": "public"
2749 },
2750 {
2751 "body": {
2752 "id": 5393,
2753 "nodeType": "Block",
2754 "src": "2582:36:22",
2755 "statements": [
2756 {
2757 "expression": {
2758 "argumentTypes": null,
2759 "id": 5391,
2760 "name": "totalSupply_",
2761 "nodeType": "Identifier",
2762 "overloadedDeclarations": [],
2763 "referencedDeclaration": 5307,
2764 "src": "2599:12:22",
2765 "typeDescriptions": {
2766 "typeIdentifier": "t_uint256",
2767 "typeString": "uint256"
2768 }
2769 },
2770 "functionReturnParameters": 5390,
2771 "id": 5392,
2772 "nodeType": "Return",
2773 "src": "2592:19:22"
2774 }
2775 ]
2776 },
2777 "documentation": "@dev Total number of tokens in existence",
2778 "id": 5394,
2779 "implemented": true,
2780 "isConstructor": false,
2781 "isDeclaredConst": true,
2782 "modifiers": [],
2783 "name": "totalSupply",
2784 "nodeType": "FunctionDefinition",
2785 "parameters": {
2786 "id": 5387,
2787 "nodeType": "ParameterList",
2788 "parameters": [],
2789 "src": "2549:2:22"
2790 },
2791 "payable": false,
2792 "returnParameters": {
2793 "id": 5390,
2794 "nodeType": "ParameterList",
2795 "parameters": [
2796 {
2797 "constant": false,
2798 "id": 5389,
2799 "name": "",
2800 "nodeType": "VariableDeclaration",
2801 "scope": 5394,
2802 "src": "2573:7:22",
2803 "stateVariable": false,
2804 "storageLocation": "default",
2805 "typeDescriptions": {
2806 "typeIdentifier": "t_uint256",
2807 "typeString": "uint256"
2808 },
2809 "typeName": {
2810 "id": 5388,
2811 "name": "uint256",
2812 "nodeType": "ElementaryTypeName",
2813 "src": "2573:7:22",
2814 "typeDescriptions": {
2815 "typeIdentifier": "t_uint256",
2816 "typeString": "uint256"
2817 }
2818 },
2819 "value": null,
2820 "visibility": "internal"
2821 }
2822 ],
2823 "src": "2572:9:22"
2824 },
2825 "scope": 5881,
2826 "src": "2529:89:22",
2827 "stateMutability": "view",
2828 "superFunction": null,
2829 "visibility": "public"
2830 },
2831 {
2832 "body": {
2833 "id": 5453,
2834 "nodeType": "Block",
2835 "src": "2853:278:22",
2836 "statements": [
2837 {
2838 "expression": {
2839 "argumentTypes": null,
2840 "arguments": [
2841 {
2842 "argumentTypes": null,
2843 "commonType": {
2844 "typeIdentifier": "t_address",
2845 "typeString": "address"
2846 },
2847 "id": 5408,
2848 "isConstant": false,
2849 "isLValue": false,
2850 "isPure": false,
2851 "lValueRequested": false,
2852 "leftExpression": {
2853 "argumentTypes": null,
2854 "id": 5404,
2855 "name": "_to",
2856 "nodeType": "Identifier",
2857 "overloadedDeclarations": [],
2858 "referencedDeclaration": 5396,
2859 "src": "2871:3:22",
2860 "typeDescriptions": {
2861 "typeIdentifier": "t_address",
2862 "typeString": "address"
2863 }
2864 },
2865 "nodeType": "BinaryOperation",
2866 "operator": "!=",
2867 "rightExpression": {
2868 "argumentTypes": null,
2869 "arguments": [
2870 {
2871 "argumentTypes": null,
2872 "hexValue": "30",
2873 "id": 5406,
2874 "isConstant": false,
2875 "isLValue": false,
2876 "isPure": true,
2877 "kind": "number",
2878 "lValueRequested": false,
2879 "nodeType": "Literal",
2880 "src": "2886:1:22",
2881 "subdenomination": null,
2882 "typeDescriptions": {
2883 "typeIdentifier": "t_rational_0_by_1",
2884 "typeString": "int_const 0"
2885 },
2886 "value": "0"
2887 }
2888 ],
2889 "expression": {
2890 "argumentTypes": [
2891 {
2892 "typeIdentifier": "t_rational_0_by_1",
2893 "typeString": "int_const 0"
2894 }
2895 ],
2896 "id": 5405,
2897 "isConstant": false,
2898 "isLValue": false,
2899 "isPure": true,
2900 "lValueRequested": false,
2901 "nodeType": "ElementaryTypeNameExpression",
2902 "src": "2878:7:22",
2903 "typeDescriptions": {
2904 "typeIdentifier": "t_type$_t_address_$",
2905 "typeString": "type(address)"
2906 },
2907 "typeName": "address"
2908 },
2909 "id": 5407,
2910 "isConstant": false,
2911 "isLValue": false,
2912 "isPure": true,
2913 "kind": "typeConversion",
2914 "lValueRequested": false,
2915 "names": [],
2916 "nodeType": "FunctionCall",
2917 "src": "2878:10:22",
2918 "typeDescriptions": {
2919 "typeIdentifier": "t_address",
2920 "typeString": "address"
2921 }
2922 },
2923 "src": "2871:17:22",
2924 "typeDescriptions": {
2925 "typeIdentifier": "t_bool",
2926 "typeString": "bool"
2927 }
2928 }
2929 ],
2930 "expression": {
2931 "argumentTypes": [
2932 {
2933 "typeIdentifier": "t_bool",
2934 "typeString": "bool"
2935 }
2936 ],
2937 "id": 5403,
2938 "name": "require",
2939 "nodeType": "Identifier",
2940 "overloadedDeclarations": [
2941 12095,
2942 12096
2943 ],
2944 "referencedDeclaration": 12095,
2945 "src": "2863:7:22",
2946 "typeDescriptions": {
2947 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
2948 "typeString": "function (bool) pure"
2949 }
2950 },
2951 "id": 5409,
2952 "isConstant": false,
2953 "isLValue": false,
2954 "isPure": false,
2955 "kind": "functionCall",
2956 "lValueRequested": false,
2957 "names": [],
2958 "nodeType": "FunctionCall",
2959 "src": "2863:26:22",
2960 "typeDescriptions": {
2961 "typeIdentifier": "t_tuple$__$",
2962 "typeString": "tuple()"
2963 }
2964 },
2965 "id": 5410,
2966 "nodeType": "ExpressionStatement",
2967 "src": "2863:26:22"
2968 },
2969 {
2970 "expression": {
2971 "argumentTypes": null,
2972 "arguments": [
2973 {
2974 "argumentTypes": null,
2975 "commonType": {
2976 "typeIdentifier": "t_uint256",
2977 "typeString": "uint256"
2978 },
2979 "id": 5417,
2980 "isConstant": false,
2981 "isLValue": false,
2982 "isPure": false,
2983 "lValueRequested": false,
2984 "leftExpression": {
2985 "argumentTypes": null,
2986 "id": 5412,
2987 "name": "_value",
2988 "nodeType": "Identifier",
2989 "overloadedDeclarations": [],
2990 "referencedDeclaration": 5398,
2991 "src": "2907:6:22",
2992 "typeDescriptions": {
2993 "typeIdentifier": "t_uint256",
2994 "typeString": "uint256"
2995 }
2996 },
2997 "nodeType": "BinaryOperation",
2998 "operator": "<=",
2999 "rightExpression": {
3000 "argumentTypes": null,
3001 "baseExpression": {
3002 "argumentTypes": null,
3003 "id": 5413,
3004 "name": "balances",
3005 "nodeType": "Identifier",
3006 "overloadedDeclarations": [],
3007 "referencedDeclaration": 5317,
3008 "src": "2917:8:22",
3009 "typeDescriptions": {
3010 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
3011 "typeString": "mapping(address => uint256)"
3012 }
3013 },
3014 "id": 5416,
3015 "indexExpression": {
3016 "argumentTypes": null,
3017 "expression": {
3018 "argumentTypes": null,
3019 "id": 5414,
3020 "name": "msg",
3021 "nodeType": "Identifier",
3022 "overloadedDeclarations": [],
3023 "referencedDeclaration": 12092,
3024 "src": "2926:3:22",
3025 "typeDescriptions": {
3026 "typeIdentifier": "t_magic_message",
3027 "typeString": "msg"
3028 }
3029 },
3030 "id": 5415,
3031 "isConstant": false,
3032 "isLValue": false,
3033 "isPure": false,
3034 "lValueRequested": false,
3035 "memberName": "sender",
3036 "nodeType": "MemberAccess",
3037 "referencedDeclaration": null,
3038 "src": "2926:10:22",
3039 "typeDescriptions": {
3040 "typeIdentifier": "t_address",
3041 "typeString": "address"
3042 }
3043 },
3044 "isConstant": false,
3045 "isLValue": true,
3046 "isPure": false,
3047 "lValueRequested": false,
3048 "nodeType": "IndexAccess",
3049 "src": "2917:20:22",
3050 "typeDescriptions": {
3051 "typeIdentifier": "t_uint256",
3052 "typeString": "uint256"
3053 }
3054 },
3055 "src": "2907:30:22",
3056 "typeDescriptions": {
3057 "typeIdentifier": "t_bool",
3058 "typeString": "bool"
3059 }
3060 }
3061 ],
3062 "expression": {
3063 "argumentTypes": [
3064 {
3065 "typeIdentifier": "t_bool",
3066 "typeString": "bool"
3067 }
3068 ],
3069 "id": 5411,
3070 "name": "require",
3071 "nodeType": "Identifier",
3072 "overloadedDeclarations": [
3073 12095,
3074 12096
3075 ],
3076 "referencedDeclaration": 12095,
3077 "src": "2899:7:22",
3078 "typeDescriptions": {
3079 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
3080 "typeString": "function (bool) pure"
3081 }
3082 },
3083 "id": 5418,
3084 "isConstant": false,
3085 "isLValue": false,
3086 "isPure": false,
3087 "kind": "functionCall",
3088 "lValueRequested": false,
3089 "names": [],
3090 "nodeType": "FunctionCall",
3091 "src": "2899:39:22",
3092 "typeDescriptions": {
3093 "typeIdentifier": "t_tuple$__$",
3094 "typeString": "tuple()"
3095 }
3096 },
3097 "id": 5419,
3098 "nodeType": "ExpressionStatement",
3099 "src": "2899:39:22"
3100 },
3101 {
3102 "expression": {
3103 "argumentTypes": null,
3104 "id": 5431,
3105 "isConstant": false,
3106 "isLValue": false,
3107 "isPure": false,
3108 "lValueRequested": false,
3109 "leftHandSide": {
3110 "argumentTypes": null,
3111 "baseExpression": {
3112 "argumentTypes": null,
3113 "id": 5420,
3114 "name": "balances",
3115 "nodeType": "Identifier",
3116 "overloadedDeclarations": [],
3117 "referencedDeclaration": 5317,
3118 "src": "2949:8:22",
3119 "typeDescriptions": {
3120 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
3121 "typeString": "mapping(address => uint256)"
3122 }
3123 },
3124 "id": 5423,
3125 "indexExpression": {
3126 "argumentTypes": null,
3127 "expression": {
3128 "argumentTypes": null,
3129 "id": 5421,
3130 "name": "msg",
3131 "nodeType": "Identifier",
3132 "overloadedDeclarations": [],
3133 "referencedDeclaration": 12092,
3134 "src": "2958:3:22",
3135 "typeDescriptions": {
3136 "typeIdentifier": "t_magic_message",
3137 "typeString": "msg"
3138 }
3139 },
3140 "id": 5422,
3141 "isConstant": false,
3142 "isLValue": false,
3143 "isPure": false,
3144 "lValueRequested": false,
3145 "memberName": "sender",
3146 "nodeType": "MemberAccess",
3147 "referencedDeclaration": null,
3148 "src": "2958:10:22",
3149 "typeDescriptions": {
3150 "typeIdentifier": "t_address",
3151 "typeString": "address"
3152 }
3153 },
3154 "isConstant": false,
3155 "isLValue": true,
3156 "isPure": false,
3157 "lValueRequested": true,
3158 "nodeType": "IndexAccess",
3159 "src": "2949:20:22",
3160 "typeDescriptions": {
3161 "typeIdentifier": "t_uint256",
3162 "typeString": "uint256"
3163 }
3164 },
3165 "nodeType": "Assignment",
3166 "operator": "=",
3167 "rightHandSide": {
3168 "argumentTypes": null,
3169 "arguments": [
3170 {
3171 "argumentTypes": null,
3172 "id": 5429,
3173 "name": "_value",
3174 "nodeType": "Identifier",
3175 "overloadedDeclarations": [],
3176 "referencedDeclaration": 5398,
3177 "src": "2997:6:22",
3178 "typeDescriptions": {
3179 "typeIdentifier": "t_uint256",
3180 "typeString": "uint256"
3181 }
3182 }
3183 ],
3184 "expression": {
3185 "argumentTypes": [
3186 {
3187 "typeIdentifier": "t_uint256",
3188 "typeString": "uint256"
3189 }
3190 ],
3191 "expression": {
3192 "argumentTypes": null,
3193 "baseExpression": {
3194 "argumentTypes": null,
3195 "id": 5424,
3196 "name": "balances",
3197 "nodeType": "Identifier",
3198 "overloadedDeclarations": [],
3199 "referencedDeclaration": 5317,
3200 "src": "2972:8:22",
3201 "typeDescriptions": {
3202 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
3203 "typeString": "mapping(address => uint256)"
3204 }
3205 },
3206 "id": 5427,
3207 "indexExpression": {
3208 "argumentTypes": null,
3209 "expression": {
3210 "argumentTypes": null,
3211 "id": 5425,
3212 "name": "msg",
3213 "nodeType": "Identifier",
3214 "overloadedDeclarations": [],
3215 "referencedDeclaration": 12092,
3216 "src": "2981:3:22",
3217 "typeDescriptions": {
3218 "typeIdentifier": "t_magic_message",
3219 "typeString": "msg"
3220 }
3221 },
3222 "id": 5426,
3223 "isConstant": false,
3224 "isLValue": false,
3225 "isPure": false,
3226 "lValueRequested": false,
3227 "memberName": "sender",
3228 "nodeType": "MemberAccess",
3229 "referencedDeclaration": null,
3230 "src": "2981:10:22",
3231 "typeDescriptions": {
3232 "typeIdentifier": "t_address",
3233 "typeString": "address"
3234 }
3235 },
3236 "isConstant": false,
3237 "isLValue": true,
3238 "isPure": false,
3239 "lValueRequested": false,
3240 "nodeType": "IndexAccess",
3241 "src": "2972:20:22",
3242 "typeDescriptions": {
3243 "typeIdentifier": "t_uint256",
3244 "typeString": "uint256"
3245 }
3246 },
3247 "id": 5428,
3248 "isConstant": false,
3249 "isLValue": false,
3250 "isPure": false,
3251 "lValueRequested": false,
3252 "memberName": "sub",
3253 "nodeType": "MemberAccess",
3254 "referencedDeclaration": 5268,
3255 "src": "2972:24:22",
3256 "typeDescriptions": {
3257 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
3258 "typeString": "function (uint256,uint256) pure returns (uint256)"
3259 }
3260 },
3261 "id": 5430,
3262 "isConstant": false,
3263 "isLValue": false,
3264 "isPure": false,
3265 "kind": "functionCall",
3266 "lValueRequested": false,
3267 "names": [],
3268 "nodeType": "FunctionCall",
3269 "src": "2972:32:22",
3270 "typeDescriptions": {
3271 "typeIdentifier": "t_uint256",
3272 "typeString": "uint256"
3273 }
3274 },
3275 "src": "2949:55:22",
3276 "typeDescriptions": {
3277 "typeIdentifier": "t_uint256",
3278 "typeString": "uint256"
3279 }
3280 },
3281 "id": 5432,
3282 "nodeType": "ExpressionStatement",
3283 "src": "2949:55:22"
3284 },
3285 {
3286 "expression": {
3287 "argumentTypes": null,
3288 "id": 5442,
3289 "isConstant": false,
3290 "isLValue": false,
3291 "isPure": false,
3292 "lValueRequested": false,
3293 "leftHandSide": {
3294 "argumentTypes": null,
3295 "baseExpression": {
3296 "argumentTypes": null,
3297 "id": 5433,
3298 "name": "balances",
3299 "nodeType": "Identifier",
3300 "overloadedDeclarations": [],
3301 "referencedDeclaration": 5317,
3302 "src": "3014:8:22",
3303 "typeDescriptions": {
3304 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
3305 "typeString": "mapping(address => uint256)"
3306 }
3307 },
3308 "id": 5435,
3309 "indexExpression": {
3310 "argumentTypes": null,
3311 "id": 5434,
3312 "name": "_to",
3313 "nodeType": "Identifier",
3314 "overloadedDeclarations": [],
3315 "referencedDeclaration": 5396,
3316 "src": "3023:3:22",
3317 "typeDescriptions": {
3318 "typeIdentifier": "t_address",
3319 "typeString": "address"
3320 }
3321 },
3322 "isConstant": false,
3323 "isLValue": true,
3324 "isPure": false,
3325 "lValueRequested": true,
3326 "nodeType": "IndexAccess",
3327 "src": "3014:13:22",
3328 "typeDescriptions": {
3329 "typeIdentifier": "t_uint256",
3330 "typeString": "uint256"
3331 }
3332 },
3333 "nodeType": "Assignment",
3334 "operator": "=",
3335 "rightHandSide": {
3336 "argumentTypes": null,
3337 "arguments": [
3338 {
3339 "argumentTypes": null,
3340 "id": 5440,
3341 "name": "_value",
3342 "nodeType": "Identifier",
3343 "overloadedDeclarations": [],
3344 "referencedDeclaration": 5398,
3345 "src": "3048:6:22",
3346 "typeDescriptions": {
3347 "typeIdentifier": "t_uint256",
3348 "typeString": "uint256"
3349 }
3350 }
3351 ],
3352 "expression": {
3353 "argumentTypes": [
3354 {
3355 "typeIdentifier": "t_uint256",
3356 "typeString": "uint256"
3357 }
3358 ],
3359 "expression": {
3360 "argumentTypes": null,
3361 "baseExpression": {
3362 "argumentTypes": null,
3363 "id": 5436,
3364 "name": "balances",
3365 "nodeType": "Identifier",
3366 "overloadedDeclarations": [],
3367 "referencedDeclaration": 5317,
3368 "src": "3030:8:22",
3369 "typeDescriptions": {
3370 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
3371 "typeString": "mapping(address => uint256)"
3372 }
3373 },
3374 "id": 5438,
3375 "indexExpression": {
3376 "argumentTypes": null,
3377 "id": 5437,
3378 "name": "_to",
3379 "nodeType": "Identifier",
3380 "overloadedDeclarations": [],
3381 "referencedDeclaration": 5396,
3382 "src": "3039:3:22",
3383 "typeDescriptions": {
3384 "typeIdentifier": "t_address",
3385 "typeString": "address"
3386 }
3387 },
3388 "isConstant": false,
3389 "isLValue": true,
3390 "isPure": false,
3391 "lValueRequested": false,
3392 "nodeType": "IndexAccess",
3393 "src": "3030:13:22",
3394 "typeDescriptions": {
3395 "typeIdentifier": "t_uint256",
3396 "typeString": "uint256"
3397 }
3398 },
3399 "id": 5439,
3400 "isConstant": false,
3401 "isLValue": false,
3402 "isPure": false,
3403 "lValueRequested": false,
3404 "memberName": "add",
3405 "nodeType": "MemberAccess",
3406 "referencedDeclaration": 5292,
3407 "src": "3030:17:22",
3408 "typeDescriptions": {
3409 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
3410 "typeString": "function (uint256,uint256) pure returns (uint256)"
3411 }
3412 },
3413 "id": 5441,
3414 "isConstant": false,
3415 "isLValue": false,
3416 "isPure": false,
3417 "kind": "functionCall",
3418 "lValueRequested": false,
3419 "names": [],
3420 "nodeType": "FunctionCall",
3421 "src": "3030:25:22",
3422 "typeDescriptions": {
3423 "typeIdentifier": "t_uint256",
3424 "typeString": "uint256"
3425 }
3426 },
3427 "src": "3014:41:22",
3428 "typeDescriptions": {
3429 "typeIdentifier": "t_uint256",
3430 "typeString": "uint256"
3431 }
3432 },
3433 "id": 5443,
3434 "nodeType": "ExpressionStatement",
3435 "src": "3014:41:22"
3436 },
3437 {
3438 "eventCall": {
3439 "argumentTypes": null,
3440 "arguments": [
3441 {
3442 "argumentTypes": null,
3443 "expression": {
3444 "argumentTypes": null,
3445 "id": 5445,
3446 "name": "msg",
3447 "nodeType": "Identifier",
3448 "overloadedDeclarations": [],
3449 "referencedDeclaration": 12092,
3450 "src": "3079:3:22",
3451 "typeDescriptions": {
3452 "typeIdentifier": "t_magic_message",
3453 "typeString": "msg"
3454 }
3455 },
3456 "id": 5446,
3457 "isConstant": false,
3458 "isLValue": false,
3459 "isPure": false,
3460 "lValueRequested": false,
3461 "memberName": "sender",
3462 "nodeType": "MemberAccess",
3463 "referencedDeclaration": null,
3464 "src": "3079:10:22",
3465 "typeDescriptions": {
3466 "typeIdentifier": "t_address",
3467 "typeString": "address"
3468 }
3469 },
3470 {
3471 "argumentTypes": null,
3472 "id": 5447,
3473 "name": "_to",
3474 "nodeType": "Identifier",
3475 "overloadedDeclarations": [],
3476 "referencedDeclaration": 5396,
3477 "src": "3091:3:22",
3478 "typeDescriptions": {
3479 "typeIdentifier": "t_address",
3480 "typeString": "address"
3481 }
3482 },
3483 {
3484 "argumentTypes": null,
3485 "id": 5448,
3486 "name": "_value",
3487 "nodeType": "Identifier",
3488 "overloadedDeclarations": [],
3489 "referencedDeclaration": 5398,
3490 "src": "3096:6:22",
3491 "typeDescriptions": {
3492 "typeIdentifier": "t_uint256",
3493 "typeString": "uint256"
3494 }
3495 }
3496 ],
3497 "expression": {
3498 "argumentTypes": [
3499 {
3500 "typeIdentifier": "t_address",
3501 "typeString": "address"
3502 },
3503 {
3504 "typeIdentifier": "t_address",
3505 "typeString": "address"
3506 },
3507 {
3508 "typeIdentifier": "t_uint256",
3509 "typeString": "uint256"
3510 }
3511 ],
3512 "id": 5444,
3513 "name": "Transfer",
3514 "nodeType": "Identifier",
3515 "overloadedDeclarations": [],
3516 "referencedDeclaration": 5334,
3517 "src": "3070:8:22",
3518 "typeDescriptions": {
3519 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
3520 "typeString": "function (address,address,uint256)"
3521 }
3522 },
3523 "id": 5449,
3524 "isConstant": false,
3525 "isLValue": false,
3526 "isPure": false,
3527 "kind": "functionCall",
3528 "lValueRequested": false,
3529 "names": [],
3530 "nodeType": "FunctionCall",
3531 "src": "3070:33:22",
3532 "typeDescriptions": {
3533 "typeIdentifier": "t_tuple$__$",
3534 "typeString": "tuple()"
3535 }
3536 },
3537 "id": 5450,
3538 "nodeType": "EmitStatement",
3539 "src": "3065:38:22"
3540 },
3541 {
3542 "expression": {
3543 "argumentTypes": null,
3544 "hexValue": "74727565",
3545 "id": 5451,
3546 "isConstant": false,
3547 "isLValue": false,
3548 "isPure": true,
3549 "kind": "bool",
3550 "lValueRequested": false,
3551 "nodeType": "Literal",
3552 "src": "3120:4:22",
3553 "subdenomination": null,
3554 "typeDescriptions": {
3555 "typeIdentifier": "t_bool",
3556 "typeString": "bool"
3557 },
3558 "value": "true"
3559 },
3560 "functionReturnParameters": 5402,
3561 "id": 5452,
3562 "nodeType": "Return",
3563 "src": "3113:11:22"
3564 }
3565 ]
3566 },
3567 "documentation": "@dev Transfer token for a specified address\n@param _to The address to transfer to.\n@param _value The amount to be transferred.",
3568 "id": 5454,
3569 "implemented": true,
3570 "isConstructor": false,
3571 "isDeclaredConst": false,
3572 "modifiers": [],
3573 "name": "transfer",
3574 "nodeType": "FunctionDefinition",
3575 "parameters": {
3576 "id": 5399,
3577 "nodeType": "ParameterList",
3578 "parameters": [
3579 {
3580 "constant": false,
3581 "id": 5396,
3582 "name": "_to",
3583 "nodeType": "VariableDeclaration",
3584 "scope": 5454,
3585 "src": "2802:11:22",
3586 "stateVariable": false,
3587 "storageLocation": "default",
3588 "typeDescriptions": {
3589 "typeIdentifier": "t_address",
3590 "typeString": "address"
3591 },
3592 "typeName": {
3593 "id": 5395,
3594 "name": "address",
3595 "nodeType": "ElementaryTypeName",
3596 "src": "2802:7:22",
3597 "typeDescriptions": {
3598 "typeIdentifier": "t_address",
3599 "typeString": "address"
3600 }
3601 },
3602 "value": null,
3603 "visibility": "internal"
3604 },
3605 {
3606 "constant": false,
3607 "id": 5398,
3608 "name": "_value",
3609 "nodeType": "VariableDeclaration",
3610 "scope": 5454,
3611 "src": "2815:14:22",
3612 "stateVariable": false,
3613 "storageLocation": "default",
3614 "typeDescriptions": {
3615 "typeIdentifier": "t_uint256",
3616 "typeString": "uint256"
3617 },
3618 "typeName": {
3619 "id": 5397,
3620 "name": "uint256",
3621 "nodeType": "ElementaryTypeName",
3622 "src": "2815:7:22",
3623 "typeDescriptions": {
3624 "typeIdentifier": "t_uint256",
3625 "typeString": "uint256"
3626 }
3627 },
3628 "value": null,
3629 "visibility": "internal"
3630 }
3631 ],
3632 "src": "2801:29:22"
3633 },
3634 "payable": false,
3635 "returnParameters": {
3636 "id": 5402,
3637 "nodeType": "ParameterList",
3638 "parameters": [
3639 {
3640 "constant": false,
3641 "id": 5401,
3642 "name": "",
3643 "nodeType": "VariableDeclaration",
3644 "scope": 5454,
3645 "src": "2847:4:22",
3646 "stateVariable": false,
3647 "storageLocation": "default",
3648 "typeDescriptions": {
3649 "typeIdentifier": "t_bool",
3650 "typeString": "bool"
3651 },
3652 "typeName": {
3653 "id": 5400,
3654 "name": "bool",
3655 "nodeType": "ElementaryTypeName",
3656 "src": "2847:4:22",
3657 "typeDescriptions": {
3658 "typeIdentifier": "t_bool",
3659 "typeString": "bool"
3660 }
3661 },
3662 "value": null,
3663 "visibility": "internal"
3664 }
3665 ],
3666 "src": "2846:6:22"
3667 },
3668 "scope": 5881,
3669 "src": "2784:347:22",
3670 "stateMutability": "nonpayable",
3671 "superFunction": 5152,
3672 "visibility": "public"
3673 },
3674 {
3675 "body": {
3676 "id": 5465,
3677 "nodeType": "Block",
3678 "src": "3410:40:22",
3679 "statements": [
3680 {
3681 "expression": {
3682 "argumentTypes": null,
3683 "baseExpression": {
3684 "argumentTypes": null,
3685 "id": 5461,
3686 "name": "balances",
3687 "nodeType": "Identifier",
3688 "overloadedDeclarations": [],
3689 "referencedDeclaration": 5317,
3690 "src": "3427:8:22",
3691 "typeDescriptions": {
3692 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
3693 "typeString": "mapping(address => uint256)"
3694 }
3695 },
3696 "id": 5463,
3697 "indexExpression": {
3698 "argumentTypes": null,
3699 "id": 5462,
3700 "name": "_owner",
3701 "nodeType": "Identifier",
3702 "overloadedDeclarations": [],
3703 "referencedDeclaration": 5456,
3704 "src": "3436:6:22",
3705 "typeDescriptions": {
3706 "typeIdentifier": "t_address",
3707 "typeString": "address"
3708 }
3709 },
3710 "isConstant": false,
3711 "isLValue": true,
3712 "isPure": false,
3713 "lValueRequested": false,
3714 "nodeType": "IndexAccess",
3715 "src": "3427:16:22",
3716 "typeDescriptions": {
3717 "typeIdentifier": "t_uint256",
3718 "typeString": "uint256"
3719 }
3720 },
3721 "functionReturnParameters": 5460,
3722 "id": 5464,
3723 "nodeType": "Return",
3724 "src": "3420:23:22"
3725 }
3726 ]
3727 },
3728 "documentation": "@dev Gets the balance of the specified address.\n@param _owner The address to query the the balance of.\n@return An uint256 representing the amount owned by the passed address.",
3729 "id": 5466,
3730 "implemented": true,
3731 "isConstructor": false,
3732 "isDeclaredConst": true,
3733 "modifiers": [],
3734 "name": "balanceOf",
3735 "nodeType": "FunctionDefinition",
3736 "parameters": {
3737 "id": 5457,
3738 "nodeType": "ParameterList",
3739 "parameters": [
3740 {
3741 "constant": false,
3742 "id": 5456,
3743 "name": "_owner",
3744 "nodeType": "VariableDeclaration",
3745 "scope": 5466,
3746 "src": "3364:14:22",
3747 "stateVariable": false,
3748 "storageLocation": "default",
3749 "typeDescriptions": {
3750 "typeIdentifier": "t_address",
3751 "typeString": "address"
3752 },
3753 "typeName": {
3754 "id": 5455,
3755 "name": "address",
3756 "nodeType": "ElementaryTypeName",
3757 "src": "3364:7:22",
3758 "typeDescriptions": {
3759 "typeIdentifier": "t_address",
3760 "typeString": "address"
3761 }
3762 },
3763 "value": null,
3764 "visibility": "internal"
3765 }
3766 ],
3767 "src": "3363:16:22"
3768 },
3769 "payable": false,
3770 "returnParameters": {
3771 "id": 5460,
3772 "nodeType": "ParameterList",
3773 "parameters": [
3774 {
3775 "constant": false,
3776 "id": 5459,
3777 "name": "",
3778 "nodeType": "VariableDeclaration",
3779 "scope": 5466,
3780 "src": "3401:7:22",
3781 "stateVariable": false,
3782 "storageLocation": "default",
3783 "typeDescriptions": {
3784 "typeIdentifier": "t_uint256",
3785 "typeString": "uint256"
3786 },
3787 "typeName": {
3788 "id": 5458,
3789 "name": "uint256",
3790 "nodeType": "ElementaryTypeName",
3791 "src": "3401:7:22",
3792 "typeDescriptions": {
3793 "typeIdentifier": "t_uint256",
3794 "typeString": "uint256"
3795 }
3796 },
3797 "value": null,
3798 "visibility": "internal"
3799 }
3800 ],
3801 "src": "3400:9:22"
3802 },
3803 "scope": 5881,
3804 "src": "3345:105:22",
3805 "stateMutability": "view",
3806 "superFunction": 5143,
3807 "visibility": "public"
3808 },
3809 {
3810 "body": {
3811 "id": 5481,
3812 "nodeType": "Block",
3813 "src": "3527:50:22",
3814 "statements": [
3815 {
3816 "expression": {
3817 "argumentTypes": null,
3818 "arguments": [
3819 {
3820 "argumentTypes": null,
3821 "id": 5476,
3822 "name": "_value",
3823 "nodeType": "Identifier",
3824 "overloadedDeclarations": [],
3825 "referencedDeclaration": 5468,
3826 "src": "3542:6:22",
3827 "typeDescriptions": {
3828 "typeIdentifier": "t_uint256",
3829 "typeString": "uint256"
3830 }
3831 }
3832 ],
3833 "expression": {
3834 "argumentTypes": [
3835 {
3836 "typeIdentifier": "t_uint256",
3837 "typeString": "uint256"
3838 }
3839 ],
3840 "id": 5475,
3841 "name": "burn",
3842 "nodeType": "Identifier",
3843 "overloadedDeclarations": [],
3844 "referencedDeclaration": 5535,
3845 "src": "3537:4:22",
3846 "typeDescriptions": {
3847 "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
3848 "typeString": "function (uint256)"
3849 }
3850 },
3851 "id": 5477,
3852 "isConstant": false,
3853 "isLValue": false,
3854 "isPure": false,
3855 "kind": "functionCall",
3856 "lValueRequested": false,
3857 "names": [],
3858 "nodeType": "FunctionCall",
3859 "src": "3537:12:22",
3860 "typeDescriptions": {
3861 "typeIdentifier": "t_tuple$__$",
3862 "typeString": "tuple()"
3863 }
3864 },
3865 "id": 5478,
3866 "nodeType": "ExpressionStatement",
3867 "src": "3537:12:22"
3868 },
3869 {
3870 "expression": {
3871 "argumentTypes": null,
3872 "hexValue": "74727565",
3873 "id": 5479,
3874 "isConstant": false,
3875 "isLValue": false,
3876 "isPure": true,
3877 "kind": "bool",
3878 "lValueRequested": false,
3879 "nodeType": "Literal",
3880 "src": "3566:4:22",
3881 "subdenomination": null,
3882 "typeDescriptions": {
3883 "typeIdentifier": "t_bool",
3884 "typeString": "bool"
3885 },
3886 "value": "true"
3887 },
3888 "functionReturnParameters": 5474,
3889 "id": 5480,
3890 "nodeType": "Return",
3891 "src": "3559:11:22"
3892 }
3893 ]
3894 },
3895 "documentation": null,
3896 "id": 5482,
3897 "implemented": true,
3898 "isConstructor": false,
3899 "isDeclaredConst": false,
3900 "modifiers": [
3901 {
3902 "arguments": null,
3903 "id": 5471,
3904 "modifierName": {
3905 "argumentTypes": null,
3906 "id": 5470,
3907 "name": "onlyOwner",
3908 "nodeType": "Identifier",
3909 "overloadedDeclarations": [],
3910 "referencedDeclaration": 177,
3911 "src": "3502:9:22",
3912 "typeDescriptions": {
3913 "typeIdentifier": "t_modifier$__$",
3914 "typeString": "modifier ()"
3915 }
3916 },
3917 "nodeType": "ModifierInvocation",
3918 "src": "3502:9:22"
3919 }
3920 ],
3921 "name": "ownableBurn",
3922 "nodeType": "FunctionDefinition",
3923 "parameters": {
3924 "id": 5469,
3925 "nodeType": "ParameterList",
3926 "parameters": [
3927 {
3928 "constant": false,
3929 "id": 5468,
3930 "name": "_value",
3931 "nodeType": "VariableDeclaration",
3932 "scope": 5482,
3933 "src": "3477:14:22",
3934 "stateVariable": false,
3935 "storageLocation": "default",
3936 "typeDescriptions": {
3937 "typeIdentifier": "t_uint256",
3938 "typeString": "uint256"
3939 },
3940 "typeName": {
3941 "id": 5467,
3942 "name": "uint256",
3943 "nodeType": "ElementaryTypeName",
3944 "src": "3477:7:22",
3945 "typeDescriptions": {
3946 "typeIdentifier": "t_uint256",
3947 "typeString": "uint256"
3948 }
3949 },
3950 "value": null,
3951 "visibility": "internal"
3952 }
3953 ],
3954 "src": "3476:16:22"
3955 },
3956 "payable": false,
3957 "returnParameters": {
3958 "id": 5474,
3959 "nodeType": "ParameterList",
3960 "parameters": [
3961 {
3962 "constant": false,
3963 "id": 5473,
3964 "name": "",
3965 "nodeType": "VariableDeclaration",
3966 "scope": 5482,
3967 "src": "3521:4:22",
3968 "stateVariable": false,
3969 "storageLocation": "default",
3970 "typeDescriptions": {
3971 "typeIdentifier": "t_bool",
3972 "typeString": "bool"
3973 },
3974 "typeName": {
3975 "id": 5472,
3976 "name": "bool",
3977 "nodeType": "ElementaryTypeName",
3978 "src": "3521:4:22",
3979 "typeDescriptions": {
3980 "typeIdentifier": "t_bool",
3981 "typeString": "bool"
3982 }
3983 },
3984 "value": null,
3985 "visibility": "internal"
3986 }
3987 ],
3988 "src": "3520:6:22"
3989 },
3990 "scope": 5881,
3991 "src": "3456:121:22",
3992 "stateMutability": "nonpayable",
3993 "superFunction": null,
3994 "visibility": "external"
3995 },
3996 {
3997 "body": {
3998 "id": 5522,
3999 "nodeType": "Block",
4000 "src": "3883:336:22",
4001 "statements": [
4002 {
4003 "expression": {
4004 "argumentTypes": null,
4005 "arguments": [
4006 {
4007 "argumentTypes": null,
4008 "commonType": {
4009 "typeIdentifier": "t_uint256",
4010 "typeString": "uint256"
4011 },
4012 "id": 5497,
4013 "isConstant": false,
4014 "isLValue": false,
4015 "isPure": false,
4016 "lValueRequested": false,
4017 "leftExpression": {
4018 "argumentTypes": null,
4019 "id": 5490,
4020 "name": "_value",
4021 "nodeType": "Identifier",
4022 "overloadedDeclarations": [],
4023 "referencedDeclaration": 5486,
4024 "src": "3901:6:22",
4025 "typeDescriptions": {
4026 "typeIdentifier": "t_uint256",
4027 "typeString": "uint256"
4028 }
4029 },
4030 "nodeType": "BinaryOperation",
4031 "operator": "<=",
4032 "rightExpression": {
4033 "argumentTypes": null,
4034 "baseExpression": {
4035 "argumentTypes": null,
4036 "baseExpression": {
4037 "argumentTypes": null,
4038 "id": 5491,
4039 "name": "allowed",
4040 "nodeType": "Identifier",
4041 "overloadedDeclarations": [],
4042 "referencedDeclaration": 5313,
4043 "src": "3911:7:22",
4044 "typeDescriptions": {
4045 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
4046 "typeString": "mapping(address => mapping(address => uint256))"
4047 }
4048 },
4049 "id": 5493,
4050 "indexExpression": {
4051 "argumentTypes": null,
4052 "id": 5492,
4053 "name": "_from",
4054 "nodeType": "Identifier",
4055 "overloadedDeclarations": [],
4056 "referencedDeclaration": 5484,
4057 "src": "3919:5:22",
4058 "typeDescriptions": {
4059 "typeIdentifier": "t_address",
4060 "typeString": "address"
4061 }
4062 },
4063 "isConstant": false,
4064 "isLValue": true,
4065 "isPure": false,
4066 "lValueRequested": false,
4067 "nodeType": "IndexAccess",
4068 "src": "3911:14:22",
4069 "typeDescriptions": {
4070 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
4071 "typeString": "mapping(address => uint256)"
4072 }
4073 },
4074 "id": 5496,
4075 "indexExpression": {
4076 "argumentTypes": null,
4077 "expression": {
4078 "argumentTypes": null,
4079 "id": 5494,
4080 "name": "msg",
4081 "nodeType": "Identifier",
4082 "overloadedDeclarations": [],
4083 "referencedDeclaration": 12092,
4084 "src": "3926:3:22",
4085 "typeDescriptions": {
4086 "typeIdentifier": "t_magic_message",
4087 "typeString": "msg"
4088 }
4089 },
4090 "id": 5495,
4091 "isConstant": false,
4092 "isLValue": false,
4093 "isPure": false,
4094 "lValueRequested": false,
4095 "memberName": "sender",
4096 "nodeType": "MemberAccess",
4097 "referencedDeclaration": null,
4098 "src": "3926:10:22",
4099 "typeDescriptions": {
4100 "typeIdentifier": "t_address",
4101 "typeString": "address"
4102 }
4103 },
4104 "isConstant": false,
4105 "isLValue": true,
4106 "isPure": false,
4107 "lValueRequested": false,
4108 "nodeType": "IndexAccess",
4109 "src": "3911:26:22",
4110 "typeDescriptions": {
4111 "typeIdentifier": "t_uint256",
4112 "typeString": "uint256"
4113 }
4114 },
4115 "src": "3901:36:22",
4116 "typeDescriptions": {
4117 "typeIdentifier": "t_bool",
4118 "typeString": "bool"
4119 }
4120 }
4121 ],
4122 "expression": {
4123 "argumentTypes": [
4124 {
4125 "typeIdentifier": "t_bool",
4126 "typeString": "bool"
4127 }
4128 ],
4129 "id": 5489,
4130 "name": "require",
4131 "nodeType": "Identifier",
4132 "overloadedDeclarations": [
4133 12095,
4134 12096
4135 ],
4136 "referencedDeclaration": 12095,
4137 "src": "3893:7:22",
4138 "typeDescriptions": {
4139 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
4140 "typeString": "function (bool) pure"
4141 }
4142 },
4143 "id": 5498,
4144 "isConstant": false,
4145 "isLValue": false,
4146 "isPure": false,
4147 "kind": "functionCall",
4148 "lValueRequested": false,
4149 "names": [],
4150 "nodeType": "FunctionCall",
4151 "src": "3893:45:22",
4152 "typeDescriptions": {
4153 "typeIdentifier": "t_tuple$__$",
4154 "typeString": "tuple()"
4155 }
4156 },
4157 "id": 5499,
4158 "nodeType": "ExpressionStatement",
4159 "src": "3893:45:22"
4160 },
4161 {
4162 "expression": {
4163 "argumentTypes": null,
4164 "id": 5515,
4165 "isConstant": false,
4166 "isLValue": false,
4167 "isPure": false,
4168 "lValueRequested": false,
4169 "leftHandSide": {
4170 "argumentTypes": null,
4171 "baseExpression": {
4172 "argumentTypes": null,
4173 "baseExpression": {
4174 "argumentTypes": null,
4175 "id": 5500,
4176 "name": "allowed",
4177 "nodeType": "Identifier",
4178 "overloadedDeclarations": [],
4179 "referencedDeclaration": 5313,
4180 "src": "4115:7:22",
4181 "typeDescriptions": {
4182 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
4183 "typeString": "mapping(address => mapping(address => uint256))"
4184 }
4185 },
4186 "id": 5504,
4187 "indexExpression": {
4188 "argumentTypes": null,
4189 "id": 5501,
4190 "name": "_from",
4191 "nodeType": "Identifier",
4192 "overloadedDeclarations": [],
4193 "referencedDeclaration": 5484,
4194 "src": "4123:5:22",
4195 "typeDescriptions": {
4196 "typeIdentifier": "t_address",
4197 "typeString": "address"
4198 }
4199 },
4200 "isConstant": false,
4201 "isLValue": true,
4202 "isPure": false,
4203 "lValueRequested": false,
4204 "nodeType": "IndexAccess",
4205 "src": "4115:14:22",
4206 "typeDescriptions": {
4207 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
4208 "typeString": "mapping(address => uint256)"
4209 }
4210 },
4211 "id": 5505,
4212 "indexExpression": {
4213 "argumentTypes": null,
4214 "expression": {
4215 "argumentTypes": null,
4216 "id": 5502,
4217 "name": "msg",
4218 "nodeType": "Identifier",
4219 "overloadedDeclarations": [],
4220 "referencedDeclaration": 12092,
4221 "src": "4130:3:22",
4222 "typeDescriptions": {
4223 "typeIdentifier": "t_magic_message",
4224 "typeString": "msg"
4225 }
4226 },
4227 "id": 5503,
4228 "isConstant": false,
4229 "isLValue": false,
4230 "isPure": false,
4231 "lValueRequested": false,
4232 "memberName": "sender",
4233 "nodeType": "MemberAccess",
4234 "referencedDeclaration": null,
4235 "src": "4130:10:22",
4236 "typeDescriptions": {
4237 "typeIdentifier": "t_address",
4238 "typeString": "address"
4239 }
4240 },
4241 "isConstant": false,
4242 "isLValue": true,
4243 "isPure": false,
4244 "lValueRequested": true,
4245 "nodeType": "IndexAccess",
4246 "src": "4115:26:22",
4247 "typeDescriptions": {
4248 "typeIdentifier": "t_uint256",
4249 "typeString": "uint256"
4250 }
4251 },
4252 "nodeType": "Assignment",
4253 "operator": "=",
4254 "rightHandSide": {
4255 "argumentTypes": null,
4256 "arguments": [
4257 {
4258 "argumentTypes": null,
4259 "id": 5513,
4260 "name": "_value",
4261 "nodeType": "Identifier",
4262 "overloadedDeclarations": [],
4263 "referencedDeclaration": 5486,
4264 "src": "4175:6:22",
4265 "typeDescriptions": {
4266 "typeIdentifier": "t_uint256",
4267 "typeString": "uint256"
4268 }
4269 }
4270 ],
4271 "expression": {
4272 "argumentTypes": [
4273 {
4274 "typeIdentifier": "t_uint256",
4275 "typeString": "uint256"
4276 }
4277 ],
4278 "expression": {
4279 "argumentTypes": null,
4280 "baseExpression": {
4281 "argumentTypes": null,
4282 "baseExpression": {
4283 "argumentTypes": null,
4284 "id": 5506,
4285 "name": "allowed",
4286 "nodeType": "Identifier",
4287 "overloadedDeclarations": [],
4288 "referencedDeclaration": 5313,
4289 "src": "4144:7:22",
4290 "typeDescriptions": {
4291 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
4292 "typeString": "mapping(address => mapping(address => uint256))"
4293 }
4294 },
4295 "id": 5508,
4296 "indexExpression": {
4297 "argumentTypes": null,
4298 "id": 5507,
4299 "name": "_from",
4300 "nodeType": "Identifier",
4301 "overloadedDeclarations": [],
4302 "referencedDeclaration": 5484,
4303 "src": "4152:5:22",
4304 "typeDescriptions": {
4305 "typeIdentifier": "t_address",
4306 "typeString": "address"
4307 }
4308 },
4309 "isConstant": false,
4310 "isLValue": true,
4311 "isPure": false,
4312 "lValueRequested": false,
4313 "nodeType": "IndexAccess",
4314 "src": "4144:14:22",
4315 "typeDescriptions": {
4316 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
4317 "typeString": "mapping(address => uint256)"
4318 }
4319 },
4320 "id": 5511,
4321 "indexExpression": {
4322 "argumentTypes": null,
4323 "expression": {
4324 "argumentTypes": null,
4325 "id": 5509,
4326 "name": "msg",
4327 "nodeType": "Identifier",
4328 "overloadedDeclarations": [],
4329 "referencedDeclaration": 12092,
4330 "src": "4159:3:22",
4331 "typeDescriptions": {
4332 "typeIdentifier": "t_magic_message",
4333 "typeString": "msg"
4334 }
4335 },
4336 "id": 5510,
4337 "isConstant": false,
4338 "isLValue": false,
4339 "isPure": false,
4340 "lValueRequested": false,
4341 "memberName": "sender",
4342 "nodeType": "MemberAccess",
4343 "referencedDeclaration": null,
4344 "src": "4159:10:22",
4345 "typeDescriptions": {
4346 "typeIdentifier": "t_address",
4347 "typeString": "address"
4348 }
4349 },
4350 "isConstant": false,
4351 "isLValue": true,
4352 "isPure": false,
4353 "lValueRequested": false,
4354 "nodeType": "IndexAccess",
4355 "src": "4144:26:22",
4356 "typeDescriptions": {
4357 "typeIdentifier": "t_uint256",
4358 "typeString": "uint256"
4359 }
4360 },
4361 "id": 5512,
4362 "isConstant": false,
4363 "isLValue": false,
4364 "isPure": false,
4365 "lValueRequested": false,
4366 "memberName": "sub",
4367 "nodeType": "MemberAccess",
4368 "referencedDeclaration": 5268,
4369 "src": "4144:30:22",
4370 "typeDescriptions": {
4371 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
4372 "typeString": "function (uint256,uint256) pure returns (uint256)"
4373 }
4374 },
4375 "id": 5514,
4376 "isConstant": false,
4377 "isLValue": false,
4378 "isPure": false,
4379 "kind": "functionCall",
4380 "lValueRequested": false,
4381 "names": [],
4382 "nodeType": "FunctionCall",
4383 "src": "4144:38:22",
4384 "typeDescriptions": {
4385 "typeIdentifier": "t_uint256",
4386 "typeString": "uint256"
4387 }
4388 },
4389 "src": "4115:67:22",
4390 "typeDescriptions": {
4391 "typeIdentifier": "t_uint256",
4392 "typeString": "uint256"
4393 }
4394 },
4395 "id": 5516,
4396 "nodeType": "ExpressionStatement",
4397 "src": "4115:67:22"
4398 },
4399 {
4400 "expression": {
4401 "argumentTypes": null,
4402 "arguments": [
4403 {
4404 "argumentTypes": null,
4405 "id": 5518,
4406 "name": "_from",
4407 "nodeType": "Identifier",
4408 "overloadedDeclarations": [],
4409 "referencedDeclaration": 5484,
4410 "src": "4198:5:22",
4411 "typeDescriptions": {
4412 "typeIdentifier": "t_address",
4413 "typeString": "address"
4414 }
4415 },
4416 {
4417 "argumentTypes": null,
4418 "id": 5519,
4419 "name": "_value",
4420 "nodeType": "Identifier",
4421 "overloadedDeclarations": [],
4422 "referencedDeclaration": 5486,
4423 "src": "4205:6:22",
4424 "typeDescriptions": {
4425 "typeIdentifier": "t_uint256",
4426 "typeString": "uint256"
4427 }
4428 }
4429 ],
4430 "expression": {
4431 "argumentTypes": [
4432 {
4433 "typeIdentifier": "t_address",
4434 "typeString": "address"
4435 },
4436 {
4437 "typeIdentifier": "t_uint256",
4438 "typeString": "uint256"
4439 }
4440 ],
4441 "id": 5517,
4442 "name": "_burn",
4443 "nodeType": "Identifier",
4444 "overloadedDeclarations": [],
4445 "referencedDeclaration": 5582,
4446 "src": "4192:5:22",
4447 "typeDescriptions": {
4448 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
4449 "typeString": "function (address,uint256)"
4450 }
4451 },
4452 "id": 5520,
4453 "isConstant": false,
4454 "isLValue": false,
4455 "isPure": false,
4456 "kind": "functionCall",
4457 "lValueRequested": false,
4458 "names": [],
4459 "nodeType": "FunctionCall",
4460 "src": "4192:20:22",
4461 "typeDescriptions": {
4462 "typeIdentifier": "t_tuple$__$",
4463 "typeString": "tuple()"
4464 }
4465 },
4466 "id": 5521,
4467 "nodeType": "ExpressionStatement",
4468 "src": "4192:20:22"
4469 }
4470 ]
4471 },
4472 "documentation": "@dev Burns a specific amount of tokens from the target address and decrements allowance\n@param _from address The address which you want to send tokens from\n@param _value uint256 The amount of token to be burned",
4473 "id": 5523,
4474 "implemented": true,
4475 "isConstructor": false,
4476 "isDeclaredConst": false,
4477 "modifiers": [],
4478 "name": "burnFrom",
4479 "nodeType": "FunctionDefinition",
4480 "parameters": {
4481 "id": 5487,
4482 "nodeType": "ParameterList",
4483 "parameters": [
4484 {
4485 "constant": false,
4486 "id": 5484,
4487 "name": "_from",
4488 "nodeType": "VariableDeclaration",
4489 "scope": 5523,
4490 "src": "3845:13:22",
4491 "stateVariable": false,
4492 "storageLocation": "default",
4493 "typeDescriptions": {
4494 "typeIdentifier": "t_address",
4495 "typeString": "address"
4496 },
4497 "typeName": {
4498 "id": 5483,
4499 "name": "address",
4500 "nodeType": "ElementaryTypeName",
4501 "src": "3845:7:22",
4502 "typeDescriptions": {
4503 "typeIdentifier": "t_address",
4504 "typeString": "address"
4505 }
4506 },
4507 "value": null,
4508 "visibility": "internal"
4509 },
4510 {
4511 "constant": false,
4512 "id": 5486,
4513 "name": "_value",
4514 "nodeType": "VariableDeclaration",
4515 "scope": 5523,
4516 "src": "3860:14:22",
4517 "stateVariable": false,
4518 "storageLocation": "default",
4519 "typeDescriptions": {
4520 "typeIdentifier": "t_uint256",
4521 "typeString": "uint256"
4522 },
4523 "typeName": {
4524 "id": 5485,
4525 "name": "uint256",
4526 "nodeType": "ElementaryTypeName",
4527 "src": "3860:7:22",
4528 "typeDescriptions": {
4529 "typeIdentifier": "t_uint256",
4530 "typeString": "uint256"
4531 }
4532 },
4533 "value": null,
4534 "visibility": "internal"
4535 }
4536 ],
4537 "src": "3844:31:22"
4538 },
4539 "payable": false,
4540 "returnParameters": {
4541 "id": 5488,
4542 "nodeType": "ParameterList",
4543 "parameters": [],
4544 "src": "3883:0:22"
4545 },
4546 "scope": 5881,
4547 "src": "3827:392:22",
4548 "stateMutability": "nonpayable",
4549 "superFunction": 5197,
4550 "visibility": "public"
4551 },
4552 {
4553 "body": {
4554 "id": 5534,
4555 "nodeType": "Block",
4556 "src": "4381:42:22",
4557 "statements": [
4558 {
4559 "expression": {
4560 "argumentTypes": null,
4561 "arguments": [
4562 {
4563 "argumentTypes": null,
4564 "expression": {
4565 "argumentTypes": null,
4566 "id": 5529,
4567 "name": "msg",
4568 "nodeType": "Identifier",
4569 "overloadedDeclarations": [],
4570 "referencedDeclaration": 12092,
4571 "src": "4397:3:22",
4572 "typeDescriptions": {
4573 "typeIdentifier": "t_magic_message",
4574 "typeString": "msg"
4575 }
4576 },
4577 "id": 5530,
4578 "isConstant": false,
4579 "isLValue": false,
4580 "isPure": false,
4581 "lValueRequested": false,
4582 "memberName": "sender",
4583 "nodeType": "MemberAccess",
4584 "referencedDeclaration": null,
4585 "src": "4397:10:22",
4586 "typeDescriptions": {
4587 "typeIdentifier": "t_address",
4588 "typeString": "address"
4589 }
4590 },
4591 {
4592 "argumentTypes": null,
4593 "id": 5531,
4594 "name": "_value",
4595 "nodeType": "Identifier",
4596 "overloadedDeclarations": [],
4597 "referencedDeclaration": 5525,
4598 "src": "4409:6:22",
4599 "typeDescriptions": {
4600 "typeIdentifier": "t_uint256",
4601 "typeString": "uint256"
4602 }
4603 }
4604 ],
4605 "expression": {
4606 "argumentTypes": [
4607 {
4608 "typeIdentifier": "t_address",
4609 "typeString": "address"
4610 },
4611 {
4612 "typeIdentifier": "t_uint256",
4613 "typeString": "uint256"
4614 }
4615 ],
4616 "id": 5528,
4617 "name": "_burn",
4618 "nodeType": "Identifier",
4619 "overloadedDeclarations": [],
4620 "referencedDeclaration": 5582,
4621 "src": "4391:5:22",
4622 "typeDescriptions": {
4623 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
4624 "typeString": "function (address,uint256)"
4625 }
4626 },
4627 "id": 5532,
4628 "isConstant": false,
4629 "isLValue": false,
4630 "isPure": false,
4631 "kind": "functionCall",
4632 "lValueRequested": false,
4633 "names": [],
4634 "nodeType": "FunctionCall",
4635 "src": "4391:25:22",
4636 "typeDescriptions": {
4637 "typeIdentifier": "t_tuple$__$",
4638 "typeString": "tuple()"
4639 }
4640 },
4641 "id": 5533,
4642 "nodeType": "ExpressionStatement",
4643 "src": "4391:25:22"
4644 }
4645 ]
4646 },
4647 "documentation": "@dev Burns a specific amount of tokens.\n@param _value The amount of token to be burned.",
4648 "id": 5535,
4649 "implemented": true,
4650 "isConstructor": false,
4651 "isDeclaredConst": false,
4652 "modifiers": [],
4653 "name": "burn",
4654 "nodeType": "FunctionDefinition",
4655 "parameters": {
4656 "id": 5526,
4657 "nodeType": "ParameterList",
4658 "parameters": [
4659 {
4660 "constant": false,
4661 "id": 5525,
4662 "name": "_value",
4663 "nodeType": "VariableDeclaration",
4664 "scope": 5535,
4665 "src": "4358:14:22",
4666 "stateVariable": false,
4667 "storageLocation": "default",
4668 "typeDescriptions": {
4669 "typeIdentifier": "t_uint256",
4670 "typeString": "uint256"
4671 },
4672 "typeName": {
4673 "id": 5524,
4674 "name": "uint256",
4675 "nodeType": "ElementaryTypeName",
4676 "src": "4358:7:22",
4677 "typeDescriptions": {
4678 "typeIdentifier": "t_uint256",
4679 "typeString": "uint256"
4680 }
4681 },
4682 "value": null,
4683 "visibility": "internal"
4684 }
4685 ],
4686 "src": "4357:16:22"
4687 },
4688 "payable": false,
4689 "returnParameters": {
4690 "id": 5527,
4691 "nodeType": "ParameterList",
4692 "parameters": [],
4693 "src": "4381:0:22"
4694 },
4695 "scope": 5881,
4696 "src": "4344:79:22",
4697 "stateMutability": "nonpayable",
4698 "superFunction": null,
4699 "visibility": "public"
4700 },
4701 {
4702 "body": {
4703 "id": 5581,
4704 "nodeType": "Block",
4705 "src": "4483:414:22",
4706 "statements": [
4707 {
4708 "expression": {
4709 "argumentTypes": null,
4710 "arguments": [
4711 {
4712 "argumentTypes": null,
4713 "commonType": {
4714 "typeIdentifier": "t_uint256",
4715 "typeString": "uint256"
4716 },
4717 "id": 5547,
4718 "isConstant": false,
4719 "isLValue": false,
4720 "isPure": false,
4721 "lValueRequested": false,
4722 "leftExpression": {
4723 "argumentTypes": null,
4724 "id": 5543,
4725 "name": "_value",
4726 "nodeType": "Identifier",
4727 "overloadedDeclarations": [],
4728 "referencedDeclaration": 5539,
4729 "src": "4501:6:22",
4730 "typeDescriptions": {
4731 "typeIdentifier": "t_uint256",
4732 "typeString": "uint256"
4733 }
4734 },
4735 "nodeType": "BinaryOperation",
4736 "operator": "<=",
4737 "rightExpression": {
4738 "argumentTypes": null,
4739 "baseExpression": {
4740 "argumentTypes": null,
4741 "id": 5544,
4742 "name": "balances",
4743 "nodeType": "Identifier",
4744 "overloadedDeclarations": [],
4745 "referencedDeclaration": 5317,
4746 "src": "4511:8:22",
4747 "typeDescriptions": {
4748 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
4749 "typeString": "mapping(address => uint256)"
4750 }
4751 },
4752 "id": 5546,
4753 "indexExpression": {
4754 "argumentTypes": null,
4755 "id": 5545,
4756 "name": "_who",
4757 "nodeType": "Identifier",
4758 "overloadedDeclarations": [],
4759 "referencedDeclaration": 5537,
4760 "src": "4520:4:22",
4761 "typeDescriptions": {
4762 "typeIdentifier": "t_address",
4763 "typeString": "address"
4764 }
4765 },
4766 "isConstant": false,
4767 "isLValue": true,
4768 "isPure": false,
4769 "lValueRequested": false,
4770 "nodeType": "IndexAccess",
4771 "src": "4511:14:22",
4772 "typeDescriptions": {
4773 "typeIdentifier": "t_uint256",
4774 "typeString": "uint256"
4775 }
4776 },
4777 "src": "4501:24:22",
4778 "typeDescriptions": {
4779 "typeIdentifier": "t_bool",
4780 "typeString": "bool"
4781 }
4782 }
4783 ],
4784 "expression": {
4785 "argumentTypes": [
4786 {
4787 "typeIdentifier": "t_bool",
4788 "typeString": "bool"
4789 }
4790 ],
4791 "id": 5542,
4792 "name": "require",
4793 "nodeType": "Identifier",
4794 "overloadedDeclarations": [
4795 12095,
4796 12096
4797 ],
4798 "referencedDeclaration": 12095,
4799 "src": "4493:7:22",
4800 "typeDescriptions": {
4801 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
4802 "typeString": "function (bool) pure"
4803 }
4804 },
4805 "id": 5548,
4806 "isConstant": false,
4807 "isLValue": false,
4808 "isPure": false,
4809 "kind": "functionCall",
4810 "lValueRequested": false,
4811 "names": [],
4812 "nodeType": "FunctionCall",
4813 "src": "4493:33:22",
4814 "typeDescriptions": {
4815 "typeIdentifier": "t_tuple$__$",
4816 "typeString": "tuple()"
4817 }
4818 },
4819 "id": 5549,
4820 "nodeType": "ExpressionStatement",
4821 "src": "4493:33:22"
4822 },
4823 {
4824 "expression": {
4825 "argumentTypes": null,
4826 "id": 5559,
4827 "isConstant": false,
4828 "isLValue": false,
4829 "isPure": false,
4830 "lValueRequested": false,
4831 "leftHandSide": {
4832 "argumentTypes": null,
4833 "baseExpression": {
4834 "argumentTypes": null,
4835 "id": 5550,
4836 "name": "balances",
4837 "nodeType": "Identifier",
4838 "overloadedDeclarations": [],
4839 "referencedDeclaration": 5317,
4840 "src": "4716:8:22",
4841 "typeDescriptions": {
4842 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
4843 "typeString": "mapping(address => uint256)"
4844 }
4845 },
4846 "id": 5552,
4847 "indexExpression": {
4848 "argumentTypes": null,
4849 "id": 5551,
4850 "name": "_who",
4851 "nodeType": "Identifier",
4852 "overloadedDeclarations": [],
4853 "referencedDeclaration": 5537,
4854 "src": "4725:4:22",
4855 "typeDescriptions": {
4856 "typeIdentifier": "t_address",
4857 "typeString": "address"
4858 }
4859 },
4860 "isConstant": false,
4861 "isLValue": true,
4862 "isPure": false,
4863 "lValueRequested": true,
4864 "nodeType": "IndexAccess",
4865 "src": "4716:14:22",
4866 "typeDescriptions": {
4867 "typeIdentifier": "t_uint256",
4868 "typeString": "uint256"
4869 }
4870 },
4871 "nodeType": "Assignment",
4872 "operator": "=",
4873 "rightHandSide": {
4874 "argumentTypes": null,
4875 "arguments": [
4876 {
4877 "argumentTypes": null,
4878 "id": 5557,
4879 "name": "_value",
4880 "nodeType": "Identifier",
4881 "overloadedDeclarations": [],
4882 "referencedDeclaration": 5539,
4883 "src": "4752:6:22",
4884 "typeDescriptions": {
4885 "typeIdentifier": "t_uint256",
4886 "typeString": "uint256"
4887 }
4888 }
4889 ],
4890 "expression": {
4891 "argumentTypes": [
4892 {
4893 "typeIdentifier": "t_uint256",
4894 "typeString": "uint256"
4895 }
4896 ],
4897 "expression": {
4898 "argumentTypes": null,
4899 "baseExpression": {
4900 "argumentTypes": null,
4901 "id": 5553,
4902 "name": "balances",
4903 "nodeType": "Identifier",
4904 "overloadedDeclarations": [],
4905 "referencedDeclaration": 5317,
4906 "src": "4733:8:22",
4907 "typeDescriptions": {
4908 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
4909 "typeString": "mapping(address => uint256)"
4910 }
4911 },
4912 "id": 5555,
4913 "indexExpression": {
4914 "argumentTypes": null,
4915 "id": 5554,
4916 "name": "_who",
4917 "nodeType": "Identifier",
4918 "overloadedDeclarations": [],
4919 "referencedDeclaration": 5537,
4920 "src": "4742:4:22",
4921 "typeDescriptions": {
4922 "typeIdentifier": "t_address",
4923 "typeString": "address"
4924 }
4925 },
4926 "isConstant": false,
4927 "isLValue": true,
4928 "isPure": false,
4929 "lValueRequested": false,
4930 "nodeType": "IndexAccess",
4931 "src": "4733:14:22",
4932 "typeDescriptions": {
4933 "typeIdentifier": "t_uint256",
4934 "typeString": "uint256"
4935 }
4936 },
4937 "id": 5556,
4938 "isConstant": false,
4939 "isLValue": false,
4940 "isPure": false,
4941 "lValueRequested": false,
4942 "memberName": "sub",
4943 "nodeType": "MemberAccess",
4944 "referencedDeclaration": 5268,
4945 "src": "4733:18:22",
4946 "typeDescriptions": {
4947 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
4948 "typeString": "function (uint256,uint256) pure returns (uint256)"
4949 }
4950 },
4951 "id": 5558,
4952 "isConstant": false,
4953 "isLValue": false,
4954 "isPure": false,
4955 "kind": "functionCall",
4956 "lValueRequested": false,
4957 "names": [],
4958 "nodeType": "FunctionCall",
4959 "src": "4733:26:22",
4960 "typeDescriptions": {
4961 "typeIdentifier": "t_uint256",
4962 "typeString": "uint256"
4963 }
4964 },
4965 "src": "4716:43:22",
4966 "typeDescriptions": {
4967 "typeIdentifier": "t_uint256",
4968 "typeString": "uint256"
4969 }
4970 },
4971 "id": 5560,
4972 "nodeType": "ExpressionStatement",
4973 "src": "4716:43:22"
4974 },
4975 {
4976 "expression": {
4977 "argumentTypes": null,
4978 "id": 5566,
4979 "isConstant": false,
4980 "isLValue": false,
4981 "isPure": false,
4982 "lValueRequested": false,
4983 "leftHandSide": {
4984 "argumentTypes": null,
4985 "id": 5561,
4986 "name": "totalSupply_",
4987 "nodeType": "Identifier",
4988 "overloadedDeclarations": [],
4989 "referencedDeclaration": 5307,
4990 "src": "4769:12:22",
4991 "typeDescriptions": {
4992 "typeIdentifier": "t_uint256",
4993 "typeString": "uint256"
4994 }
4995 },
4996 "nodeType": "Assignment",
4997 "operator": "=",
4998 "rightHandSide": {
4999 "argumentTypes": null,
5000 "arguments": [
5001 {
5002 "argumentTypes": null,
5003 "id": 5564,
5004 "name": "_value",
5005 "nodeType": "Identifier",
5006 "overloadedDeclarations": [],
5007 "referencedDeclaration": 5539,
5008 "src": "4801:6:22",
5009 "typeDescriptions": {
5010 "typeIdentifier": "t_uint256",
5011 "typeString": "uint256"
5012 }
5013 }
5014 ],
5015 "expression": {
5016 "argumentTypes": [
5017 {
5018 "typeIdentifier": "t_uint256",
5019 "typeString": "uint256"
5020 }
5021 ],
5022 "expression": {
5023 "argumentTypes": null,
5024 "id": 5562,
5025 "name": "totalSupply_",
5026 "nodeType": "Identifier",
5027 "overloadedDeclarations": [],
5028 "referencedDeclaration": 5307,
5029 "src": "4784:12:22",
5030 "typeDescriptions": {
5031 "typeIdentifier": "t_uint256",
5032 "typeString": "uint256"
5033 }
5034 },
5035 "id": 5563,
5036 "isConstant": false,
5037 "isLValue": false,
5038 "isPure": false,
5039 "lValueRequested": false,
5040 "memberName": "sub",
5041 "nodeType": "MemberAccess",
5042 "referencedDeclaration": 5268,
5043 "src": "4784:16:22",
5044 "typeDescriptions": {
5045 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
5046 "typeString": "function (uint256,uint256) pure returns (uint256)"
5047 }
5048 },
5049 "id": 5565,
5050 "isConstant": false,
5051 "isLValue": false,
5052 "isPure": false,
5053 "kind": "functionCall",
5054 "lValueRequested": false,
5055 "names": [],
5056 "nodeType": "FunctionCall",
5057 "src": "4784:24:22",
5058 "typeDescriptions": {
5059 "typeIdentifier": "t_uint256",
5060 "typeString": "uint256"
5061 }
5062 },
5063 "src": "4769:39:22",
5064 "typeDescriptions": {
5065 "typeIdentifier": "t_uint256",
5066 "typeString": "uint256"
5067 }
5068 },
5069 "id": 5567,
5070 "nodeType": "ExpressionStatement",
5071 "src": "4769:39:22"
5072 },
5073 {
5074 "eventCall": {
5075 "argumentTypes": null,
5076 "arguments": [
5077 {
5078 "argumentTypes": null,
5079 "id": 5569,
5080 "name": "_who",
5081 "nodeType": "Identifier",
5082 "overloadedDeclarations": [],
5083 "referencedDeclaration": 5537,
5084 "src": "4828:4:22",
5085 "typeDescriptions": {
5086 "typeIdentifier": "t_address",
5087 "typeString": "address"
5088 }
5089 },
5090 {
5091 "argumentTypes": null,
5092 "id": 5570,
5093 "name": "_value",
5094 "nodeType": "Identifier",
5095 "overloadedDeclarations": [],
5096 "referencedDeclaration": 5539,
5097 "src": "4834:6:22",
5098 "typeDescriptions": {
5099 "typeIdentifier": "t_uint256",
5100 "typeString": "uint256"
5101 }
5102 }
5103 ],
5104 "expression": {
5105 "argumentTypes": [
5106 {
5107 "typeIdentifier": "t_address",
5108 "typeString": "address"
5109 },
5110 {
5111 "typeIdentifier": "t_uint256",
5112 "typeString": "uint256"
5113 }
5114 ],
5115 "id": 5568,
5116 "name": "Burn",
5117 "nodeType": "Identifier",
5118 "overloadedDeclarations": [],
5119 "referencedDeclaration": 5326,
5120 "src": "4823:4:22",
5121 "typeDescriptions": {
5122 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
5123 "typeString": "function (address,uint256)"
5124 }
5125 },
5126 "id": 5571,
5127 "isConstant": false,
5128 "isLValue": false,
5129 "isPure": false,
5130 "kind": "functionCall",
5131 "lValueRequested": false,
5132 "names": [],
5133 "nodeType": "FunctionCall",
5134 "src": "4823:18:22",
5135 "typeDescriptions": {
5136 "typeIdentifier": "t_tuple$__$",
5137 "typeString": "tuple()"
5138 }
5139 },
5140 "id": 5572,
5141 "nodeType": "EmitStatement",
5142 "src": "4818:23:22"
5143 },
5144 {
5145 "eventCall": {
5146 "argumentTypes": null,
5147 "arguments": [
5148 {
5149 "argumentTypes": null,
5150 "id": 5574,
5151 "name": "_who",
5152 "nodeType": "Identifier",
5153 "overloadedDeclarations": [],
5154 "referencedDeclaration": 5537,
5155 "src": "4865:4:22",
5156 "typeDescriptions": {
5157 "typeIdentifier": "t_address",
5158 "typeString": "address"
5159 }
5160 },
5161 {
5162 "argumentTypes": null,
5163 "arguments": [
5164 {
5165 "argumentTypes": null,
5166 "hexValue": "30",
5167 "id": 5576,
5168 "isConstant": false,
5169 "isLValue": false,
5170 "isPure": true,
5171 "kind": "number",
5172 "lValueRequested": false,
5173 "nodeType": "Literal",
5174 "src": "4879:1:22",
5175 "subdenomination": null,
5176 "typeDescriptions": {
5177 "typeIdentifier": "t_rational_0_by_1",
5178 "typeString": "int_const 0"
5179 },
5180 "value": "0"
5181 }
5182 ],
5183 "expression": {
5184 "argumentTypes": [
5185 {
5186 "typeIdentifier": "t_rational_0_by_1",
5187 "typeString": "int_const 0"
5188 }
5189 ],
5190 "id": 5575,
5191 "isConstant": false,
5192 "isLValue": false,
5193 "isPure": true,
5194 "lValueRequested": false,
5195 "nodeType": "ElementaryTypeNameExpression",
5196 "src": "4871:7:22",
5197 "typeDescriptions": {
5198 "typeIdentifier": "t_type$_t_address_$",
5199 "typeString": "type(address)"
5200 },
5201 "typeName": "address"
5202 },
5203 "id": 5577,
5204 "isConstant": false,
5205 "isLValue": false,
5206 "isPure": true,
5207 "kind": "typeConversion",
5208 "lValueRequested": false,
5209 "names": [],
5210 "nodeType": "FunctionCall",
5211 "src": "4871:10:22",
5212 "typeDescriptions": {
5213 "typeIdentifier": "t_address",
5214 "typeString": "address"
5215 }
5216 },
5217 {
5218 "argumentTypes": null,
5219 "id": 5578,
5220 "name": "_value",
5221 "nodeType": "Identifier",
5222 "overloadedDeclarations": [],
5223 "referencedDeclaration": 5539,
5224 "src": "4883:6:22",
5225 "typeDescriptions": {
5226 "typeIdentifier": "t_uint256",
5227 "typeString": "uint256"
5228 }
5229 }
5230 ],
5231 "expression": {
5232 "argumentTypes": [
5233 {
5234 "typeIdentifier": "t_address",
5235 "typeString": "address"
5236 },
5237 {
5238 "typeIdentifier": "t_address",
5239 "typeString": "address"
5240 },
5241 {
5242 "typeIdentifier": "t_uint256",
5243 "typeString": "uint256"
5244 }
5245 ],
5246 "id": 5573,
5247 "name": "Transfer",
5248 "nodeType": "Identifier",
5249 "overloadedDeclarations": [],
5250 "referencedDeclaration": 5334,
5251 "src": "4856:8:22",
5252 "typeDescriptions": {
5253 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
5254 "typeString": "function (address,address,uint256)"
5255 }
5256 },
5257 "id": 5579,
5258 "isConstant": false,
5259 "isLValue": false,
5260 "isPure": false,
5261 "kind": "functionCall",
5262 "lValueRequested": false,
5263 "names": [],
5264 "nodeType": "FunctionCall",
5265 "src": "4856:34:22",
5266 "typeDescriptions": {
5267 "typeIdentifier": "t_tuple$__$",
5268 "typeString": "tuple()"
5269 }
5270 },
5271 "id": 5580,
5272 "nodeType": "EmitStatement",
5273 "src": "4851:39:22"
5274 }
5275 ]
5276 },
5277 "documentation": null,
5278 "id": 5582,
5279 "implemented": true,
5280 "isConstructor": false,
5281 "isDeclaredConst": false,
5282 "modifiers": [],
5283 "name": "_burn",
5284 "nodeType": "FunctionDefinition",
5285 "parameters": {
5286 "id": 5540,
5287 "nodeType": "ParameterList",
5288 "parameters": [
5289 {
5290 "constant": false,
5291 "id": 5537,
5292 "name": "_who",
5293 "nodeType": "VariableDeclaration",
5294 "scope": 5582,
5295 "src": "4444:12:22",
5296 "stateVariable": false,
5297 "storageLocation": "default",
5298 "typeDescriptions": {
5299 "typeIdentifier": "t_address",
5300 "typeString": "address"
5301 },
5302 "typeName": {
5303 "id": 5536,
5304 "name": "address",
5305 "nodeType": "ElementaryTypeName",
5306 "src": "4444:7:22",
5307 "typeDescriptions": {
5308 "typeIdentifier": "t_address",
5309 "typeString": "address"
5310 }
5311 },
5312 "value": null,
5313 "visibility": "internal"
5314 },
5315 {
5316 "constant": false,
5317 "id": 5539,
5318 "name": "_value",
5319 "nodeType": "VariableDeclaration",
5320 "scope": 5582,
5321 "src": "4458:14:22",
5322 "stateVariable": false,
5323 "storageLocation": "default",
5324 "typeDescriptions": {
5325 "typeIdentifier": "t_uint256",
5326 "typeString": "uint256"
5327 },
5328 "typeName": {
5329 "id": 5538,
5330 "name": "uint256",
5331 "nodeType": "ElementaryTypeName",
5332 "src": "4458:7:22",
5333 "typeDescriptions": {
5334 "typeIdentifier": "t_uint256",
5335 "typeString": "uint256"
5336 }
5337 },
5338 "value": null,
5339 "visibility": "internal"
5340 }
5341 ],
5342 "src": "4443:30:22"
5343 },
5344 "payable": false,
5345 "returnParameters": {
5346 "id": 5541,
5347 "nodeType": "ParameterList",
5348 "parameters": [],
5349 "src": "4483:0:22"
5350 },
5351 "scope": 5881,
5352 "src": "4429:468:22",
5353 "stateMutability": "nonpayable",
5354 "superFunction": null,
5355 "visibility": "internal"
5356 },
5357 {
5358 "body": {
5359 "id": 5628,
5360 "nodeType": "Block",
5361 "src": "5282:212:22",
5362 "statements": [
5363 {
5364 "expression": {
5365 "argumentTypes": null,
5366 "id": 5600,
5367 "isConstant": false,
5368 "isLValue": false,
5369 "isPure": false,
5370 "lValueRequested": false,
5371 "leftHandSide": {
5372 "argumentTypes": null,
5373 "id": 5595,
5374 "name": "totalSupply_",
5375 "nodeType": "Identifier",
5376 "overloadedDeclarations": [],
5377 "referencedDeclaration": 5307,
5378 "src": "5292:12:22",
5379 "typeDescriptions": {
5380 "typeIdentifier": "t_uint256",
5381 "typeString": "uint256"
5382 }
5383 },
5384 "nodeType": "Assignment",
5385 "operator": "=",
5386 "rightHandSide": {
5387 "argumentTypes": null,
5388 "arguments": [
5389 {
5390 "argumentTypes": null,
5391 "id": 5598,
5392 "name": "_amount",
5393 "nodeType": "Identifier",
5394 "overloadedDeclarations": [],
5395 "referencedDeclaration": 5586,
5396 "src": "5324:7:22",
5397 "typeDescriptions": {
5398 "typeIdentifier": "t_uint256",
5399 "typeString": "uint256"
5400 }
5401 }
5402 ],
5403 "expression": {
5404 "argumentTypes": [
5405 {
5406 "typeIdentifier": "t_uint256",
5407 "typeString": "uint256"
5408 }
5409 ],
5410 "expression": {
5411 "argumentTypes": null,
5412 "id": 5596,
5413 "name": "totalSupply_",
5414 "nodeType": "Identifier",
5415 "overloadedDeclarations": [],
5416 "referencedDeclaration": 5307,
5417 "src": "5307:12:22",
5418 "typeDescriptions": {
5419 "typeIdentifier": "t_uint256",
5420 "typeString": "uint256"
5421 }
5422 },
5423 "id": 5597,
5424 "isConstant": false,
5425 "isLValue": false,
5426 "isPure": false,
5427 "lValueRequested": false,
5428 "memberName": "add",
5429 "nodeType": "MemberAccess",
5430 "referencedDeclaration": 5292,
5431 "src": "5307:16:22",
5432 "typeDescriptions": {
5433 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
5434 "typeString": "function (uint256,uint256) pure returns (uint256)"
5435 }
5436 },
5437 "id": 5599,
5438 "isConstant": false,
5439 "isLValue": false,
5440 "isPure": false,
5441 "kind": "functionCall",
5442 "lValueRequested": false,
5443 "names": [],
5444 "nodeType": "FunctionCall",
5445 "src": "5307:25:22",
5446 "typeDescriptions": {
5447 "typeIdentifier": "t_uint256",
5448 "typeString": "uint256"
5449 }
5450 },
5451 "src": "5292:40:22",
5452 "typeDescriptions": {
5453 "typeIdentifier": "t_uint256",
5454 "typeString": "uint256"
5455 }
5456 },
5457 "id": 5601,
5458 "nodeType": "ExpressionStatement",
5459 "src": "5292:40:22"
5460 },
5461 {
5462 "expression": {
5463 "argumentTypes": null,
5464 "id": 5611,
5465 "isConstant": false,
5466 "isLValue": false,
5467 "isPure": false,
5468 "lValueRequested": false,
5469 "leftHandSide": {
5470 "argumentTypes": null,
5471 "baseExpression": {
5472 "argumentTypes": null,
5473 "id": 5602,
5474 "name": "balances",
5475 "nodeType": "Identifier",
5476 "overloadedDeclarations": [],
5477 "referencedDeclaration": 5317,
5478 "src": "5342:8:22",
5479 "typeDescriptions": {
5480 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
5481 "typeString": "mapping(address => uint256)"
5482 }
5483 },
5484 "id": 5604,
5485 "indexExpression": {
5486 "argumentTypes": null,
5487 "id": 5603,
5488 "name": "_to",
5489 "nodeType": "Identifier",
5490 "overloadedDeclarations": [],
5491 "referencedDeclaration": 5584,
5492 "src": "5351:3:22",
5493 "typeDescriptions": {
5494 "typeIdentifier": "t_address",
5495 "typeString": "address"
5496 }
5497 },
5498 "isConstant": false,
5499 "isLValue": true,
5500 "isPure": false,
5501 "lValueRequested": true,
5502 "nodeType": "IndexAccess",
5503 "src": "5342:13:22",
5504 "typeDescriptions": {
5505 "typeIdentifier": "t_uint256",
5506 "typeString": "uint256"
5507 }
5508 },
5509 "nodeType": "Assignment",
5510 "operator": "=",
5511 "rightHandSide": {
5512 "argumentTypes": null,
5513 "arguments": [
5514 {
5515 "argumentTypes": null,
5516 "id": 5609,
5517 "name": "_amount",
5518 "nodeType": "Identifier",
5519 "overloadedDeclarations": [],
5520 "referencedDeclaration": 5586,
5521 "src": "5376:7:22",
5522 "typeDescriptions": {
5523 "typeIdentifier": "t_uint256",
5524 "typeString": "uint256"
5525 }
5526 }
5527 ],
5528 "expression": {
5529 "argumentTypes": [
5530 {
5531 "typeIdentifier": "t_uint256",
5532 "typeString": "uint256"
5533 }
5534 ],
5535 "expression": {
5536 "argumentTypes": null,
5537 "baseExpression": {
5538 "argumentTypes": null,
5539 "id": 5605,
5540 "name": "balances",
5541 "nodeType": "Identifier",
5542 "overloadedDeclarations": [],
5543 "referencedDeclaration": 5317,
5544 "src": "5358:8:22",
5545 "typeDescriptions": {
5546 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
5547 "typeString": "mapping(address => uint256)"
5548 }
5549 },
5550 "id": 5607,
5551 "indexExpression": {
5552 "argumentTypes": null,
5553 "id": 5606,
5554 "name": "_to",
5555 "nodeType": "Identifier",
5556 "overloadedDeclarations": [],
5557 "referencedDeclaration": 5584,
5558 "src": "5367:3:22",
5559 "typeDescriptions": {
5560 "typeIdentifier": "t_address",
5561 "typeString": "address"
5562 }
5563 },
5564 "isConstant": false,
5565 "isLValue": true,
5566 "isPure": false,
5567 "lValueRequested": false,
5568 "nodeType": "IndexAccess",
5569 "src": "5358:13:22",
5570 "typeDescriptions": {
5571 "typeIdentifier": "t_uint256",
5572 "typeString": "uint256"
5573 }
5574 },
5575 "id": 5608,
5576 "isConstant": false,
5577 "isLValue": false,
5578 "isPure": false,
5579 "lValueRequested": false,
5580 "memberName": "add",
5581 "nodeType": "MemberAccess",
5582 "referencedDeclaration": 5292,
5583 "src": "5358:17:22",
5584 "typeDescriptions": {
5585 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
5586 "typeString": "function (uint256,uint256) pure returns (uint256)"
5587 }
5588 },
5589 "id": 5610,
5590 "isConstant": false,
5591 "isLValue": false,
5592 "isPure": false,
5593 "kind": "functionCall",
5594 "lValueRequested": false,
5595 "names": [],
5596 "nodeType": "FunctionCall",
5597 "src": "5358:26:22",
5598 "typeDescriptions": {
5599 "typeIdentifier": "t_uint256",
5600 "typeString": "uint256"
5601 }
5602 },
5603 "src": "5342:42:22",
5604 "typeDescriptions": {
5605 "typeIdentifier": "t_uint256",
5606 "typeString": "uint256"
5607 }
5608 },
5609 "id": 5612,
5610 "nodeType": "ExpressionStatement",
5611 "src": "5342:42:22"
5612 },
5613 {
5614 "eventCall": {
5615 "argumentTypes": null,
5616 "arguments": [
5617 {
5618 "argumentTypes": null,
5619 "id": 5614,
5620 "name": "_to",
5621 "nodeType": "Identifier",
5622 "overloadedDeclarations": [],
5623 "referencedDeclaration": 5584,
5624 "src": "5404:3:22",
5625 "typeDescriptions": {
5626 "typeIdentifier": "t_address",
5627 "typeString": "address"
5628 }
5629 },
5630 {
5631 "argumentTypes": null,
5632 "id": 5615,
5633 "name": "_amount",
5634 "nodeType": "Identifier",
5635 "overloadedDeclarations": [],
5636 "referencedDeclaration": 5586,
5637 "src": "5409:7:22",
5638 "typeDescriptions": {
5639 "typeIdentifier": "t_uint256",
5640 "typeString": "uint256"
5641 }
5642 }
5643 ],
5644 "expression": {
5645 "argumentTypes": [
5646 {
5647 "typeIdentifier": "t_address",
5648 "typeString": "address"
5649 },
5650 {
5651 "typeIdentifier": "t_uint256",
5652 "typeString": "uint256"
5653 }
5654 ],
5655 "id": 5613,
5656 "name": "Mint",
5657 "nodeType": "Identifier",
5658 "overloadedDeclarations": [],
5659 "referencedDeclaration": 5340,
5660 "src": "5399:4:22",
5661 "typeDescriptions": {
5662 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
5663 "typeString": "function (address,uint256)"
5664 }
5665 },
5666 "id": 5616,
5667 "isConstant": false,
5668 "isLValue": false,
5669 "isPure": false,
5670 "kind": "functionCall",
5671 "lValueRequested": false,
5672 "names": [],
5673 "nodeType": "FunctionCall",
5674 "src": "5399:18:22",
5675 "typeDescriptions": {
5676 "typeIdentifier": "t_tuple$__$",
5677 "typeString": "tuple()"
5678 }
5679 },
5680 "id": 5617,
5681 "nodeType": "EmitStatement",
5682 "src": "5394:23:22"
5683 },
5684 {
5685 "eventCall": {
5686 "argumentTypes": null,
5687 "arguments": [
5688 {
5689 "argumentTypes": null,
5690 "arguments": [
5691 {
5692 "argumentTypes": null,
5693 "hexValue": "30",
5694 "id": 5620,
5695 "isConstant": false,
5696 "isLValue": false,
5697 "isPure": true,
5698 "kind": "number",
5699 "lValueRequested": false,
5700 "nodeType": "Literal",
5701 "src": "5449:1:22",
5702 "subdenomination": null,
5703 "typeDescriptions": {
5704 "typeIdentifier": "t_rational_0_by_1",
5705 "typeString": "int_const 0"
5706 },
5707 "value": "0"
5708 }
5709 ],
5710 "expression": {
5711 "argumentTypes": [
5712 {
5713 "typeIdentifier": "t_rational_0_by_1",
5714 "typeString": "int_const 0"
5715 }
5716 ],
5717 "id": 5619,
5718 "isConstant": false,
5719 "isLValue": false,
5720 "isPure": true,
5721 "lValueRequested": false,
5722 "nodeType": "ElementaryTypeNameExpression",
5723 "src": "5441:7:22",
5724 "typeDescriptions": {
5725 "typeIdentifier": "t_type$_t_address_$",
5726 "typeString": "type(address)"
5727 },
5728 "typeName": "address"
5729 },
5730 "id": 5621,
5731 "isConstant": false,
5732 "isLValue": false,
5733 "isPure": true,
5734 "kind": "typeConversion",
5735 "lValueRequested": false,
5736 "names": [],
5737 "nodeType": "FunctionCall",
5738 "src": "5441:10:22",
5739 "typeDescriptions": {
5740 "typeIdentifier": "t_address",
5741 "typeString": "address"
5742 }
5743 },
5744 {
5745 "argumentTypes": null,
5746 "id": 5622,
5747 "name": "_to",
5748 "nodeType": "Identifier",
5749 "overloadedDeclarations": [],
5750 "referencedDeclaration": 5584,
5751 "src": "5453:3:22",
5752 "typeDescriptions": {
5753 "typeIdentifier": "t_address",
5754 "typeString": "address"
5755 }
5756 },
5757 {
5758 "argumentTypes": null,
5759 "id": 5623,
5760 "name": "_amount",
5761 "nodeType": "Identifier",
5762 "overloadedDeclarations": [],
5763 "referencedDeclaration": 5586,
5764 "src": "5458:7:22",
5765 "typeDescriptions": {
5766 "typeIdentifier": "t_uint256",
5767 "typeString": "uint256"
5768 }
5769 }
5770 ],
5771 "expression": {
5772 "argumentTypes": [
5773 {
5774 "typeIdentifier": "t_address",
5775 "typeString": "address"
5776 },
5777 {
5778 "typeIdentifier": "t_address",
5779 "typeString": "address"
5780 },
5781 {
5782 "typeIdentifier": "t_uint256",
5783 "typeString": "uint256"
5784 }
5785 ],
5786 "id": 5618,
5787 "name": "Transfer",
5788 "nodeType": "Identifier",
5789 "overloadedDeclarations": [],
5790 "referencedDeclaration": 5334,
5791 "src": "5432:8:22",
5792 "typeDescriptions": {
5793 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
5794 "typeString": "function (address,address,uint256)"
5795 }
5796 },
5797 "id": 5624,
5798 "isConstant": false,
5799 "isLValue": false,
5800 "isPure": false,
5801 "kind": "functionCall",
5802 "lValueRequested": false,
5803 "names": [],
5804 "nodeType": "FunctionCall",
5805 "src": "5432:34:22",
5806 "typeDescriptions": {
5807 "typeIdentifier": "t_tuple$__$",
5808 "typeString": "tuple()"
5809 }
5810 },
5811 "id": 5625,
5812 "nodeType": "EmitStatement",
5813 "src": "5427:39:22"
5814 },
5815 {
5816 "expression": {
5817 "argumentTypes": null,
5818 "hexValue": "74727565",
5819 "id": 5626,
5820 "isConstant": false,
5821 "isLValue": false,
5822 "isPure": true,
5823 "kind": "bool",
5824 "lValueRequested": false,
5825 "nodeType": "Literal",
5826 "src": "5483:4:22",
5827 "subdenomination": null,
5828 "typeDescriptions": {
5829 "typeIdentifier": "t_bool",
5830 "typeString": "bool"
5831 },
5832 "value": "true"
5833 },
5834 "functionReturnParameters": 5594,
5835 "id": 5627,
5836 "nodeType": "Return",
5837 "src": "5476:11:22"
5838 }
5839 ]
5840 },
5841 "documentation": "@dev Function to mint tokens\n@param _to The address that will receive the minted tokens.\n@param _amount The amount of tokens to mint.\n@return A boolean that indicates if the operation was successful.",
5842 "id": 5629,
5843 "implemented": true,
5844 "isConstructor": false,
5845 "isDeclaredConst": false,
5846 "modifiers": [
5847 {
5848 "arguments": null,
5849 "id": 5589,
5850 "modifierName": {
5851 "argumentTypes": null,
5852 "id": 5588,
5853 "name": "hasMintPermission",
5854 "nodeType": "Identifier",
5855 "overloadedDeclarations": [],
5856 "referencedDeclaration": 5370,
5857 "src": "5218:17:22",
5858 "typeDescriptions": {
5859 "typeIdentifier": "t_modifier$__$",
5860 "typeString": "modifier ()"
5861 }
5862 },
5863 "nodeType": "ModifierInvocation",
5864 "src": "5218:17:22"
5865 },
5866 {
5867 "arguments": null,
5868 "id": 5591,
5869 "modifierName": {
5870 "argumentTypes": null,
5871 "id": 5590,
5872 "name": "canMint",
5873 "nodeType": "Identifier",
5874 "overloadedDeclarations": [],
5875 "referencedDeclaration": 5359,
5876 "src": "5240:7:22",
5877 "typeDescriptions": {
5878 "typeIdentifier": "t_modifier$__$",
5879 "typeString": "modifier ()"
5880 }
5881 },
5882 "nodeType": "ModifierInvocation",
5883 "src": "5240:7:22"
5884 }
5885 ],
5886 "name": "mint",
5887 "nodeType": "FunctionDefinition",
5888 "parameters": {
5889 "id": 5587,
5890 "nodeType": "ParameterList",
5891 "parameters": [
5892 {
5893 "constant": false,
5894 "id": 5584,
5895 "name": "_to",
5896 "nodeType": "VariableDeclaration",
5897 "scope": 5629,
5898 "src": "5171:11:22",
5899 "stateVariable": false,
5900 "storageLocation": "default",
5901 "typeDescriptions": {
5902 "typeIdentifier": "t_address",
5903 "typeString": "address"
5904 },
5905 "typeName": {
5906 "id": 5583,
5907 "name": "address",
5908 "nodeType": "ElementaryTypeName",
5909 "src": "5171:7:22",
5910 "typeDescriptions": {
5911 "typeIdentifier": "t_address",
5912 "typeString": "address"
5913 }
5914 },
5915 "value": null,
5916 "visibility": "internal"
5917 },
5918 {
5919 "constant": false,
5920 "id": 5586,
5921 "name": "_amount",
5922 "nodeType": "VariableDeclaration",
5923 "scope": 5629,
5924 "src": "5192:15:22",
5925 "stateVariable": false,
5926 "storageLocation": "default",
5927 "typeDescriptions": {
5928 "typeIdentifier": "t_uint256",
5929 "typeString": "uint256"
5930 },
5931 "typeName": {
5932 "id": 5585,
5933 "name": "uint256",
5934 "nodeType": "ElementaryTypeName",
5935 "src": "5192:7:22",
5936 "typeDescriptions": {
5937 "typeIdentifier": "t_uint256",
5938 "typeString": "uint256"
5939 }
5940 },
5941 "value": null,
5942 "visibility": "internal"
5943 }
5944 ],
5945 "src": "5161:52:22"
5946 },
5947 "payable": false,
5948 "returnParameters": {
5949 "id": 5594,
5950 "nodeType": "ParameterList",
5951 "parameters": [
5952 {
5953 "constant": false,
5954 "id": 5593,
5955 "name": "",
5956 "nodeType": "VariableDeclaration",
5957 "scope": 5629,
5958 "src": "5272:4:22",
5959 "stateVariable": false,
5960 "storageLocation": "default",
5961 "typeDescriptions": {
5962 "typeIdentifier": "t_bool",
5963 "typeString": "bool"
5964 },
5965 "typeName": {
5966 "id": 5592,
5967 "name": "bool",
5968 "nodeType": "ElementaryTypeName",
5969 "src": "5272:4:22",
5970 "typeDescriptions": {
5971 "typeIdentifier": "t_bool",
5972 "typeString": "bool"
5973 }
5974 },
5975 "value": null,
5976 "visibility": "internal"
5977 }
5978 ],
5979 "src": "5271:6:22"
5980 },
5981 "scope": 5881,
5982 "src": "5148:346:22",
5983 "stateMutability": "nonpayable",
5984 "superFunction": 5190,
5985 "visibility": "public"
5986 },
5987 {
5988 "body": {
5989 "id": 5647,
5990 "nodeType": "Block",
5991 "src": "5683:89:22",
5992 "statements": [
5993 {
5994 "expression": {
5995 "argumentTypes": null,
5996 "id": 5640,
5997 "isConstant": false,
5998 "isLValue": false,
5999 "isPure": false,
6000 "lValueRequested": false,
6001 "leftHandSide": {
6002 "argumentTypes": null,
6003 "id": 5638,
6004 "name": "mintingFinished",
6005 "nodeType": "Identifier",
6006 "overloadedDeclarations": [],
6007 "referencedDeclaration": 5320,
6008 "src": "5693:15:22",
6009 "typeDescriptions": {
6010 "typeIdentifier": "t_bool",
6011 "typeString": "bool"
6012 }
6013 },
6014 "nodeType": "Assignment",
6015 "operator": "=",
6016 "rightHandSide": {
6017 "argumentTypes": null,
6018 "hexValue": "74727565",
6019 "id": 5639,
6020 "isConstant": false,
6021 "isLValue": false,
6022 "isPure": true,
6023 "kind": "bool",
6024 "lValueRequested": false,
6025 "nodeType": "Literal",
6026 "src": "5711:4:22",
6027 "subdenomination": null,
6028 "typeDescriptions": {
6029 "typeIdentifier": "t_bool",
6030 "typeString": "bool"
6031 },
6032 "value": "true"
6033 },
6034 "src": "5693:22:22",
6035 "typeDescriptions": {
6036 "typeIdentifier": "t_bool",
6037 "typeString": "bool"
6038 }
6039 },
6040 "id": 5641,
6041 "nodeType": "ExpressionStatement",
6042 "src": "5693:22:22"
6043 },
6044 {
6045 "eventCall": {
6046 "argumentTypes": null,
6047 "arguments": [],
6048 "expression": {
6049 "argumentTypes": [],
6050 "id": 5642,
6051 "name": "MintFinished",
6052 "nodeType": "Identifier",
6053 "overloadedDeclarations": [],
6054 "referencedDeclaration": 5342,
6055 "src": "5730:12:22",
6056 "typeDescriptions": {
6057 "typeIdentifier": "t_function_event_nonpayable$__$returns$__$",
6058 "typeString": "function ()"
6059 }
6060 },
6061 "id": 5643,
6062 "isConstant": false,
6063 "isLValue": false,
6064 "isPure": false,
6065 "kind": "functionCall",
6066 "lValueRequested": false,
6067 "names": [],
6068 "nodeType": "FunctionCall",
6069 "src": "5730:14:22",
6070 "typeDescriptions": {
6071 "typeIdentifier": "t_tuple$__$",
6072 "typeString": "tuple()"
6073 }
6074 },
6075 "id": 5644,
6076 "nodeType": "EmitStatement",
6077 "src": "5725:19:22"
6078 },
6079 {
6080 "expression": {
6081 "argumentTypes": null,
6082 "hexValue": "74727565",
6083 "id": 5645,
6084 "isConstant": false,
6085 "isLValue": false,
6086 "isPure": true,
6087 "kind": "bool",
6088 "lValueRequested": false,
6089 "nodeType": "Literal",
6090 "src": "5761:4:22",
6091 "subdenomination": null,
6092 "typeDescriptions": {
6093 "typeIdentifier": "t_bool",
6094 "typeString": "bool"
6095 },
6096 "value": "true"
6097 },
6098 "functionReturnParameters": 5637,
6099 "id": 5646,
6100 "nodeType": "Return",
6101 "src": "5754:11:22"
6102 }
6103 ]
6104 },
6105 "documentation": "@dev Function to stop minting new tokens.\n@return True if the operation was successful.",
6106 "id": 5648,
6107 "implemented": true,
6108 "isConstructor": false,
6109 "isDeclaredConst": false,
6110 "modifiers": [
6111 {
6112 "arguments": null,
6113 "id": 5632,
6114 "modifierName": {
6115 "argumentTypes": null,
6116 "id": 5631,
6117 "name": "onlyOwner",
6118 "nodeType": "Identifier",
6119 "overloadedDeclarations": [],
6120 "referencedDeclaration": 177,
6121 "src": "5643:9:22",
6122 "typeDescriptions": {
6123 "typeIdentifier": "t_modifier$__$",
6124 "typeString": "modifier ()"
6125 }
6126 },
6127 "nodeType": "ModifierInvocation",
6128 "src": "5643:9:22"
6129 },
6130 {
6131 "arguments": null,
6132 "id": 5634,
6133 "modifierName": {
6134 "argumentTypes": null,
6135 "id": 5633,
6136 "name": "canMint",
6137 "nodeType": "Identifier",
6138 "overloadedDeclarations": [],
6139 "referencedDeclaration": 5359,
6140 "src": "5653:7:22",
6141 "typeDescriptions": {
6142 "typeIdentifier": "t_modifier$__$",
6143 "typeString": "modifier ()"
6144 }
6145 },
6146 "nodeType": "ModifierInvocation",
6147 "src": "5653:7:22"
6148 }
6149 ],
6150 "name": "finishMinting",
6151 "nodeType": "FunctionDefinition",
6152 "parameters": {
6153 "id": 5630,
6154 "nodeType": "ParameterList",
6155 "parameters": [],
6156 "src": "5640:2:22"
6157 },
6158 "payable": false,
6159 "returnParameters": {
6160 "id": 5637,
6161 "nodeType": "ParameterList",
6162 "parameters": [
6163 {
6164 "constant": false,
6165 "id": 5636,
6166 "name": "",
6167 "nodeType": "VariableDeclaration",
6168 "scope": 5648,
6169 "src": "5677:4:22",
6170 "stateVariable": false,
6171 "storageLocation": "default",
6172 "typeDescriptions": {
6173 "typeIdentifier": "t_bool",
6174 "typeString": "bool"
6175 },
6176 "typeName": {
6177 "id": 5635,
6178 "name": "bool",
6179 "nodeType": "ElementaryTypeName",
6180 "src": "5677:4:22",
6181 "typeDescriptions": {
6182 "typeIdentifier": "t_bool",
6183 "typeString": "bool"
6184 }
6185 },
6186 "value": null,
6187 "visibility": "internal"
6188 }
6189 ],
6190 "src": "5676:6:22"
6191 },
6192 "scope": 5881,
6193 "src": "5618:154:22",
6194 "stateMutability": "nonpayable",
6195 "superFunction": null,
6196 "visibility": "public"
6197 },
6198 {
6199 "body": {
6200 "id": 5733,
6201 "nodeType": "Block",
6202 "src": "6191:390:22",
6203 "statements": [
6204 {
6205 "expression": {
6206 "argumentTypes": null,
6207 "arguments": [
6208 {
6209 "argumentTypes": null,
6210 "commonType": {
6211 "typeIdentifier": "t_address",
6212 "typeString": "address"
6213 },
6214 "id": 5664,
6215 "isConstant": false,
6216 "isLValue": false,
6217 "isPure": false,
6218 "lValueRequested": false,
6219 "leftExpression": {
6220 "argumentTypes": null,
6221 "id": 5660,
6222 "name": "_to",
6223 "nodeType": "Identifier",
6224 "overloadedDeclarations": [],
6225 "referencedDeclaration": 5652,
6226 "src": "6209:3:22",
6227 "typeDescriptions": {
6228 "typeIdentifier": "t_address",
6229 "typeString": "address"
6230 }
6231 },
6232 "nodeType": "BinaryOperation",
6233 "operator": "!=",
6234 "rightExpression": {
6235 "argumentTypes": null,
6236 "arguments": [
6237 {
6238 "argumentTypes": null,
6239 "hexValue": "30",
6240 "id": 5662,
6241 "isConstant": false,
6242 "isLValue": false,
6243 "isPure": true,
6244 "kind": "number",
6245 "lValueRequested": false,
6246 "nodeType": "Literal",
6247 "src": "6224:1:22",
6248 "subdenomination": null,
6249 "typeDescriptions": {
6250 "typeIdentifier": "t_rational_0_by_1",
6251 "typeString": "int_const 0"
6252 },
6253 "value": "0"
6254 }
6255 ],
6256 "expression": {
6257 "argumentTypes": [
6258 {
6259 "typeIdentifier": "t_rational_0_by_1",
6260 "typeString": "int_const 0"
6261 }
6262 ],
6263 "id": 5661,
6264 "isConstant": false,
6265 "isLValue": false,
6266 "isPure": true,
6267 "lValueRequested": false,
6268 "nodeType": "ElementaryTypeNameExpression",
6269 "src": "6216:7:22",
6270 "typeDescriptions": {
6271 "typeIdentifier": "t_type$_t_address_$",
6272 "typeString": "type(address)"
6273 },
6274 "typeName": "address"
6275 },
6276 "id": 5663,
6277 "isConstant": false,
6278 "isLValue": false,
6279 "isPure": true,
6280 "kind": "typeConversion",
6281 "lValueRequested": false,
6282 "names": [],
6283 "nodeType": "FunctionCall",
6284 "src": "6216:10:22",
6285 "typeDescriptions": {
6286 "typeIdentifier": "t_address",
6287 "typeString": "address"
6288 }
6289 },
6290 "src": "6209:17:22",
6291 "typeDescriptions": {
6292 "typeIdentifier": "t_bool",
6293 "typeString": "bool"
6294 }
6295 }
6296 ],
6297 "expression": {
6298 "argumentTypes": [
6299 {
6300 "typeIdentifier": "t_bool",
6301 "typeString": "bool"
6302 }
6303 ],
6304 "id": 5659,
6305 "name": "require",
6306 "nodeType": "Identifier",
6307 "overloadedDeclarations": [
6308 12095,
6309 12096
6310 ],
6311 "referencedDeclaration": 12095,
6312 "src": "6201:7:22",
6313 "typeDescriptions": {
6314 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
6315 "typeString": "function (bool) pure"
6316 }
6317 },
6318 "id": 5665,
6319 "isConstant": false,
6320 "isLValue": false,
6321 "isPure": false,
6322 "kind": "functionCall",
6323 "lValueRequested": false,
6324 "names": [],
6325 "nodeType": "FunctionCall",
6326 "src": "6201:26:22",
6327 "typeDescriptions": {
6328 "typeIdentifier": "t_tuple$__$",
6329 "typeString": "tuple()"
6330 }
6331 },
6332 "id": 5666,
6333 "nodeType": "ExpressionStatement",
6334 "src": "6201:26:22"
6335 },
6336 {
6337 "expression": {
6338 "argumentTypes": null,
6339 "arguments": [
6340 {
6341 "argumentTypes": null,
6342 "commonType": {
6343 "typeIdentifier": "t_uint256",
6344 "typeString": "uint256"
6345 },
6346 "id": 5672,
6347 "isConstant": false,
6348 "isLValue": false,
6349 "isPure": false,
6350 "lValueRequested": false,
6351 "leftExpression": {
6352 "argumentTypes": null,
6353 "id": 5668,
6354 "name": "_value",
6355 "nodeType": "Identifier",
6356 "overloadedDeclarations": [],
6357 "referencedDeclaration": 5654,
6358 "src": "6245:6:22",
6359 "typeDescriptions": {
6360 "typeIdentifier": "t_uint256",
6361 "typeString": "uint256"
6362 }
6363 },
6364 "nodeType": "BinaryOperation",
6365 "operator": "<=",
6366 "rightExpression": {
6367 "argumentTypes": null,
6368 "baseExpression": {
6369 "argumentTypes": null,
6370 "id": 5669,
6371 "name": "balances",
6372 "nodeType": "Identifier",
6373 "overloadedDeclarations": [],
6374 "referencedDeclaration": 5317,
6375 "src": "6255:8:22",
6376 "typeDescriptions": {
6377 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
6378 "typeString": "mapping(address => uint256)"
6379 }
6380 },
6381 "id": 5671,
6382 "indexExpression": {
6383 "argumentTypes": null,
6384 "id": 5670,
6385 "name": "_from",
6386 "nodeType": "Identifier",
6387 "overloadedDeclarations": [],
6388 "referencedDeclaration": 5650,
6389 "src": "6264:5:22",
6390 "typeDescriptions": {
6391 "typeIdentifier": "t_address",
6392 "typeString": "address"
6393 }
6394 },
6395 "isConstant": false,
6396 "isLValue": true,
6397 "isPure": false,
6398 "lValueRequested": false,
6399 "nodeType": "IndexAccess",
6400 "src": "6255:15:22",
6401 "typeDescriptions": {
6402 "typeIdentifier": "t_uint256",
6403 "typeString": "uint256"
6404 }
6405 },
6406 "src": "6245:25:22",
6407 "typeDescriptions": {
6408 "typeIdentifier": "t_bool",
6409 "typeString": "bool"
6410 }
6411 }
6412 ],
6413 "expression": {
6414 "argumentTypes": [
6415 {
6416 "typeIdentifier": "t_bool",
6417 "typeString": "bool"
6418 }
6419 ],
6420 "id": 5667,
6421 "name": "require",
6422 "nodeType": "Identifier",
6423 "overloadedDeclarations": [
6424 12095,
6425 12096
6426 ],
6427 "referencedDeclaration": 12095,
6428 "src": "6237:7:22",
6429 "typeDescriptions": {
6430 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
6431 "typeString": "function (bool) pure"
6432 }
6433 },
6434 "id": 5673,
6435 "isConstant": false,
6436 "isLValue": false,
6437 "isPure": false,
6438 "kind": "functionCall",
6439 "lValueRequested": false,
6440 "names": [],
6441 "nodeType": "FunctionCall",
6442 "src": "6237:34:22",
6443 "typeDescriptions": {
6444 "typeIdentifier": "t_tuple$__$",
6445 "typeString": "tuple()"
6446 }
6447 },
6448 "id": 5674,
6449 "nodeType": "ExpressionStatement",
6450 "src": "6237:34:22"
6451 },
6452 {
6453 "expression": {
6454 "argumentTypes": null,
6455 "arguments": [
6456 {
6457 "argumentTypes": null,
6458 "commonType": {
6459 "typeIdentifier": "t_uint256",
6460 "typeString": "uint256"
6461 },
6462 "id": 5683,
6463 "isConstant": false,
6464 "isLValue": false,
6465 "isPure": false,
6466 "lValueRequested": false,
6467 "leftExpression": {
6468 "argumentTypes": null,
6469 "id": 5676,
6470 "name": "_value",
6471 "nodeType": "Identifier",
6472 "overloadedDeclarations": [],
6473 "referencedDeclaration": 5654,
6474 "src": "6289:6:22",
6475 "typeDescriptions": {
6476 "typeIdentifier": "t_uint256",
6477 "typeString": "uint256"
6478 }
6479 },
6480 "nodeType": "BinaryOperation",
6481 "operator": "<=",
6482 "rightExpression": {
6483 "argumentTypes": null,
6484 "baseExpression": {
6485 "argumentTypes": null,
6486 "baseExpression": {
6487 "argumentTypes": null,
6488 "id": 5677,
6489 "name": "allowed",
6490 "nodeType": "Identifier",
6491 "overloadedDeclarations": [],
6492 "referencedDeclaration": 5313,
6493 "src": "6299:7:22",
6494 "typeDescriptions": {
6495 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
6496 "typeString": "mapping(address => mapping(address => uint256))"
6497 }
6498 },
6499 "id": 5679,
6500 "indexExpression": {
6501 "argumentTypes": null,
6502 "id": 5678,
6503 "name": "_from",
6504 "nodeType": "Identifier",
6505 "overloadedDeclarations": [],
6506 "referencedDeclaration": 5650,
6507 "src": "6307:5:22",
6508 "typeDescriptions": {
6509 "typeIdentifier": "t_address",
6510 "typeString": "address"
6511 }
6512 },
6513 "isConstant": false,
6514 "isLValue": true,
6515 "isPure": false,
6516 "lValueRequested": false,
6517 "nodeType": "IndexAccess",
6518 "src": "6299:14:22",
6519 "typeDescriptions": {
6520 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
6521 "typeString": "mapping(address => uint256)"
6522 }
6523 },
6524 "id": 5682,
6525 "indexExpression": {
6526 "argumentTypes": null,
6527 "expression": {
6528 "argumentTypes": null,
6529 "id": 5680,
6530 "name": "msg",
6531 "nodeType": "Identifier",
6532 "overloadedDeclarations": [],
6533 "referencedDeclaration": 12092,
6534 "src": "6314:3:22",
6535 "typeDescriptions": {
6536 "typeIdentifier": "t_magic_message",
6537 "typeString": "msg"
6538 }
6539 },
6540 "id": 5681,
6541 "isConstant": false,
6542 "isLValue": false,
6543 "isPure": false,
6544 "lValueRequested": false,
6545 "memberName": "sender",
6546 "nodeType": "MemberAccess",
6547 "referencedDeclaration": null,
6548 "src": "6314:10:22",
6549 "typeDescriptions": {
6550 "typeIdentifier": "t_address",
6551 "typeString": "address"
6552 }
6553 },
6554 "isConstant": false,
6555 "isLValue": true,
6556 "isPure": false,
6557 "lValueRequested": false,
6558 "nodeType": "IndexAccess",
6559 "src": "6299:26:22",
6560 "typeDescriptions": {
6561 "typeIdentifier": "t_uint256",
6562 "typeString": "uint256"
6563 }
6564 },
6565 "src": "6289:36:22",
6566 "typeDescriptions": {
6567 "typeIdentifier": "t_bool",
6568 "typeString": "bool"
6569 }
6570 }
6571 ],
6572 "expression": {
6573 "argumentTypes": [
6574 {
6575 "typeIdentifier": "t_bool",
6576 "typeString": "bool"
6577 }
6578 ],
6579 "id": 5675,
6580 "name": "require",
6581 "nodeType": "Identifier",
6582 "overloadedDeclarations": [
6583 12095,
6584 12096
6585 ],
6586 "referencedDeclaration": 12095,
6587 "src": "6281:7:22",
6588 "typeDescriptions": {
6589 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
6590 "typeString": "function (bool) pure"
6591 }
6592 },
6593 "id": 5684,
6594 "isConstant": false,
6595 "isLValue": false,
6596 "isPure": false,
6597 "kind": "functionCall",
6598 "lValueRequested": false,
6599 "names": [],
6600 "nodeType": "FunctionCall",
6601 "src": "6281:45:22",
6602 "typeDescriptions": {
6603 "typeIdentifier": "t_tuple$__$",
6604 "typeString": "tuple()"
6605 }
6606 },
6607 "id": 5685,
6608 "nodeType": "ExpressionStatement",
6609 "src": "6281:45:22"
6610 },
6611 {
6612 "expression": {
6613 "argumentTypes": null,
6614 "id": 5695,
6615 "isConstant": false,
6616 "isLValue": false,
6617 "isPure": false,
6618 "lValueRequested": false,
6619 "leftHandSide": {
6620 "argumentTypes": null,
6621 "baseExpression": {
6622 "argumentTypes": null,
6623 "id": 5686,
6624 "name": "balances",
6625 "nodeType": "Identifier",
6626 "overloadedDeclarations": [],
6627 "referencedDeclaration": 5317,
6628 "src": "6337:8:22",
6629 "typeDescriptions": {
6630 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
6631 "typeString": "mapping(address => uint256)"
6632 }
6633 },
6634 "id": 5688,
6635 "indexExpression": {
6636 "argumentTypes": null,
6637 "id": 5687,
6638 "name": "_from",
6639 "nodeType": "Identifier",
6640 "overloadedDeclarations": [],
6641 "referencedDeclaration": 5650,
6642 "src": "6346:5:22",
6643 "typeDescriptions": {
6644 "typeIdentifier": "t_address",
6645 "typeString": "address"
6646 }
6647 },
6648 "isConstant": false,
6649 "isLValue": true,
6650 "isPure": false,
6651 "lValueRequested": true,
6652 "nodeType": "IndexAccess",
6653 "src": "6337:15:22",
6654 "typeDescriptions": {
6655 "typeIdentifier": "t_uint256",
6656 "typeString": "uint256"
6657 }
6658 },
6659 "nodeType": "Assignment",
6660 "operator": "=",
6661 "rightHandSide": {
6662 "argumentTypes": null,
6663 "arguments": [
6664 {
6665 "argumentTypes": null,
6666 "id": 5693,
6667 "name": "_value",
6668 "nodeType": "Identifier",
6669 "overloadedDeclarations": [],
6670 "referencedDeclaration": 5654,
6671 "src": "6375:6:22",
6672 "typeDescriptions": {
6673 "typeIdentifier": "t_uint256",
6674 "typeString": "uint256"
6675 }
6676 }
6677 ],
6678 "expression": {
6679 "argumentTypes": [
6680 {
6681 "typeIdentifier": "t_uint256",
6682 "typeString": "uint256"
6683 }
6684 ],
6685 "expression": {
6686 "argumentTypes": null,
6687 "baseExpression": {
6688 "argumentTypes": null,
6689 "id": 5689,
6690 "name": "balances",
6691 "nodeType": "Identifier",
6692 "overloadedDeclarations": [],
6693 "referencedDeclaration": 5317,
6694 "src": "6355:8:22",
6695 "typeDescriptions": {
6696 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
6697 "typeString": "mapping(address => uint256)"
6698 }
6699 },
6700 "id": 5691,
6701 "indexExpression": {
6702 "argumentTypes": null,
6703 "id": 5690,
6704 "name": "_from",
6705 "nodeType": "Identifier",
6706 "overloadedDeclarations": [],
6707 "referencedDeclaration": 5650,
6708 "src": "6364:5:22",
6709 "typeDescriptions": {
6710 "typeIdentifier": "t_address",
6711 "typeString": "address"
6712 }
6713 },
6714 "isConstant": false,
6715 "isLValue": true,
6716 "isPure": false,
6717 "lValueRequested": false,
6718 "nodeType": "IndexAccess",
6719 "src": "6355:15:22",
6720 "typeDescriptions": {
6721 "typeIdentifier": "t_uint256",
6722 "typeString": "uint256"
6723 }
6724 },
6725 "id": 5692,
6726 "isConstant": false,
6727 "isLValue": false,
6728 "isPure": false,
6729 "lValueRequested": false,
6730 "memberName": "sub",
6731 "nodeType": "MemberAccess",
6732 "referencedDeclaration": 5268,
6733 "src": "6355:19:22",
6734 "typeDescriptions": {
6735 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
6736 "typeString": "function (uint256,uint256) pure returns (uint256)"
6737 }
6738 },
6739 "id": 5694,
6740 "isConstant": false,
6741 "isLValue": false,
6742 "isPure": false,
6743 "kind": "functionCall",
6744 "lValueRequested": false,
6745 "names": [],
6746 "nodeType": "FunctionCall",
6747 "src": "6355:27:22",
6748 "typeDescriptions": {
6749 "typeIdentifier": "t_uint256",
6750 "typeString": "uint256"
6751 }
6752 },
6753 "src": "6337:45:22",
6754 "typeDescriptions": {
6755 "typeIdentifier": "t_uint256",
6756 "typeString": "uint256"
6757 }
6758 },
6759 "id": 5696,
6760 "nodeType": "ExpressionStatement",
6761 "src": "6337:45:22"
6762 },
6763 {
6764 "expression": {
6765 "argumentTypes": null,
6766 "id": 5706,
6767 "isConstant": false,
6768 "isLValue": false,
6769 "isPure": false,
6770 "lValueRequested": false,
6771 "leftHandSide": {
6772 "argumentTypes": null,
6773 "baseExpression": {
6774 "argumentTypes": null,
6775 "id": 5697,
6776 "name": "balances",
6777 "nodeType": "Identifier",
6778 "overloadedDeclarations": [],
6779 "referencedDeclaration": 5317,
6780 "src": "6392:8:22",
6781 "typeDescriptions": {
6782 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
6783 "typeString": "mapping(address => uint256)"
6784 }
6785 },
6786 "id": 5699,
6787 "indexExpression": {
6788 "argumentTypes": null,
6789 "id": 5698,
6790 "name": "_to",
6791 "nodeType": "Identifier",
6792 "overloadedDeclarations": [],
6793 "referencedDeclaration": 5652,
6794 "src": "6401:3:22",
6795 "typeDescriptions": {
6796 "typeIdentifier": "t_address",
6797 "typeString": "address"
6798 }
6799 },
6800 "isConstant": false,
6801 "isLValue": true,
6802 "isPure": false,
6803 "lValueRequested": true,
6804 "nodeType": "IndexAccess",
6805 "src": "6392:13:22",
6806 "typeDescriptions": {
6807 "typeIdentifier": "t_uint256",
6808 "typeString": "uint256"
6809 }
6810 },
6811 "nodeType": "Assignment",
6812 "operator": "=",
6813 "rightHandSide": {
6814 "argumentTypes": null,
6815 "arguments": [
6816 {
6817 "argumentTypes": null,
6818 "id": 5704,
6819 "name": "_value",
6820 "nodeType": "Identifier",
6821 "overloadedDeclarations": [],
6822 "referencedDeclaration": 5654,
6823 "src": "6426:6:22",
6824 "typeDescriptions": {
6825 "typeIdentifier": "t_uint256",
6826 "typeString": "uint256"
6827 }
6828 }
6829 ],
6830 "expression": {
6831 "argumentTypes": [
6832 {
6833 "typeIdentifier": "t_uint256",
6834 "typeString": "uint256"
6835 }
6836 ],
6837 "expression": {
6838 "argumentTypes": null,
6839 "baseExpression": {
6840 "argumentTypes": null,
6841 "id": 5700,
6842 "name": "balances",
6843 "nodeType": "Identifier",
6844 "overloadedDeclarations": [],
6845 "referencedDeclaration": 5317,
6846 "src": "6408:8:22",
6847 "typeDescriptions": {
6848 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
6849 "typeString": "mapping(address => uint256)"
6850 }
6851 },
6852 "id": 5702,
6853 "indexExpression": {
6854 "argumentTypes": null,
6855 "id": 5701,
6856 "name": "_to",
6857 "nodeType": "Identifier",
6858 "overloadedDeclarations": [],
6859 "referencedDeclaration": 5652,
6860 "src": "6417:3:22",
6861 "typeDescriptions": {
6862 "typeIdentifier": "t_address",
6863 "typeString": "address"
6864 }
6865 },
6866 "isConstant": false,
6867 "isLValue": true,
6868 "isPure": false,
6869 "lValueRequested": false,
6870 "nodeType": "IndexAccess",
6871 "src": "6408:13:22",
6872 "typeDescriptions": {
6873 "typeIdentifier": "t_uint256",
6874 "typeString": "uint256"
6875 }
6876 },
6877 "id": 5703,
6878 "isConstant": false,
6879 "isLValue": false,
6880 "isPure": false,
6881 "lValueRequested": false,
6882 "memberName": "add",
6883 "nodeType": "MemberAccess",
6884 "referencedDeclaration": 5292,
6885 "src": "6408:17:22",
6886 "typeDescriptions": {
6887 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
6888 "typeString": "function (uint256,uint256) pure returns (uint256)"
6889 }
6890 },
6891 "id": 5705,
6892 "isConstant": false,
6893 "isLValue": false,
6894 "isPure": false,
6895 "kind": "functionCall",
6896 "lValueRequested": false,
6897 "names": [],
6898 "nodeType": "FunctionCall",
6899 "src": "6408:25:22",
6900 "typeDescriptions": {
6901 "typeIdentifier": "t_uint256",
6902 "typeString": "uint256"
6903 }
6904 },
6905 "src": "6392:41:22",
6906 "typeDescriptions": {
6907 "typeIdentifier": "t_uint256",
6908 "typeString": "uint256"
6909 }
6910 },
6911 "id": 5707,
6912 "nodeType": "ExpressionStatement",
6913 "src": "6392:41:22"
6914 },
6915 {
6916 "expression": {
6917 "argumentTypes": null,
6918 "id": 5723,
6919 "isConstant": false,
6920 "isLValue": false,
6921 "isPure": false,
6922 "lValueRequested": false,
6923 "leftHandSide": {
6924 "argumentTypes": null,
6925 "baseExpression": {
6926 "argumentTypes": null,
6927 "baseExpression": {
6928 "argumentTypes": null,
6929 "id": 5708,
6930 "name": "allowed",
6931 "nodeType": "Identifier",
6932 "overloadedDeclarations": [],
6933 "referencedDeclaration": 5313,
6934 "src": "6443:7:22",
6935 "typeDescriptions": {
6936 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
6937 "typeString": "mapping(address => mapping(address => uint256))"
6938 }
6939 },
6940 "id": 5712,
6941 "indexExpression": {
6942 "argumentTypes": null,
6943 "id": 5709,
6944 "name": "_from",
6945 "nodeType": "Identifier",
6946 "overloadedDeclarations": [],
6947 "referencedDeclaration": 5650,
6948 "src": "6451:5:22",
6949 "typeDescriptions": {
6950 "typeIdentifier": "t_address",
6951 "typeString": "address"
6952 }
6953 },
6954 "isConstant": false,
6955 "isLValue": true,
6956 "isPure": false,
6957 "lValueRequested": false,
6958 "nodeType": "IndexAccess",
6959 "src": "6443:14:22",
6960 "typeDescriptions": {
6961 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
6962 "typeString": "mapping(address => uint256)"
6963 }
6964 },
6965 "id": 5713,
6966 "indexExpression": {
6967 "argumentTypes": null,
6968 "expression": {
6969 "argumentTypes": null,
6970 "id": 5710,
6971 "name": "msg",
6972 "nodeType": "Identifier",
6973 "overloadedDeclarations": [],
6974 "referencedDeclaration": 12092,
6975 "src": "6458:3:22",
6976 "typeDescriptions": {
6977 "typeIdentifier": "t_magic_message",
6978 "typeString": "msg"
6979 }
6980 },
6981 "id": 5711,
6982 "isConstant": false,
6983 "isLValue": false,
6984 "isPure": false,
6985 "lValueRequested": false,
6986 "memberName": "sender",
6987 "nodeType": "MemberAccess",
6988 "referencedDeclaration": null,
6989 "src": "6458:10:22",
6990 "typeDescriptions": {
6991 "typeIdentifier": "t_address",
6992 "typeString": "address"
6993 }
6994 },
6995 "isConstant": false,
6996 "isLValue": true,
6997 "isPure": false,
6998 "lValueRequested": true,
6999 "nodeType": "IndexAccess",
7000 "src": "6443:26:22",
7001 "typeDescriptions": {
7002 "typeIdentifier": "t_uint256",
7003 "typeString": "uint256"
7004 }
7005 },
7006 "nodeType": "Assignment",
7007 "operator": "=",
7008 "rightHandSide": {
7009 "argumentTypes": null,
7010 "arguments": [
7011 {
7012 "argumentTypes": null,
7013 "id": 5721,
7014 "name": "_value",
7015 "nodeType": "Identifier",
7016 "overloadedDeclarations": [],
7017 "referencedDeclaration": 5654,
7018 "src": "6503:6:22",
7019 "typeDescriptions": {
7020 "typeIdentifier": "t_uint256",
7021 "typeString": "uint256"
7022 }
7023 }
7024 ],
7025 "expression": {
7026 "argumentTypes": [
7027 {
7028 "typeIdentifier": "t_uint256",
7029 "typeString": "uint256"
7030 }
7031 ],
7032 "expression": {
7033 "argumentTypes": null,
7034 "baseExpression": {
7035 "argumentTypes": null,
7036 "baseExpression": {
7037 "argumentTypes": null,
7038 "id": 5714,
7039 "name": "allowed",
7040 "nodeType": "Identifier",
7041 "overloadedDeclarations": [],
7042 "referencedDeclaration": 5313,
7043 "src": "6472:7:22",
7044 "typeDescriptions": {
7045 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
7046 "typeString": "mapping(address => mapping(address => uint256))"
7047 }
7048 },
7049 "id": 5716,
7050 "indexExpression": {
7051 "argumentTypes": null,
7052 "id": 5715,
7053 "name": "_from",
7054 "nodeType": "Identifier",
7055 "overloadedDeclarations": [],
7056 "referencedDeclaration": 5650,
7057 "src": "6480:5:22",
7058 "typeDescriptions": {
7059 "typeIdentifier": "t_address",
7060 "typeString": "address"
7061 }
7062 },
7063 "isConstant": false,
7064 "isLValue": true,
7065 "isPure": false,
7066 "lValueRequested": false,
7067 "nodeType": "IndexAccess",
7068 "src": "6472:14:22",
7069 "typeDescriptions": {
7070 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
7071 "typeString": "mapping(address => uint256)"
7072 }
7073 },
7074 "id": 5719,
7075 "indexExpression": {
7076 "argumentTypes": null,
7077 "expression": {
7078 "argumentTypes": null,
7079 "id": 5717,
7080 "name": "msg",
7081 "nodeType": "Identifier",
7082 "overloadedDeclarations": [],
7083 "referencedDeclaration": 12092,
7084 "src": "6487:3:22",
7085 "typeDescriptions": {
7086 "typeIdentifier": "t_magic_message",
7087 "typeString": "msg"
7088 }
7089 },
7090 "id": 5718,
7091 "isConstant": false,
7092 "isLValue": false,
7093 "isPure": false,
7094 "lValueRequested": false,
7095 "memberName": "sender",
7096 "nodeType": "MemberAccess",
7097 "referencedDeclaration": null,
7098 "src": "6487:10:22",
7099 "typeDescriptions": {
7100 "typeIdentifier": "t_address",
7101 "typeString": "address"
7102 }
7103 },
7104 "isConstant": false,
7105 "isLValue": true,
7106 "isPure": false,
7107 "lValueRequested": false,
7108 "nodeType": "IndexAccess",
7109 "src": "6472:26:22",
7110 "typeDescriptions": {
7111 "typeIdentifier": "t_uint256",
7112 "typeString": "uint256"
7113 }
7114 },
7115 "id": 5720,
7116 "isConstant": false,
7117 "isLValue": false,
7118 "isPure": false,
7119 "lValueRequested": false,
7120 "memberName": "sub",
7121 "nodeType": "MemberAccess",
7122 "referencedDeclaration": 5268,
7123 "src": "6472:30:22",
7124 "typeDescriptions": {
7125 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
7126 "typeString": "function (uint256,uint256) pure returns (uint256)"
7127 }
7128 },
7129 "id": 5722,
7130 "isConstant": false,
7131 "isLValue": false,
7132 "isPure": false,
7133 "kind": "functionCall",
7134 "lValueRequested": false,
7135 "names": [],
7136 "nodeType": "FunctionCall",
7137 "src": "6472:38:22",
7138 "typeDescriptions": {
7139 "typeIdentifier": "t_uint256",
7140 "typeString": "uint256"
7141 }
7142 },
7143 "src": "6443:67:22",
7144 "typeDescriptions": {
7145 "typeIdentifier": "t_uint256",
7146 "typeString": "uint256"
7147 }
7148 },
7149 "id": 5724,
7150 "nodeType": "ExpressionStatement",
7151 "src": "6443:67:22"
7152 },
7153 {
7154 "eventCall": {
7155 "argumentTypes": null,
7156 "arguments": [
7157 {
7158 "argumentTypes": null,
7159 "id": 5726,
7160 "name": "_from",
7161 "nodeType": "Identifier",
7162 "overloadedDeclarations": [],
7163 "referencedDeclaration": 5650,
7164 "src": "6534:5:22",
7165 "typeDescriptions": {
7166 "typeIdentifier": "t_address",
7167 "typeString": "address"
7168 }
7169 },
7170 {
7171 "argumentTypes": null,
7172 "id": 5727,
7173 "name": "_to",
7174 "nodeType": "Identifier",
7175 "overloadedDeclarations": [],
7176 "referencedDeclaration": 5652,
7177 "src": "6541:3:22",
7178 "typeDescriptions": {
7179 "typeIdentifier": "t_address",
7180 "typeString": "address"
7181 }
7182 },
7183 {
7184 "argumentTypes": null,
7185 "id": 5728,
7186 "name": "_value",
7187 "nodeType": "Identifier",
7188 "overloadedDeclarations": [],
7189 "referencedDeclaration": 5654,
7190 "src": "6546:6:22",
7191 "typeDescriptions": {
7192 "typeIdentifier": "t_uint256",
7193 "typeString": "uint256"
7194 }
7195 }
7196 ],
7197 "expression": {
7198 "argumentTypes": [
7199 {
7200 "typeIdentifier": "t_address",
7201 "typeString": "address"
7202 },
7203 {
7204 "typeIdentifier": "t_address",
7205 "typeString": "address"
7206 },
7207 {
7208 "typeIdentifier": "t_uint256",
7209 "typeString": "uint256"
7210 }
7211 ],
7212 "id": 5725,
7213 "name": "Transfer",
7214 "nodeType": "Identifier",
7215 "overloadedDeclarations": [],
7216 "referencedDeclaration": 5334,
7217 "src": "6525:8:22",
7218 "typeDescriptions": {
7219 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
7220 "typeString": "function (address,address,uint256)"
7221 }
7222 },
7223 "id": 5729,
7224 "isConstant": false,
7225 "isLValue": false,
7226 "isPure": false,
7227 "kind": "functionCall",
7228 "lValueRequested": false,
7229 "names": [],
7230 "nodeType": "FunctionCall",
7231 "src": "6525:28:22",
7232 "typeDescriptions": {
7233 "typeIdentifier": "t_tuple$__$",
7234 "typeString": "tuple()"
7235 }
7236 },
7237 "id": 5730,
7238 "nodeType": "EmitStatement",
7239 "src": "6520:33:22"
7240 },
7241 {
7242 "expression": {
7243 "argumentTypes": null,
7244 "hexValue": "74727565",
7245 "id": 5731,
7246 "isConstant": false,
7247 "isLValue": false,
7248 "isPure": true,
7249 "kind": "bool",
7250 "lValueRequested": false,
7251 "nodeType": "Literal",
7252 "src": "6570:4:22",
7253 "subdenomination": null,
7254 "typeDescriptions": {
7255 "typeIdentifier": "t_bool",
7256 "typeString": "bool"
7257 },
7258 "value": "true"
7259 },
7260 "functionReturnParameters": 5658,
7261 "id": 5732,
7262 "nodeType": "Return",
7263 "src": "6563:11:22"
7264 }
7265 ]
7266 },
7267 "documentation": "@dev Transfer tokens from one address to another\n@param _from address The address which you want to send tokens from\n@param _to address The address which you want to transfer to\n@param _value uint256 the amount of tokens to be transferred",
7268 "id": 5734,
7269 "implemented": true,
7270 "isConstructor": false,
7271 "isDeclaredConst": false,
7272 "modifiers": [],
7273 "name": "transferFrom",
7274 "nodeType": "FunctionDefinition",
7275 "parameters": {
7276 "id": 5655,
7277 "nodeType": "ParameterList",
7278 "parameters": [
7279 {
7280 "constant": false,
7281 "id": 5650,
7282 "name": "_from",
7283 "nodeType": "VariableDeclaration",
7284 "scope": 5734,
7285 "src": "6092:13:22",
7286 "stateVariable": false,
7287 "storageLocation": "default",
7288 "typeDescriptions": {
7289 "typeIdentifier": "t_address",
7290 "typeString": "address"
7291 },
7292 "typeName": {
7293 "id": 5649,
7294 "name": "address",
7295 "nodeType": "ElementaryTypeName",
7296 "src": "6092:7:22",
7297 "typeDescriptions": {
7298 "typeIdentifier": "t_address",
7299 "typeString": "address"
7300 }
7301 },
7302 "value": null,
7303 "visibility": "internal"
7304 },
7305 {
7306 "constant": false,
7307 "id": 5652,
7308 "name": "_to",
7309 "nodeType": "VariableDeclaration",
7310 "scope": 5734,
7311 "src": "6115:11:22",
7312 "stateVariable": false,
7313 "storageLocation": "default",
7314 "typeDescriptions": {
7315 "typeIdentifier": "t_address",
7316 "typeString": "address"
7317 },
7318 "typeName": {
7319 "id": 5651,
7320 "name": "address",
7321 "nodeType": "ElementaryTypeName",
7322 "src": "6115:7:22",
7323 "typeDescriptions": {
7324 "typeIdentifier": "t_address",
7325 "typeString": "address"
7326 }
7327 },
7328 "value": null,
7329 "visibility": "internal"
7330 },
7331 {
7332 "constant": false,
7333 "id": 5654,
7334 "name": "_value",
7335 "nodeType": "VariableDeclaration",
7336 "scope": 5734,
7337 "src": "6136:14:22",
7338 "stateVariable": false,
7339 "storageLocation": "default",
7340 "typeDescriptions": {
7341 "typeIdentifier": "t_uint256",
7342 "typeString": "uint256"
7343 },
7344 "typeName": {
7345 "id": 5653,
7346 "name": "uint256",
7347 "nodeType": "ElementaryTypeName",
7348 "src": "6136:7:22",
7349 "typeDescriptions": {
7350 "typeIdentifier": "t_uint256",
7351 "typeString": "uint256"
7352 }
7353 },
7354 "value": null,
7355 "visibility": "internal"
7356 }
7357 ],
7358 "src": "6082:74:22"
7359 },
7360 "payable": false,
7361 "returnParameters": {
7362 "id": 5658,
7363 "nodeType": "ParameterList",
7364 "parameters": [
7365 {
7366 "constant": false,
7367 "id": 5657,
7368 "name": "",
7369 "nodeType": "VariableDeclaration",
7370 "scope": 5734,
7371 "src": "6181:4:22",
7372 "stateVariable": false,
7373 "storageLocation": "default",
7374 "typeDescriptions": {
7375 "typeIdentifier": "t_bool",
7376 "typeString": "bool"
7377 },
7378 "typeName": {
7379 "id": 5656,
7380 "name": "bool",
7381 "nodeType": "ElementaryTypeName",
7382 "src": "6181:4:22",
7383 "typeDescriptions": {
7384 "typeIdentifier": "t_bool",
7385 "typeString": "bool"
7386 }
7387 },
7388 "value": null,
7389 "visibility": "internal"
7390 }
7391 ],
7392 "src": "6180:6:22"
7393 },
7394 "scope": 5881,
7395 "src": "6061:520:22",
7396 "stateMutability": "nonpayable",
7397 "superFunction": 5163,
7398 "visibility": "public"
7399 },
7400 {
7401 "body": {
7402 "id": 5761,
7403 "nodeType": "Block",
7404 "src": "7299:129:22",
7405 "statements": [
7406 {
7407 "expression": {
7408 "argumentTypes": null,
7409 "id": 5750,
7410 "isConstant": false,
7411 "isLValue": false,
7412 "isPure": false,
7413 "lValueRequested": false,
7414 "leftHandSide": {
7415 "argumentTypes": null,
7416 "baseExpression": {
7417 "argumentTypes": null,
7418 "baseExpression": {
7419 "argumentTypes": null,
7420 "id": 5743,
7421 "name": "allowed",
7422 "nodeType": "Identifier",
7423 "overloadedDeclarations": [],
7424 "referencedDeclaration": 5313,
7425 "src": "7309:7:22",
7426 "typeDescriptions": {
7427 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
7428 "typeString": "mapping(address => mapping(address => uint256))"
7429 }
7430 },
7431 "id": 5747,
7432 "indexExpression": {
7433 "argumentTypes": null,
7434 "expression": {
7435 "argumentTypes": null,
7436 "id": 5744,
7437 "name": "msg",
7438 "nodeType": "Identifier",
7439 "overloadedDeclarations": [],
7440 "referencedDeclaration": 12092,
7441 "src": "7317:3:22",
7442 "typeDescriptions": {
7443 "typeIdentifier": "t_magic_message",
7444 "typeString": "msg"
7445 }
7446 },
7447 "id": 5745,
7448 "isConstant": false,
7449 "isLValue": false,
7450 "isPure": false,
7451 "lValueRequested": false,
7452 "memberName": "sender",
7453 "nodeType": "MemberAccess",
7454 "referencedDeclaration": null,
7455 "src": "7317:10:22",
7456 "typeDescriptions": {
7457 "typeIdentifier": "t_address",
7458 "typeString": "address"
7459 }
7460 },
7461 "isConstant": false,
7462 "isLValue": true,
7463 "isPure": false,
7464 "lValueRequested": false,
7465 "nodeType": "IndexAccess",
7466 "src": "7309:19:22",
7467 "typeDescriptions": {
7468 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
7469 "typeString": "mapping(address => uint256)"
7470 }
7471 },
7472 "id": 5748,
7473 "indexExpression": {
7474 "argumentTypes": null,
7475 "id": 5746,
7476 "name": "_spender",
7477 "nodeType": "Identifier",
7478 "overloadedDeclarations": [],
7479 "referencedDeclaration": 5736,
7480 "src": "7329:8:22",
7481 "typeDescriptions": {
7482 "typeIdentifier": "t_address",
7483 "typeString": "address"
7484 }
7485 },
7486 "isConstant": false,
7487 "isLValue": true,
7488 "isPure": false,
7489 "lValueRequested": true,
7490 "nodeType": "IndexAccess",
7491 "src": "7309:29:22",
7492 "typeDescriptions": {
7493 "typeIdentifier": "t_uint256",
7494 "typeString": "uint256"
7495 }
7496 },
7497 "nodeType": "Assignment",
7498 "operator": "=",
7499 "rightHandSide": {
7500 "argumentTypes": null,
7501 "id": 5749,
7502 "name": "_value",
7503 "nodeType": "Identifier",
7504 "overloadedDeclarations": [],
7505 "referencedDeclaration": 5738,
7506 "src": "7341:6:22",
7507 "typeDescriptions": {
7508 "typeIdentifier": "t_uint256",
7509 "typeString": "uint256"
7510 }
7511 },
7512 "src": "7309:38:22",
7513 "typeDescriptions": {
7514 "typeIdentifier": "t_uint256",
7515 "typeString": "uint256"
7516 }
7517 },
7518 "id": 5751,
7519 "nodeType": "ExpressionStatement",
7520 "src": "7309:38:22"
7521 },
7522 {
7523 "eventCall": {
7524 "argumentTypes": null,
7525 "arguments": [
7526 {
7527 "argumentTypes": null,
7528 "expression": {
7529 "argumentTypes": null,
7530 "id": 5753,
7531 "name": "msg",
7532 "nodeType": "Identifier",
7533 "overloadedDeclarations": [],
7534 "referencedDeclaration": 12092,
7535 "src": "7371:3:22",
7536 "typeDescriptions": {
7537 "typeIdentifier": "t_magic_message",
7538 "typeString": "msg"
7539 }
7540 },
7541 "id": 5754,
7542 "isConstant": false,
7543 "isLValue": false,
7544 "isPure": false,
7545 "lValueRequested": false,
7546 "memberName": "sender",
7547 "nodeType": "MemberAccess",
7548 "referencedDeclaration": null,
7549 "src": "7371:10:22",
7550 "typeDescriptions": {
7551 "typeIdentifier": "t_address",
7552 "typeString": "address"
7553 }
7554 },
7555 {
7556 "argumentTypes": null,
7557 "id": 5755,
7558 "name": "_spender",
7559 "nodeType": "Identifier",
7560 "overloadedDeclarations": [],
7561 "referencedDeclaration": 5736,
7562 "src": "7383:8:22",
7563 "typeDescriptions": {
7564 "typeIdentifier": "t_address",
7565 "typeString": "address"
7566 }
7567 },
7568 {
7569 "argumentTypes": null,
7570 "id": 5756,
7571 "name": "_value",
7572 "nodeType": "Identifier",
7573 "overloadedDeclarations": [],
7574 "referencedDeclaration": 5738,
7575 "src": "7393:6:22",
7576 "typeDescriptions": {
7577 "typeIdentifier": "t_uint256",
7578 "typeString": "uint256"
7579 }
7580 }
7581 ],
7582 "expression": {
7583 "argumentTypes": [
7584 {
7585 "typeIdentifier": "t_address",
7586 "typeString": "address"
7587 },
7588 {
7589 "typeIdentifier": "t_address",
7590 "typeString": "address"
7591 },
7592 {
7593 "typeIdentifier": "t_uint256",
7594 "typeString": "uint256"
7595 }
7596 ],
7597 "id": 5752,
7598 "name": "Approval",
7599 "nodeType": "Identifier",
7600 "overloadedDeclarations": [],
7601 "referencedDeclaration": 5350,
7602 "src": "7362:8:22",
7603 "typeDescriptions": {
7604 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
7605 "typeString": "function (address,address,uint256)"
7606 }
7607 },
7608 "id": 5757,
7609 "isConstant": false,
7610 "isLValue": false,
7611 "isPure": false,
7612 "kind": "functionCall",
7613 "lValueRequested": false,
7614 "names": [],
7615 "nodeType": "FunctionCall",
7616 "src": "7362:38:22",
7617 "typeDescriptions": {
7618 "typeIdentifier": "t_tuple$__$",
7619 "typeString": "tuple()"
7620 }
7621 },
7622 "id": 5758,
7623 "nodeType": "EmitStatement",
7624 "src": "7357:43:22"
7625 },
7626 {
7627 "expression": {
7628 "argumentTypes": null,
7629 "hexValue": "74727565",
7630 "id": 5759,
7631 "isConstant": false,
7632 "isLValue": false,
7633 "isPure": true,
7634 "kind": "bool",
7635 "lValueRequested": false,
7636 "nodeType": "Literal",
7637 "src": "7417:4:22",
7638 "subdenomination": null,
7639 "typeDescriptions": {
7640 "typeIdentifier": "t_bool",
7641 "typeString": "bool"
7642 },
7643 "value": "true"
7644 },
7645 "functionReturnParameters": 5742,
7646 "id": 5760,
7647 "nodeType": "Return",
7648 "src": "7410:11:22"
7649 }
7650 ]
7651 },
7652 "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n * Beware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param _spender The address which will spend the funds.\n@param _value The amount of tokens to be spent.",
7653 "id": 5762,
7654 "implemented": true,
7655 "isConstructor": false,
7656 "isDeclaredConst": false,
7657 "modifiers": [],
7658 "name": "approve",
7659 "nodeType": "FunctionDefinition",
7660 "parameters": {
7661 "id": 5739,
7662 "nodeType": "ParameterList",
7663 "parameters": [
7664 {
7665 "constant": false,
7666 "id": 5736,
7667 "name": "_spender",
7668 "nodeType": "VariableDeclaration",
7669 "scope": 5762,
7670 "src": "7243:16:22",
7671 "stateVariable": false,
7672 "storageLocation": "default",
7673 "typeDescriptions": {
7674 "typeIdentifier": "t_address",
7675 "typeString": "address"
7676 },
7677 "typeName": {
7678 "id": 5735,
7679 "name": "address",
7680 "nodeType": "ElementaryTypeName",
7681 "src": "7243:7:22",
7682 "typeDescriptions": {
7683 "typeIdentifier": "t_address",
7684 "typeString": "address"
7685 }
7686 },
7687 "value": null,
7688 "visibility": "internal"
7689 },
7690 {
7691 "constant": false,
7692 "id": 5738,
7693 "name": "_value",
7694 "nodeType": "VariableDeclaration",
7695 "scope": 5762,
7696 "src": "7261:14:22",
7697 "stateVariable": false,
7698 "storageLocation": "default",
7699 "typeDescriptions": {
7700 "typeIdentifier": "t_uint256",
7701 "typeString": "uint256"
7702 },
7703 "typeName": {
7704 "id": 5737,
7705 "name": "uint256",
7706 "nodeType": "ElementaryTypeName",
7707 "src": "7261:7:22",
7708 "typeDescriptions": {
7709 "typeIdentifier": "t_uint256",
7710 "typeString": "uint256"
7711 }
7712 },
7713 "value": null,
7714 "visibility": "internal"
7715 }
7716 ],
7717 "src": "7242:34:22"
7718 },
7719 "payable": false,
7720 "returnParameters": {
7721 "id": 5742,
7722 "nodeType": "ParameterList",
7723 "parameters": [
7724 {
7725 "constant": false,
7726 "id": 5741,
7727 "name": "",
7728 "nodeType": "VariableDeclaration",
7729 "scope": 5762,
7730 "src": "7293:4:22",
7731 "stateVariable": false,
7732 "storageLocation": "default",
7733 "typeDescriptions": {
7734 "typeIdentifier": "t_bool",
7735 "typeString": "bool"
7736 },
7737 "typeName": {
7738 "id": 5740,
7739 "name": "bool",
7740 "nodeType": "ElementaryTypeName",
7741 "src": "7293:4:22",
7742 "typeDescriptions": {
7743 "typeIdentifier": "t_bool",
7744 "typeString": "bool"
7745 }
7746 },
7747 "value": null,
7748 "visibility": "internal"
7749 }
7750 ],
7751 "src": "7292:6:22"
7752 },
7753 "scope": 5881,
7754 "src": "7226:202:22",
7755 "stateMutability": "nonpayable",
7756 "superFunction": 5172,
7757 "visibility": "public"
7758 },
7759 {
7760 "body": {
7761 "id": 5777,
7762 "nodeType": "Block",
7763 "src": "7882:49:22",
7764 "statements": [
7765 {
7766 "expression": {
7767 "argumentTypes": null,
7768 "baseExpression": {
7769 "argumentTypes": null,
7770 "baseExpression": {
7771 "argumentTypes": null,
7772 "id": 5771,
7773 "name": "allowed",
7774 "nodeType": "Identifier",
7775 "overloadedDeclarations": [],
7776 "referencedDeclaration": 5313,
7777 "src": "7899:7:22",
7778 "typeDescriptions": {
7779 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
7780 "typeString": "mapping(address => mapping(address => uint256))"
7781 }
7782 },
7783 "id": 5773,
7784 "indexExpression": {
7785 "argumentTypes": null,
7786 "id": 5772,
7787 "name": "_owner",
7788 "nodeType": "Identifier",
7789 "overloadedDeclarations": [],
7790 "referencedDeclaration": 5764,
7791 "src": "7907:6:22",
7792 "typeDescriptions": {
7793 "typeIdentifier": "t_address",
7794 "typeString": "address"
7795 }
7796 },
7797 "isConstant": false,
7798 "isLValue": true,
7799 "isPure": false,
7800 "lValueRequested": false,
7801 "nodeType": "IndexAccess",
7802 "src": "7899:15:22",
7803 "typeDescriptions": {
7804 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
7805 "typeString": "mapping(address => uint256)"
7806 }
7807 },
7808 "id": 5775,
7809 "indexExpression": {
7810 "argumentTypes": null,
7811 "id": 5774,
7812 "name": "_spender",
7813 "nodeType": "Identifier",
7814 "overloadedDeclarations": [],
7815 "referencedDeclaration": 5766,
7816 "src": "7915:8:22",
7817 "typeDescriptions": {
7818 "typeIdentifier": "t_address",
7819 "typeString": "address"
7820 }
7821 },
7822 "isConstant": false,
7823 "isLValue": true,
7824 "isPure": false,
7825 "lValueRequested": false,
7826 "nodeType": "IndexAccess",
7827 "src": "7899:25:22",
7828 "typeDescriptions": {
7829 "typeIdentifier": "t_uint256",
7830 "typeString": "uint256"
7831 }
7832 },
7833 "functionReturnParameters": 5770,
7834 "id": 5776,
7835 "nodeType": "Return",
7836 "src": "7892:32:22"
7837 }
7838 ]
7839 },
7840 "documentation": "@dev Function to check the amount of tokens that an owner allowed to a spender.\n@param _owner address The address which owns the funds.\n@param _spender address The address which will spend the funds.\n@return A uint256 specifying the amount of tokens still available for the spender.",
7841 "id": 5778,
7842 "implemented": true,
7843 "isConstructor": false,
7844 "isDeclaredConst": true,
7845 "modifiers": [],
7846 "name": "allowance",
7847 "nodeType": "FunctionDefinition",
7848 "parameters": {
7849 "id": 5767,
7850 "nodeType": "ParameterList",
7851 "parameters": [
7852 {
7853 "constant": false,
7854 "id": 5764,
7855 "name": "_owner",
7856 "nodeType": "VariableDeclaration",
7857 "scope": 5778,
7858 "src": "7789:14:22",
7859 "stateVariable": false,
7860 "storageLocation": "default",
7861 "typeDescriptions": {
7862 "typeIdentifier": "t_address",
7863 "typeString": "address"
7864 },
7865 "typeName": {
7866 "id": 5763,
7867 "name": "address",
7868 "nodeType": "ElementaryTypeName",
7869 "src": "7789:7:22",
7870 "typeDescriptions": {
7871 "typeIdentifier": "t_address",
7872 "typeString": "address"
7873 }
7874 },
7875 "value": null,
7876 "visibility": "internal"
7877 },
7878 {
7879 "constant": false,
7880 "id": 5766,
7881 "name": "_spender",
7882 "nodeType": "VariableDeclaration",
7883 "scope": 5778,
7884 "src": "7813:16:22",
7885 "stateVariable": false,
7886 "storageLocation": "default",
7887 "typeDescriptions": {
7888 "typeIdentifier": "t_address",
7889 "typeString": "address"
7890 },
7891 "typeName": {
7892 "id": 5765,
7893 "name": "address",
7894 "nodeType": "ElementaryTypeName",
7895 "src": "7813:7:22",
7896 "typeDescriptions": {
7897 "typeIdentifier": "t_address",
7898 "typeString": "address"
7899 }
7900 },
7901 "value": null,
7902 "visibility": "internal"
7903 }
7904 ],
7905 "src": "7779:56:22"
7906 },
7907 "payable": false,
7908 "returnParameters": {
7909 "id": 5770,
7910 "nodeType": "ParameterList",
7911 "parameters": [
7912 {
7913 "constant": false,
7914 "id": 5769,
7915 "name": "",
7916 "nodeType": "VariableDeclaration",
7917 "scope": 5778,
7918 "src": "7869:7:22",
7919 "stateVariable": false,
7920 "storageLocation": "default",
7921 "typeDescriptions": {
7922 "typeIdentifier": "t_uint256",
7923 "typeString": "uint256"
7924 },
7925 "typeName": {
7926 "id": 5768,
7927 "name": "uint256",
7928 "nodeType": "ElementaryTypeName",
7929 "src": "7869:7:22",
7930 "typeDescriptions": {
7931 "typeIdentifier": "t_uint256",
7932 "typeString": "uint256"
7933 }
7934 },
7935 "value": null,
7936 "visibility": "internal"
7937 }
7938 ],
7939 "src": "7868:9:22"
7940 },
7941 "scope": 5881,
7942 "src": "7761:170:22",
7943 "stateMutability": "view",
7944 "superFunction": 5181,
7945 "visibility": "public"
7946 },
7947 {
7948 "body": {
7949 "id": 5819,
7950 "nodeType": "Block",
7951 "src": "8528:203:22",
7952 "statements": [
7953 {
7954 "expression": {
7955 "argumentTypes": null,
7956 "id": 5803,
7957 "isConstant": false,
7958 "isLValue": false,
7959 "isPure": false,
7960 "lValueRequested": false,
7961 "leftHandSide": {
7962 "argumentTypes": null,
7963 "baseExpression": {
7964 "argumentTypes": null,
7965 "baseExpression": {
7966 "argumentTypes": null,
7967 "id": 5787,
7968 "name": "allowed",
7969 "nodeType": "Identifier",
7970 "overloadedDeclarations": [],
7971 "referencedDeclaration": 5313,
7972 "src": "8538:7:22",
7973 "typeDescriptions": {
7974 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
7975 "typeString": "mapping(address => mapping(address => uint256))"
7976 }
7977 },
7978 "id": 5791,
7979 "indexExpression": {
7980 "argumentTypes": null,
7981 "expression": {
7982 "argumentTypes": null,
7983 "id": 5788,
7984 "name": "msg",
7985 "nodeType": "Identifier",
7986 "overloadedDeclarations": [],
7987 "referencedDeclaration": 12092,
7988 "src": "8546:3:22",
7989 "typeDescriptions": {
7990 "typeIdentifier": "t_magic_message",
7991 "typeString": "msg"
7992 }
7993 },
7994 "id": 5789,
7995 "isConstant": false,
7996 "isLValue": false,
7997 "isPure": false,
7998 "lValueRequested": false,
7999 "memberName": "sender",
8000 "nodeType": "MemberAccess",
8001 "referencedDeclaration": null,
8002 "src": "8546:10:22",
8003 "typeDescriptions": {
8004 "typeIdentifier": "t_address",
8005 "typeString": "address"
8006 }
8007 },
8008 "isConstant": false,
8009 "isLValue": true,
8010 "isPure": false,
8011 "lValueRequested": false,
8012 "nodeType": "IndexAccess",
8013 "src": "8538:19:22",
8014 "typeDescriptions": {
8015 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
8016 "typeString": "mapping(address => uint256)"
8017 }
8018 },
8019 "id": 5792,
8020 "indexExpression": {
8021 "argumentTypes": null,
8022 "id": 5790,
8023 "name": "_spender",
8024 "nodeType": "Identifier",
8025 "overloadedDeclarations": [],
8026 "referencedDeclaration": 5780,
8027 "src": "8558:8:22",
8028 "typeDescriptions": {
8029 "typeIdentifier": "t_address",
8030 "typeString": "address"
8031 }
8032 },
8033 "isConstant": false,
8034 "isLValue": true,
8035 "isPure": false,
8036 "lValueRequested": true,
8037 "nodeType": "IndexAccess",
8038 "src": "8538:29:22",
8039 "typeDescriptions": {
8040 "typeIdentifier": "t_uint256",
8041 "typeString": "uint256"
8042 }
8043 },
8044 "nodeType": "Assignment",
8045 "operator": "=",
8046 "rightHandSide": {
8047 "argumentTypes": null,
8048 "components": [
8049 {
8050 "argumentTypes": null,
8051 "arguments": [
8052 {
8053 "argumentTypes": null,
8054 "id": 5800,
8055 "name": "_addedValue",
8056 "nodeType": "Identifier",
8057 "overloadedDeclarations": [],
8058 "referencedDeclaration": 5782,
8059 "src": "8614:11:22",
8060 "typeDescriptions": {
8061 "typeIdentifier": "t_uint256",
8062 "typeString": "uint256"
8063 }
8064 }
8065 ],
8066 "expression": {
8067 "argumentTypes": [
8068 {
8069 "typeIdentifier": "t_uint256",
8070 "typeString": "uint256"
8071 }
8072 ],
8073 "expression": {
8074 "argumentTypes": null,
8075 "baseExpression": {
8076 "argumentTypes": null,
8077 "baseExpression": {
8078 "argumentTypes": null,
8079 "id": 5793,
8080 "name": "allowed",
8081 "nodeType": "Identifier",
8082 "overloadedDeclarations": [],
8083 "referencedDeclaration": 5313,
8084 "src": "8580:7:22",
8085 "typeDescriptions": {
8086 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
8087 "typeString": "mapping(address => mapping(address => uint256))"
8088 }
8089 },
8090 "id": 5796,
8091 "indexExpression": {
8092 "argumentTypes": null,
8093 "expression": {
8094 "argumentTypes": null,
8095 "id": 5794,
8096 "name": "msg",
8097 "nodeType": "Identifier",
8098 "overloadedDeclarations": [],
8099 "referencedDeclaration": 12092,
8100 "src": "8588:3:22",
8101 "typeDescriptions": {
8102 "typeIdentifier": "t_magic_message",
8103 "typeString": "msg"
8104 }
8105 },
8106 "id": 5795,
8107 "isConstant": false,
8108 "isLValue": false,
8109 "isPure": false,
8110 "lValueRequested": false,
8111 "memberName": "sender",
8112 "nodeType": "MemberAccess",
8113 "referencedDeclaration": null,
8114 "src": "8588:10:22",
8115 "typeDescriptions": {
8116 "typeIdentifier": "t_address",
8117 "typeString": "address"
8118 }
8119 },
8120 "isConstant": false,
8121 "isLValue": true,
8122 "isPure": false,
8123 "lValueRequested": false,
8124 "nodeType": "IndexAccess",
8125 "src": "8580:19:22",
8126 "typeDescriptions": {
8127 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
8128 "typeString": "mapping(address => uint256)"
8129 }
8130 },
8131 "id": 5798,
8132 "indexExpression": {
8133 "argumentTypes": null,
8134 "id": 5797,
8135 "name": "_spender",
8136 "nodeType": "Identifier",
8137 "overloadedDeclarations": [],
8138 "referencedDeclaration": 5780,
8139 "src": "8600:8:22",
8140 "typeDescriptions": {
8141 "typeIdentifier": "t_address",
8142 "typeString": "address"
8143 }
8144 },
8145 "isConstant": false,
8146 "isLValue": true,
8147 "isPure": false,
8148 "lValueRequested": false,
8149 "nodeType": "IndexAccess",
8150 "src": "8580:29:22",
8151 "typeDescriptions": {
8152 "typeIdentifier": "t_uint256",
8153 "typeString": "uint256"
8154 }
8155 },
8156 "id": 5799,
8157 "isConstant": false,
8158 "isLValue": false,
8159 "isPure": false,
8160 "lValueRequested": false,
8161 "memberName": "add",
8162 "nodeType": "MemberAccess",
8163 "referencedDeclaration": 5292,
8164 "src": "8580:33:22",
8165 "typeDescriptions": {
8166 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
8167 "typeString": "function (uint256,uint256) pure returns (uint256)"
8168 }
8169 },
8170 "id": 5801,
8171 "isConstant": false,
8172 "isLValue": false,
8173 "isPure": false,
8174 "kind": "functionCall",
8175 "lValueRequested": false,
8176 "names": [],
8177 "nodeType": "FunctionCall",
8178 "src": "8580:46:22",
8179 "typeDescriptions": {
8180 "typeIdentifier": "t_uint256",
8181 "typeString": "uint256"
8182 }
8183 }
8184 ],
8185 "id": 5802,
8186 "isConstant": false,
8187 "isInlineArray": false,
8188 "isLValue": false,
8189 "isPure": false,
8190 "lValueRequested": false,
8191 "nodeType": "TupleExpression",
8192 "src": "8570:57:22",
8193 "typeDescriptions": {
8194 "typeIdentifier": "t_uint256",
8195 "typeString": "uint256"
8196 }
8197 },
8198 "src": "8538:89:22",
8199 "typeDescriptions": {
8200 "typeIdentifier": "t_uint256",
8201 "typeString": "uint256"
8202 }
8203 },
8204 "id": 5804,
8205 "nodeType": "ExpressionStatement",
8206 "src": "8538:89:22"
8207 },
8208 {
8209 "eventCall": {
8210 "argumentTypes": null,
8211 "arguments": [
8212 {
8213 "argumentTypes": null,
8214 "expression": {
8215 "argumentTypes": null,
8216 "id": 5806,
8217 "name": "msg",
8218 "nodeType": "Identifier",
8219 "overloadedDeclarations": [],
8220 "referencedDeclaration": 12092,
8221 "src": "8651:3:22",
8222 "typeDescriptions": {
8223 "typeIdentifier": "t_magic_message",
8224 "typeString": "msg"
8225 }
8226 },
8227 "id": 5807,
8228 "isConstant": false,
8229 "isLValue": false,
8230 "isPure": false,
8231 "lValueRequested": false,
8232 "memberName": "sender",
8233 "nodeType": "MemberAccess",
8234 "referencedDeclaration": null,
8235 "src": "8651:10:22",
8236 "typeDescriptions": {
8237 "typeIdentifier": "t_address",
8238 "typeString": "address"
8239 }
8240 },
8241 {
8242 "argumentTypes": null,
8243 "id": 5808,
8244 "name": "_spender",
8245 "nodeType": "Identifier",
8246 "overloadedDeclarations": [],
8247 "referencedDeclaration": 5780,
8248 "src": "8663:8:22",
8249 "typeDescriptions": {
8250 "typeIdentifier": "t_address",
8251 "typeString": "address"
8252 }
8253 },
8254 {
8255 "argumentTypes": null,
8256 "baseExpression": {
8257 "argumentTypes": null,
8258 "baseExpression": {
8259 "argumentTypes": null,
8260 "id": 5809,
8261 "name": "allowed",
8262 "nodeType": "Identifier",
8263 "overloadedDeclarations": [],
8264 "referencedDeclaration": 5313,
8265 "src": "8673:7:22",
8266 "typeDescriptions": {
8267 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
8268 "typeString": "mapping(address => mapping(address => uint256))"
8269 }
8270 },
8271 "id": 5812,
8272 "indexExpression": {
8273 "argumentTypes": null,
8274 "expression": {
8275 "argumentTypes": null,
8276 "id": 5810,
8277 "name": "msg",
8278 "nodeType": "Identifier",
8279 "overloadedDeclarations": [],
8280 "referencedDeclaration": 12092,
8281 "src": "8681:3:22",
8282 "typeDescriptions": {
8283 "typeIdentifier": "t_magic_message",
8284 "typeString": "msg"
8285 }
8286 },
8287 "id": 5811,
8288 "isConstant": false,
8289 "isLValue": false,
8290 "isPure": false,
8291 "lValueRequested": false,
8292 "memberName": "sender",
8293 "nodeType": "MemberAccess",
8294 "referencedDeclaration": null,
8295 "src": "8681:10:22",
8296 "typeDescriptions": {
8297 "typeIdentifier": "t_address",
8298 "typeString": "address"
8299 }
8300 },
8301 "isConstant": false,
8302 "isLValue": true,
8303 "isPure": false,
8304 "lValueRequested": false,
8305 "nodeType": "IndexAccess",
8306 "src": "8673:19:22",
8307 "typeDescriptions": {
8308 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
8309 "typeString": "mapping(address => uint256)"
8310 }
8311 },
8312 "id": 5814,
8313 "indexExpression": {
8314 "argumentTypes": null,
8315 "id": 5813,
8316 "name": "_spender",
8317 "nodeType": "Identifier",
8318 "overloadedDeclarations": [],
8319 "referencedDeclaration": 5780,
8320 "src": "8693:8:22",
8321 "typeDescriptions": {
8322 "typeIdentifier": "t_address",
8323 "typeString": "address"
8324 }
8325 },
8326 "isConstant": false,
8327 "isLValue": true,
8328 "isPure": false,
8329 "lValueRequested": false,
8330 "nodeType": "IndexAccess",
8331 "src": "8673:29:22",
8332 "typeDescriptions": {
8333 "typeIdentifier": "t_uint256",
8334 "typeString": "uint256"
8335 }
8336 }
8337 ],
8338 "expression": {
8339 "argumentTypes": [
8340 {
8341 "typeIdentifier": "t_address",
8342 "typeString": "address"
8343 },
8344 {
8345 "typeIdentifier": "t_address",
8346 "typeString": "address"
8347 },
8348 {
8349 "typeIdentifier": "t_uint256",
8350 "typeString": "uint256"
8351 }
8352 ],
8353 "id": 5805,
8354 "name": "Approval",
8355 "nodeType": "Identifier",
8356 "overloadedDeclarations": [],
8357 "referencedDeclaration": 5350,
8358 "src": "8642:8:22",
8359 "typeDescriptions": {
8360 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
8361 "typeString": "function (address,address,uint256)"
8362 }
8363 },
8364 "id": 5815,
8365 "isConstant": false,
8366 "isLValue": false,
8367 "isPure": false,
8368 "kind": "functionCall",
8369 "lValueRequested": false,
8370 "names": [],
8371 "nodeType": "FunctionCall",
8372 "src": "8642:61:22",
8373 "typeDescriptions": {
8374 "typeIdentifier": "t_tuple$__$",
8375 "typeString": "tuple()"
8376 }
8377 },
8378 "id": 5816,
8379 "nodeType": "EmitStatement",
8380 "src": "8637:66:22"
8381 },
8382 {
8383 "expression": {
8384 "argumentTypes": null,
8385 "hexValue": "74727565",
8386 "id": 5817,
8387 "isConstant": false,
8388 "isLValue": false,
8389 "isPure": true,
8390 "kind": "bool",
8391 "lValueRequested": false,
8392 "nodeType": "Literal",
8393 "src": "8720:4:22",
8394 "subdenomination": null,
8395 "typeDescriptions": {
8396 "typeIdentifier": "t_bool",
8397 "typeString": "bool"
8398 },
8399 "value": "true"
8400 },
8401 "functionReturnParameters": 5786,
8402 "id": 5818,
8403 "nodeType": "Return",
8404 "src": "8713:11:22"
8405 }
8406 ]
8407 },
8408 "documentation": "@dev Increase the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed[_spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _addedValue The amount of tokens to increase the allowance by.",
8409 "id": 5820,
8410 "implemented": true,
8411 "isConstructor": false,
8412 "isDeclaredConst": false,
8413 "modifiers": [],
8414 "name": "increaseApproval",
8415 "nodeType": "FunctionDefinition",
8416 "parameters": {
8417 "id": 5783,
8418 "nodeType": "ParameterList",
8419 "parameters": [
8420 {
8421 "constant": false,
8422 "id": 5780,
8423 "name": "_spender",
8424 "nodeType": "VariableDeclaration",
8425 "scope": 5820,
8426 "src": "8445:16:22",
8427 "stateVariable": false,
8428 "storageLocation": "default",
8429 "typeDescriptions": {
8430 "typeIdentifier": "t_address",
8431 "typeString": "address"
8432 },
8433 "typeName": {
8434 "id": 5779,
8435 "name": "address",
8436 "nodeType": "ElementaryTypeName",
8437 "src": "8445:7:22",
8438 "typeDescriptions": {
8439 "typeIdentifier": "t_address",
8440 "typeString": "address"
8441 }
8442 },
8443 "value": null,
8444 "visibility": "internal"
8445 },
8446 {
8447 "constant": false,
8448 "id": 5782,
8449 "name": "_addedValue",
8450 "nodeType": "VariableDeclaration",
8451 "scope": 5820,
8452 "src": "8471:16:22",
8453 "stateVariable": false,
8454 "storageLocation": "default",
8455 "typeDescriptions": {
8456 "typeIdentifier": "t_uint256",
8457 "typeString": "uint256"
8458 },
8459 "typeName": {
8460 "id": 5781,
8461 "name": "uint",
8462 "nodeType": "ElementaryTypeName",
8463 "src": "8471:4:22",
8464 "typeDescriptions": {
8465 "typeIdentifier": "t_uint256",
8466 "typeString": "uint256"
8467 }
8468 },
8469 "value": null,
8470 "visibility": "internal"
8471 }
8472 ],
8473 "src": "8435:58:22"
8474 },
8475 "payable": false,
8476 "returnParameters": {
8477 "id": 5786,
8478 "nodeType": "ParameterList",
8479 "parameters": [
8480 {
8481 "constant": false,
8482 "id": 5785,
8483 "name": "",
8484 "nodeType": "VariableDeclaration",
8485 "scope": 5820,
8486 "src": "8518:4:22",
8487 "stateVariable": false,
8488 "storageLocation": "default",
8489 "typeDescriptions": {
8490 "typeIdentifier": "t_bool",
8491 "typeString": "bool"
8492 },
8493 "typeName": {
8494 "id": 5784,
8495 "name": "bool",
8496 "nodeType": "ElementaryTypeName",
8497 "src": "8518:4:22",
8498 "typeDescriptions": {
8499 "typeIdentifier": "t_bool",
8500 "typeString": "bool"
8501 }
8502 },
8503 "value": null,
8504 "visibility": "internal"
8505 }
8506 ],
8507 "src": "8517:6:22"
8508 },
8509 "scope": 5881,
8510 "src": "8410:321:22",
8511 "stateMutability": "nonpayable",
8512 "superFunction": null,
8513 "visibility": "public"
8514 },
8515 {
8516 "body": {
8517 "id": 5879,
8518 "nodeType": "Block",
8519 "src": "9338:352:22",
8520 "statements": [
8521 {
8522 "assignments": [
8523 5830
8524 ],
8525 "declarations": [
8526 {
8527 "constant": false,
8528 "id": 5830,
8529 "name": "oldValue",
8530 "nodeType": "VariableDeclaration",
8531 "scope": 5880,
8532 "src": "9348:13:22",
8533 "stateVariable": false,
8534 "storageLocation": "default",
8535 "typeDescriptions": {
8536 "typeIdentifier": "t_uint256",
8537 "typeString": "uint256"
8538 },
8539 "typeName": {
8540 "id": 5829,
8541 "name": "uint",
8542 "nodeType": "ElementaryTypeName",
8543 "src": "9348:4:22",
8544 "typeDescriptions": {
8545 "typeIdentifier": "t_uint256",
8546 "typeString": "uint256"
8547 }
8548 },
8549 "value": null,
8550 "visibility": "internal"
8551 }
8552 ],
8553 "id": 5837,
8554 "initialValue": {
8555 "argumentTypes": null,
8556 "baseExpression": {
8557 "argumentTypes": null,
8558 "baseExpression": {
8559 "argumentTypes": null,
8560 "id": 5831,
8561 "name": "allowed",
8562 "nodeType": "Identifier",
8563 "overloadedDeclarations": [],
8564 "referencedDeclaration": 5313,
8565 "src": "9364:7:22",
8566 "typeDescriptions": {
8567 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
8568 "typeString": "mapping(address => mapping(address => uint256))"
8569 }
8570 },
8571 "id": 5834,
8572 "indexExpression": {
8573 "argumentTypes": null,
8574 "expression": {
8575 "argumentTypes": null,
8576 "id": 5832,
8577 "name": "msg",
8578 "nodeType": "Identifier",
8579 "overloadedDeclarations": [],
8580 "referencedDeclaration": 12092,
8581 "src": "9372:3:22",
8582 "typeDescriptions": {
8583 "typeIdentifier": "t_magic_message",
8584 "typeString": "msg"
8585 }
8586 },
8587 "id": 5833,
8588 "isConstant": false,
8589 "isLValue": false,
8590 "isPure": false,
8591 "lValueRequested": false,
8592 "memberName": "sender",
8593 "nodeType": "MemberAccess",
8594 "referencedDeclaration": null,
8595 "src": "9372:10:22",
8596 "typeDescriptions": {
8597 "typeIdentifier": "t_address",
8598 "typeString": "address"
8599 }
8600 },
8601 "isConstant": false,
8602 "isLValue": true,
8603 "isPure": false,
8604 "lValueRequested": false,
8605 "nodeType": "IndexAccess",
8606 "src": "9364:19:22",
8607 "typeDescriptions": {
8608 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
8609 "typeString": "mapping(address => uint256)"
8610 }
8611 },
8612 "id": 5836,
8613 "indexExpression": {
8614 "argumentTypes": null,
8615 "id": 5835,
8616 "name": "_spender",
8617 "nodeType": "Identifier",
8618 "overloadedDeclarations": [],
8619 "referencedDeclaration": 5822,
8620 "src": "9384:8:22",
8621 "typeDescriptions": {
8622 "typeIdentifier": "t_address",
8623 "typeString": "address"
8624 }
8625 },
8626 "isConstant": false,
8627 "isLValue": true,
8628 "isPure": false,
8629 "lValueRequested": false,
8630 "nodeType": "IndexAccess",
8631 "src": "9364:29:22",
8632 "typeDescriptions": {
8633 "typeIdentifier": "t_uint256",
8634 "typeString": "uint256"
8635 }
8636 },
8637 "nodeType": "VariableDeclarationStatement",
8638 "src": "9348:45:22"
8639 },
8640 {
8641 "condition": {
8642 "argumentTypes": null,
8643 "commonType": {
8644 "typeIdentifier": "t_uint256",
8645 "typeString": "uint256"
8646 },
8647 "id": 5840,
8648 "isConstant": false,
8649 "isLValue": false,
8650 "isPure": false,
8651 "lValueRequested": false,
8652 "leftExpression": {
8653 "argumentTypes": null,
8654 "id": 5838,
8655 "name": "_subtractedValue",
8656 "nodeType": "Identifier",
8657 "overloadedDeclarations": [],
8658 "referencedDeclaration": 5824,
8659 "src": "9407:16:22",
8660 "typeDescriptions": {
8661 "typeIdentifier": "t_uint256",
8662 "typeString": "uint256"
8663 }
8664 },
8665 "nodeType": "BinaryOperation",
8666 "operator": ">",
8667 "rightExpression": {
8668 "argumentTypes": null,
8669 "id": 5839,
8670 "name": "oldValue",
8671 "nodeType": "Identifier",
8672 "overloadedDeclarations": [],
8673 "referencedDeclaration": 5830,
8674 "src": "9426:8:22",
8675 "typeDescriptions": {
8676 "typeIdentifier": "t_uint256",
8677 "typeString": "uint256"
8678 }
8679 },
8680 "src": "9407:27:22",
8681 "typeDescriptions": {
8682 "typeIdentifier": "t_bool",
8683 "typeString": "bool"
8684 }
8685 },
8686 "falseBody": {
8687 "id": 5863,
8688 "nodeType": "Block",
8689 "src": "9500:87:22",
8690 "statements": [
8691 {
8692 "expression": {
8693 "argumentTypes": null,
8694 "id": 5861,
8695 "isConstant": false,
8696 "isLValue": false,
8697 "isPure": false,
8698 "lValueRequested": false,
8699 "leftHandSide": {
8700 "argumentTypes": null,
8701 "baseExpression": {
8702 "argumentTypes": null,
8703 "baseExpression": {
8704 "argumentTypes": null,
8705 "id": 5851,
8706 "name": "allowed",
8707 "nodeType": "Identifier",
8708 "overloadedDeclarations": [],
8709 "referencedDeclaration": 5313,
8710 "src": "9514:7:22",
8711 "typeDescriptions": {
8712 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
8713 "typeString": "mapping(address => mapping(address => uint256))"
8714 }
8715 },
8716 "id": 5855,
8717 "indexExpression": {
8718 "argumentTypes": null,
8719 "expression": {
8720 "argumentTypes": null,
8721 "id": 5852,
8722 "name": "msg",
8723 "nodeType": "Identifier",
8724 "overloadedDeclarations": [],
8725 "referencedDeclaration": 12092,
8726 "src": "9522:3:22",
8727 "typeDescriptions": {
8728 "typeIdentifier": "t_magic_message",
8729 "typeString": "msg"
8730 }
8731 },
8732 "id": 5853,
8733 "isConstant": false,
8734 "isLValue": false,
8735 "isPure": false,
8736 "lValueRequested": false,
8737 "memberName": "sender",
8738 "nodeType": "MemberAccess",
8739 "referencedDeclaration": null,
8740 "src": "9522:10:22",
8741 "typeDescriptions": {
8742 "typeIdentifier": "t_address",
8743 "typeString": "address"
8744 }
8745 },
8746 "isConstant": false,
8747 "isLValue": true,
8748 "isPure": false,
8749 "lValueRequested": false,
8750 "nodeType": "IndexAccess",
8751 "src": "9514:19:22",
8752 "typeDescriptions": {
8753 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
8754 "typeString": "mapping(address => uint256)"
8755 }
8756 },
8757 "id": 5856,
8758 "indexExpression": {
8759 "argumentTypes": null,
8760 "id": 5854,
8761 "name": "_spender",
8762 "nodeType": "Identifier",
8763 "overloadedDeclarations": [],
8764 "referencedDeclaration": 5822,
8765 "src": "9534:8:22",
8766 "typeDescriptions": {
8767 "typeIdentifier": "t_address",
8768 "typeString": "address"
8769 }
8770 },
8771 "isConstant": false,
8772 "isLValue": true,
8773 "isPure": false,
8774 "lValueRequested": true,
8775 "nodeType": "IndexAccess",
8776 "src": "9514:29:22",
8777 "typeDescriptions": {
8778 "typeIdentifier": "t_uint256",
8779 "typeString": "uint256"
8780 }
8781 },
8782 "nodeType": "Assignment",
8783 "operator": "=",
8784 "rightHandSide": {
8785 "argumentTypes": null,
8786 "arguments": [
8787 {
8788 "argumentTypes": null,
8789 "id": 5859,
8790 "name": "_subtractedValue",
8791 "nodeType": "Identifier",
8792 "overloadedDeclarations": [],
8793 "referencedDeclaration": 5824,
8794 "src": "9559:16:22",
8795 "typeDescriptions": {
8796 "typeIdentifier": "t_uint256",
8797 "typeString": "uint256"
8798 }
8799 }
8800 ],
8801 "expression": {
8802 "argumentTypes": [
8803 {
8804 "typeIdentifier": "t_uint256",
8805 "typeString": "uint256"
8806 }
8807 ],
8808 "expression": {
8809 "argumentTypes": null,
8810 "id": 5857,
8811 "name": "oldValue",
8812 "nodeType": "Identifier",
8813 "overloadedDeclarations": [],
8814 "referencedDeclaration": 5830,
8815 "src": "9546:8:22",
8816 "typeDescriptions": {
8817 "typeIdentifier": "t_uint256",
8818 "typeString": "uint256"
8819 }
8820 },
8821 "id": 5858,
8822 "isConstant": false,
8823 "isLValue": false,
8824 "isPure": false,
8825 "lValueRequested": false,
8826 "memberName": "sub",
8827 "nodeType": "MemberAccess",
8828 "referencedDeclaration": 5268,
8829 "src": "9546:12:22",
8830 "typeDescriptions": {
8831 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
8832 "typeString": "function (uint256,uint256) pure returns (uint256)"
8833 }
8834 },
8835 "id": 5860,
8836 "isConstant": false,
8837 "isLValue": false,
8838 "isPure": false,
8839 "kind": "functionCall",
8840 "lValueRequested": false,
8841 "names": [],
8842 "nodeType": "FunctionCall",
8843 "src": "9546:30:22",
8844 "typeDescriptions": {
8845 "typeIdentifier": "t_uint256",
8846 "typeString": "uint256"
8847 }
8848 },
8849 "src": "9514:62:22",
8850 "typeDescriptions": {
8851 "typeIdentifier": "t_uint256",
8852 "typeString": "uint256"
8853 }
8854 },
8855 "id": 5862,
8856 "nodeType": "ExpressionStatement",
8857 "src": "9514:62:22"
8858 }
8859 ]
8860 },
8861 "id": 5864,
8862 "nodeType": "IfStatement",
8863 "src": "9403:184:22",
8864 "trueBody": {
8865 "id": 5850,
8866 "nodeType": "Block",
8867 "src": "9436:58:22",
8868 "statements": [
8869 {
8870 "expression": {
8871 "argumentTypes": null,
8872 "id": 5848,
8873 "isConstant": false,
8874 "isLValue": false,
8875 "isPure": false,
8876 "lValueRequested": false,
8877 "leftHandSide": {
8878 "argumentTypes": null,
8879 "baseExpression": {
8880 "argumentTypes": null,
8881 "baseExpression": {
8882 "argumentTypes": null,
8883 "id": 5841,
8884 "name": "allowed",
8885 "nodeType": "Identifier",
8886 "overloadedDeclarations": [],
8887 "referencedDeclaration": 5313,
8888 "src": "9450:7:22",
8889 "typeDescriptions": {
8890 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
8891 "typeString": "mapping(address => mapping(address => uint256))"
8892 }
8893 },
8894 "id": 5845,
8895 "indexExpression": {
8896 "argumentTypes": null,
8897 "expression": {
8898 "argumentTypes": null,
8899 "id": 5842,
8900 "name": "msg",
8901 "nodeType": "Identifier",
8902 "overloadedDeclarations": [],
8903 "referencedDeclaration": 12092,
8904 "src": "9458:3:22",
8905 "typeDescriptions": {
8906 "typeIdentifier": "t_magic_message",
8907 "typeString": "msg"
8908 }
8909 },
8910 "id": 5843,
8911 "isConstant": false,
8912 "isLValue": false,
8913 "isPure": false,
8914 "lValueRequested": false,
8915 "memberName": "sender",
8916 "nodeType": "MemberAccess",
8917 "referencedDeclaration": null,
8918 "src": "9458:10:22",
8919 "typeDescriptions": {
8920 "typeIdentifier": "t_address",
8921 "typeString": "address"
8922 }
8923 },
8924 "isConstant": false,
8925 "isLValue": true,
8926 "isPure": false,
8927 "lValueRequested": false,
8928 "nodeType": "IndexAccess",
8929 "src": "9450:19:22",
8930 "typeDescriptions": {
8931 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
8932 "typeString": "mapping(address => uint256)"
8933 }
8934 },
8935 "id": 5846,
8936 "indexExpression": {
8937 "argumentTypes": null,
8938 "id": 5844,
8939 "name": "_spender",
8940 "nodeType": "Identifier",
8941 "overloadedDeclarations": [],
8942 "referencedDeclaration": 5822,
8943 "src": "9470:8:22",
8944 "typeDescriptions": {
8945 "typeIdentifier": "t_address",
8946 "typeString": "address"
8947 }
8948 },
8949 "isConstant": false,
8950 "isLValue": true,
8951 "isPure": false,
8952 "lValueRequested": true,
8953 "nodeType": "IndexAccess",
8954 "src": "9450:29:22",
8955 "typeDescriptions": {
8956 "typeIdentifier": "t_uint256",
8957 "typeString": "uint256"
8958 }
8959 },
8960 "nodeType": "Assignment",
8961 "operator": "=",
8962 "rightHandSide": {
8963 "argumentTypes": null,
8964 "hexValue": "30",
8965 "id": 5847,
8966 "isConstant": false,
8967 "isLValue": false,
8968 "isPure": true,
8969 "kind": "number",
8970 "lValueRequested": false,
8971 "nodeType": "Literal",
8972 "src": "9482:1:22",
8973 "subdenomination": null,
8974 "typeDescriptions": {
8975 "typeIdentifier": "t_rational_0_by_1",
8976 "typeString": "int_const 0"
8977 },
8978 "value": "0"
8979 },
8980 "src": "9450:33:22",
8981 "typeDescriptions": {
8982 "typeIdentifier": "t_uint256",
8983 "typeString": "uint256"
8984 }
8985 },
8986 "id": 5849,
8987 "nodeType": "ExpressionStatement",
8988 "src": "9450:33:22"
8989 }
8990 ]
8991 }
8992 },
8993 {
8994 "eventCall": {
8995 "argumentTypes": null,
8996 "arguments": [
8997 {
8998 "argumentTypes": null,
8999 "expression": {
9000 "argumentTypes": null,
9001 "id": 5866,
9002 "name": "msg",
9003 "nodeType": "Identifier",
9004 "overloadedDeclarations": [],
9005 "referencedDeclaration": 12092,
9006 "src": "9610:3:22",
9007 "typeDescriptions": {
9008 "typeIdentifier": "t_magic_message",
9009 "typeString": "msg"
9010 }
9011 },
9012 "id": 5867,
9013 "isConstant": false,
9014 "isLValue": false,
9015 "isPure": false,
9016 "lValueRequested": false,
9017 "memberName": "sender",
9018 "nodeType": "MemberAccess",
9019 "referencedDeclaration": null,
9020 "src": "9610:10:22",
9021 "typeDescriptions": {
9022 "typeIdentifier": "t_address",
9023 "typeString": "address"
9024 }
9025 },
9026 {
9027 "argumentTypes": null,
9028 "id": 5868,
9029 "name": "_spender",
9030 "nodeType": "Identifier",
9031 "overloadedDeclarations": [],
9032 "referencedDeclaration": 5822,
9033 "src": "9622:8:22",
9034 "typeDescriptions": {
9035 "typeIdentifier": "t_address",
9036 "typeString": "address"
9037 }
9038 },
9039 {
9040 "argumentTypes": null,
9041 "baseExpression": {
9042 "argumentTypes": null,
9043 "baseExpression": {
9044 "argumentTypes": null,
9045 "id": 5869,
9046 "name": "allowed",
9047 "nodeType": "Identifier",
9048 "overloadedDeclarations": [],
9049 "referencedDeclaration": 5313,
9050 "src": "9632:7:22",
9051 "typeDescriptions": {
9052 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
9053 "typeString": "mapping(address => mapping(address => uint256))"
9054 }
9055 },
9056 "id": 5872,
9057 "indexExpression": {
9058 "argumentTypes": null,
9059 "expression": {
9060 "argumentTypes": null,
9061 "id": 5870,
9062 "name": "msg",
9063 "nodeType": "Identifier",
9064 "overloadedDeclarations": [],
9065 "referencedDeclaration": 12092,
9066 "src": "9640:3:22",
9067 "typeDescriptions": {
9068 "typeIdentifier": "t_magic_message",
9069 "typeString": "msg"
9070 }
9071 },
9072 "id": 5871,
9073 "isConstant": false,
9074 "isLValue": false,
9075 "isPure": false,
9076 "lValueRequested": false,
9077 "memberName": "sender",
9078 "nodeType": "MemberAccess",
9079 "referencedDeclaration": null,
9080 "src": "9640:10:22",
9081 "typeDescriptions": {
9082 "typeIdentifier": "t_address",
9083 "typeString": "address"
9084 }
9085 },
9086 "isConstant": false,
9087 "isLValue": true,
9088 "isPure": false,
9089 "lValueRequested": false,
9090 "nodeType": "IndexAccess",
9091 "src": "9632:19:22",
9092 "typeDescriptions": {
9093 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
9094 "typeString": "mapping(address => uint256)"
9095 }
9096 },
9097 "id": 5874,
9098 "indexExpression": {
9099 "argumentTypes": null,
9100 "id": 5873,
9101 "name": "_spender",
9102 "nodeType": "Identifier",
9103 "overloadedDeclarations": [],
9104 "referencedDeclaration": 5822,
9105 "src": "9652:8:22",
9106 "typeDescriptions": {
9107 "typeIdentifier": "t_address",
9108 "typeString": "address"
9109 }
9110 },
9111 "isConstant": false,
9112 "isLValue": true,
9113 "isPure": false,
9114 "lValueRequested": false,
9115 "nodeType": "IndexAccess",
9116 "src": "9632:29:22",
9117 "typeDescriptions": {
9118 "typeIdentifier": "t_uint256",
9119 "typeString": "uint256"
9120 }
9121 }
9122 ],
9123 "expression": {
9124 "argumentTypes": [
9125 {
9126 "typeIdentifier": "t_address",
9127 "typeString": "address"
9128 },
9129 {
9130 "typeIdentifier": "t_address",
9131 "typeString": "address"
9132 },
9133 {
9134 "typeIdentifier": "t_uint256",
9135 "typeString": "uint256"
9136 }
9137 ],
9138 "id": 5865,
9139 "name": "Approval",
9140 "nodeType": "Identifier",
9141 "overloadedDeclarations": [],
9142 "referencedDeclaration": 5350,
9143 "src": "9601:8:22",
9144 "typeDescriptions": {
9145 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
9146 "typeString": "function (address,address,uint256)"
9147 }
9148 },
9149 "id": 5875,
9150 "isConstant": false,
9151 "isLValue": false,
9152 "isPure": false,
9153 "kind": "functionCall",
9154 "lValueRequested": false,
9155 "names": [],
9156 "nodeType": "FunctionCall",
9157 "src": "9601:61:22",
9158 "typeDescriptions": {
9159 "typeIdentifier": "t_tuple$__$",
9160 "typeString": "tuple()"
9161 }
9162 },
9163 "id": 5876,
9164 "nodeType": "EmitStatement",
9165 "src": "9596:66:22"
9166 },
9167 {
9168 "expression": {
9169 "argumentTypes": null,
9170 "hexValue": "74727565",
9171 "id": 5877,
9172 "isConstant": false,
9173 "isLValue": false,
9174 "isPure": true,
9175 "kind": "bool",
9176 "lValueRequested": false,
9177 "nodeType": "Literal",
9178 "src": "9679:4:22",
9179 "subdenomination": null,
9180 "typeDescriptions": {
9181 "typeIdentifier": "t_bool",
9182 "typeString": "bool"
9183 },
9184 "value": "true"
9185 },
9186 "functionReturnParameters": 5828,
9187 "id": 5878,
9188 "nodeType": "Return",
9189 "src": "9672:11:22"
9190 }
9191 ]
9192 },
9193 "documentation": "@dev Decrease the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed[_spender] == 0. To decrement\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _subtractedValue The amount of tokens to decrease the allowance by.",
9194 "id": 5880,
9195 "implemented": true,
9196 "isConstructor": false,
9197 "isDeclaredConst": false,
9198 "modifiers": [],
9199 "name": "decreaseApproval",
9200 "nodeType": "FunctionDefinition",
9201 "parameters": {
9202 "id": 5825,
9203 "nodeType": "ParameterList",
9204 "parameters": [
9205 {
9206 "constant": false,
9207 "id": 5822,
9208 "name": "_spender",
9209 "nodeType": "VariableDeclaration",
9210 "scope": 5880,
9211 "src": "9250:16:22",
9212 "stateVariable": false,
9213 "storageLocation": "default",
9214 "typeDescriptions": {
9215 "typeIdentifier": "t_address",
9216 "typeString": "address"
9217 },
9218 "typeName": {
9219 "id": 5821,
9220 "name": "address",
9221 "nodeType": "ElementaryTypeName",
9222 "src": "9250:7:22",
9223 "typeDescriptions": {
9224 "typeIdentifier": "t_address",
9225 "typeString": "address"
9226 }
9227 },
9228 "value": null,
9229 "visibility": "internal"
9230 },
9231 {
9232 "constant": false,
9233 "id": 5824,
9234 "name": "_subtractedValue",
9235 "nodeType": "VariableDeclaration",
9236 "scope": 5880,
9237 "src": "9276:21:22",
9238 "stateVariable": false,
9239 "storageLocation": "default",
9240 "typeDescriptions": {
9241 "typeIdentifier": "t_uint256",
9242 "typeString": "uint256"
9243 },
9244 "typeName": {
9245 "id": 5823,
9246 "name": "uint",
9247 "nodeType": "ElementaryTypeName",
9248 "src": "9276:4:22",
9249 "typeDescriptions": {
9250 "typeIdentifier": "t_uint256",
9251 "typeString": "uint256"
9252 }
9253 },
9254 "value": null,
9255 "visibility": "internal"
9256 }
9257 ],
9258 "src": "9240:63:22"
9259 },
9260 "payable": false,
9261 "returnParameters": {
9262 "id": 5828,
9263 "nodeType": "ParameterList",
9264 "parameters": [
9265 {
9266 "constant": false,
9267 "id": 5827,
9268 "name": "",
9269 "nodeType": "VariableDeclaration",
9270 "scope": 5880,
9271 "src": "9328:4:22",
9272 "stateVariable": false,
9273 "storageLocation": "default",
9274 "typeDescriptions": {
9275 "typeIdentifier": "t_bool",
9276 "typeString": "bool"
9277 },
9278 "typeName": {
9279 "id": 5826,
9280 "name": "bool",
9281 "nodeType": "ElementaryTypeName",
9282 "src": "9328:4:22",
9283 "typeDescriptions": {
9284 "typeIdentifier": "t_bool",
9285 "typeString": "bool"
9286 }
9287 },
9288 "value": null,
9289 "visibility": "internal"
9290 }
9291 ],
9292 "src": "9327:6:22"
9293 },
9294 "scope": 5881,
9295 "src": "9215:475:22",
9296 "stateMutability": "nonpayable",
9297 "superFunction": null,
9298 "visibility": "public"
9299 }
9300 ],
9301 "scope": 5882,
9302 "src": "1571:8121:22"
9303 }
9304 ],
9305 "src": "0:9693:22"
9306 },
9307 "legacyAST": {
9308 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/token/Token.sol",
9309 "exportedSymbols": {
9310 "FactoryToken": [
9311 5881
9312 ],
9313 "SafeMath": [
9314 5293
9315 ]
9316 },
9317 "id": 5882,
9318 "nodeType": "SourceUnit",
9319 "nodes": [
9320 {
9321 "id": 5200,
9322 "literals": [
9323 "solidity",
9324 "^",
9325 "0.4",
9326 ".24"
9327 ],
9328 "nodeType": "PragmaDirective",
9329 "src": "0:24:22"
9330 },
9331 {
9332 "absolutePath": "/home/xv702/2zap/zap-ethereum-api/contracts/lib/token/FactoryTokenInterface.sol",
9333 "file": "./FactoryTokenInterface.sol",
9334 "id": 5201,
9335 "nodeType": "ImportDirective",
9336 "scope": 5882,
9337 "sourceUnit": 5199,
9338 "src": "26:37:22",
9339 "symbolAliases": [],
9340 "unitAlias": ""
9341 },
9342 {
9343 "baseContracts": [],
9344 "contractDependencies": [],
9345 "contractKind": "library",
9346 "documentation": "@title SafeMath\n@dev Math operations with safety checks that throw on error",
9347 "fullyImplemented": true,
9348 "id": 5293,
9349 "linearizedBaseContracts": [
9350 5293
9351 ],
9352 "name": "SafeMath",
9353 "nodeType": "ContractDefinition",
9354 "nodes": [
9355 {
9356 "body": {
9357 "id": 5233,
9358 "nodeType": "Block",
9359 "src": "360:344:22",
9360 "statements": [
9361 {
9362 "condition": {
9363 "argumentTypes": null,
9364 "commonType": {
9365 "typeIdentifier": "t_uint256",
9366 "typeString": "uint256"
9367 },
9368 "id": 5212,
9369 "isConstant": false,
9370 "isLValue": false,
9371 "isPure": false,
9372 "lValueRequested": false,
9373 "leftExpression": {
9374 "argumentTypes": null,
9375 "id": 5210,
9376 "name": "a",
9377 "nodeType": "Identifier",
9378 "overloadedDeclarations": [],
9379 "referencedDeclaration": 5203,
9380 "src": "591:1:22",
9381 "typeDescriptions": {
9382 "typeIdentifier": "t_uint256",
9383 "typeString": "uint256"
9384 }
9385 },
9386 "nodeType": "BinaryOperation",
9387 "operator": "==",
9388 "rightExpression": {
9389 "argumentTypes": null,
9390 "hexValue": "30",
9391 "id": 5211,
9392 "isConstant": false,
9393 "isLValue": false,
9394 "isPure": true,
9395 "kind": "number",
9396 "lValueRequested": false,
9397 "nodeType": "Literal",
9398 "src": "596:1:22",
9399 "subdenomination": null,
9400 "typeDescriptions": {
9401 "typeIdentifier": "t_rational_0_by_1",
9402 "typeString": "int_const 0"
9403 },
9404 "value": "0"
9405 },
9406 "src": "591:6:22",
9407 "typeDescriptions": {
9408 "typeIdentifier": "t_bool",
9409 "typeString": "bool"
9410 }
9411 },
9412 "falseBody": null,
9413 "id": 5216,
9414 "nodeType": "IfStatement",
9415 "src": "587:45:22",
9416 "trueBody": {
9417 "id": 5215,
9418 "nodeType": "Block",
9419 "src": "599:33:22",
9420 "statements": [
9421 {
9422 "expression": {
9423 "argumentTypes": null,
9424 "hexValue": "30",
9425 "id": 5213,
9426 "isConstant": false,
9427 "isLValue": false,
9428 "isPure": true,
9429 "kind": "number",
9430 "lValueRequested": false,
9431 "nodeType": "Literal",
9432 "src": "620:1:22",
9433 "subdenomination": null,
9434 "typeDescriptions": {
9435 "typeIdentifier": "t_rational_0_by_1",
9436 "typeString": "int_const 0"
9437 },
9438 "value": "0"
9439 },
9440 "functionReturnParameters": 5209,
9441 "id": 5214,
9442 "nodeType": "Return",
9443 "src": "613:8:22"
9444 }
9445 ]
9446 }
9447 },
9448 {
9449 "expression": {
9450 "argumentTypes": null,
9451 "id": 5221,
9452 "isConstant": false,
9453 "isLValue": false,
9454 "isPure": false,
9455 "lValueRequested": false,
9456 "leftHandSide": {
9457 "argumentTypes": null,
9458 "id": 5217,
9459 "name": "c",
9460 "nodeType": "Identifier",
9461 "overloadedDeclarations": [],
9462 "referencedDeclaration": 5208,
9463 "src": "642:1:22",
9464 "typeDescriptions": {
9465 "typeIdentifier": "t_uint256",
9466 "typeString": "uint256"
9467 }
9468 },
9469 "nodeType": "Assignment",
9470 "operator": "=",
9471 "rightHandSide": {
9472 "argumentTypes": null,
9473 "commonType": {
9474 "typeIdentifier": "t_uint256",
9475 "typeString": "uint256"
9476 },
9477 "id": 5220,
9478 "isConstant": false,
9479 "isLValue": false,
9480 "isPure": false,
9481 "lValueRequested": false,
9482 "leftExpression": {
9483 "argumentTypes": null,
9484 "id": 5218,
9485 "name": "a",
9486 "nodeType": "Identifier",
9487 "overloadedDeclarations": [],
9488 "referencedDeclaration": 5203,
9489 "src": "646:1:22",
9490 "typeDescriptions": {
9491 "typeIdentifier": "t_uint256",
9492 "typeString": "uint256"
9493 }
9494 },
9495 "nodeType": "BinaryOperation",
9496 "operator": "*",
9497 "rightExpression": {
9498 "argumentTypes": null,
9499 "id": 5219,
9500 "name": "b",
9501 "nodeType": "Identifier",
9502 "overloadedDeclarations": [],
9503 "referencedDeclaration": 5205,
9504 "src": "650:1:22",
9505 "typeDescriptions": {
9506 "typeIdentifier": "t_uint256",
9507 "typeString": "uint256"
9508 }
9509 },
9510 "src": "646:5:22",
9511 "typeDescriptions": {
9512 "typeIdentifier": "t_uint256",
9513 "typeString": "uint256"
9514 }
9515 },
9516 "src": "642:9:22",
9517 "typeDescriptions": {
9518 "typeIdentifier": "t_uint256",
9519 "typeString": "uint256"
9520 }
9521 },
9522 "id": 5222,
9523 "nodeType": "ExpressionStatement",
9524 "src": "642:9:22"
9525 },
9526 {
9527 "expression": {
9528 "argumentTypes": null,
9529 "arguments": [
9530 {
9531 "argumentTypes": null,
9532 "commonType": {
9533 "typeIdentifier": "t_uint256",
9534 "typeString": "uint256"
9535 },
9536 "id": 5228,
9537 "isConstant": false,
9538 "isLValue": false,
9539 "isPure": false,
9540 "lValueRequested": false,
9541 "leftExpression": {
9542 "argumentTypes": null,
9543 "commonType": {
9544 "typeIdentifier": "t_uint256",
9545 "typeString": "uint256"
9546 },
9547 "id": 5226,
9548 "isConstant": false,
9549 "isLValue": false,
9550 "isPure": false,
9551 "lValueRequested": false,
9552 "leftExpression": {
9553 "argumentTypes": null,
9554 "id": 5224,
9555 "name": "c",
9556 "nodeType": "Identifier",
9557 "overloadedDeclarations": [],
9558 "referencedDeclaration": 5208,
9559 "src": "668:1:22",
9560 "typeDescriptions": {
9561 "typeIdentifier": "t_uint256",
9562 "typeString": "uint256"
9563 }
9564 },
9565 "nodeType": "BinaryOperation",
9566 "operator": "/",
9567 "rightExpression": {
9568 "argumentTypes": null,
9569 "id": 5225,
9570 "name": "a",
9571 "nodeType": "Identifier",
9572 "overloadedDeclarations": [],
9573 "referencedDeclaration": 5203,
9574 "src": "672:1:22",
9575 "typeDescriptions": {
9576 "typeIdentifier": "t_uint256",
9577 "typeString": "uint256"
9578 }
9579 },
9580 "src": "668:5:22",
9581 "typeDescriptions": {
9582 "typeIdentifier": "t_uint256",
9583 "typeString": "uint256"
9584 }
9585 },
9586 "nodeType": "BinaryOperation",
9587 "operator": "==",
9588 "rightExpression": {
9589 "argumentTypes": null,
9590 "id": 5227,
9591 "name": "b",
9592 "nodeType": "Identifier",
9593 "overloadedDeclarations": [],
9594 "referencedDeclaration": 5205,
9595 "src": "677:1:22",
9596 "typeDescriptions": {
9597 "typeIdentifier": "t_uint256",
9598 "typeString": "uint256"
9599 }
9600 },
9601 "src": "668:10:22",
9602 "typeDescriptions": {
9603 "typeIdentifier": "t_bool",
9604 "typeString": "bool"
9605 }
9606 }
9607 ],
9608 "expression": {
9609 "argumentTypes": [
9610 {
9611 "typeIdentifier": "t_bool",
9612 "typeString": "bool"
9613 }
9614 ],
9615 "id": 5223,
9616 "name": "assert",
9617 "nodeType": "Identifier",
9618 "overloadedDeclarations": [],
9619 "referencedDeclaration": 12081,
9620 "src": "661:6:22",
9621 "typeDescriptions": {
9622 "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
9623 "typeString": "function (bool) pure"
9624 }
9625 },
9626 "id": 5229,
9627 "isConstant": false,
9628 "isLValue": false,
9629 "isPure": false,
9630 "kind": "functionCall",
9631 "lValueRequested": false,
9632 "names": [],
9633 "nodeType": "FunctionCall",
9634 "src": "661:18:22",
9635 "typeDescriptions": {
9636 "typeIdentifier": "t_tuple$__$",
9637 "typeString": "tuple()"
9638 }
9639 },
9640 "id": 5230,
9641 "nodeType": "ExpressionStatement",
9642 "src": "661:18:22"
9643 },
9644 {
9645 "expression": {
9646 "argumentTypes": null,
9647 "id": 5231,
9648 "name": "c",
9649 "nodeType": "Identifier",
9650 "overloadedDeclarations": [],
9651 "referencedDeclaration": 5208,
9652 "src": "696:1:22",
9653 "typeDescriptions": {
9654 "typeIdentifier": "t_uint256",
9655 "typeString": "uint256"
9656 }
9657 },
9658 "functionReturnParameters": 5209,
9659 "id": 5232,
9660 "nodeType": "Return",
9661 "src": "689:8:22"
9662 }
9663 ]
9664 },
9665 "documentation": "@dev Multiplies two numbers, throws on overflow.",
9666 "id": 5234,
9667 "implemented": true,
9668 "isConstructor": false,
9669 "isDeclaredConst": true,
9670 "modifiers": [],
9671 "name": "mul",
9672 "nodeType": "FunctionDefinition",
9673 "parameters": {
9674 "id": 5206,
9675 "nodeType": "ParameterList",
9676 "parameters": [
9677 {
9678 "constant": false,
9679 "id": 5203,
9680 "name": "a",
9681 "nodeType": "VariableDeclaration",
9682 "scope": 5234,
9683 "src": "304:9:22",
9684 "stateVariable": false,
9685 "storageLocation": "default",
9686 "typeDescriptions": {
9687 "typeIdentifier": "t_uint256",
9688 "typeString": "uint256"
9689 },
9690 "typeName": {
9691 "id": 5202,
9692 "name": "uint256",
9693 "nodeType": "ElementaryTypeName",
9694 "src": "304:7:22",
9695 "typeDescriptions": {
9696 "typeIdentifier": "t_uint256",
9697 "typeString": "uint256"
9698 }
9699 },
9700 "value": null,
9701 "visibility": "internal"
9702 },
9703 {
9704 "constant": false,
9705 "id": 5205,
9706 "name": "b",
9707 "nodeType": "VariableDeclaration",
9708 "scope": 5234,
9709 "src": "315:9:22",
9710 "stateVariable": false,
9711 "storageLocation": "default",
9712 "typeDescriptions": {
9713 "typeIdentifier": "t_uint256",
9714 "typeString": "uint256"
9715 },
9716 "typeName": {
9717 "id": 5204,
9718 "name": "uint256",
9719 "nodeType": "ElementaryTypeName",
9720 "src": "315:7:22",
9721 "typeDescriptions": {
9722 "typeIdentifier": "t_uint256",
9723 "typeString": "uint256"
9724 }
9725 },
9726 "value": null,
9727 "visibility": "internal"
9728 }
9729 ],
9730 "src": "303:22:22"
9731 },
9732 "payable": false,
9733 "returnParameters": {
9734 "id": 5209,
9735 "nodeType": "ParameterList",
9736 "parameters": [
9737 {
9738 "constant": false,
9739 "id": 5208,
9740 "name": "c",
9741 "nodeType": "VariableDeclaration",
9742 "scope": 5234,
9743 "src": "349:9:22",
9744 "stateVariable": false,
9745 "storageLocation": "default",
9746 "typeDescriptions": {
9747 "typeIdentifier": "t_uint256",
9748 "typeString": "uint256"
9749 },
9750 "typeName": {
9751 "id": 5207,
9752 "name": "uint256",
9753 "nodeType": "ElementaryTypeName",
9754 "src": "349:7:22",
9755 "typeDescriptions": {
9756 "typeIdentifier": "t_uint256",
9757 "typeString": "uint256"
9758 }
9759 },
9760 "value": null,
9761 "visibility": "internal"
9762 }
9763 ],
9764 "src": "348:11:22"
9765 },
9766 "scope": 5293,
9767 "src": "291:413:22",
9768 "stateMutability": "pure",
9769 "superFunction": null,
9770 "visibility": "internal"
9771 },
9772 {
9773 "body": {
9774 "id": 5247,
9775 "nodeType": "Block",
9776 "src": "861:223:22",
9777 "statements": [
9778 {
9779 "expression": {
9780 "argumentTypes": null,
9781 "commonType": {
9782 "typeIdentifier": "t_uint256",
9783 "typeString": "uint256"
9784 },
9785 "id": 5245,
9786 "isConstant": false,
9787 "isLValue": false,
9788 "isPure": false,
9789 "lValueRequested": false,
9790 "leftExpression": {
9791 "argumentTypes": null,
9792 "id": 5243,
9793 "name": "a",
9794 "nodeType": "Identifier",
9795 "overloadedDeclarations": [],
9796 "referencedDeclaration": 5236,
9797 "src": "1072:1:22",
9798 "typeDescriptions": {
9799 "typeIdentifier": "t_uint256",
9800 "typeString": "uint256"
9801 }
9802 },
9803 "nodeType": "BinaryOperation",
9804 "operator": "/",
9805 "rightExpression": {
9806 "argumentTypes": null,
9807 "id": 5244,
9808 "name": "b",
9809 "nodeType": "Identifier",
9810 "overloadedDeclarations": [],
9811 "referencedDeclaration": 5238,
9812 "src": "1076:1:22",
9813 "typeDescriptions": {
9814 "typeIdentifier": "t_uint256",
9815 "typeString": "uint256"
9816 }
9817 },
9818 "src": "1072:5:22",
9819 "typeDescriptions": {
9820 "typeIdentifier": "t_uint256",
9821 "typeString": "uint256"
9822 }
9823 },
9824 "functionReturnParameters": 5242,
9825 "id": 5246,
9826 "nodeType": "Return",
9827 "src": "1065:12:22"
9828 }
9829 ]
9830 },
9831 "documentation": "@dev Integer division of two numbers, truncating the quotient.",
9832 "id": 5248,
9833 "implemented": true,
9834 "isConstructor": false,
9835 "isDeclaredConst": true,
9836 "modifiers": [],
9837 "name": "div",
9838 "nodeType": "FunctionDefinition",
9839 "parameters": {
9840 "id": 5239,
9841 "nodeType": "ParameterList",
9842 "parameters": [
9843 {
9844 "constant": false,
9845 "id": 5236,
9846 "name": "a",
9847 "nodeType": "VariableDeclaration",
9848 "scope": 5248,
9849 "src": "807:9:22",
9850 "stateVariable": false,
9851 "storageLocation": "default",
9852 "typeDescriptions": {
9853 "typeIdentifier": "t_uint256",
9854 "typeString": "uint256"
9855 },
9856 "typeName": {
9857 "id": 5235,
9858 "name": "uint256",
9859 "nodeType": "ElementaryTypeName",
9860 "src": "807:7:22",
9861 "typeDescriptions": {
9862 "typeIdentifier": "t_uint256",
9863 "typeString": "uint256"
9864 }
9865 },
9866 "value": null,
9867 "visibility": "internal"
9868 },
9869 {
9870 "constant": false,
9871 "id": 5238,
9872 "name": "b",
9873 "nodeType": "VariableDeclaration",
9874 "scope": 5248,
9875 "src": "818:9:22",
9876 "stateVariable": false,
9877 "storageLocation": "default",
9878 "typeDescriptions": {
9879 "typeIdentifier": "t_uint256",
9880 "typeString": "uint256"
9881 },
9882 "typeName": {
9883 "id": 5237,
9884 "name": "uint256",
9885 "nodeType": "ElementaryTypeName",
9886 "src": "818:7:22",
9887 "typeDescriptions": {
9888 "typeIdentifier": "t_uint256",
9889 "typeString": "uint256"
9890 }
9891 },
9892 "value": null,
9893 "visibility": "internal"
9894 }
9895 ],
9896 "src": "806:22:22"
9897 },
9898 "payable": false,
9899 "returnParameters": {
9900 "id": 5242,
9901 "nodeType": "ParameterList",
9902 "parameters": [
9903 {
9904 "constant": false,
9905 "id": 5241,
9906 "name": "",
9907 "nodeType": "VariableDeclaration",
9908 "scope": 5248,
9909 "src": "852:7:22",
9910 "stateVariable": false,
9911 "storageLocation": "default",
9912 "typeDescriptions": {
9913 "typeIdentifier": "t_uint256",
9914 "typeString": "uint256"
9915 },
9916 "typeName": {
9917 "id": 5240,
9918 "name": "uint256",
9919 "nodeType": "ElementaryTypeName",
9920 "src": "852:7:22",
9921 "typeDescriptions": {
9922 "typeIdentifier": "t_uint256",
9923 "typeString": "uint256"
9924 }
9925 },
9926 "value": null,
9927 "visibility": "internal"
9928 }
9929 ],
9930 "src": "851:9:22"
9931 },
9932 "scope": 5293,
9933 "src": "794:290:22",
9934 "stateMutability": "pure",
9935 "superFunction": null,
9936 "visibility": "internal"
9937 },
9938 {
9939 "body": {
9940 "id": 5267,
9941 "nodeType": "Block",
9942 "src": "1271:53:22",
9943 "statements": [
9944 {
9945 "expression": {
9946 "argumentTypes": null,
9947 "arguments": [
9948 {
9949 "argumentTypes": null,
9950 "commonType": {
9951 "typeIdentifier": "t_uint256",
9952 "typeString": "uint256"
9953 },
9954 "id": 5260,
9955 "isConstant": false,
9956 "isLValue": false,
9957 "isPure": false,
9958 "lValueRequested": false,
9959 "leftExpression": {
9960 "argumentTypes": null,
9961 "id": 5258,
9962 "name": "b",
9963 "nodeType": "Identifier",
9964 "overloadedDeclarations": [],
9965 "referencedDeclaration": 5252,
9966 "src": "1288:1:22",
9967 "typeDescriptions": {
9968 "typeIdentifier": "t_uint256",
9969 "typeString": "uint256"
9970 }
9971 },
9972 "nodeType": "BinaryOperation",
9973 "operator": "<=",
9974 "rightExpression": {
9975 "argumentTypes": null,
9976 "id": 5259,
9977 "name": "a",
9978 "nodeType": "Identifier",
9979 "overloadedDeclarations": [],
9980 "referencedDeclaration": 5250,
9981 "src": "1293:1:22",
9982 "typeDescriptions": {
9983 "typeIdentifier": "t_uint256",
9984 "typeString": "uint256"
9985 }
9986 },
9987 "src": "1288:6:22",
9988 "typeDescriptions": {
9989 "typeIdentifier": "t_bool",
9990 "typeString": "bool"
9991 }
9992 }
9993 ],
9994 "expression": {
9995 "argumentTypes": [
9996 {
9997 "typeIdentifier": "t_bool",
9998 "typeString": "bool"
9999 }
10000 ],
10001 "id": 5257,
10002 "name": "assert",
10003 "nodeType": "Identifier",
10004 "overloadedDeclarations": [],
10005 "referencedDeclaration": 12081,
10006 "src": "1281:6:22",
10007 "typeDescriptions": {
10008 "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
10009 "typeString": "function (bool) pure"
10010 }
10011 },
10012 "id": 5261,
10013 "isConstant": false,
10014 "isLValue": false,
10015 "isPure": false,
10016 "kind": "functionCall",
10017 "lValueRequested": false,
10018 "names": [],
10019 "nodeType": "FunctionCall",
10020 "src": "1281:14:22",
10021 "typeDescriptions": {
10022 "typeIdentifier": "t_tuple$__$",
10023 "typeString": "tuple()"
10024 }
10025 },
10026 "id": 5262,
10027 "nodeType": "ExpressionStatement",
10028 "src": "1281:14:22"
10029 },
10030 {
10031 "expression": {
10032 "argumentTypes": null,
10033 "commonType": {
10034 "typeIdentifier": "t_uint256",
10035 "typeString": "uint256"
10036 },
10037 "id": 5265,
10038 "isConstant": false,
10039 "isLValue": false,
10040 "isPure": false,
10041 "lValueRequested": false,
10042 "leftExpression": {
10043 "argumentTypes": null,
10044 "id": 5263,
10045 "name": "a",
10046 "nodeType": "Identifier",
10047 "overloadedDeclarations": [],
10048 "referencedDeclaration": 5250,
10049 "src": "1312:1:22",
10050 "typeDescriptions": {
10051 "typeIdentifier": "t_uint256",
10052 "typeString": "uint256"
10053 }
10054 },
10055 "nodeType": "BinaryOperation",
10056 "operator": "-",
10057 "rightExpression": {
10058 "argumentTypes": null,
10059 "id": 5264,
10060 "name": "b",
10061 "nodeType": "Identifier",
10062 "overloadedDeclarations": [],
10063 "referencedDeclaration": 5252,
10064 "src": "1316:1:22",
10065 "typeDescriptions": {
10066 "typeIdentifier": "t_uint256",
10067 "typeString": "uint256"
10068 }
10069 },
10070 "src": "1312:5:22",
10071 "typeDescriptions": {
10072 "typeIdentifier": "t_uint256",
10073 "typeString": "uint256"
10074 }
10075 },
10076 "functionReturnParameters": 5256,
10077 "id": 5266,
10078 "nodeType": "Return",
10079 "src": "1305:12:22"
10080 }
10081 ]
10082 },
10083 "documentation": "@dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).",
10084 "id": 5268,
10085 "implemented": true,
10086 "isConstructor": false,
10087 "isDeclaredConst": true,
10088 "modifiers": [],
10089 "name": "sub",
10090 "nodeType": "FunctionDefinition",
10091 "parameters": {
10092 "id": 5253,
10093 "nodeType": "ParameterList",
10094 "parameters": [
10095 {
10096 "constant": false,
10097 "id": 5250,
10098 "name": "a",
10099 "nodeType": "VariableDeclaration",
10100 "scope": 5268,
10101 "src": "1217:9:22",
10102 "stateVariable": false,
10103 "storageLocation": "default",
10104 "typeDescriptions": {
10105 "typeIdentifier": "t_uint256",
10106 "typeString": "uint256"
10107 },
10108 "typeName": {
10109 "id": 5249,
10110 "name": "uint256",
10111 "nodeType": "ElementaryTypeName",
10112 "src": "1217:7:22",
10113 "typeDescriptions": {
10114 "typeIdentifier": "t_uint256",
10115 "typeString": "uint256"
10116 }
10117 },
10118 "value": null,
10119 "visibility": "internal"
10120 },
10121 {
10122 "constant": false,
10123 "id": 5252,
10124 "name": "b",
10125 "nodeType": "VariableDeclaration",
10126 "scope": 5268,
10127 "src": "1228:9:22",
10128 "stateVariable": false,
10129 "storageLocation": "default",
10130 "typeDescriptions": {
10131 "typeIdentifier": "t_uint256",
10132 "typeString": "uint256"
10133 },
10134 "typeName": {
10135 "id": 5251,
10136 "name": "uint256",
10137 "nodeType": "ElementaryTypeName",
10138 "src": "1228:7:22",
10139 "typeDescriptions": {
10140 "typeIdentifier": "t_uint256",
10141 "typeString": "uint256"
10142 }
10143 },
10144 "value": null,
10145 "visibility": "internal"
10146 }
10147 ],
10148 "src": "1216:22:22"
10149 },
10150 "payable": false,
10151 "returnParameters": {
10152 "id": 5256,
10153 "nodeType": "ParameterList",
10154 "parameters": [
10155 {
10156 "constant": false,
10157 "id": 5255,
10158 "name": "",
10159 "nodeType": "VariableDeclaration",
10160 "scope": 5268,
10161 "src": "1262:7:22",
10162 "stateVariable": false,
10163 "storageLocation": "default",
10164 "typeDescriptions": {
10165 "typeIdentifier": "t_uint256",
10166 "typeString": "uint256"
10167 },
10168 "typeName": {
10169 "id": 5254,
10170 "name": "uint256",
10171 "nodeType": "ElementaryTypeName",
10172 "src": "1262:7:22",
10173 "typeDescriptions": {
10174 "typeIdentifier": "t_uint256",
10175 "typeString": "uint256"
10176 }
10177 },
10178 "value": null,
10179 "visibility": "internal"
10180 }
10181 ],
10182 "src": "1261:9:22"
10183 },
10184 "scope": 5293,
10185 "src": "1204:120:22",
10186 "stateMutability": "pure",
10187 "superFunction": null,
10188 "visibility": "internal"
10189 },
10190 {
10191 "body": {
10192 "id": 5291,
10193 "nodeType": "Block",
10194 "src": "1463:68:22",
10195 "statements": [
10196 {
10197 "expression": {
10198 "argumentTypes": null,
10199 "id": 5281,
10200 "isConstant": false,
10201 "isLValue": false,
10202 "isPure": false,
10203 "lValueRequested": false,
10204 "leftHandSide": {
10205 "argumentTypes": null,
10206 "id": 5277,
10207 "name": "c",
10208 "nodeType": "Identifier",
10209 "overloadedDeclarations": [],
10210 "referencedDeclaration": 5275,
10211 "src": "1473:1:22",
10212 "typeDescriptions": {
10213 "typeIdentifier": "t_uint256",
10214 "typeString": "uint256"
10215 }
10216 },
10217 "nodeType": "Assignment",
10218 "operator": "=",
10219 "rightHandSide": {
10220 "argumentTypes": null,
10221 "commonType": {
10222 "typeIdentifier": "t_uint256",
10223 "typeString": "uint256"
10224 },
10225 "id": 5280,
10226 "isConstant": false,
10227 "isLValue": false,
10228 "isPure": false,
10229 "lValueRequested": false,
10230 "leftExpression": {
10231 "argumentTypes": null,
10232 "id": 5278,
10233 "name": "a",
10234 "nodeType": "Identifier",
10235 "overloadedDeclarations": [],
10236 "referencedDeclaration": 5270,
10237 "src": "1477:1:22",
10238 "typeDescriptions": {
10239 "typeIdentifier": "t_uint256",
10240 "typeString": "uint256"
10241 }
10242 },
10243 "nodeType": "BinaryOperation",
10244 "operator": "+",
10245 "rightExpression": {
10246 "argumentTypes": null,
10247 "id": 5279,
10248 "name": "b",
10249 "nodeType": "Identifier",
10250 "overloadedDeclarations": [],
10251 "referencedDeclaration": 5272,
10252 "src": "1481:1:22",
10253 "typeDescriptions": {
10254 "typeIdentifier": "t_uint256",
10255 "typeString": "uint256"
10256 }
10257 },
10258 "src": "1477:5:22",
10259 "typeDescriptions": {
10260 "typeIdentifier": "t_uint256",
10261 "typeString": "uint256"
10262 }
10263 },
10264 "src": "1473:9:22",
10265 "typeDescriptions": {
10266 "typeIdentifier": "t_uint256",
10267 "typeString": "uint256"
10268 }
10269 },
10270 "id": 5282,
10271 "nodeType": "ExpressionStatement",
10272 "src": "1473:9:22"
10273 },
10274 {
10275 "expression": {
10276 "argumentTypes": null,
10277 "arguments": [
10278 {
10279 "argumentTypes": null,
10280 "commonType": {
10281 "typeIdentifier": "t_uint256",
10282 "typeString": "uint256"
10283 },
10284 "id": 5286,
10285 "isConstant": false,
10286 "isLValue": false,
10287 "isPure": false,
10288 "lValueRequested": false,
10289 "leftExpression": {
10290 "argumentTypes": null,
10291 "id": 5284,
10292 "name": "c",
10293 "nodeType": "Identifier",
10294 "overloadedDeclarations": [],
10295 "referencedDeclaration": 5275,
10296 "src": "1499:1:22",
10297 "typeDescriptions": {
10298 "typeIdentifier": "t_uint256",
10299 "typeString": "uint256"
10300 }
10301 },
10302 "nodeType": "BinaryOperation",
10303 "operator": ">=",
10304 "rightExpression": {
10305 "argumentTypes": null,
10306 "id": 5285,
10307 "name": "a",
10308 "nodeType": "Identifier",
10309 "overloadedDeclarations": [],
10310 "referencedDeclaration": 5270,
10311 "src": "1504:1:22",
10312 "typeDescriptions": {
10313 "typeIdentifier": "t_uint256",
10314 "typeString": "uint256"
10315 }
10316 },
10317 "src": "1499:6:22",
10318 "typeDescriptions": {
10319 "typeIdentifier": "t_bool",
10320 "typeString": "bool"
10321 }
10322 }
10323 ],
10324 "expression": {
10325 "argumentTypes": [
10326 {
10327 "typeIdentifier": "t_bool",
10328 "typeString": "bool"
10329 }
10330 ],
10331 "id": 5283,
10332 "name": "assert",
10333 "nodeType": "Identifier",
10334 "overloadedDeclarations": [],
10335 "referencedDeclaration": 12081,
10336 "src": "1492:6:22",
10337 "typeDescriptions": {
10338 "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
10339 "typeString": "function (bool) pure"
10340 }
10341 },
10342 "id": 5287,
10343 "isConstant": false,
10344 "isLValue": false,
10345 "isPure": false,
10346 "kind": "functionCall",
10347 "lValueRequested": false,
10348 "names": [],
10349 "nodeType": "FunctionCall",
10350 "src": "1492:14:22",
10351 "typeDescriptions": {
10352 "typeIdentifier": "t_tuple$__$",
10353 "typeString": "tuple()"
10354 }
10355 },
10356 "id": 5288,
10357 "nodeType": "ExpressionStatement",
10358 "src": "1492:14:22"
10359 },
10360 {
10361 "expression": {
10362 "argumentTypes": null,
10363 "id": 5289,
10364 "name": "c",
10365 "nodeType": "Identifier",
10366 "overloadedDeclarations": [],
10367 "referencedDeclaration": 5275,
10368 "src": "1523:1:22",
10369 "typeDescriptions": {
10370 "typeIdentifier": "t_uint256",
10371 "typeString": "uint256"
10372 }
10373 },
10374 "functionReturnParameters": 5276,
10375 "id": 5290,
10376 "nodeType": "Return",
10377 "src": "1516:8:22"
10378 }
10379 ]
10380 },
10381 "documentation": "@dev Adds two numbers, throws on overflow.",
10382 "id": 5292,
10383 "implemented": true,
10384 "isConstructor": false,
10385 "isDeclaredConst": true,
10386 "modifiers": [],
10387 "name": "add",
10388 "nodeType": "FunctionDefinition",
10389 "parameters": {
10390 "id": 5273,
10391 "nodeType": "ParameterList",
10392 "parameters": [
10393 {
10394 "constant": false,
10395 "id": 5270,
10396 "name": "a",
10397 "nodeType": "VariableDeclaration",
10398 "scope": 5292,
10399 "src": "1407:9:22",
10400 "stateVariable": false,
10401 "storageLocation": "default",
10402 "typeDescriptions": {
10403 "typeIdentifier": "t_uint256",
10404 "typeString": "uint256"
10405 },
10406 "typeName": {
10407 "id": 5269,
10408 "name": "uint256",
10409 "nodeType": "ElementaryTypeName",
10410 "src": "1407:7:22",
10411 "typeDescriptions": {
10412 "typeIdentifier": "t_uint256",
10413 "typeString": "uint256"
10414 }
10415 },
10416 "value": null,
10417 "visibility": "internal"
10418 },
10419 {
10420 "constant": false,
10421 "id": 5272,
10422 "name": "b",
10423 "nodeType": "VariableDeclaration",
10424 "scope": 5292,
10425 "src": "1418:9:22",
10426 "stateVariable": false,
10427 "storageLocation": "default",
10428 "typeDescriptions": {
10429 "typeIdentifier": "t_uint256",
10430 "typeString": "uint256"
10431 },
10432 "typeName": {
10433 "id": 5271,
10434 "name": "uint256",
10435 "nodeType": "ElementaryTypeName",
10436 "src": "1418:7:22",
10437 "typeDescriptions": {
10438 "typeIdentifier": "t_uint256",
10439 "typeString": "uint256"
10440 }
10441 },
10442 "value": null,
10443 "visibility": "internal"
10444 }
10445 ],
10446 "src": "1406:22:22"
10447 },
10448 "payable": false,
10449 "returnParameters": {
10450 "id": 5276,
10451 "nodeType": "ParameterList",
10452 "parameters": [
10453 {
10454 "constant": false,
10455 "id": 5275,
10456 "name": "c",
10457 "nodeType": "VariableDeclaration",
10458 "scope": 5292,
10459 "src": "1452:9:22",
10460 "stateVariable": false,
10461 "storageLocation": "default",
10462 "typeDescriptions": {
10463 "typeIdentifier": "t_uint256",
10464 "typeString": "uint256"
10465 },
10466 "typeName": {
10467 "id": 5274,
10468 "name": "uint256",
10469 "nodeType": "ElementaryTypeName",
10470 "src": "1452:7:22",
10471 "typeDescriptions": {
10472 "typeIdentifier": "t_uint256",
10473 "typeString": "uint256"
10474 }
10475 },
10476 "value": null,
10477 "visibility": "internal"
10478 }
10479 ],
10480 "src": "1451:11:22"
10481 },
10482 "scope": 5293,
10483 "src": "1394:137:22",
10484 "stateMutability": "pure",
10485 "superFunction": null,
10486 "visibility": "internal"
10487 }
10488 ],
10489 "scope": 5882,
10490 "src": "197:1336:22"
10491 },
10492 {
10493 "baseContracts": [
10494 {
10495 "arguments": null,
10496 "baseName": {
10497 "contractScope": null,
10498 "id": 5294,
10499 "name": "FactoryTokenInterface",
10500 "nodeType": "UserDefinedTypeName",
10501 "referencedDeclaration": 5198,
10502 "src": "1596:21:22",
10503 "typeDescriptions": {
10504 "typeIdentifier": "t_contract$_FactoryTokenInterface_$5198",
10505 "typeString": "contract FactoryTokenInterface"
10506 }
10507 },
10508 "id": 5295,
10509 "nodeType": "InheritanceSpecifier",
10510 "src": "1596:21:22"
10511 }
10512 ],
10513 "contractDependencies": [
10514 203,
10515 5198
10516 ],
10517 "contractKind": "contract",
10518 "documentation": null,
10519 "fullyImplemented": true,
10520 "id": 5881,
10521 "linearizedBaseContracts": [
10522 5881,
10523 5198,
10524 203
10525 ],
10526 "name": "FactoryToken",
10527 "nodeType": "ContractDefinition",
10528 "nodes": [
10529 {
10530 "id": 5298,
10531 "libraryName": {
10532 "contractScope": null,
10533 "id": 5296,
10534 "name": "SafeMath",
10535 "nodeType": "UserDefinedTypeName",
10536 "referencedDeclaration": 5293,
10537 "src": "1630:8:22",
10538 "typeDescriptions": {
10539 "typeIdentifier": "t_contract$_SafeMath_$5293",
10540 "typeString": "library SafeMath"
10541 }
10542 },
10543 "nodeType": "UsingForDirective",
10544 "src": "1624:27:22",
10545 "typeName": {
10546 "id": 5297,
10547 "name": "uint256",
10548 "nodeType": "ElementaryTypeName",
10549 "src": "1643:7:22",
10550 "typeDescriptions": {
10551 "typeIdentifier": "t_uint256",
10552 "typeString": "uint256"
10553 }
10554 }
10555 },
10556 {
10557 "constant": false,
10558 "id": 5300,
10559 "name": "name",
10560 "nodeType": "VariableDeclaration",
10561 "scope": 5881,
10562 "src": "1657:18:22",
10563 "stateVariable": true,
10564 "storageLocation": "default",
10565 "typeDescriptions": {
10566 "typeIdentifier": "t_string_storage",
10567 "typeString": "string"
10568 },
10569 "typeName": {
10570 "id": 5299,
10571 "name": "string",
10572 "nodeType": "ElementaryTypeName",
10573 "src": "1657:6:22",
10574 "typeDescriptions": {
10575 "typeIdentifier": "t_string_storage_ptr",
10576 "typeString": "string"
10577 }
10578 },
10579 "value": null,
10580 "visibility": "public"
10581 },
10582 {
10583 "constant": false,
10584 "id": 5302,
10585 "name": "symbol",
10586 "nodeType": "VariableDeclaration",
10587 "scope": 5881,
10588 "src": "1681:20:22",
10589 "stateVariable": true,
10590 "storageLocation": "default",
10591 "typeDescriptions": {
10592 "typeIdentifier": "t_string_storage",
10593 "typeString": "string"
10594 },
10595 "typeName": {
10596 "id": 5301,
10597 "name": "string",
10598 "nodeType": "ElementaryTypeName",
10599 "src": "1681:6:22",
10600 "typeDescriptions": {
10601 "typeIdentifier": "t_string_storage_ptr",
10602 "typeString": "string"
10603 }
10604 },
10605 "value": null,
10606 "visibility": "public"
10607 },
10608 {
10609 "constant": false,
10610 "id": 5305,
10611 "name": "decimals",
10612 "nodeType": "VariableDeclaration",
10613 "scope": 5881,
10614 "src": "1707:25:22",
10615 "stateVariable": true,
10616 "storageLocation": "default",
10617 "typeDescriptions": {
10618 "typeIdentifier": "t_uint8",
10619 "typeString": "uint8"
10620 },
10621 "typeName": {
10622 "id": 5303,
10623 "name": "uint8",
10624 "nodeType": "ElementaryTypeName",
10625 "src": "1707:5:22",
10626 "typeDescriptions": {
10627 "typeIdentifier": "t_uint8",
10628 "typeString": "uint8"
10629 }
10630 },
10631 "value": {
10632 "argumentTypes": null,
10633 "hexValue": "33",
10634 "id": 5304,
10635 "isConstant": false,
10636 "isLValue": false,
10637 "isPure": true,
10638 "kind": "number",
10639 "lValueRequested": false,
10640 "nodeType": "Literal",
10641 "src": "1731:1:22",
10642 "subdenomination": null,
10643 "typeDescriptions": {
10644 "typeIdentifier": "t_rational_3_by_1",
10645 "typeString": "int_const 3"
10646 },
10647 "value": "3"
10648 },
10649 "visibility": "public"
10650 },
10651 {
10652 "constant": false,
10653 "id": 5307,
10654 "name": "totalSupply_",
10655 "nodeType": "VariableDeclaration",
10656 "scope": 5881,
10657 "src": "1738:20:22",
10658 "stateVariable": true,
10659 "storageLocation": "default",
10660 "typeDescriptions": {
10661 "typeIdentifier": "t_uint256",
10662 "typeString": "uint256"
10663 },
10664 "typeName": {
10665 "id": 5306,
10666 "name": "uint256",
10667 "nodeType": "ElementaryTypeName",
10668 "src": "1738:7:22",
10669 "typeDescriptions": {
10670 "typeIdentifier": "t_uint256",
10671 "typeString": "uint256"
10672 }
10673 },
10674 "value": null,
10675 "visibility": "internal"
10676 },
10677 {
10678 "constant": false,
10679 "id": 5313,
10680 "name": "allowed",
10681 "nodeType": "VariableDeclaration",
10682 "scope": 5881,
10683 "src": "1765:64:22",
10684 "stateVariable": true,
10685 "storageLocation": "default",
10686 "typeDescriptions": {
10687 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
10688 "typeString": "mapping(address => mapping(address => uint256))"
10689 },
10690 "typeName": {
10691 "id": 5312,
10692 "keyType": {
10693 "id": 5308,
10694 "name": "address",
10695 "nodeType": "ElementaryTypeName",
10696 "src": "1773:7:22",
10697 "typeDescriptions": {
10698 "typeIdentifier": "t_address",
10699 "typeString": "address"
10700 }
10701 },
10702 "nodeType": "Mapping",
10703 "src": "1765:47:22",
10704 "typeDescriptions": {
10705 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
10706 "typeString": "mapping(address => mapping(address => uint256))"
10707 },
10708 "valueType": {
10709 "id": 5311,
10710 "keyType": {
10711 "id": 5309,
10712 "name": "address",
10713 "nodeType": "ElementaryTypeName",
10714 "src": "1792:7:22",
10715 "typeDescriptions": {
10716 "typeIdentifier": "t_address",
10717 "typeString": "address"
10718 }
10719 },
10720 "nodeType": "Mapping",
10721 "src": "1784:27:22",
10722 "typeDescriptions": {
10723 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
10724 "typeString": "mapping(address => uint256)"
10725 },
10726 "valueType": {
10727 "id": 5310,
10728 "name": "uint256",
10729 "nodeType": "ElementaryTypeName",
10730 "src": "1803:7:22",
10731 "typeDescriptions": {
10732 "typeIdentifier": "t_uint256",
10733 "typeString": "uint256"
10734 }
10735 }
10736 }
10737 },
10738 "value": null,
10739 "visibility": "internal"
10740 },
10741 {
10742 "constant": false,
10743 "id": 5317,
10744 "name": "balances",
10745 "nodeType": "VariableDeclaration",
10746 "scope": 5881,
10747 "src": "1835:36:22",
10748 "stateVariable": true,
10749 "storageLocation": "default",
10750 "typeDescriptions": {
10751 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
10752 "typeString": "mapping(address => uint256)"
10753 },
10754 "typeName": {
10755 "id": 5316,
10756 "keyType": {
10757 "id": 5314,
10758 "name": "address",
10759 "nodeType": "ElementaryTypeName",
10760 "src": "1843:7:22",
10761 "typeDescriptions": {
10762 "typeIdentifier": "t_address",
10763 "typeString": "address"
10764 }
10765 },
10766 "nodeType": "Mapping",
10767 "src": "1835:27:22",
10768 "typeDescriptions": {
10769 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
10770 "typeString": "mapping(address => uint256)"
10771 },
10772 "valueType": {
10773 "id": 5315,
10774 "name": "uint256",
10775 "nodeType": "ElementaryTypeName",
10776 "src": "1854:7:22",
10777 "typeDescriptions": {
10778 "typeIdentifier": "t_uint256",
10779 "typeString": "uint256"
10780 }
10781 }
10782 },
10783 "value": null,
10784 "visibility": "internal"
10785 },
10786 {
10787 "constant": false,
10788 "id": 5320,
10789 "name": "mintingFinished",
10790 "nodeType": "VariableDeclaration",
10791 "scope": 5881,
10792 "src": "1878:35:22",
10793 "stateVariable": true,
10794 "storageLocation": "default",
10795 "typeDescriptions": {
10796 "typeIdentifier": "t_bool",
10797 "typeString": "bool"
10798 },
10799 "typeName": {
10800 "id": 5318,
10801 "name": "bool",
10802 "nodeType": "ElementaryTypeName",
10803 "src": "1878:4:22",
10804 "typeDescriptions": {
10805 "typeIdentifier": "t_bool",
10806 "typeString": "bool"
10807 }
10808 },
10809 "value": {
10810 "argumentTypes": null,
10811 "hexValue": "66616c7365",
10812 "id": 5319,
10813 "isConstant": false,
10814 "isLValue": false,
10815 "isPure": true,
10816 "kind": "bool",
10817 "lValueRequested": false,
10818 "nodeType": "Literal",
10819 "src": "1908:5:22",
10820 "subdenomination": null,
10821 "typeDescriptions": {
10822 "typeIdentifier": "t_bool",
10823 "typeString": "bool"
10824 },
10825 "value": "false"
10826 },
10827 "visibility": "public"
10828 },
10829 {
10830 "anonymous": false,
10831 "documentation": null,
10832 "id": 5326,
10833 "name": "Burn",
10834 "nodeType": "EventDefinition",
10835 "parameters": {
10836 "id": 5325,
10837 "nodeType": "ParameterList",
10838 "parameters": [
10839 {
10840 "constant": false,
10841 "id": 5322,
10842 "indexed": true,
10843 "name": "burner",
10844 "nodeType": "VariableDeclaration",
10845 "scope": 5326,
10846 "src": "1931:22:22",
10847 "stateVariable": false,
10848 "storageLocation": "default",
10849 "typeDescriptions": {
10850 "typeIdentifier": "t_address",
10851 "typeString": "address"
10852 },
10853 "typeName": {
10854 "id": 5321,
10855 "name": "address",
10856 "nodeType": "ElementaryTypeName",
10857 "src": "1931:7:22",
10858 "typeDescriptions": {
10859 "typeIdentifier": "t_address",
10860 "typeString": "address"
10861 }
10862 },
10863 "value": null,
10864 "visibility": "internal"
10865 },
10866 {
10867 "constant": false,
10868 "id": 5324,
10869 "indexed": false,
10870 "name": "value",
10871 "nodeType": "VariableDeclaration",
10872 "scope": 5326,
10873 "src": "1955:13:22",
10874 "stateVariable": false,
10875 "storageLocation": "default",
10876 "typeDescriptions": {
10877 "typeIdentifier": "t_uint256",
10878 "typeString": "uint256"
10879 },
10880 "typeName": {
10881 "id": 5323,
10882 "name": "uint256",
10883 "nodeType": "ElementaryTypeName",
10884 "src": "1955:7:22",
10885 "typeDescriptions": {
10886 "typeIdentifier": "t_uint256",
10887 "typeString": "uint256"
10888 }
10889 },
10890 "value": null,
10891 "visibility": "internal"
10892 }
10893 ],
10894 "src": "1930:39:22"
10895 },
10896 "src": "1920:50:22"
10897 },
10898 {
10899 "anonymous": false,
10900 "documentation": null,
10901 "id": 5334,
10902 "name": "Transfer",
10903 "nodeType": "EventDefinition",
10904 "parameters": {
10905 "id": 5333,
10906 "nodeType": "ParameterList",
10907 "parameters": [
10908 {
10909 "constant": false,
10910 "id": 5328,
10911 "indexed": false,
10912 "name": "_from",
10913 "nodeType": "VariableDeclaration",
10914 "scope": 5334,
10915 "src": "1990:13:22",
10916 "stateVariable": false,
10917 "storageLocation": "default",
10918 "typeDescriptions": {
10919 "typeIdentifier": "t_address",
10920 "typeString": "address"
10921 },
10922 "typeName": {
10923 "id": 5327,
10924 "name": "address",
10925 "nodeType": "ElementaryTypeName",
10926 "src": "1990:7:22",
10927 "typeDescriptions": {
10928 "typeIdentifier": "t_address",
10929 "typeString": "address"
10930 }
10931 },
10932 "value": null,
10933 "visibility": "internal"
10934 },
10935 {
10936 "constant": false,
10937 "id": 5330,
10938 "indexed": false,
10939 "name": "_to",
10940 "nodeType": "VariableDeclaration",
10941 "scope": 5334,
10942 "src": "2005:11:22",
10943 "stateVariable": false,
10944 "storageLocation": "default",
10945 "typeDescriptions": {
10946 "typeIdentifier": "t_address",
10947 "typeString": "address"
10948 },
10949 "typeName": {
10950 "id": 5329,
10951 "name": "address",
10952 "nodeType": "ElementaryTypeName",
10953 "src": "2005:7:22",
10954 "typeDescriptions": {
10955 "typeIdentifier": "t_address",
10956 "typeString": "address"
10957 }
10958 },
10959 "value": null,
10960 "visibility": "internal"
10961 },
10962 {
10963 "constant": false,
10964 "id": 5332,
10965 "indexed": false,
10966 "name": "_amount",
10967 "nodeType": "VariableDeclaration",
10968 "scope": 5334,
10969 "src": "2018:15:22",
10970 "stateVariable": false,
10971 "storageLocation": "default",
10972 "typeDescriptions": {
10973 "typeIdentifier": "t_uint256",
10974 "typeString": "uint256"
10975 },
10976 "typeName": {
10977 "id": 5331,
10978 "name": "uint256",
10979 "nodeType": "ElementaryTypeName",
10980 "src": "2018:7:22",
10981 "typeDescriptions": {
10982 "typeIdentifier": "t_uint256",
10983 "typeString": "uint256"
10984 }
10985 },
10986 "value": null,
10987 "visibility": "internal"
10988 }
10989 ],
10990 "src": "1989:45:22"
10991 },
10992 "src": "1975:60:22"
10993 },
10994 {
10995 "anonymous": false,
10996 "documentation": null,
10997 "id": 5340,
10998 "name": "Mint",
10999 "nodeType": "EventDefinition",
11000 "parameters": {
11001 "id": 5339,
11002 "nodeType": "ParameterList",
11003 "parameters": [
11004 {
11005 "constant": false,
11006 "id": 5336,
11007 "indexed": true,
11008 "name": "to",
11009 "nodeType": "VariableDeclaration",
11010 "scope": 5340,
11011 "src": "2051:18:22",
11012 "stateVariable": false,
11013 "storageLocation": "default",
11014 "typeDescriptions": {
11015 "typeIdentifier": "t_address",
11016 "typeString": "address"
11017 },
11018 "typeName": {
11019 "id": 5335,
11020 "name": "address",
11021 "nodeType": "ElementaryTypeName",
11022 "src": "2051:7:22",
11023 "typeDescriptions": {
11024 "typeIdentifier": "t_address",
11025 "typeString": "address"
11026 }
11027 },
11028 "value": null,
11029 "visibility": "internal"
11030 },
11031 {
11032 "constant": false,
11033 "id": 5338,
11034 "indexed": false,
11035 "name": "amount",
11036 "nodeType": "VariableDeclaration",
11037 "scope": 5340,
11038 "src": "2071:14:22",
11039 "stateVariable": false,
11040 "storageLocation": "default",
11041 "typeDescriptions": {
11042 "typeIdentifier": "t_uint256",
11043 "typeString": "uint256"
11044 },
11045 "typeName": {
11046 "id": 5337,
11047 "name": "uint256",
11048 "nodeType": "ElementaryTypeName",
11049 "src": "2071:7:22",
11050 "typeDescriptions": {
11051 "typeIdentifier": "t_uint256",
11052 "typeString": "uint256"
11053 }
11054 },
11055 "value": null,
11056 "visibility": "internal"
11057 }
11058 ],
11059 "src": "2050:36:22"
11060 },
11061 "src": "2040:47:22"
11062 },
11063 {
11064 "anonymous": false,
11065 "documentation": null,
11066 "id": 5342,
11067 "name": "MintFinished",
11068 "nodeType": "EventDefinition",
11069 "parameters": {
11070 "id": 5341,
11071 "nodeType": "ParameterList",
11072 "parameters": [],
11073 "src": "2110:2:22"
11074 },
11075 "src": "2092:21:22"
11076 },
11077 {
11078 "anonymous": false,
11079 "documentation": null,
11080 "id": 5350,
11081 "name": "Approval",
11082 "nodeType": "EventDefinition",
11083 "parameters": {
11084 "id": 5349,
11085 "nodeType": "ParameterList",
11086 "parameters": [
11087 {
11088 "constant": false,
11089 "id": 5344,
11090 "indexed": false,
11091 "name": "_from",
11092 "nodeType": "VariableDeclaration",
11093 "scope": 5350,
11094 "src": "2133:13:22",
11095 "stateVariable": false,
11096 "storageLocation": "default",
11097 "typeDescriptions": {
11098 "typeIdentifier": "t_address",
11099 "typeString": "address"
11100 },
11101 "typeName": {
11102 "id": 5343,
11103 "name": "address",
11104 "nodeType": "ElementaryTypeName",
11105 "src": "2133:7:22",
11106 "typeDescriptions": {
11107 "typeIdentifier": "t_address",
11108 "typeString": "address"
11109 }
11110 },
11111 "value": null,
11112 "visibility": "internal"
11113 },
11114 {
11115 "constant": false,
11116 "id": 5346,
11117 "indexed": false,
11118 "name": "_spender",
11119 "nodeType": "VariableDeclaration",
11120 "scope": 5350,
11121 "src": "2148:16:22",
11122 "stateVariable": false,
11123 "storageLocation": "default",
11124 "typeDescriptions": {
11125 "typeIdentifier": "t_address",
11126 "typeString": "address"
11127 },
11128 "typeName": {
11129 "id": 5345,
11130 "name": "address",
11131 "nodeType": "ElementaryTypeName",
11132 "src": "2148:7:22",
11133 "typeDescriptions": {
11134 "typeIdentifier": "t_address",
11135 "typeString": "address"
11136 }
11137 },
11138 "value": null,
11139 "visibility": "internal"
11140 },
11141 {
11142 "constant": false,
11143 "id": 5348,
11144 "indexed": false,
11145 "name": "_value",
11146 "nodeType": "VariableDeclaration",
11147 "scope": 5350,
11148 "src": "2166:14:22",
11149 "stateVariable": false,
11150 "storageLocation": "default",
11151 "typeDescriptions": {
11152 "typeIdentifier": "t_uint256",
11153 "typeString": "uint256"
11154 },
11155 "typeName": {
11156 "id": 5347,
11157 "name": "uint256",
11158 "nodeType": "ElementaryTypeName",
11159 "src": "2166:7:22",
11160 "typeDescriptions": {
11161 "typeIdentifier": "t_uint256",
11162 "typeString": "uint256"
11163 }
11164 },
11165 "value": null,
11166 "visibility": "internal"
11167 }
11168 ],
11169 "src": "2132:49:22"
11170 },
11171 "src": "2118:64:22"
11172 },
11173 {
11174 "body": {
11175 "id": 5358,
11176 "nodeType": "Block",
11177 "src": "2207:53:22",
11178 "statements": [
11179 {
11180 "expression": {
11181 "argumentTypes": null,
11182 "arguments": [
11183 {
11184 "argumentTypes": null,
11185 "id": 5354,
11186 "isConstant": false,
11187 "isLValue": false,
11188 "isPure": false,
11189 "lValueRequested": false,
11190 "nodeType": "UnaryOperation",
11191 "operator": "!",
11192 "prefix": true,
11193 "src": "2225:16:22",
11194 "subExpression": {
11195 "argumentTypes": null,
11196 "id": 5353,
11197 "name": "mintingFinished",
11198 "nodeType": "Identifier",
11199 "overloadedDeclarations": [],
11200 "referencedDeclaration": 5320,
11201 "src": "2226:15:22",
11202 "typeDescriptions": {
11203 "typeIdentifier": "t_bool",
11204 "typeString": "bool"
11205 }
11206 },
11207 "typeDescriptions": {
11208 "typeIdentifier": "t_bool",
11209 "typeString": "bool"
11210 }
11211 }
11212 ],
11213 "expression": {
11214 "argumentTypes": [
11215 {
11216 "typeIdentifier": "t_bool",
11217 "typeString": "bool"
11218 }
11219 ],
11220 "id": 5352,
11221 "name": "require",
11222 "nodeType": "Identifier",
11223 "overloadedDeclarations": [
11224 12095,
11225 12096
11226 ],
11227 "referencedDeclaration": 12095,
11228 "src": "2217:7:22",
11229 "typeDescriptions": {
11230 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
11231 "typeString": "function (bool) pure"
11232 }
11233 },
11234 "id": 5355,
11235 "isConstant": false,
11236 "isLValue": false,
11237 "isPure": false,
11238 "kind": "functionCall",
11239 "lValueRequested": false,
11240 "names": [],
11241 "nodeType": "FunctionCall",
11242 "src": "2217:25:22",
11243 "typeDescriptions": {
11244 "typeIdentifier": "t_tuple$__$",
11245 "typeString": "tuple()"
11246 }
11247 },
11248 "id": 5356,
11249 "nodeType": "ExpressionStatement",
11250 "src": "2217:25:22"
11251 },
11252 {
11253 "id": 5357,
11254 "nodeType": "PlaceholderStatement",
11255 "src": "2252:1:22"
11256 }
11257 ]
11258 },
11259 "documentation": null,
11260 "id": 5359,
11261 "name": "canMint",
11262 "nodeType": "ModifierDefinition",
11263 "parameters": {
11264 "id": 5351,
11265 "nodeType": "ParameterList",
11266 "parameters": [],
11267 "src": "2204:2:22"
11268 },
11269 "src": "2188:72:22",
11270 "visibility": "internal"
11271 },
11272 {
11273 "body": {
11274 "id": 5369,
11275 "nodeType": "Block",
11276 "src": "2295:56:22",
11277 "statements": [
11278 {
11279 "expression": {
11280 "argumentTypes": null,
11281 "arguments": [
11282 {
11283 "argumentTypes": null,
11284 "commonType": {
11285 "typeIdentifier": "t_address",
11286 "typeString": "address"
11287 },
11288 "id": 5365,
11289 "isConstant": false,
11290 "isLValue": false,
11291 "isPure": false,
11292 "lValueRequested": false,
11293 "leftExpression": {
11294 "argumentTypes": null,
11295 "expression": {
11296 "argumentTypes": null,
11297 "id": 5362,
11298 "name": "msg",
11299 "nodeType": "Identifier",
11300 "overloadedDeclarations": [],
11301 "referencedDeclaration": 12092,
11302 "src": "2313:3:22",
11303 "typeDescriptions": {
11304 "typeIdentifier": "t_magic_message",
11305 "typeString": "msg"
11306 }
11307 },
11308 "id": 5363,
11309 "isConstant": false,
11310 "isLValue": false,
11311 "isPure": false,
11312 "lValueRequested": false,
11313 "memberName": "sender",
11314 "nodeType": "MemberAccess",
11315 "referencedDeclaration": null,
11316 "src": "2313:10:22",
11317 "typeDescriptions": {
11318 "typeIdentifier": "t_address",
11319 "typeString": "address"
11320 }
11321 },
11322 "nodeType": "BinaryOperation",
11323 "operator": "==",
11324 "rightExpression": {
11325 "argumentTypes": null,
11326 "id": 5364,
11327 "name": "owner",
11328 "nodeType": "Identifier",
11329 "overloadedDeclarations": [],
11330 "referencedDeclaration": 151,
11331 "src": "2327:5:22",
11332 "typeDescriptions": {
11333 "typeIdentifier": "t_address",
11334 "typeString": "address"
11335 }
11336 },
11337 "src": "2313:19:22",
11338 "typeDescriptions": {
11339 "typeIdentifier": "t_bool",
11340 "typeString": "bool"
11341 }
11342 }
11343 ],
11344 "expression": {
11345 "argumentTypes": [
11346 {
11347 "typeIdentifier": "t_bool",
11348 "typeString": "bool"
11349 }
11350 ],
11351 "id": 5361,
11352 "name": "require",
11353 "nodeType": "Identifier",
11354 "overloadedDeclarations": [
11355 12095,
11356 12096
11357 ],
11358 "referencedDeclaration": 12095,
11359 "src": "2305:7:22",
11360 "typeDescriptions": {
11361 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
11362 "typeString": "function (bool) pure"
11363 }
11364 },
11365 "id": 5366,
11366 "isConstant": false,
11367 "isLValue": false,
11368 "isPure": false,
11369 "kind": "functionCall",
11370 "lValueRequested": false,
11371 "names": [],
11372 "nodeType": "FunctionCall",
11373 "src": "2305:28:22",
11374 "typeDescriptions": {
11375 "typeIdentifier": "t_tuple$__$",
11376 "typeString": "tuple()"
11377 }
11378 },
11379 "id": 5367,
11380 "nodeType": "ExpressionStatement",
11381 "src": "2305:28:22"
11382 },
11383 {
11384 "id": 5368,
11385 "nodeType": "PlaceholderStatement",
11386 "src": "2343:1:22"
11387 }
11388 ]
11389 },
11390 "documentation": null,
11391 "id": 5370,
11392 "name": "hasMintPermission",
11393 "nodeType": "ModifierDefinition",
11394 "parameters": {
11395 "id": 5360,
11396 "nodeType": "ParameterList",
11397 "parameters": [],
11398 "src": "2292:2:22"
11399 },
11400 "src": "2266:85:22",
11401 "visibility": "internal"
11402 },
11403 {
11404 "body": {
11405 "id": 5385,
11406 "nodeType": "Block",
11407 "src": "2406:55:22",
11408 "statements": [
11409 {
11410 "expression": {
11411 "argumentTypes": null,
11412 "id": 5379,
11413 "isConstant": false,
11414 "isLValue": false,
11415 "isPure": false,
11416 "lValueRequested": false,
11417 "leftHandSide": {
11418 "argumentTypes": null,
11419 "id": 5377,
11420 "name": "name",
11421 "nodeType": "Identifier",
11422 "overloadedDeclarations": [],
11423 "referencedDeclaration": 5300,
11424 "src": "2416:4:22",
11425 "typeDescriptions": {
11426 "typeIdentifier": "t_string_storage",
11427 "typeString": "string storage ref"
11428 }
11429 },
11430 "nodeType": "Assignment",
11431 "operator": "=",
11432 "rightHandSide": {
11433 "argumentTypes": null,
11434 "id": 5378,
11435 "name": "_name",
11436 "nodeType": "Identifier",
11437 "overloadedDeclarations": [],
11438 "referencedDeclaration": 5372,
11439 "src": "2423:5:22",
11440 "typeDescriptions": {
11441 "typeIdentifier": "t_string_memory_ptr",
11442 "typeString": "string memory"
11443 }
11444 },
11445 "src": "2416:12:22",
11446 "typeDescriptions": {
11447 "typeIdentifier": "t_string_storage",
11448 "typeString": "string storage ref"
11449 }
11450 },
11451 "id": 5380,
11452 "nodeType": "ExpressionStatement",
11453 "src": "2416:12:22"
11454 },
11455 {
11456 "expression": {
11457 "argumentTypes": null,
11458 "id": 5383,
11459 "isConstant": false,
11460 "isLValue": false,
11461 "isPure": false,
11462 "lValueRequested": false,
11463 "leftHandSide": {
11464 "argumentTypes": null,
11465 "id": 5381,
11466 "name": "symbol",
11467 "nodeType": "Identifier",
11468 "overloadedDeclarations": [],
11469 "referencedDeclaration": 5302,
11470 "src": "2438:6:22",
11471 "typeDescriptions": {
11472 "typeIdentifier": "t_string_storage",
11473 "typeString": "string storage ref"
11474 }
11475 },
11476 "nodeType": "Assignment",
11477 "operator": "=",
11478 "rightHandSide": {
11479 "argumentTypes": null,
11480 "id": 5382,
11481 "name": "_symbol",
11482 "nodeType": "Identifier",
11483 "overloadedDeclarations": [],
11484 "referencedDeclaration": 5374,
11485 "src": "2447:7:22",
11486 "typeDescriptions": {
11487 "typeIdentifier": "t_string_memory_ptr",
11488 "typeString": "string memory"
11489 }
11490 },
11491 "src": "2438:16:22",
11492 "typeDescriptions": {
11493 "typeIdentifier": "t_string_storage",
11494 "typeString": "string storage ref"
11495 }
11496 },
11497 "id": 5384,
11498 "nodeType": "ExpressionStatement",
11499 "src": "2438:16:22"
11500 }
11501 ]
11502 },
11503 "documentation": null,
11504 "id": 5386,
11505 "implemented": true,
11506 "isConstructor": true,
11507 "isDeclaredConst": false,
11508 "modifiers": [],
11509 "name": "",
11510 "nodeType": "FunctionDefinition",
11511 "parameters": {
11512 "id": 5375,
11513 "nodeType": "ParameterList",
11514 "parameters": [
11515 {
11516 "constant": false,
11517 "id": 5372,
11518 "name": "_name",
11519 "nodeType": "VariableDeclaration",
11520 "scope": 5386,
11521 "src": "2369:12:22",
11522 "stateVariable": false,
11523 "storageLocation": "default",
11524 "typeDescriptions": {
11525 "typeIdentifier": "t_string_memory_ptr",
11526 "typeString": "string"
11527 },
11528 "typeName": {
11529 "id": 5371,
11530 "name": "string",
11531 "nodeType": "ElementaryTypeName",
11532 "src": "2369:6:22",
11533 "typeDescriptions": {
11534 "typeIdentifier": "t_string_storage_ptr",
11535 "typeString": "string"
11536 }
11537 },
11538 "value": null,
11539 "visibility": "internal"
11540 },
11541 {
11542 "constant": false,
11543 "id": 5374,
11544 "name": "_symbol",
11545 "nodeType": "VariableDeclaration",
11546 "scope": 5386,
11547 "src": "2383:14:22",
11548 "stateVariable": false,
11549 "storageLocation": "default",
11550 "typeDescriptions": {
11551 "typeIdentifier": "t_string_memory_ptr",
11552 "typeString": "string"
11553 },
11554 "typeName": {
11555 "id": 5373,
11556 "name": "string",
11557 "nodeType": "ElementaryTypeName",
11558 "src": "2383:6:22",
11559 "typeDescriptions": {
11560 "typeIdentifier": "t_string_storage_ptr",
11561 "typeString": "string"
11562 }
11563 },
11564 "value": null,
11565 "visibility": "internal"
11566 }
11567 ],
11568 "src": "2368:30:22"
11569 },
11570 "payable": false,
11571 "returnParameters": {
11572 "id": 5376,
11573 "nodeType": "ParameterList",
11574 "parameters": [],
11575 "src": "2406:0:22"
11576 },
11577 "scope": 5881,
11578 "src": "2357:104:22",
11579 "stateMutability": "nonpayable",
11580 "superFunction": null,
11581 "visibility": "public"
11582 },
11583 {
11584 "body": {
11585 "id": 5393,
11586 "nodeType": "Block",
11587 "src": "2582:36:22",
11588 "statements": [
11589 {
11590 "expression": {
11591 "argumentTypes": null,
11592 "id": 5391,
11593 "name": "totalSupply_",
11594 "nodeType": "Identifier",
11595 "overloadedDeclarations": [],
11596 "referencedDeclaration": 5307,
11597 "src": "2599:12:22",
11598 "typeDescriptions": {
11599 "typeIdentifier": "t_uint256",
11600 "typeString": "uint256"
11601 }
11602 },
11603 "functionReturnParameters": 5390,
11604 "id": 5392,
11605 "nodeType": "Return",
11606 "src": "2592:19:22"
11607 }
11608 ]
11609 },
11610 "documentation": "@dev Total number of tokens in existence",
11611 "id": 5394,
11612 "implemented": true,
11613 "isConstructor": false,
11614 "isDeclaredConst": true,
11615 "modifiers": [],
11616 "name": "totalSupply",
11617 "nodeType": "FunctionDefinition",
11618 "parameters": {
11619 "id": 5387,
11620 "nodeType": "ParameterList",
11621 "parameters": [],
11622 "src": "2549:2:22"
11623 },
11624 "payable": false,
11625 "returnParameters": {
11626 "id": 5390,
11627 "nodeType": "ParameterList",
11628 "parameters": [
11629 {
11630 "constant": false,
11631 "id": 5389,
11632 "name": "",
11633 "nodeType": "VariableDeclaration",
11634 "scope": 5394,
11635 "src": "2573:7:22",
11636 "stateVariable": false,
11637 "storageLocation": "default",
11638 "typeDescriptions": {
11639 "typeIdentifier": "t_uint256",
11640 "typeString": "uint256"
11641 },
11642 "typeName": {
11643 "id": 5388,
11644 "name": "uint256",
11645 "nodeType": "ElementaryTypeName",
11646 "src": "2573:7:22",
11647 "typeDescriptions": {
11648 "typeIdentifier": "t_uint256",
11649 "typeString": "uint256"
11650 }
11651 },
11652 "value": null,
11653 "visibility": "internal"
11654 }
11655 ],
11656 "src": "2572:9:22"
11657 },
11658 "scope": 5881,
11659 "src": "2529:89:22",
11660 "stateMutability": "view",
11661 "superFunction": null,
11662 "visibility": "public"
11663 },
11664 {
11665 "body": {
11666 "id": 5453,
11667 "nodeType": "Block",
11668 "src": "2853:278:22",
11669 "statements": [
11670 {
11671 "expression": {
11672 "argumentTypes": null,
11673 "arguments": [
11674 {
11675 "argumentTypes": null,
11676 "commonType": {
11677 "typeIdentifier": "t_address",
11678 "typeString": "address"
11679 },
11680 "id": 5408,
11681 "isConstant": false,
11682 "isLValue": false,
11683 "isPure": false,
11684 "lValueRequested": false,
11685 "leftExpression": {
11686 "argumentTypes": null,
11687 "id": 5404,
11688 "name": "_to",
11689 "nodeType": "Identifier",
11690 "overloadedDeclarations": [],
11691 "referencedDeclaration": 5396,
11692 "src": "2871:3:22",
11693 "typeDescriptions": {
11694 "typeIdentifier": "t_address",
11695 "typeString": "address"
11696 }
11697 },
11698 "nodeType": "BinaryOperation",
11699 "operator": "!=",
11700 "rightExpression": {
11701 "argumentTypes": null,
11702 "arguments": [
11703 {
11704 "argumentTypes": null,
11705 "hexValue": "30",
11706 "id": 5406,
11707 "isConstant": false,
11708 "isLValue": false,
11709 "isPure": true,
11710 "kind": "number",
11711 "lValueRequested": false,
11712 "nodeType": "Literal",
11713 "src": "2886:1:22",
11714 "subdenomination": null,
11715 "typeDescriptions": {
11716 "typeIdentifier": "t_rational_0_by_1",
11717 "typeString": "int_const 0"
11718 },
11719 "value": "0"
11720 }
11721 ],
11722 "expression": {
11723 "argumentTypes": [
11724 {
11725 "typeIdentifier": "t_rational_0_by_1",
11726 "typeString": "int_const 0"
11727 }
11728 ],
11729 "id": 5405,
11730 "isConstant": false,
11731 "isLValue": false,
11732 "isPure": true,
11733 "lValueRequested": false,
11734 "nodeType": "ElementaryTypeNameExpression",
11735 "src": "2878:7:22",
11736 "typeDescriptions": {
11737 "typeIdentifier": "t_type$_t_address_$",
11738 "typeString": "type(address)"
11739 },
11740 "typeName": "address"
11741 },
11742 "id": 5407,
11743 "isConstant": false,
11744 "isLValue": false,
11745 "isPure": true,
11746 "kind": "typeConversion",
11747 "lValueRequested": false,
11748 "names": [],
11749 "nodeType": "FunctionCall",
11750 "src": "2878:10:22",
11751 "typeDescriptions": {
11752 "typeIdentifier": "t_address",
11753 "typeString": "address"
11754 }
11755 },
11756 "src": "2871:17:22",
11757 "typeDescriptions": {
11758 "typeIdentifier": "t_bool",
11759 "typeString": "bool"
11760 }
11761 }
11762 ],
11763 "expression": {
11764 "argumentTypes": [
11765 {
11766 "typeIdentifier": "t_bool",
11767 "typeString": "bool"
11768 }
11769 ],
11770 "id": 5403,
11771 "name": "require",
11772 "nodeType": "Identifier",
11773 "overloadedDeclarations": [
11774 12095,
11775 12096
11776 ],
11777 "referencedDeclaration": 12095,
11778 "src": "2863:7:22",
11779 "typeDescriptions": {
11780 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
11781 "typeString": "function (bool) pure"
11782 }
11783 },
11784 "id": 5409,
11785 "isConstant": false,
11786 "isLValue": false,
11787 "isPure": false,
11788 "kind": "functionCall",
11789 "lValueRequested": false,
11790 "names": [],
11791 "nodeType": "FunctionCall",
11792 "src": "2863:26:22",
11793 "typeDescriptions": {
11794 "typeIdentifier": "t_tuple$__$",
11795 "typeString": "tuple()"
11796 }
11797 },
11798 "id": 5410,
11799 "nodeType": "ExpressionStatement",
11800 "src": "2863:26:22"
11801 },
11802 {
11803 "expression": {
11804 "argumentTypes": null,
11805 "arguments": [
11806 {
11807 "argumentTypes": null,
11808 "commonType": {
11809 "typeIdentifier": "t_uint256",
11810 "typeString": "uint256"
11811 },
11812 "id": 5417,
11813 "isConstant": false,
11814 "isLValue": false,
11815 "isPure": false,
11816 "lValueRequested": false,
11817 "leftExpression": {
11818 "argumentTypes": null,
11819 "id": 5412,
11820 "name": "_value",
11821 "nodeType": "Identifier",
11822 "overloadedDeclarations": [],
11823 "referencedDeclaration": 5398,
11824 "src": "2907:6:22",
11825 "typeDescriptions": {
11826 "typeIdentifier": "t_uint256",
11827 "typeString": "uint256"
11828 }
11829 },
11830 "nodeType": "BinaryOperation",
11831 "operator": "<=",
11832 "rightExpression": {
11833 "argumentTypes": null,
11834 "baseExpression": {
11835 "argumentTypes": null,
11836 "id": 5413,
11837 "name": "balances",
11838 "nodeType": "Identifier",
11839 "overloadedDeclarations": [],
11840 "referencedDeclaration": 5317,
11841 "src": "2917:8:22",
11842 "typeDescriptions": {
11843 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
11844 "typeString": "mapping(address => uint256)"
11845 }
11846 },
11847 "id": 5416,
11848 "indexExpression": {
11849 "argumentTypes": null,
11850 "expression": {
11851 "argumentTypes": null,
11852 "id": 5414,
11853 "name": "msg",
11854 "nodeType": "Identifier",
11855 "overloadedDeclarations": [],
11856 "referencedDeclaration": 12092,
11857 "src": "2926:3:22",
11858 "typeDescriptions": {
11859 "typeIdentifier": "t_magic_message",
11860 "typeString": "msg"
11861 }
11862 },
11863 "id": 5415,
11864 "isConstant": false,
11865 "isLValue": false,
11866 "isPure": false,
11867 "lValueRequested": false,
11868 "memberName": "sender",
11869 "nodeType": "MemberAccess",
11870 "referencedDeclaration": null,
11871 "src": "2926:10:22",
11872 "typeDescriptions": {
11873 "typeIdentifier": "t_address",
11874 "typeString": "address"
11875 }
11876 },
11877 "isConstant": false,
11878 "isLValue": true,
11879 "isPure": false,
11880 "lValueRequested": false,
11881 "nodeType": "IndexAccess",
11882 "src": "2917:20:22",
11883 "typeDescriptions": {
11884 "typeIdentifier": "t_uint256",
11885 "typeString": "uint256"
11886 }
11887 },
11888 "src": "2907:30:22",
11889 "typeDescriptions": {
11890 "typeIdentifier": "t_bool",
11891 "typeString": "bool"
11892 }
11893 }
11894 ],
11895 "expression": {
11896 "argumentTypes": [
11897 {
11898 "typeIdentifier": "t_bool",
11899 "typeString": "bool"
11900 }
11901 ],
11902 "id": 5411,
11903 "name": "require",
11904 "nodeType": "Identifier",
11905 "overloadedDeclarations": [
11906 12095,
11907 12096
11908 ],
11909 "referencedDeclaration": 12095,
11910 "src": "2899:7:22",
11911 "typeDescriptions": {
11912 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
11913 "typeString": "function (bool) pure"
11914 }
11915 },
11916 "id": 5418,
11917 "isConstant": false,
11918 "isLValue": false,
11919 "isPure": false,
11920 "kind": "functionCall",
11921 "lValueRequested": false,
11922 "names": [],
11923 "nodeType": "FunctionCall",
11924 "src": "2899:39:22",
11925 "typeDescriptions": {
11926 "typeIdentifier": "t_tuple$__$",
11927 "typeString": "tuple()"
11928 }
11929 },
11930 "id": 5419,
11931 "nodeType": "ExpressionStatement",
11932 "src": "2899:39:22"
11933 },
11934 {
11935 "expression": {
11936 "argumentTypes": null,
11937 "id": 5431,
11938 "isConstant": false,
11939 "isLValue": false,
11940 "isPure": false,
11941 "lValueRequested": false,
11942 "leftHandSide": {
11943 "argumentTypes": null,
11944 "baseExpression": {
11945 "argumentTypes": null,
11946 "id": 5420,
11947 "name": "balances",
11948 "nodeType": "Identifier",
11949 "overloadedDeclarations": [],
11950 "referencedDeclaration": 5317,
11951 "src": "2949:8:22",
11952 "typeDescriptions": {
11953 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
11954 "typeString": "mapping(address => uint256)"
11955 }
11956 },
11957 "id": 5423,
11958 "indexExpression": {
11959 "argumentTypes": null,
11960 "expression": {
11961 "argumentTypes": null,
11962 "id": 5421,
11963 "name": "msg",
11964 "nodeType": "Identifier",
11965 "overloadedDeclarations": [],
11966 "referencedDeclaration": 12092,
11967 "src": "2958:3:22",
11968 "typeDescriptions": {
11969 "typeIdentifier": "t_magic_message",
11970 "typeString": "msg"
11971 }
11972 },
11973 "id": 5422,
11974 "isConstant": false,
11975 "isLValue": false,
11976 "isPure": false,
11977 "lValueRequested": false,
11978 "memberName": "sender",
11979 "nodeType": "MemberAccess",
11980 "referencedDeclaration": null,
11981 "src": "2958:10:22",
11982 "typeDescriptions": {
11983 "typeIdentifier": "t_address",
11984 "typeString": "address"
11985 }
11986 },
11987 "isConstant": false,
11988 "isLValue": true,
11989 "isPure": false,
11990 "lValueRequested": true,
11991 "nodeType": "IndexAccess",
11992 "src": "2949:20:22",
11993 "typeDescriptions": {
11994 "typeIdentifier": "t_uint256",
11995 "typeString": "uint256"
11996 }
11997 },
11998 "nodeType": "Assignment",
11999 "operator": "=",
12000 "rightHandSide": {
12001 "argumentTypes": null,
12002 "arguments": [
12003 {
12004 "argumentTypes": null,
12005 "id": 5429,
12006 "name": "_value",
12007 "nodeType": "Identifier",
12008 "overloadedDeclarations": [],
12009 "referencedDeclaration": 5398,
12010 "src": "2997:6:22",
12011 "typeDescriptions": {
12012 "typeIdentifier": "t_uint256",
12013 "typeString": "uint256"
12014 }
12015 }
12016 ],
12017 "expression": {
12018 "argumentTypes": [
12019 {
12020 "typeIdentifier": "t_uint256",
12021 "typeString": "uint256"
12022 }
12023 ],
12024 "expression": {
12025 "argumentTypes": null,
12026 "baseExpression": {
12027 "argumentTypes": null,
12028 "id": 5424,
12029 "name": "balances",
12030 "nodeType": "Identifier",
12031 "overloadedDeclarations": [],
12032 "referencedDeclaration": 5317,
12033 "src": "2972:8:22",
12034 "typeDescriptions": {
12035 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
12036 "typeString": "mapping(address => uint256)"
12037 }
12038 },
12039 "id": 5427,
12040 "indexExpression": {
12041 "argumentTypes": null,
12042 "expression": {
12043 "argumentTypes": null,
12044 "id": 5425,
12045 "name": "msg",
12046 "nodeType": "Identifier",
12047 "overloadedDeclarations": [],
12048 "referencedDeclaration": 12092,
12049 "src": "2981:3:22",
12050 "typeDescriptions": {
12051 "typeIdentifier": "t_magic_message",
12052 "typeString": "msg"
12053 }
12054 },
12055 "id": 5426,
12056 "isConstant": false,
12057 "isLValue": false,
12058 "isPure": false,
12059 "lValueRequested": false,
12060 "memberName": "sender",
12061 "nodeType": "MemberAccess",
12062 "referencedDeclaration": null,
12063 "src": "2981:10:22",
12064 "typeDescriptions": {
12065 "typeIdentifier": "t_address",
12066 "typeString": "address"
12067 }
12068 },
12069 "isConstant": false,
12070 "isLValue": true,
12071 "isPure": false,
12072 "lValueRequested": false,
12073 "nodeType": "IndexAccess",
12074 "src": "2972:20:22",
12075 "typeDescriptions": {
12076 "typeIdentifier": "t_uint256",
12077 "typeString": "uint256"
12078 }
12079 },
12080 "id": 5428,
12081 "isConstant": false,
12082 "isLValue": false,
12083 "isPure": false,
12084 "lValueRequested": false,
12085 "memberName": "sub",
12086 "nodeType": "MemberAccess",
12087 "referencedDeclaration": 5268,
12088 "src": "2972:24:22",
12089 "typeDescriptions": {
12090 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
12091 "typeString": "function (uint256,uint256) pure returns (uint256)"
12092 }
12093 },
12094 "id": 5430,
12095 "isConstant": false,
12096 "isLValue": false,
12097 "isPure": false,
12098 "kind": "functionCall",
12099 "lValueRequested": false,
12100 "names": [],
12101 "nodeType": "FunctionCall",
12102 "src": "2972:32:22",
12103 "typeDescriptions": {
12104 "typeIdentifier": "t_uint256",
12105 "typeString": "uint256"
12106 }
12107 },
12108 "src": "2949:55:22",
12109 "typeDescriptions": {
12110 "typeIdentifier": "t_uint256",
12111 "typeString": "uint256"
12112 }
12113 },
12114 "id": 5432,
12115 "nodeType": "ExpressionStatement",
12116 "src": "2949:55:22"
12117 },
12118 {
12119 "expression": {
12120 "argumentTypes": null,
12121 "id": 5442,
12122 "isConstant": false,
12123 "isLValue": false,
12124 "isPure": false,
12125 "lValueRequested": false,
12126 "leftHandSide": {
12127 "argumentTypes": null,
12128 "baseExpression": {
12129 "argumentTypes": null,
12130 "id": 5433,
12131 "name": "balances",
12132 "nodeType": "Identifier",
12133 "overloadedDeclarations": [],
12134 "referencedDeclaration": 5317,
12135 "src": "3014:8:22",
12136 "typeDescriptions": {
12137 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
12138 "typeString": "mapping(address => uint256)"
12139 }
12140 },
12141 "id": 5435,
12142 "indexExpression": {
12143 "argumentTypes": null,
12144 "id": 5434,
12145 "name": "_to",
12146 "nodeType": "Identifier",
12147 "overloadedDeclarations": [],
12148 "referencedDeclaration": 5396,
12149 "src": "3023:3:22",
12150 "typeDescriptions": {
12151 "typeIdentifier": "t_address",
12152 "typeString": "address"
12153 }
12154 },
12155 "isConstant": false,
12156 "isLValue": true,
12157 "isPure": false,
12158 "lValueRequested": true,
12159 "nodeType": "IndexAccess",
12160 "src": "3014:13:22",
12161 "typeDescriptions": {
12162 "typeIdentifier": "t_uint256",
12163 "typeString": "uint256"
12164 }
12165 },
12166 "nodeType": "Assignment",
12167 "operator": "=",
12168 "rightHandSide": {
12169 "argumentTypes": null,
12170 "arguments": [
12171 {
12172 "argumentTypes": null,
12173 "id": 5440,
12174 "name": "_value",
12175 "nodeType": "Identifier",
12176 "overloadedDeclarations": [],
12177 "referencedDeclaration": 5398,
12178 "src": "3048:6:22",
12179 "typeDescriptions": {
12180 "typeIdentifier": "t_uint256",
12181 "typeString": "uint256"
12182 }
12183 }
12184 ],
12185 "expression": {
12186 "argumentTypes": [
12187 {
12188 "typeIdentifier": "t_uint256",
12189 "typeString": "uint256"
12190 }
12191 ],
12192 "expression": {
12193 "argumentTypes": null,
12194 "baseExpression": {
12195 "argumentTypes": null,
12196 "id": 5436,
12197 "name": "balances",
12198 "nodeType": "Identifier",
12199 "overloadedDeclarations": [],
12200 "referencedDeclaration": 5317,
12201 "src": "3030:8:22",
12202 "typeDescriptions": {
12203 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
12204 "typeString": "mapping(address => uint256)"
12205 }
12206 },
12207 "id": 5438,
12208 "indexExpression": {
12209 "argumentTypes": null,
12210 "id": 5437,
12211 "name": "_to",
12212 "nodeType": "Identifier",
12213 "overloadedDeclarations": [],
12214 "referencedDeclaration": 5396,
12215 "src": "3039:3:22",
12216 "typeDescriptions": {
12217 "typeIdentifier": "t_address",
12218 "typeString": "address"
12219 }
12220 },
12221 "isConstant": false,
12222 "isLValue": true,
12223 "isPure": false,
12224 "lValueRequested": false,
12225 "nodeType": "IndexAccess",
12226 "src": "3030:13:22",
12227 "typeDescriptions": {
12228 "typeIdentifier": "t_uint256",
12229 "typeString": "uint256"
12230 }
12231 },
12232 "id": 5439,
12233 "isConstant": false,
12234 "isLValue": false,
12235 "isPure": false,
12236 "lValueRequested": false,
12237 "memberName": "add",
12238 "nodeType": "MemberAccess",
12239 "referencedDeclaration": 5292,
12240 "src": "3030:17:22",
12241 "typeDescriptions": {
12242 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
12243 "typeString": "function (uint256,uint256) pure returns (uint256)"
12244 }
12245 },
12246 "id": 5441,
12247 "isConstant": false,
12248 "isLValue": false,
12249 "isPure": false,
12250 "kind": "functionCall",
12251 "lValueRequested": false,
12252 "names": [],
12253 "nodeType": "FunctionCall",
12254 "src": "3030:25:22",
12255 "typeDescriptions": {
12256 "typeIdentifier": "t_uint256",
12257 "typeString": "uint256"
12258 }
12259 },
12260 "src": "3014:41:22",
12261 "typeDescriptions": {
12262 "typeIdentifier": "t_uint256",
12263 "typeString": "uint256"
12264 }
12265 },
12266 "id": 5443,
12267 "nodeType": "ExpressionStatement",
12268 "src": "3014:41:22"
12269 },
12270 {
12271 "eventCall": {
12272 "argumentTypes": null,
12273 "arguments": [
12274 {
12275 "argumentTypes": null,
12276 "expression": {
12277 "argumentTypes": null,
12278 "id": 5445,
12279 "name": "msg",
12280 "nodeType": "Identifier",
12281 "overloadedDeclarations": [],
12282 "referencedDeclaration": 12092,
12283 "src": "3079:3:22",
12284 "typeDescriptions": {
12285 "typeIdentifier": "t_magic_message",
12286 "typeString": "msg"
12287 }
12288 },
12289 "id": 5446,
12290 "isConstant": false,
12291 "isLValue": false,
12292 "isPure": false,
12293 "lValueRequested": false,
12294 "memberName": "sender",
12295 "nodeType": "MemberAccess",
12296 "referencedDeclaration": null,
12297 "src": "3079:10:22",
12298 "typeDescriptions": {
12299 "typeIdentifier": "t_address",
12300 "typeString": "address"
12301 }
12302 },
12303 {
12304 "argumentTypes": null,
12305 "id": 5447,
12306 "name": "_to",
12307 "nodeType": "Identifier",
12308 "overloadedDeclarations": [],
12309 "referencedDeclaration": 5396,
12310 "src": "3091:3:22",
12311 "typeDescriptions": {
12312 "typeIdentifier": "t_address",
12313 "typeString": "address"
12314 }
12315 },
12316 {
12317 "argumentTypes": null,
12318 "id": 5448,
12319 "name": "_value",
12320 "nodeType": "Identifier",
12321 "overloadedDeclarations": [],
12322 "referencedDeclaration": 5398,
12323 "src": "3096:6:22",
12324 "typeDescriptions": {
12325 "typeIdentifier": "t_uint256",
12326 "typeString": "uint256"
12327 }
12328 }
12329 ],
12330 "expression": {
12331 "argumentTypes": [
12332 {
12333 "typeIdentifier": "t_address",
12334 "typeString": "address"
12335 },
12336 {
12337 "typeIdentifier": "t_address",
12338 "typeString": "address"
12339 },
12340 {
12341 "typeIdentifier": "t_uint256",
12342 "typeString": "uint256"
12343 }
12344 ],
12345 "id": 5444,
12346 "name": "Transfer",
12347 "nodeType": "Identifier",
12348 "overloadedDeclarations": [],
12349 "referencedDeclaration": 5334,
12350 "src": "3070:8:22",
12351 "typeDescriptions": {
12352 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
12353 "typeString": "function (address,address,uint256)"
12354 }
12355 },
12356 "id": 5449,
12357 "isConstant": false,
12358 "isLValue": false,
12359 "isPure": false,
12360 "kind": "functionCall",
12361 "lValueRequested": false,
12362 "names": [],
12363 "nodeType": "FunctionCall",
12364 "src": "3070:33:22",
12365 "typeDescriptions": {
12366 "typeIdentifier": "t_tuple$__$",
12367 "typeString": "tuple()"
12368 }
12369 },
12370 "id": 5450,
12371 "nodeType": "EmitStatement",
12372 "src": "3065:38:22"
12373 },
12374 {
12375 "expression": {
12376 "argumentTypes": null,
12377 "hexValue": "74727565",
12378 "id": 5451,
12379 "isConstant": false,
12380 "isLValue": false,
12381 "isPure": true,
12382 "kind": "bool",
12383 "lValueRequested": false,
12384 "nodeType": "Literal",
12385 "src": "3120:4:22",
12386 "subdenomination": null,
12387 "typeDescriptions": {
12388 "typeIdentifier": "t_bool",
12389 "typeString": "bool"
12390 },
12391 "value": "true"
12392 },
12393 "functionReturnParameters": 5402,
12394 "id": 5452,
12395 "nodeType": "Return",
12396 "src": "3113:11:22"
12397 }
12398 ]
12399 },
12400 "documentation": "@dev Transfer token for a specified address\n@param _to The address to transfer to.\n@param _value The amount to be transferred.",
12401 "id": 5454,
12402 "implemented": true,
12403 "isConstructor": false,
12404 "isDeclaredConst": false,
12405 "modifiers": [],
12406 "name": "transfer",
12407 "nodeType": "FunctionDefinition",
12408 "parameters": {
12409 "id": 5399,
12410 "nodeType": "ParameterList",
12411 "parameters": [
12412 {
12413 "constant": false,
12414 "id": 5396,
12415 "name": "_to",
12416 "nodeType": "VariableDeclaration",
12417 "scope": 5454,
12418 "src": "2802:11:22",
12419 "stateVariable": false,
12420 "storageLocation": "default",
12421 "typeDescriptions": {
12422 "typeIdentifier": "t_address",
12423 "typeString": "address"
12424 },
12425 "typeName": {
12426 "id": 5395,
12427 "name": "address",
12428 "nodeType": "ElementaryTypeName",
12429 "src": "2802:7:22",
12430 "typeDescriptions": {
12431 "typeIdentifier": "t_address",
12432 "typeString": "address"
12433 }
12434 },
12435 "value": null,
12436 "visibility": "internal"
12437 },
12438 {
12439 "constant": false,
12440 "id": 5398,
12441 "name": "_value",
12442 "nodeType": "VariableDeclaration",
12443 "scope": 5454,
12444 "src": "2815:14:22",
12445 "stateVariable": false,
12446 "storageLocation": "default",
12447 "typeDescriptions": {
12448 "typeIdentifier": "t_uint256",
12449 "typeString": "uint256"
12450 },
12451 "typeName": {
12452 "id": 5397,
12453 "name": "uint256",
12454 "nodeType": "ElementaryTypeName",
12455 "src": "2815:7:22",
12456 "typeDescriptions": {
12457 "typeIdentifier": "t_uint256",
12458 "typeString": "uint256"
12459 }
12460 },
12461 "value": null,
12462 "visibility": "internal"
12463 }
12464 ],
12465 "src": "2801:29:22"
12466 },
12467 "payable": false,
12468 "returnParameters": {
12469 "id": 5402,
12470 "nodeType": "ParameterList",
12471 "parameters": [
12472 {
12473 "constant": false,
12474 "id": 5401,
12475 "name": "",
12476 "nodeType": "VariableDeclaration",
12477 "scope": 5454,
12478 "src": "2847:4:22",
12479 "stateVariable": false,
12480 "storageLocation": "default",
12481 "typeDescriptions": {
12482 "typeIdentifier": "t_bool",
12483 "typeString": "bool"
12484 },
12485 "typeName": {
12486 "id": 5400,
12487 "name": "bool",
12488 "nodeType": "ElementaryTypeName",
12489 "src": "2847:4:22",
12490 "typeDescriptions": {
12491 "typeIdentifier": "t_bool",
12492 "typeString": "bool"
12493 }
12494 },
12495 "value": null,
12496 "visibility": "internal"
12497 }
12498 ],
12499 "src": "2846:6:22"
12500 },
12501 "scope": 5881,
12502 "src": "2784:347:22",
12503 "stateMutability": "nonpayable",
12504 "superFunction": 5152,
12505 "visibility": "public"
12506 },
12507 {
12508 "body": {
12509 "id": 5465,
12510 "nodeType": "Block",
12511 "src": "3410:40:22",
12512 "statements": [
12513 {
12514 "expression": {
12515 "argumentTypes": null,
12516 "baseExpression": {
12517 "argumentTypes": null,
12518 "id": 5461,
12519 "name": "balances",
12520 "nodeType": "Identifier",
12521 "overloadedDeclarations": [],
12522 "referencedDeclaration": 5317,
12523 "src": "3427:8:22",
12524 "typeDescriptions": {
12525 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
12526 "typeString": "mapping(address => uint256)"
12527 }
12528 },
12529 "id": 5463,
12530 "indexExpression": {
12531 "argumentTypes": null,
12532 "id": 5462,
12533 "name": "_owner",
12534 "nodeType": "Identifier",
12535 "overloadedDeclarations": [],
12536 "referencedDeclaration": 5456,
12537 "src": "3436:6:22",
12538 "typeDescriptions": {
12539 "typeIdentifier": "t_address",
12540 "typeString": "address"
12541 }
12542 },
12543 "isConstant": false,
12544 "isLValue": true,
12545 "isPure": false,
12546 "lValueRequested": false,
12547 "nodeType": "IndexAccess",
12548 "src": "3427:16:22",
12549 "typeDescriptions": {
12550 "typeIdentifier": "t_uint256",
12551 "typeString": "uint256"
12552 }
12553 },
12554 "functionReturnParameters": 5460,
12555 "id": 5464,
12556 "nodeType": "Return",
12557 "src": "3420:23:22"
12558 }
12559 ]
12560 },
12561 "documentation": "@dev Gets the balance of the specified address.\n@param _owner The address to query the the balance of.\n@return An uint256 representing the amount owned by the passed address.",
12562 "id": 5466,
12563 "implemented": true,
12564 "isConstructor": false,
12565 "isDeclaredConst": true,
12566 "modifiers": [],
12567 "name": "balanceOf",
12568 "nodeType": "FunctionDefinition",
12569 "parameters": {
12570 "id": 5457,
12571 "nodeType": "ParameterList",
12572 "parameters": [
12573 {
12574 "constant": false,
12575 "id": 5456,
12576 "name": "_owner",
12577 "nodeType": "VariableDeclaration",
12578 "scope": 5466,
12579 "src": "3364:14:22",
12580 "stateVariable": false,
12581 "storageLocation": "default",
12582 "typeDescriptions": {
12583 "typeIdentifier": "t_address",
12584 "typeString": "address"
12585 },
12586 "typeName": {
12587 "id": 5455,
12588 "name": "address",
12589 "nodeType": "ElementaryTypeName",
12590 "src": "3364:7:22",
12591 "typeDescriptions": {
12592 "typeIdentifier": "t_address",
12593 "typeString": "address"
12594 }
12595 },
12596 "value": null,
12597 "visibility": "internal"
12598 }
12599 ],
12600 "src": "3363:16:22"
12601 },
12602 "payable": false,
12603 "returnParameters": {
12604 "id": 5460,
12605 "nodeType": "ParameterList",
12606 "parameters": [
12607 {
12608 "constant": false,
12609 "id": 5459,
12610 "name": "",
12611 "nodeType": "VariableDeclaration",
12612 "scope": 5466,
12613 "src": "3401:7:22",
12614 "stateVariable": false,
12615 "storageLocation": "default",
12616 "typeDescriptions": {
12617 "typeIdentifier": "t_uint256",
12618 "typeString": "uint256"
12619 },
12620 "typeName": {
12621 "id": 5458,
12622 "name": "uint256",
12623 "nodeType": "ElementaryTypeName",
12624 "src": "3401:7:22",
12625 "typeDescriptions": {
12626 "typeIdentifier": "t_uint256",
12627 "typeString": "uint256"
12628 }
12629 },
12630 "value": null,
12631 "visibility": "internal"
12632 }
12633 ],
12634 "src": "3400:9:22"
12635 },
12636 "scope": 5881,
12637 "src": "3345:105:22",
12638 "stateMutability": "view",
12639 "superFunction": 5143,
12640 "visibility": "public"
12641 },
12642 {
12643 "body": {
12644 "id": 5481,
12645 "nodeType": "Block",
12646 "src": "3527:50:22",
12647 "statements": [
12648 {
12649 "expression": {
12650 "argumentTypes": null,
12651 "arguments": [
12652 {
12653 "argumentTypes": null,
12654 "id": 5476,
12655 "name": "_value",
12656 "nodeType": "Identifier",
12657 "overloadedDeclarations": [],
12658 "referencedDeclaration": 5468,
12659 "src": "3542:6:22",
12660 "typeDescriptions": {
12661 "typeIdentifier": "t_uint256",
12662 "typeString": "uint256"
12663 }
12664 }
12665 ],
12666 "expression": {
12667 "argumentTypes": [
12668 {
12669 "typeIdentifier": "t_uint256",
12670 "typeString": "uint256"
12671 }
12672 ],
12673 "id": 5475,
12674 "name": "burn",
12675 "nodeType": "Identifier",
12676 "overloadedDeclarations": [],
12677 "referencedDeclaration": 5535,
12678 "src": "3537:4:22",
12679 "typeDescriptions": {
12680 "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
12681 "typeString": "function (uint256)"
12682 }
12683 },
12684 "id": 5477,
12685 "isConstant": false,
12686 "isLValue": false,
12687 "isPure": false,
12688 "kind": "functionCall",
12689 "lValueRequested": false,
12690 "names": [],
12691 "nodeType": "FunctionCall",
12692 "src": "3537:12:22",
12693 "typeDescriptions": {
12694 "typeIdentifier": "t_tuple$__$",
12695 "typeString": "tuple()"
12696 }
12697 },
12698 "id": 5478,
12699 "nodeType": "ExpressionStatement",
12700 "src": "3537:12:22"
12701 },
12702 {
12703 "expression": {
12704 "argumentTypes": null,
12705 "hexValue": "74727565",
12706 "id": 5479,
12707 "isConstant": false,
12708 "isLValue": false,
12709 "isPure": true,
12710 "kind": "bool",
12711 "lValueRequested": false,
12712 "nodeType": "Literal",
12713 "src": "3566:4:22",
12714 "subdenomination": null,
12715 "typeDescriptions": {
12716 "typeIdentifier": "t_bool",
12717 "typeString": "bool"
12718 },
12719 "value": "true"
12720 },
12721 "functionReturnParameters": 5474,
12722 "id": 5480,
12723 "nodeType": "Return",
12724 "src": "3559:11:22"
12725 }
12726 ]
12727 },
12728 "documentation": null,
12729 "id": 5482,
12730 "implemented": true,
12731 "isConstructor": false,
12732 "isDeclaredConst": false,
12733 "modifiers": [
12734 {
12735 "arguments": null,
12736 "id": 5471,
12737 "modifierName": {
12738 "argumentTypes": null,
12739 "id": 5470,
12740 "name": "onlyOwner",
12741 "nodeType": "Identifier",
12742 "overloadedDeclarations": [],
12743 "referencedDeclaration": 177,
12744 "src": "3502:9:22",
12745 "typeDescriptions": {
12746 "typeIdentifier": "t_modifier$__$",
12747 "typeString": "modifier ()"
12748 }
12749 },
12750 "nodeType": "ModifierInvocation",
12751 "src": "3502:9:22"
12752 }
12753 ],
12754 "name": "ownableBurn",
12755 "nodeType": "FunctionDefinition",
12756 "parameters": {
12757 "id": 5469,
12758 "nodeType": "ParameterList",
12759 "parameters": [
12760 {
12761 "constant": false,
12762 "id": 5468,
12763 "name": "_value",
12764 "nodeType": "VariableDeclaration",
12765 "scope": 5482,
12766 "src": "3477:14:22",
12767 "stateVariable": false,
12768 "storageLocation": "default",
12769 "typeDescriptions": {
12770 "typeIdentifier": "t_uint256",
12771 "typeString": "uint256"
12772 },
12773 "typeName": {
12774 "id": 5467,
12775 "name": "uint256",
12776 "nodeType": "ElementaryTypeName",
12777 "src": "3477:7:22",
12778 "typeDescriptions": {
12779 "typeIdentifier": "t_uint256",
12780 "typeString": "uint256"
12781 }
12782 },
12783 "value": null,
12784 "visibility": "internal"
12785 }
12786 ],
12787 "src": "3476:16:22"
12788 },
12789 "payable": false,
12790 "returnParameters": {
12791 "id": 5474,
12792 "nodeType": "ParameterList",
12793 "parameters": [
12794 {
12795 "constant": false,
12796 "id": 5473,
12797 "name": "",
12798 "nodeType": "VariableDeclaration",
12799 "scope": 5482,
12800 "src": "3521:4:22",
12801 "stateVariable": false,
12802 "storageLocation": "default",
12803 "typeDescriptions": {
12804 "typeIdentifier": "t_bool",
12805 "typeString": "bool"
12806 },
12807 "typeName": {
12808 "id": 5472,
12809 "name": "bool",
12810 "nodeType": "ElementaryTypeName",
12811 "src": "3521:4:22",
12812 "typeDescriptions": {
12813 "typeIdentifier": "t_bool",
12814 "typeString": "bool"
12815 }
12816 },
12817 "value": null,
12818 "visibility": "internal"
12819 }
12820 ],
12821 "src": "3520:6:22"
12822 },
12823 "scope": 5881,
12824 "src": "3456:121:22",
12825 "stateMutability": "nonpayable",
12826 "superFunction": null,
12827 "visibility": "external"
12828 },
12829 {
12830 "body": {
12831 "id": 5522,
12832 "nodeType": "Block",
12833 "src": "3883:336:22",
12834 "statements": [
12835 {
12836 "expression": {
12837 "argumentTypes": null,
12838 "arguments": [
12839 {
12840 "argumentTypes": null,
12841 "commonType": {
12842 "typeIdentifier": "t_uint256",
12843 "typeString": "uint256"
12844 },
12845 "id": 5497,
12846 "isConstant": false,
12847 "isLValue": false,
12848 "isPure": false,
12849 "lValueRequested": false,
12850 "leftExpression": {
12851 "argumentTypes": null,
12852 "id": 5490,
12853 "name": "_value",
12854 "nodeType": "Identifier",
12855 "overloadedDeclarations": [],
12856 "referencedDeclaration": 5486,
12857 "src": "3901:6:22",
12858 "typeDescriptions": {
12859 "typeIdentifier": "t_uint256",
12860 "typeString": "uint256"
12861 }
12862 },
12863 "nodeType": "BinaryOperation",
12864 "operator": "<=",
12865 "rightExpression": {
12866 "argumentTypes": null,
12867 "baseExpression": {
12868 "argumentTypes": null,
12869 "baseExpression": {
12870 "argumentTypes": null,
12871 "id": 5491,
12872 "name": "allowed",
12873 "nodeType": "Identifier",
12874 "overloadedDeclarations": [],
12875 "referencedDeclaration": 5313,
12876 "src": "3911:7:22",
12877 "typeDescriptions": {
12878 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
12879 "typeString": "mapping(address => mapping(address => uint256))"
12880 }
12881 },
12882 "id": 5493,
12883 "indexExpression": {
12884 "argumentTypes": null,
12885 "id": 5492,
12886 "name": "_from",
12887 "nodeType": "Identifier",
12888 "overloadedDeclarations": [],
12889 "referencedDeclaration": 5484,
12890 "src": "3919:5:22",
12891 "typeDescriptions": {
12892 "typeIdentifier": "t_address",
12893 "typeString": "address"
12894 }
12895 },
12896 "isConstant": false,
12897 "isLValue": true,
12898 "isPure": false,
12899 "lValueRequested": false,
12900 "nodeType": "IndexAccess",
12901 "src": "3911:14:22",
12902 "typeDescriptions": {
12903 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
12904 "typeString": "mapping(address => uint256)"
12905 }
12906 },
12907 "id": 5496,
12908 "indexExpression": {
12909 "argumentTypes": null,
12910 "expression": {
12911 "argumentTypes": null,
12912 "id": 5494,
12913 "name": "msg",
12914 "nodeType": "Identifier",
12915 "overloadedDeclarations": [],
12916 "referencedDeclaration": 12092,
12917 "src": "3926:3:22",
12918 "typeDescriptions": {
12919 "typeIdentifier": "t_magic_message",
12920 "typeString": "msg"
12921 }
12922 },
12923 "id": 5495,
12924 "isConstant": false,
12925 "isLValue": false,
12926 "isPure": false,
12927 "lValueRequested": false,
12928 "memberName": "sender",
12929 "nodeType": "MemberAccess",
12930 "referencedDeclaration": null,
12931 "src": "3926:10:22",
12932 "typeDescriptions": {
12933 "typeIdentifier": "t_address",
12934 "typeString": "address"
12935 }
12936 },
12937 "isConstant": false,
12938 "isLValue": true,
12939 "isPure": false,
12940 "lValueRequested": false,
12941 "nodeType": "IndexAccess",
12942 "src": "3911:26:22",
12943 "typeDescriptions": {
12944 "typeIdentifier": "t_uint256",
12945 "typeString": "uint256"
12946 }
12947 },
12948 "src": "3901:36:22",
12949 "typeDescriptions": {
12950 "typeIdentifier": "t_bool",
12951 "typeString": "bool"
12952 }
12953 }
12954 ],
12955 "expression": {
12956 "argumentTypes": [
12957 {
12958 "typeIdentifier": "t_bool",
12959 "typeString": "bool"
12960 }
12961 ],
12962 "id": 5489,
12963 "name": "require",
12964 "nodeType": "Identifier",
12965 "overloadedDeclarations": [
12966 12095,
12967 12096
12968 ],
12969 "referencedDeclaration": 12095,
12970 "src": "3893:7:22",
12971 "typeDescriptions": {
12972 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
12973 "typeString": "function (bool) pure"
12974 }
12975 },
12976 "id": 5498,
12977 "isConstant": false,
12978 "isLValue": false,
12979 "isPure": false,
12980 "kind": "functionCall",
12981 "lValueRequested": false,
12982 "names": [],
12983 "nodeType": "FunctionCall",
12984 "src": "3893:45:22",
12985 "typeDescriptions": {
12986 "typeIdentifier": "t_tuple$__$",
12987 "typeString": "tuple()"
12988 }
12989 },
12990 "id": 5499,
12991 "nodeType": "ExpressionStatement",
12992 "src": "3893:45:22"
12993 },
12994 {
12995 "expression": {
12996 "argumentTypes": null,
12997 "id": 5515,
12998 "isConstant": false,
12999 "isLValue": false,
13000 "isPure": false,
13001 "lValueRequested": false,
13002 "leftHandSide": {
13003 "argumentTypes": null,
13004 "baseExpression": {
13005 "argumentTypes": null,
13006 "baseExpression": {
13007 "argumentTypes": null,
13008 "id": 5500,
13009 "name": "allowed",
13010 "nodeType": "Identifier",
13011 "overloadedDeclarations": [],
13012 "referencedDeclaration": 5313,
13013 "src": "4115:7:22",
13014 "typeDescriptions": {
13015 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
13016 "typeString": "mapping(address => mapping(address => uint256))"
13017 }
13018 },
13019 "id": 5504,
13020 "indexExpression": {
13021 "argumentTypes": null,
13022 "id": 5501,
13023 "name": "_from",
13024 "nodeType": "Identifier",
13025 "overloadedDeclarations": [],
13026 "referencedDeclaration": 5484,
13027 "src": "4123:5:22",
13028 "typeDescriptions": {
13029 "typeIdentifier": "t_address",
13030 "typeString": "address"
13031 }
13032 },
13033 "isConstant": false,
13034 "isLValue": true,
13035 "isPure": false,
13036 "lValueRequested": false,
13037 "nodeType": "IndexAccess",
13038 "src": "4115:14:22",
13039 "typeDescriptions": {
13040 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
13041 "typeString": "mapping(address => uint256)"
13042 }
13043 },
13044 "id": 5505,
13045 "indexExpression": {
13046 "argumentTypes": null,
13047 "expression": {
13048 "argumentTypes": null,
13049 "id": 5502,
13050 "name": "msg",
13051 "nodeType": "Identifier",
13052 "overloadedDeclarations": [],
13053 "referencedDeclaration": 12092,
13054 "src": "4130:3:22",
13055 "typeDescriptions": {
13056 "typeIdentifier": "t_magic_message",
13057 "typeString": "msg"
13058 }
13059 },
13060 "id": 5503,
13061 "isConstant": false,
13062 "isLValue": false,
13063 "isPure": false,
13064 "lValueRequested": false,
13065 "memberName": "sender",
13066 "nodeType": "MemberAccess",
13067 "referencedDeclaration": null,
13068 "src": "4130:10:22",
13069 "typeDescriptions": {
13070 "typeIdentifier": "t_address",
13071 "typeString": "address"
13072 }
13073 },
13074 "isConstant": false,
13075 "isLValue": true,
13076 "isPure": false,
13077 "lValueRequested": true,
13078 "nodeType": "IndexAccess",
13079 "src": "4115:26:22",
13080 "typeDescriptions": {
13081 "typeIdentifier": "t_uint256",
13082 "typeString": "uint256"
13083 }
13084 },
13085 "nodeType": "Assignment",
13086 "operator": "=",
13087 "rightHandSide": {
13088 "argumentTypes": null,
13089 "arguments": [
13090 {
13091 "argumentTypes": null,
13092 "id": 5513,
13093 "name": "_value",
13094 "nodeType": "Identifier",
13095 "overloadedDeclarations": [],
13096 "referencedDeclaration": 5486,
13097 "src": "4175:6:22",
13098 "typeDescriptions": {
13099 "typeIdentifier": "t_uint256",
13100 "typeString": "uint256"
13101 }
13102 }
13103 ],
13104 "expression": {
13105 "argumentTypes": [
13106 {
13107 "typeIdentifier": "t_uint256",
13108 "typeString": "uint256"
13109 }
13110 ],
13111 "expression": {
13112 "argumentTypes": null,
13113 "baseExpression": {
13114 "argumentTypes": null,
13115 "baseExpression": {
13116 "argumentTypes": null,
13117 "id": 5506,
13118 "name": "allowed",
13119 "nodeType": "Identifier",
13120 "overloadedDeclarations": [],
13121 "referencedDeclaration": 5313,
13122 "src": "4144:7:22",
13123 "typeDescriptions": {
13124 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
13125 "typeString": "mapping(address => mapping(address => uint256))"
13126 }
13127 },
13128 "id": 5508,
13129 "indexExpression": {
13130 "argumentTypes": null,
13131 "id": 5507,
13132 "name": "_from",
13133 "nodeType": "Identifier",
13134 "overloadedDeclarations": [],
13135 "referencedDeclaration": 5484,
13136 "src": "4152:5:22",
13137 "typeDescriptions": {
13138 "typeIdentifier": "t_address",
13139 "typeString": "address"
13140 }
13141 },
13142 "isConstant": false,
13143 "isLValue": true,
13144 "isPure": false,
13145 "lValueRequested": false,
13146 "nodeType": "IndexAccess",
13147 "src": "4144:14:22",
13148 "typeDescriptions": {
13149 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
13150 "typeString": "mapping(address => uint256)"
13151 }
13152 },
13153 "id": 5511,
13154 "indexExpression": {
13155 "argumentTypes": null,
13156 "expression": {
13157 "argumentTypes": null,
13158 "id": 5509,
13159 "name": "msg",
13160 "nodeType": "Identifier",
13161 "overloadedDeclarations": [],
13162 "referencedDeclaration": 12092,
13163 "src": "4159:3:22",
13164 "typeDescriptions": {
13165 "typeIdentifier": "t_magic_message",
13166 "typeString": "msg"
13167 }
13168 },
13169 "id": 5510,
13170 "isConstant": false,
13171 "isLValue": false,
13172 "isPure": false,
13173 "lValueRequested": false,
13174 "memberName": "sender",
13175 "nodeType": "MemberAccess",
13176 "referencedDeclaration": null,
13177 "src": "4159:10:22",
13178 "typeDescriptions": {
13179 "typeIdentifier": "t_address",
13180 "typeString": "address"
13181 }
13182 },
13183 "isConstant": false,
13184 "isLValue": true,
13185 "isPure": false,
13186 "lValueRequested": false,
13187 "nodeType": "IndexAccess",
13188 "src": "4144:26:22",
13189 "typeDescriptions": {
13190 "typeIdentifier": "t_uint256",
13191 "typeString": "uint256"
13192 }
13193 },
13194 "id": 5512,
13195 "isConstant": false,
13196 "isLValue": false,
13197 "isPure": false,
13198 "lValueRequested": false,
13199 "memberName": "sub",
13200 "nodeType": "MemberAccess",
13201 "referencedDeclaration": 5268,
13202 "src": "4144:30:22",
13203 "typeDescriptions": {
13204 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
13205 "typeString": "function (uint256,uint256) pure returns (uint256)"
13206 }
13207 },
13208 "id": 5514,
13209 "isConstant": false,
13210 "isLValue": false,
13211 "isPure": false,
13212 "kind": "functionCall",
13213 "lValueRequested": false,
13214 "names": [],
13215 "nodeType": "FunctionCall",
13216 "src": "4144:38:22",
13217 "typeDescriptions": {
13218 "typeIdentifier": "t_uint256",
13219 "typeString": "uint256"
13220 }
13221 },
13222 "src": "4115:67:22",
13223 "typeDescriptions": {
13224 "typeIdentifier": "t_uint256",
13225 "typeString": "uint256"
13226 }
13227 },
13228 "id": 5516,
13229 "nodeType": "ExpressionStatement",
13230 "src": "4115:67:22"
13231 },
13232 {
13233 "expression": {
13234 "argumentTypes": null,
13235 "arguments": [
13236 {
13237 "argumentTypes": null,
13238 "id": 5518,
13239 "name": "_from",
13240 "nodeType": "Identifier",
13241 "overloadedDeclarations": [],
13242 "referencedDeclaration": 5484,
13243 "src": "4198:5:22",
13244 "typeDescriptions": {
13245 "typeIdentifier": "t_address",
13246 "typeString": "address"
13247 }
13248 },
13249 {
13250 "argumentTypes": null,
13251 "id": 5519,
13252 "name": "_value",
13253 "nodeType": "Identifier",
13254 "overloadedDeclarations": [],
13255 "referencedDeclaration": 5486,
13256 "src": "4205:6:22",
13257 "typeDescriptions": {
13258 "typeIdentifier": "t_uint256",
13259 "typeString": "uint256"
13260 }
13261 }
13262 ],
13263 "expression": {
13264 "argumentTypes": [
13265 {
13266 "typeIdentifier": "t_address",
13267 "typeString": "address"
13268 },
13269 {
13270 "typeIdentifier": "t_uint256",
13271 "typeString": "uint256"
13272 }
13273 ],
13274 "id": 5517,
13275 "name": "_burn",
13276 "nodeType": "Identifier",
13277 "overloadedDeclarations": [],
13278 "referencedDeclaration": 5582,
13279 "src": "4192:5:22",
13280 "typeDescriptions": {
13281 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
13282 "typeString": "function (address,uint256)"
13283 }
13284 },
13285 "id": 5520,
13286 "isConstant": false,
13287 "isLValue": false,
13288 "isPure": false,
13289 "kind": "functionCall",
13290 "lValueRequested": false,
13291 "names": [],
13292 "nodeType": "FunctionCall",
13293 "src": "4192:20:22",
13294 "typeDescriptions": {
13295 "typeIdentifier": "t_tuple$__$",
13296 "typeString": "tuple()"
13297 }
13298 },
13299 "id": 5521,
13300 "nodeType": "ExpressionStatement",
13301 "src": "4192:20:22"
13302 }
13303 ]
13304 },
13305 "documentation": "@dev Burns a specific amount of tokens from the target address and decrements allowance\n@param _from address The address which you want to send tokens from\n@param _value uint256 The amount of token to be burned",
13306 "id": 5523,
13307 "implemented": true,
13308 "isConstructor": false,
13309 "isDeclaredConst": false,
13310 "modifiers": [],
13311 "name": "burnFrom",
13312 "nodeType": "FunctionDefinition",
13313 "parameters": {
13314 "id": 5487,
13315 "nodeType": "ParameterList",
13316 "parameters": [
13317 {
13318 "constant": false,
13319 "id": 5484,
13320 "name": "_from",
13321 "nodeType": "VariableDeclaration",
13322 "scope": 5523,
13323 "src": "3845:13:22",
13324 "stateVariable": false,
13325 "storageLocation": "default",
13326 "typeDescriptions": {
13327 "typeIdentifier": "t_address",
13328 "typeString": "address"
13329 },
13330 "typeName": {
13331 "id": 5483,
13332 "name": "address",
13333 "nodeType": "ElementaryTypeName",
13334 "src": "3845:7:22",
13335 "typeDescriptions": {
13336 "typeIdentifier": "t_address",
13337 "typeString": "address"
13338 }
13339 },
13340 "value": null,
13341 "visibility": "internal"
13342 },
13343 {
13344 "constant": false,
13345 "id": 5486,
13346 "name": "_value",
13347 "nodeType": "VariableDeclaration",
13348 "scope": 5523,
13349 "src": "3860:14:22",
13350 "stateVariable": false,
13351 "storageLocation": "default",
13352 "typeDescriptions": {
13353 "typeIdentifier": "t_uint256",
13354 "typeString": "uint256"
13355 },
13356 "typeName": {
13357 "id": 5485,
13358 "name": "uint256",
13359 "nodeType": "ElementaryTypeName",
13360 "src": "3860:7:22",
13361 "typeDescriptions": {
13362 "typeIdentifier": "t_uint256",
13363 "typeString": "uint256"
13364 }
13365 },
13366 "value": null,
13367 "visibility": "internal"
13368 }
13369 ],
13370 "src": "3844:31:22"
13371 },
13372 "payable": false,
13373 "returnParameters": {
13374 "id": 5488,
13375 "nodeType": "ParameterList",
13376 "parameters": [],
13377 "src": "3883:0:22"
13378 },
13379 "scope": 5881,
13380 "src": "3827:392:22",
13381 "stateMutability": "nonpayable",
13382 "superFunction": 5197,
13383 "visibility": "public"
13384 },
13385 {
13386 "body": {
13387 "id": 5534,
13388 "nodeType": "Block",
13389 "src": "4381:42:22",
13390 "statements": [
13391 {
13392 "expression": {
13393 "argumentTypes": null,
13394 "arguments": [
13395 {
13396 "argumentTypes": null,
13397 "expression": {
13398 "argumentTypes": null,
13399 "id": 5529,
13400 "name": "msg",
13401 "nodeType": "Identifier",
13402 "overloadedDeclarations": [],
13403 "referencedDeclaration": 12092,
13404 "src": "4397:3:22",
13405 "typeDescriptions": {
13406 "typeIdentifier": "t_magic_message",
13407 "typeString": "msg"
13408 }
13409 },
13410 "id": 5530,
13411 "isConstant": false,
13412 "isLValue": false,
13413 "isPure": false,
13414 "lValueRequested": false,
13415 "memberName": "sender",
13416 "nodeType": "MemberAccess",
13417 "referencedDeclaration": null,
13418 "src": "4397:10:22",
13419 "typeDescriptions": {
13420 "typeIdentifier": "t_address",
13421 "typeString": "address"
13422 }
13423 },
13424 {
13425 "argumentTypes": null,
13426 "id": 5531,
13427 "name": "_value",
13428 "nodeType": "Identifier",
13429 "overloadedDeclarations": [],
13430 "referencedDeclaration": 5525,
13431 "src": "4409:6:22",
13432 "typeDescriptions": {
13433 "typeIdentifier": "t_uint256",
13434 "typeString": "uint256"
13435 }
13436 }
13437 ],
13438 "expression": {
13439 "argumentTypes": [
13440 {
13441 "typeIdentifier": "t_address",
13442 "typeString": "address"
13443 },
13444 {
13445 "typeIdentifier": "t_uint256",
13446 "typeString": "uint256"
13447 }
13448 ],
13449 "id": 5528,
13450 "name": "_burn",
13451 "nodeType": "Identifier",
13452 "overloadedDeclarations": [],
13453 "referencedDeclaration": 5582,
13454 "src": "4391:5:22",
13455 "typeDescriptions": {
13456 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
13457 "typeString": "function (address,uint256)"
13458 }
13459 },
13460 "id": 5532,
13461 "isConstant": false,
13462 "isLValue": false,
13463 "isPure": false,
13464 "kind": "functionCall",
13465 "lValueRequested": false,
13466 "names": [],
13467 "nodeType": "FunctionCall",
13468 "src": "4391:25:22",
13469 "typeDescriptions": {
13470 "typeIdentifier": "t_tuple$__$",
13471 "typeString": "tuple()"
13472 }
13473 },
13474 "id": 5533,
13475 "nodeType": "ExpressionStatement",
13476 "src": "4391:25:22"
13477 }
13478 ]
13479 },
13480 "documentation": "@dev Burns a specific amount of tokens.\n@param _value The amount of token to be burned.",
13481 "id": 5535,
13482 "implemented": true,
13483 "isConstructor": false,
13484 "isDeclaredConst": false,
13485 "modifiers": [],
13486 "name": "burn",
13487 "nodeType": "FunctionDefinition",
13488 "parameters": {
13489 "id": 5526,
13490 "nodeType": "ParameterList",
13491 "parameters": [
13492 {
13493 "constant": false,
13494 "id": 5525,
13495 "name": "_value",
13496 "nodeType": "VariableDeclaration",
13497 "scope": 5535,
13498 "src": "4358:14:22",
13499 "stateVariable": false,
13500 "storageLocation": "default",
13501 "typeDescriptions": {
13502 "typeIdentifier": "t_uint256",
13503 "typeString": "uint256"
13504 },
13505 "typeName": {
13506 "id": 5524,
13507 "name": "uint256",
13508 "nodeType": "ElementaryTypeName",
13509 "src": "4358:7:22",
13510 "typeDescriptions": {
13511 "typeIdentifier": "t_uint256",
13512 "typeString": "uint256"
13513 }
13514 },
13515 "value": null,
13516 "visibility": "internal"
13517 }
13518 ],
13519 "src": "4357:16:22"
13520 },
13521 "payable": false,
13522 "returnParameters": {
13523 "id": 5527,
13524 "nodeType": "ParameterList",
13525 "parameters": [],
13526 "src": "4381:0:22"
13527 },
13528 "scope": 5881,
13529 "src": "4344:79:22",
13530 "stateMutability": "nonpayable",
13531 "superFunction": null,
13532 "visibility": "public"
13533 },
13534 {
13535 "body": {
13536 "id": 5581,
13537 "nodeType": "Block",
13538 "src": "4483:414:22",
13539 "statements": [
13540 {
13541 "expression": {
13542 "argumentTypes": null,
13543 "arguments": [
13544 {
13545 "argumentTypes": null,
13546 "commonType": {
13547 "typeIdentifier": "t_uint256",
13548 "typeString": "uint256"
13549 },
13550 "id": 5547,
13551 "isConstant": false,
13552 "isLValue": false,
13553 "isPure": false,
13554 "lValueRequested": false,
13555 "leftExpression": {
13556 "argumentTypes": null,
13557 "id": 5543,
13558 "name": "_value",
13559 "nodeType": "Identifier",
13560 "overloadedDeclarations": [],
13561 "referencedDeclaration": 5539,
13562 "src": "4501:6:22",
13563 "typeDescriptions": {
13564 "typeIdentifier": "t_uint256",
13565 "typeString": "uint256"
13566 }
13567 },
13568 "nodeType": "BinaryOperation",
13569 "operator": "<=",
13570 "rightExpression": {
13571 "argumentTypes": null,
13572 "baseExpression": {
13573 "argumentTypes": null,
13574 "id": 5544,
13575 "name": "balances",
13576 "nodeType": "Identifier",
13577 "overloadedDeclarations": [],
13578 "referencedDeclaration": 5317,
13579 "src": "4511:8:22",
13580 "typeDescriptions": {
13581 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
13582 "typeString": "mapping(address => uint256)"
13583 }
13584 },
13585 "id": 5546,
13586 "indexExpression": {
13587 "argumentTypes": null,
13588 "id": 5545,
13589 "name": "_who",
13590 "nodeType": "Identifier",
13591 "overloadedDeclarations": [],
13592 "referencedDeclaration": 5537,
13593 "src": "4520:4:22",
13594 "typeDescriptions": {
13595 "typeIdentifier": "t_address",
13596 "typeString": "address"
13597 }
13598 },
13599 "isConstant": false,
13600 "isLValue": true,
13601 "isPure": false,
13602 "lValueRequested": false,
13603 "nodeType": "IndexAccess",
13604 "src": "4511:14:22",
13605 "typeDescriptions": {
13606 "typeIdentifier": "t_uint256",
13607 "typeString": "uint256"
13608 }
13609 },
13610 "src": "4501:24:22",
13611 "typeDescriptions": {
13612 "typeIdentifier": "t_bool",
13613 "typeString": "bool"
13614 }
13615 }
13616 ],
13617 "expression": {
13618 "argumentTypes": [
13619 {
13620 "typeIdentifier": "t_bool",
13621 "typeString": "bool"
13622 }
13623 ],
13624 "id": 5542,
13625 "name": "require",
13626 "nodeType": "Identifier",
13627 "overloadedDeclarations": [
13628 12095,
13629 12096
13630 ],
13631 "referencedDeclaration": 12095,
13632 "src": "4493:7:22",
13633 "typeDescriptions": {
13634 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
13635 "typeString": "function (bool) pure"
13636 }
13637 },
13638 "id": 5548,
13639 "isConstant": false,
13640 "isLValue": false,
13641 "isPure": false,
13642 "kind": "functionCall",
13643 "lValueRequested": false,
13644 "names": [],
13645 "nodeType": "FunctionCall",
13646 "src": "4493:33:22",
13647 "typeDescriptions": {
13648 "typeIdentifier": "t_tuple$__$",
13649 "typeString": "tuple()"
13650 }
13651 },
13652 "id": 5549,
13653 "nodeType": "ExpressionStatement",
13654 "src": "4493:33:22"
13655 },
13656 {
13657 "expression": {
13658 "argumentTypes": null,
13659 "id": 5559,
13660 "isConstant": false,
13661 "isLValue": false,
13662 "isPure": false,
13663 "lValueRequested": false,
13664 "leftHandSide": {
13665 "argumentTypes": null,
13666 "baseExpression": {
13667 "argumentTypes": null,
13668 "id": 5550,
13669 "name": "balances",
13670 "nodeType": "Identifier",
13671 "overloadedDeclarations": [],
13672 "referencedDeclaration": 5317,
13673 "src": "4716:8:22",
13674 "typeDescriptions": {
13675 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
13676 "typeString": "mapping(address => uint256)"
13677 }
13678 },
13679 "id": 5552,
13680 "indexExpression": {
13681 "argumentTypes": null,
13682 "id": 5551,
13683 "name": "_who",
13684 "nodeType": "Identifier",
13685 "overloadedDeclarations": [],
13686 "referencedDeclaration": 5537,
13687 "src": "4725:4:22",
13688 "typeDescriptions": {
13689 "typeIdentifier": "t_address",
13690 "typeString": "address"
13691 }
13692 },
13693 "isConstant": false,
13694 "isLValue": true,
13695 "isPure": false,
13696 "lValueRequested": true,
13697 "nodeType": "IndexAccess",
13698 "src": "4716:14:22",
13699 "typeDescriptions": {
13700 "typeIdentifier": "t_uint256",
13701 "typeString": "uint256"
13702 }
13703 },
13704 "nodeType": "Assignment",
13705 "operator": "=",
13706 "rightHandSide": {
13707 "argumentTypes": null,
13708 "arguments": [
13709 {
13710 "argumentTypes": null,
13711 "id": 5557,
13712 "name": "_value",
13713 "nodeType": "Identifier",
13714 "overloadedDeclarations": [],
13715 "referencedDeclaration": 5539,
13716 "src": "4752:6:22",
13717 "typeDescriptions": {
13718 "typeIdentifier": "t_uint256",
13719 "typeString": "uint256"
13720 }
13721 }
13722 ],
13723 "expression": {
13724 "argumentTypes": [
13725 {
13726 "typeIdentifier": "t_uint256",
13727 "typeString": "uint256"
13728 }
13729 ],
13730 "expression": {
13731 "argumentTypes": null,
13732 "baseExpression": {
13733 "argumentTypes": null,
13734 "id": 5553,
13735 "name": "balances",
13736 "nodeType": "Identifier",
13737 "overloadedDeclarations": [],
13738 "referencedDeclaration": 5317,
13739 "src": "4733:8:22",
13740 "typeDescriptions": {
13741 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
13742 "typeString": "mapping(address => uint256)"
13743 }
13744 },
13745 "id": 5555,
13746 "indexExpression": {
13747 "argumentTypes": null,
13748 "id": 5554,
13749 "name": "_who",
13750 "nodeType": "Identifier",
13751 "overloadedDeclarations": [],
13752 "referencedDeclaration": 5537,
13753 "src": "4742:4:22",
13754 "typeDescriptions": {
13755 "typeIdentifier": "t_address",
13756 "typeString": "address"
13757 }
13758 },
13759 "isConstant": false,
13760 "isLValue": true,
13761 "isPure": false,
13762 "lValueRequested": false,
13763 "nodeType": "IndexAccess",
13764 "src": "4733:14:22",
13765 "typeDescriptions": {
13766 "typeIdentifier": "t_uint256",
13767 "typeString": "uint256"
13768 }
13769 },
13770 "id": 5556,
13771 "isConstant": false,
13772 "isLValue": false,
13773 "isPure": false,
13774 "lValueRequested": false,
13775 "memberName": "sub",
13776 "nodeType": "MemberAccess",
13777 "referencedDeclaration": 5268,
13778 "src": "4733:18:22",
13779 "typeDescriptions": {
13780 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
13781 "typeString": "function (uint256,uint256) pure returns (uint256)"
13782 }
13783 },
13784 "id": 5558,
13785 "isConstant": false,
13786 "isLValue": false,
13787 "isPure": false,
13788 "kind": "functionCall",
13789 "lValueRequested": false,
13790 "names": [],
13791 "nodeType": "FunctionCall",
13792 "src": "4733:26:22",
13793 "typeDescriptions": {
13794 "typeIdentifier": "t_uint256",
13795 "typeString": "uint256"
13796 }
13797 },
13798 "src": "4716:43:22",
13799 "typeDescriptions": {
13800 "typeIdentifier": "t_uint256",
13801 "typeString": "uint256"
13802 }
13803 },
13804 "id": 5560,
13805 "nodeType": "ExpressionStatement",
13806 "src": "4716:43:22"
13807 },
13808 {
13809 "expression": {
13810 "argumentTypes": null,
13811 "id": 5566,
13812 "isConstant": false,
13813 "isLValue": false,
13814 "isPure": false,
13815 "lValueRequested": false,
13816 "leftHandSide": {
13817 "argumentTypes": null,
13818 "id": 5561,
13819 "name": "totalSupply_",
13820 "nodeType": "Identifier",
13821 "overloadedDeclarations": [],
13822 "referencedDeclaration": 5307,
13823 "src": "4769:12:22",
13824 "typeDescriptions": {
13825 "typeIdentifier": "t_uint256",
13826 "typeString": "uint256"
13827 }
13828 },
13829 "nodeType": "Assignment",
13830 "operator": "=",
13831 "rightHandSide": {
13832 "argumentTypes": null,
13833 "arguments": [
13834 {
13835 "argumentTypes": null,
13836 "id": 5564,
13837 "name": "_value",
13838 "nodeType": "Identifier",
13839 "overloadedDeclarations": [],
13840 "referencedDeclaration": 5539,
13841 "src": "4801:6:22",
13842 "typeDescriptions": {
13843 "typeIdentifier": "t_uint256",
13844 "typeString": "uint256"
13845 }
13846 }
13847 ],
13848 "expression": {
13849 "argumentTypes": [
13850 {
13851 "typeIdentifier": "t_uint256",
13852 "typeString": "uint256"
13853 }
13854 ],
13855 "expression": {
13856 "argumentTypes": null,
13857 "id": 5562,
13858 "name": "totalSupply_",
13859 "nodeType": "Identifier",
13860 "overloadedDeclarations": [],
13861 "referencedDeclaration": 5307,
13862 "src": "4784:12:22",
13863 "typeDescriptions": {
13864 "typeIdentifier": "t_uint256",
13865 "typeString": "uint256"
13866 }
13867 },
13868 "id": 5563,
13869 "isConstant": false,
13870 "isLValue": false,
13871 "isPure": false,
13872 "lValueRequested": false,
13873 "memberName": "sub",
13874 "nodeType": "MemberAccess",
13875 "referencedDeclaration": 5268,
13876 "src": "4784:16:22",
13877 "typeDescriptions": {
13878 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
13879 "typeString": "function (uint256,uint256) pure returns (uint256)"
13880 }
13881 },
13882 "id": 5565,
13883 "isConstant": false,
13884 "isLValue": false,
13885 "isPure": false,
13886 "kind": "functionCall",
13887 "lValueRequested": false,
13888 "names": [],
13889 "nodeType": "FunctionCall",
13890 "src": "4784:24:22",
13891 "typeDescriptions": {
13892 "typeIdentifier": "t_uint256",
13893 "typeString": "uint256"
13894 }
13895 },
13896 "src": "4769:39:22",
13897 "typeDescriptions": {
13898 "typeIdentifier": "t_uint256",
13899 "typeString": "uint256"
13900 }
13901 },
13902 "id": 5567,
13903 "nodeType": "ExpressionStatement",
13904 "src": "4769:39:22"
13905 },
13906 {
13907 "eventCall": {
13908 "argumentTypes": null,
13909 "arguments": [
13910 {
13911 "argumentTypes": null,
13912 "id": 5569,
13913 "name": "_who",
13914 "nodeType": "Identifier",
13915 "overloadedDeclarations": [],
13916 "referencedDeclaration": 5537,
13917 "src": "4828:4:22",
13918 "typeDescriptions": {
13919 "typeIdentifier": "t_address",
13920 "typeString": "address"
13921 }
13922 },
13923 {
13924 "argumentTypes": null,
13925 "id": 5570,
13926 "name": "_value",
13927 "nodeType": "Identifier",
13928 "overloadedDeclarations": [],
13929 "referencedDeclaration": 5539,
13930 "src": "4834:6:22",
13931 "typeDescriptions": {
13932 "typeIdentifier": "t_uint256",
13933 "typeString": "uint256"
13934 }
13935 }
13936 ],
13937 "expression": {
13938 "argumentTypes": [
13939 {
13940 "typeIdentifier": "t_address",
13941 "typeString": "address"
13942 },
13943 {
13944 "typeIdentifier": "t_uint256",
13945 "typeString": "uint256"
13946 }
13947 ],
13948 "id": 5568,
13949 "name": "Burn",
13950 "nodeType": "Identifier",
13951 "overloadedDeclarations": [],
13952 "referencedDeclaration": 5326,
13953 "src": "4823:4:22",
13954 "typeDescriptions": {
13955 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
13956 "typeString": "function (address,uint256)"
13957 }
13958 },
13959 "id": 5571,
13960 "isConstant": false,
13961 "isLValue": false,
13962 "isPure": false,
13963 "kind": "functionCall",
13964 "lValueRequested": false,
13965 "names": [],
13966 "nodeType": "FunctionCall",
13967 "src": "4823:18:22",
13968 "typeDescriptions": {
13969 "typeIdentifier": "t_tuple$__$",
13970 "typeString": "tuple()"
13971 }
13972 },
13973 "id": 5572,
13974 "nodeType": "EmitStatement",
13975 "src": "4818:23:22"
13976 },
13977 {
13978 "eventCall": {
13979 "argumentTypes": null,
13980 "arguments": [
13981 {
13982 "argumentTypes": null,
13983 "id": 5574,
13984 "name": "_who",
13985 "nodeType": "Identifier",
13986 "overloadedDeclarations": [],
13987 "referencedDeclaration": 5537,
13988 "src": "4865:4:22",
13989 "typeDescriptions": {
13990 "typeIdentifier": "t_address",
13991 "typeString": "address"
13992 }
13993 },
13994 {
13995 "argumentTypes": null,
13996 "arguments": [
13997 {
13998 "argumentTypes": null,
13999 "hexValue": "30",
14000 "id": 5576,
14001 "isConstant": false,
14002 "isLValue": false,
14003 "isPure": true,
14004 "kind": "number",
14005 "lValueRequested": false,
14006 "nodeType": "Literal",
14007 "src": "4879:1:22",
14008 "subdenomination": null,
14009 "typeDescriptions": {
14010 "typeIdentifier": "t_rational_0_by_1",
14011 "typeString": "int_const 0"
14012 },
14013 "value": "0"
14014 }
14015 ],
14016 "expression": {
14017 "argumentTypes": [
14018 {
14019 "typeIdentifier": "t_rational_0_by_1",
14020 "typeString": "int_const 0"
14021 }
14022 ],
14023 "id": 5575,
14024 "isConstant": false,
14025 "isLValue": false,
14026 "isPure": true,
14027 "lValueRequested": false,
14028 "nodeType": "ElementaryTypeNameExpression",
14029 "src": "4871:7:22",
14030 "typeDescriptions": {
14031 "typeIdentifier": "t_type$_t_address_$",
14032 "typeString": "type(address)"
14033 },
14034 "typeName": "address"
14035 },
14036 "id": 5577,
14037 "isConstant": false,
14038 "isLValue": false,
14039 "isPure": true,
14040 "kind": "typeConversion",
14041 "lValueRequested": false,
14042 "names": [],
14043 "nodeType": "FunctionCall",
14044 "src": "4871:10:22",
14045 "typeDescriptions": {
14046 "typeIdentifier": "t_address",
14047 "typeString": "address"
14048 }
14049 },
14050 {
14051 "argumentTypes": null,
14052 "id": 5578,
14053 "name": "_value",
14054 "nodeType": "Identifier",
14055 "overloadedDeclarations": [],
14056 "referencedDeclaration": 5539,
14057 "src": "4883:6:22",
14058 "typeDescriptions": {
14059 "typeIdentifier": "t_uint256",
14060 "typeString": "uint256"
14061 }
14062 }
14063 ],
14064 "expression": {
14065 "argumentTypes": [
14066 {
14067 "typeIdentifier": "t_address",
14068 "typeString": "address"
14069 },
14070 {
14071 "typeIdentifier": "t_address",
14072 "typeString": "address"
14073 },
14074 {
14075 "typeIdentifier": "t_uint256",
14076 "typeString": "uint256"
14077 }
14078 ],
14079 "id": 5573,
14080 "name": "Transfer",
14081 "nodeType": "Identifier",
14082 "overloadedDeclarations": [],
14083 "referencedDeclaration": 5334,
14084 "src": "4856:8:22",
14085 "typeDescriptions": {
14086 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
14087 "typeString": "function (address,address,uint256)"
14088 }
14089 },
14090 "id": 5579,
14091 "isConstant": false,
14092 "isLValue": false,
14093 "isPure": false,
14094 "kind": "functionCall",
14095 "lValueRequested": false,
14096 "names": [],
14097 "nodeType": "FunctionCall",
14098 "src": "4856:34:22",
14099 "typeDescriptions": {
14100 "typeIdentifier": "t_tuple$__$",
14101 "typeString": "tuple()"
14102 }
14103 },
14104 "id": 5580,
14105 "nodeType": "EmitStatement",
14106 "src": "4851:39:22"
14107 }
14108 ]
14109 },
14110 "documentation": null,
14111 "id": 5582,
14112 "implemented": true,
14113 "isConstructor": false,
14114 "isDeclaredConst": false,
14115 "modifiers": [],
14116 "name": "_burn",
14117 "nodeType": "FunctionDefinition",
14118 "parameters": {
14119 "id": 5540,
14120 "nodeType": "ParameterList",
14121 "parameters": [
14122 {
14123 "constant": false,
14124 "id": 5537,
14125 "name": "_who",
14126 "nodeType": "VariableDeclaration",
14127 "scope": 5582,
14128 "src": "4444:12:22",
14129 "stateVariable": false,
14130 "storageLocation": "default",
14131 "typeDescriptions": {
14132 "typeIdentifier": "t_address",
14133 "typeString": "address"
14134 },
14135 "typeName": {
14136 "id": 5536,
14137 "name": "address",
14138 "nodeType": "ElementaryTypeName",
14139 "src": "4444:7:22",
14140 "typeDescriptions": {
14141 "typeIdentifier": "t_address",
14142 "typeString": "address"
14143 }
14144 },
14145 "value": null,
14146 "visibility": "internal"
14147 },
14148 {
14149 "constant": false,
14150 "id": 5539,
14151 "name": "_value",
14152 "nodeType": "VariableDeclaration",
14153 "scope": 5582,
14154 "src": "4458:14:22",
14155 "stateVariable": false,
14156 "storageLocation": "default",
14157 "typeDescriptions": {
14158 "typeIdentifier": "t_uint256",
14159 "typeString": "uint256"
14160 },
14161 "typeName": {
14162 "id": 5538,
14163 "name": "uint256",
14164 "nodeType": "ElementaryTypeName",
14165 "src": "4458:7:22",
14166 "typeDescriptions": {
14167 "typeIdentifier": "t_uint256",
14168 "typeString": "uint256"
14169 }
14170 },
14171 "value": null,
14172 "visibility": "internal"
14173 }
14174 ],
14175 "src": "4443:30:22"
14176 },
14177 "payable": false,
14178 "returnParameters": {
14179 "id": 5541,
14180 "nodeType": "ParameterList",
14181 "parameters": [],
14182 "src": "4483:0:22"
14183 },
14184 "scope": 5881,
14185 "src": "4429:468:22",
14186 "stateMutability": "nonpayable",
14187 "superFunction": null,
14188 "visibility": "internal"
14189 },
14190 {
14191 "body": {
14192 "id": 5628,
14193 "nodeType": "Block",
14194 "src": "5282:212:22",
14195 "statements": [
14196 {
14197 "expression": {
14198 "argumentTypes": null,
14199 "id": 5600,
14200 "isConstant": false,
14201 "isLValue": false,
14202 "isPure": false,
14203 "lValueRequested": false,
14204 "leftHandSide": {
14205 "argumentTypes": null,
14206 "id": 5595,
14207 "name": "totalSupply_",
14208 "nodeType": "Identifier",
14209 "overloadedDeclarations": [],
14210 "referencedDeclaration": 5307,
14211 "src": "5292:12:22",
14212 "typeDescriptions": {
14213 "typeIdentifier": "t_uint256",
14214 "typeString": "uint256"
14215 }
14216 },
14217 "nodeType": "Assignment",
14218 "operator": "=",
14219 "rightHandSide": {
14220 "argumentTypes": null,
14221 "arguments": [
14222 {
14223 "argumentTypes": null,
14224 "id": 5598,
14225 "name": "_amount",
14226 "nodeType": "Identifier",
14227 "overloadedDeclarations": [],
14228 "referencedDeclaration": 5586,
14229 "src": "5324:7:22",
14230 "typeDescriptions": {
14231 "typeIdentifier": "t_uint256",
14232 "typeString": "uint256"
14233 }
14234 }
14235 ],
14236 "expression": {
14237 "argumentTypes": [
14238 {
14239 "typeIdentifier": "t_uint256",
14240 "typeString": "uint256"
14241 }
14242 ],
14243 "expression": {
14244 "argumentTypes": null,
14245 "id": 5596,
14246 "name": "totalSupply_",
14247 "nodeType": "Identifier",
14248 "overloadedDeclarations": [],
14249 "referencedDeclaration": 5307,
14250 "src": "5307:12:22",
14251 "typeDescriptions": {
14252 "typeIdentifier": "t_uint256",
14253 "typeString": "uint256"
14254 }
14255 },
14256 "id": 5597,
14257 "isConstant": false,
14258 "isLValue": false,
14259 "isPure": false,
14260 "lValueRequested": false,
14261 "memberName": "add",
14262 "nodeType": "MemberAccess",
14263 "referencedDeclaration": 5292,
14264 "src": "5307:16:22",
14265 "typeDescriptions": {
14266 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
14267 "typeString": "function (uint256,uint256) pure returns (uint256)"
14268 }
14269 },
14270 "id": 5599,
14271 "isConstant": false,
14272 "isLValue": false,
14273 "isPure": false,
14274 "kind": "functionCall",
14275 "lValueRequested": false,
14276 "names": [],
14277 "nodeType": "FunctionCall",
14278 "src": "5307:25:22",
14279 "typeDescriptions": {
14280 "typeIdentifier": "t_uint256",
14281 "typeString": "uint256"
14282 }
14283 },
14284 "src": "5292:40:22",
14285 "typeDescriptions": {
14286 "typeIdentifier": "t_uint256",
14287 "typeString": "uint256"
14288 }
14289 },
14290 "id": 5601,
14291 "nodeType": "ExpressionStatement",
14292 "src": "5292:40:22"
14293 },
14294 {
14295 "expression": {
14296 "argumentTypes": null,
14297 "id": 5611,
14298 "isConstant": false,
14299 "isLValue": false,
14300 "isPure": false,
14301 "lValueRequested": false,
14302 "leftHandSide": {
14303 "argumentTypes": null,
14304 "baseExpression": {
14305 "argumentTypes": null,
14306 "id": 5602,
14307 "name": "balances",
14308 "nodeType": "Identifier",
14309 "overloadedDeclarations": [],
14310 "referencedDeclaration": 5317,
14311 "src": "5342:8:22",
14312 "typeDescriptions": {
14313 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
14314 "typeString": "mapping(address => uint256)"
14315 }
14316 },
14317 "id": 5604,
14318 "indexExpression": {
14319 "argumentTypes": null,
14320 "id": 5603,
14321 "name": "_to",
14322 "nodeType": "Identifier",
14323 "overloadedDeclarations": [],
14324 "referencedDeclaration": 5584,
14325 "src": "5351:3:22",
14326 "typeDescriptions": {
14327 "typeIdentifier": "t_address",
14328 "typeString": "address"
14329 }
14330 },
14331 "isConstant": false,
14332 "isLValue": true,
14333 "isPure": false,
14334 "lValueRequested": true,
14335 "nodeType": "IndexAccess",
14336 "src": "5342:13:22",
14337 "typeDescriptions": {
14338 "typeIdentifier": "t_uint256",
14339 "typeString": "uint256"
14340 }
14341 },
14342 "nodeType": "Assignment",
14343 "operator": "=",
14344 "rightHandSide": {
14345 "argumentTypes": null,
14346 "arguments": [
14347 {
14348 "argumentTypes": null,
14349 "id": 5609,
14350 "name": "_amount",
14351 "nodeType": "Identifier",
14352 "overloadedDeclarations": [],
14353 "referencedDeclaration": 5586,
14354 "src": "5376:7:22",
14355 "typeDescriptions": {
14356 "typeIdentifier": "t_uint256",
14357 "typeString": "uint256"
14358 }
14359 }
14360 ],
14361 "expression": {
14362 "argumentTypes": [
14363 {
14364 "typeIdentifier": "t_uint256",
14365 "typeString": "uint256"
14366 }
14367 ],
14368 "expression": {
14369 "argumentTypes": null,
14370 "baseExpression": {
14371 "argumentTypes": null,
14372 "id": 5605,
14373 "name": "balances",
14374 "nodeType": "Identifier",
14375 "overloadedDeclarations": [],
14376 "referencedDeclaration": 5317,
14377 "src": "5358:8:22",
14378 "typeDescriptions": {
14379 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
14380 "typeString": "mapping(address => uint256)"
14381 }
14382 },
14383 "id": 5607,
14384 "indexExpression": {
14385 "argumentTypes": null,
14386 "id": 5606,
14387 "name": "_to",
14388 "nodeType": "Identifier",
14389 "overloadedDeclarations": [],
14390 "referencedDeclaration": 5584,
14391 "src": "5367:3:22",
14392 "typeDescriptions": {
14393 "typeIdentifier": "t_address",
14394 "typeString": "address"
14395 }
14396 },
14397 "isConstant": false,
14398 "isLValue": true,
14399 "isPure": false,
14400 "lValueRequested": false,
14401 "nodeType": "IndexAccess",
14402 "src": "5358:13:22",
14403 "typeDescriptions": {
14404 "typeIdentifier": "t_uint256",
14405 "typeString": "uint256"
14406 }
14407 },
14408 "id": 5608,
14409 "isConstant": false,
14410 "isLValue": false,
14411 "isPure": false,
14412 "lValueRequested": false,
14413 "memberName": "add",
14414 "nodeType": "MemberAccess",
14415 "referencedDeclaration": 5292,
14416 "src": "5358:17:22",
14417 "typeDescriptions": {
14418 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
14419 "typeString": "function (uint256,uint256) pure returns (uint256)"
14420 }
14421 },
14422 "id": 5610,
14423 "isConstant": false,
14424 "isLValue": false,
14425 "isPure": false,
14426 "kind": "functionCall",
14427 "lValueRequested": false,
14428 "names": [],
14429 "nodeType": "FunctionCall",
14430 "src": "5358:26:22",
14431 "typeDescriptions": {
14432 "typeIdentifier": "t_uint256",
14433 "typeString": "uint256"
14434 }
14435 },
14436 "src": "5342:42:22",
14437 "typeDescriptions": {
14438 "typeIdentifier": "t_uint256",
14439 "typeString": "uint256"
14440 }
14441 },
14442 "id": 5612,
14443 "nodeType": "ExpressionStatement",
14444 "src": "5342:42:22"
14445 },
14446 {
14447 "eventCall": {
14448 "argumentTypes": null,
14449 "arguments": [
14450 {
14451 "argumentTypes": null,
14452 "id": 5614,
14453 "name": "_to",
14454 "nodeType": "Identifier",
14455 "overloadedDeclarations": [],
14456 "referencedDeclaration": 5584,
14457 "src": "5404:3:22",
14458 "typeDescriptions": {
14459 "typeIdentifier": "t_address",
14460 "typeString": "address"
14461 }
14462 },
14463 {
14464 "argumentTypes": null,
14465 "id": 5615,
14466 "name": "_amount",
14467 "nodeType": "Identifier",
14468 "overloadedDeclarations": [],
14469 "referencedDeclaration": 5586,
14470 "src": "5409:7:22",
14471 "typeDescriptions": {
14472 "typeIdentifier": "t_uint256",
14473 "typeString": "uint256"
14474 }
14475 }
14476 ],
14477 "expression": {
14478 "argumentTypes": [
14479 {
14480 "typeIdentifier": "t_address",
14481 "typeString": "address"
14482 },
14483 {
14484 "typeIdentifier": "t_uint256",
14485 "typeString": "uint256"
14486 }
14487 ],
14488 "id": 5613,
14489 "name": "Mint",
14490 "nodeType": "Identifier",
14491 "overloadedDeclarations": [],
14492 "referencedDeclaration": 5340,
14493 "src": "5399:4:22",
14494 "typeDescriptions": {
14495 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
14496 "typeString": "function (address,uint256)"
14497 }
14498 },
14499 "id": 5616,
14500 "isConstant": false,
14501 "isLValue": false,
14502 "isPure": false,
14503 "kind": "functionCall",
14504 "lValueRequested": false,
14505 "names": [],
14506 "nodeType": "FunctionCall",
14507 "src": "5399:18:22",
14508 "typeDescriptions": {
14509 "typeIdentifier": "t_tuple$__$",
14510 "typeString": "tuple()"
14511 }
14512 },
14513 "id": 5617,
14514 "nodeType": "EmitStatement",
14515 "src": "5394:23:22"
14516 },
14517 {
14518 "eventCall": {
14519 "argumentTypes": null,
14520 "arguments": [
14521 {
14522 "argumentTypes": null,
14523 "arguments": [
14524 {
14525 "argumentTypes": null,
14526 "hexValue": "30",
14527 "id": 5620,
14528 "isConstant": false,
14529 "isLValue": false,
14530 "isPure": true,
14531 "kind": "number",
14532 "lValueRequested": false,
14533 "nodeType": "Literal",
14534 "src": "5449:1:22",
14535 "subdenomination": null,
14536 "typeDescriptions": {
14537 "typeIdentifier": "t_rational_0_by_1",
14538 "typeString": "int_const 0"
14539 },
14540 "value": "0"
14541 }
14542 ],
14543 "expression": {
14544 "argumentTypes": [
14545 {
14546 "typeIdentifier": "t_rational_0_by_1",
14547 "typeString": "int_const 0"
14548 }
14549 ],
14550 "id": 5619,
14551 "isConstant": false,
14552 "isLValue": false,
14553 "isPure": true,
14554 "lValueRequested": false,
14555 "nodeType": "ElementaryTypeNameExpression",
14556 "src": "5441:7:22",
14557 "typeDescriptions": {
14558 "typeIdentifier": "t_type$_t_address_$",
14559 "typeString": "type(address)"
14560 },
14561 "typeName": "address"
14562 },
14563 "id": 5621,
14564 "isConstant": false,
14565 "isLValue": false,
14566 "isPure": true,
14567 "kind": "typeConversion",
14568 "lValueRequested": false,
14569 "names": [],
14570 "nodeType": "FunctionCall",
14571 "src": "5441:10:22",
14572 "typeDescriptions": {
14573 "typeIdentifier": "t_address",
14574 "typeString": "address"
14575 }
14576 },
14577 {
14578 "argumentTypes": null,
14579 "id": 5622,
14580 "name": "_to",
14581 "nodeType": "Identifier",
14582 "overloadedDeclarations": [],
14583 "referencedDeclaration": 5584,
14584 "src": "5453:3:22",
14585 "typeDescriptions": {
14586 "typeIdentifier": "t_address",
14587 "typeString": "address"
14588 }
14589 },
14590 {
14591 "argumentTypes": null,
14592 "id": 5623,
14593 "name": "_amount",
14594 "nodeType": "Identifier",
14595 "overloadedDeclarations": [],
14596 "referencedDeclaration": 5586,
14597 "src": "5458:7:22",
14598 "typeDescriptions": {
14599 "typeIdentifier": "t_uint256",
14600 "typeString": "uint256"
14601 }
14602 }
14603 ],
14604 "expression": {
14605 "argumentTypes": [
14606 {
14607 "typeIdentifier": "t_address",
14608 "typeString": "address"
14609 },
14610 {
14611 "typeIdentifier": "t_address",
14612 "typeString": "address"
14613 },
14614 {
14615 "typeIdentifier": "t_uint256",
14616 "typeString": "uint256"
14617 }
14618 ],
14619 "id": 5618,
14620 "name": "Transfer",
14621 "nodeType": "Identifier",
14622 "overloadedDeclarations": [],
14623 "referencedDeclaration": 5334,
14624 "src": "5432:8:22",
14625 "typeDescriptions": {
14626 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
14627 "typeString": "function (address,address,uint256)"
14628 }
14629 },
14630 "id": 5624,
14631 "isConstant": false,
14632 "isLValue": false,
14633 "isPure": false,
14634 "kind": "functionCall",
14635 "lValueRequested": false,
14636 "names": [],
14637 "nodeType": "FunctionCall",
14638 "src": "5432:34:22",
14639 "typeDescriptions": {
14640 "typeIdentifier": "t_tuple$__$",
14641 "typeString": "tuple()"
14642 }
14643 },
14644 "id": 5625,
14645 "nodeType": "EmitStatement",
14646 "src": "5427:39:22"
14647 },
14648 {
14649 "expression": {
14650 "argumentTypes": null,
14651 "hexValue": "74727565",
14652 "id": 5626,
14653 "isConstant": false,
14654 "isLValue": false,
14655 "isPure": true,
14656 "kind": "bool",
14657 "lValueRequested": false,
14658 "nodeType": "Literal",
14659 "src": "5483:4:22",
14660 "subdenomination": null,
14661 "typeDescriptions": {
14662 "typeIdentifier": "t_bool",
14663 "typeString": "bool"
14664 },
14665 "value": "true"
14666 },
14667 "functionReturnParameters": 5594,
14668 "id": 5627,
14669 "nodeType": "Return",
14670 "src": "5476:11:22"
14671 }
14672 ]
14673 },
14674 "documentation": "@dev Function to mint tokens\n@param _to The address that will receive the minted tokens.\n@param _amount The amount of tokens to mint.\n@return A boolean that indicates if the operation was successful.",
14675 "id": 5629,
14676 "implemented": true,
14677 "isConstructor": false,
14678 "isDeclaredConst": false,
14679 "modifiers": [
14680 {
14681 "arguments": null,
14682 "id": 5589,
14683 "modifierName": {
14684 "argumentTypes": null,
14685 "id": 5588,
14686 "name": "hasMintPermission",
14687 "nodeType": "Identifier",
14688 "overloadedDeclarations": [],
14689 "referencedDeclaration": 5370,
14690 "src": "5218:17:22",
14691 "typeDescriptions": {
14692 "typeIdentifier": "t_modifier$__$",
14693 "typeString": "modifier ()"
14694 }
14695 },
14696 "nodeType": "ModifierInvocation",
14697 "src": "5218:17:22"
14698 },
14699 {
14700 "arguments": null,
14701 "id": 5591,
14702 "modifierName": {
14703 "argumentTypes": null,
14704 "id": 5590,
14705 "name": "canMint",
14706 "nodeType": "Identifier",
14707 "overloadedDeclarations": [],
14708 "referencedDeclaration": 5359,
14709 "src": "5240:7:22",
14710 "typeDescriptions": {
14711 "typeIdentifier": "t_modifier$__$",
14712 "typeString": "modifier ()"
14713 }
14714 },
14715 "nodeType": "ModifierInvocation",
14716 "src": "5240:7:22"
14717 }
14718 ],
14719 "name": "mint",
14720 "nodeType": "FunctionDefinition",
14721 "parameters": {
14722 "id": 5587,
14723 "nodeType": "ParameterList",
14724 "parameters": [
14725 {
14726 "constant": false,
14727 "id": 5584,
14728 "name": "_to",
14729 "nodeType": "VariableDeclaration",
14730 "scope": 5629,
14731 "src": "5171:11:22",
14732 "stateVariable": false,
14733 "storageLocation": "default",
14734 "typeDescriptions": {
14735 "typeIdentifier": "t_address",
14736 "typeString": "address"
14737 },
14738 "typeName": {
14739 "id": 5583,
14740 "name": "address",
14741 "nodeType": "ElementaryTypeName",
14742 "src": "5171:7:22",
14743 "typeDescriptions": {
14744 "typeIdentifier": "t_address",
14745 "typeString": "address"
14746 }
14747 },
14748 "value": null,
14749 "visibility": "internal"
14750 },
14751 {
14752 "constant": false,
14753 "id": 5586,
14754 "name": "_amount",
14755 "nodeType": "VariableDeclaration",
14756 "scope": 5629,
14757 "src": "5192:15:22",
14758 "stateVariable": false,
14759 "storageLocation": "default",
14760 "typeDescriptions": {
14761 "typeIdentifier": "t_uint256",
14762 "typeString": "uint256"
14763 },
14764 "typeName": {
14765 "id": 5585,
14766 "name": "uint256",
14767 "nodeType": "ElementaryTypeName",
14768 "src": "5192:7:22",
14769 "typeDescriptions": {
14770 "typeIdentifier": "t_uint256",
14771 "typeString": "uint256"
14772 }
14773 },
14774 "value": null,
14775 "visibility": "internal"
14776 }
14777 ],
14778 "src": "5161:52:22"
14779 },
14780 "payable": false,
14781 "returnParameters": {
14782 "id": 5594,
14783 "nodeType": "ParameterList",
14784 "parameters": [
14785 {
14786 "constant": false,
14787 "id": 5593,
14788 "name": "",
14789 "nodeType": "VariableDeclaration",
14790 "scope": 5629,
14791 "src": "5272:4:22",
14792 "stateVariable": false,
14793 "storageLocation": "default",
14794 "typeDescriptions": {
14795 "typeIdentifier": "t_bool",
14796 "typeString": "bool"
14797 },
14798 "typeName": {
14799 "id": 5592,
14800 "name": "bool",
14801 "nodeType": "ElementaryTypeName",
14802 "src": "5272:4:22",
14803 "typeDescriptions": {
14804 "typeIdentifier": "t_bool",
14805 "typeString": "bool"
14806 }
14807 },
14808 "value": null,
14809 "visibility": "internal"
14810 }
14811 ],
14812 "src": "5271:6:22"
14813 },
14814 "scope": 5881,
14815 "src": "5148:346:22",
14816 "stateMutability": "nonpayable",
14817 "superFunction": 5190,
14818 "visibility": "public"
14819 },
14820 {
14821 "body": {
14822 "id": 5647,
14823 "nodeType": "Block",
14824 "src": "5683:89:22",
14825 "statements": [
14826 {
14827 "expression": {
14828 "argumentTypes": null,
14829 "id": 5640,
14830 "isConstant": false,
14831 "isLValue": false,
14832 "isPure": false,
14833 "lValueRequested": false,
14834 "leftHandSide": {
14835 "argumentTypes": null,
14836 "id": 5638,
14837 "name": "mintingFinished",
14838 "nodeType": "Identifier",
14839 "overloadedDeclarations": [],
14840 "referencedDeclaration": 5320,
14841 "src": "5693:15:22",
14842 "typeDescriptions": {
14843 "typeIdentifier": "t_bool",
14844 "typeString": "bool"
14845 }
14846 },
14847 "nodeType": "Assignment",
14848 "operator": "=",
14849 "rightHandSide": {
14850 "argumentTypes": null,
14851 "hexValue": "74727565",
14852 "id": 5639,
14853 "isConstant": false,
14854 "isLValue": false,
14855 "isPure": true,
14856 "kind": "bool",
14857 "lValueRequested": false,
14858 "nodeType": "Literal",
14859 "src": "5711:4:22",
14860 "subdenomination": null,
14861 "typeDescriptions": {
14862 "typeIdentifier": "t_bool",
14863 "typeString": "bool"
14864 },
14865 "value": "true"
14866 },
14867 "src": "5693:22:22",
14868 "typeDescriptions": {
14869 "typeIdentifier": "t_bool",
14870 "typeString": "bool"
14871 }
14872 },
14873 "id": 5641,
14874 "nodeType": "ExpressionStatement",
14875 "src": "5693:22:22"
14876 },
14877 {
14878 "eventCall": {
14879 "argumentTypes": null,
14880 "arguments": [],
14881 "expression": {
14882 "argumentTypes": [],
14883 "id": 5642,
14884 "name": "MintFinished",
14885 "nodeType": "Identifier",
14886 "overloadedDeclarations": [],
14887 "referencedDeclaration": 5342,
14888 "src": "5730:12:22",
14889 "typeDescriptions": {
14890 "typeIdentifier": "t_function_event_nonpayable$__$returns$__$",
14891 "typeString": "function ()"
14892 }
14893 },
14894 "id": 5643,
14895 "isConstant": false,
14896 "isLValue": false,
14897 "isPure": false,
14898 "kind": "functionCall",
14899 "lValueRequested": false,
14900 "names": [],
14901 "nodeType": "FunctionCall",
14902 "src": "5730:14:22",
14903 "typeDescriptions": {
14904 "typeIdentifier": "t_tuple$__$",
14905 "typeString": "tuple()"
14906 }
14907 },
14908 "id": 5644,
14909 "nodeType": "EmitStatement",
14910 "src": "5725:19:22"
14911 },
14912 {
14913 "expression": {
14914 "argumentTypes": null,
14915 "hexValue": "74727565",
14916 "id": 5645,
14917 "isConstant": false,
14918 "isLValue": false,
14919 "isPure": true,
14920 "kind": "bool",
14921 "lValueRequested": false,
14922 "nodeType": "Literal",
14923 "src": "5761:4:22",
14924 "subdenomination": null,
14925 "typeDescriptions": {
14926 "typeIdentifier": "t_bool",
14927 "typeString": "bool"
14928 },
14929 "value": "true"
14930 },
14931 "functionReturnParameters": 5637,
14932 "id": 5646,
14933 "nodeType": "Return",
14934 "src": "5754:11:22"
14935 }
14936 ]
14937 },
14938 "documentation": "@dev Function to stop minting new tokens.\n@return True if the operation was successful.",
14939 "id": 5648,
14940 "implemented": true,
14941 "isConstructor": false,
14942 "isDeclaredConst": false,
14943 "modifiers": [
14944 {
14945 "arguments": null,
14946 "id": 5632,
14947 "modifierName": {
14948 "argumentTypes": null,
14949 "id": 5631,
14950 "name": "onlyOwner",
14951 "nodeType": "Identifier",
14952 "overloadedDeclarations": [],
14953 "referencedDeclaration": 177,
14954 "src": "5643:9:22",
14955 "typeDescriptions": {
14956 "typeIdentifier": "t_modifier$__$",
14957 "typeString": "modifier ()"
14958 }
14959 },
14960 "nodeType": "ModifierInvocation",
14961 "src": "5643:9:22"
14962 },
14963 {
14964 "arguments": null,
14965 "id": 5634,
14966 "modifierName": {
14967 "argumentTypes": null,
14968 "id": 5633,
14969 "name": "canMint",
14970 "nodeType": "Identifier",
14971 "overloadedDeclarations": [],
14972 "referencedDeclaration": 5359,
14973 "src": "5653:7:22",
14974 "typeDescriptions": {
14975 "typeIdentifier": "t_modifier$__$",
14976 "typeString": "modifier ()"
14977 }
14978 },
14979 "nodeType": "ModifierInvocation",
14980 "src": "5653:7:22"
14981 }
14982 ],
14983 "name": "finishMinting",
14984 "nodeType": "FunctionDefinition",
14985 "parameters": {
14986 "id": 5630,
14987 "nodeType": "ParameterList",
14988 "parameters": [],
14989 "src": "5640:2:22"
14990 },
14991 "payable": false,
14992 "returnParameters": {
14993 "id": 5637,
14994 "nodeType": "ParameterList",
14995 "parameters": [
14996 {
14997 "constant": false,
14998 "id": 5636,
14999 "name": "",
15000 "nodeType": "VariableDeclaration",
15001 "scope": 5648,
15002 "src": "5677:4:22",
15003 "stateVariable": false,
15004 "storageLocation": "default",
15005 "typeDescriptions": {
15006 "typeIdentifier": "t_bool",
15007 "typeString": "bool"
15008 },
15009 "typeName": {
15010 "id": 5635,
15011 "name": "bool",
15012 "nodeType": "ElementaryTypeName",
15013 "src": "5677:4:22",
15014 "typeDescriptions": {
15015 "typeIdentifier": "t_bool",
15016 "typeString": "bool"
15017 }
15018 },
15019 "value": null,
15020 "visibility": "internal"
15021 }
15022 ],
15023 "src": "5676:6:22"
15024 },
15025 "scope": 5881,
15026 "src": "5618:154:22",
15027 "stateMutability": "nonpayable",
15028 "superFunction": null,
15029 "visibility": "public"
15030 },
15031 {
15032 "body": {
15033 "id": 5733,
15034 "nodeType": "Block",
15035 "src": "6191:390:22",
15036 "statements": [
15037 {
15038 "expression": {
15039 "argumentTypes": null,
15040 "arguments": [
15041 {
15042 "argumentTypes": null,
15043 "commonType": {
15044 "typeIdentifier": "t_address",
15045 "typeString": "address"
15046 },
15047 "id": 5664,
15048 "isConstant": false,
15049 "isLValue": false,
15050 "isPure": false,
15051 "lValueRequested": false,
15052 "leftExpression": {
15053 "argumentTypes": null,
15054 "id": 5660,
15055 "name": "_to",
15056 "nodeType": "Identifier",
15057 "overloadedDeclarations": [],
15058 "referencedDeclaration": 5652,
15059 "src": "6209:3:22",
15060 "typeDescriptions": {
15061 "typeIdentifier": "t_address",
15062 "typeString": "address"
15063 }
15064 },
15065 "nodeType": "BinaryOperation",
15066 "operator": "!=",
15067 "rightExpression": {
15068 "argumentTypes": null,
15069 "arguments": [
15070 {
15071 "argumentTypes": null,
15072 "hexValue": "30",
15073 "id": 5662,
15074 "isConstant": false,
15075 "isLValue": false,
15076 "isPure": true,
15077 "kind": "number",
15078 "lValueRequested": false,
15079 "nodeType": "Literal",
15080 "src": "6224:1:22",
15081 "subdenomination": null,
15082 "typeDescriptions": {
15083 "typeIdentifier": "t_rational_0_by_1",
15084 "typeString": "int_const 0"
15085 },
15086 "value": "0"
15087 }
15088 ],
15089 "expression": {
15090 "argumentTypes": [
15091 {
15092 "typeIdentifier": "t_rational_0_by_1",
15093 "typeString": "int_const 0"
15094 }
15095 ],
15096 "id": 5661,
15097 "isConstant": false,
15098 "isLValue": false,
15099 "isPure": true,
15100 "lValueRequested": false,
15101 "nodeType": "ElementaryTypeNameExpression",
15102 "src": "6216:7:22",
15103 "typeDescriptions": {
15104 "typeIdentifier": "t_type$_t_address_$",
15105 "typeString": "type(address)"
15106 },
15107 "typeName": "address"
15108 },
15109 "id": 5663,
15110 "isConstant": false,
15111 "isLValue": false,
15112 "isPure": true,
15113 "kind": "typeConversion",
15114 "lValueRequested": false,
15115 "names": [],
15116 "nodeType": "FunctionCall",
15117 "src": "6216:10:22",
15118 "typeDescriptions": {
15119 "typeIdentifier": "t_address",
15120 "typeString": "address"
15121 }
15122 },
15123 "src": "6209:17:22",
15124 "typeDescriptions": {
15125 "typeIdentifier": "t_bool",
15126 "typeString": "bool"
15127 }
15128 }
15129 ],
15130 "expression": {
15131 "argumentTypes": [
15132 {
15133 "typeIdentifier": "t_bool",
15134 "typeString": "bool"
15135 }
15136 ],
15137 "id": 5659,
15138 "name": "require",
15139 "nodeType": "Identifier",
15140 "overloadedDeclarations": [
15141 12095,
15142 12096
15143 ],
15144 "referencedDeclaration": 12095,
15145 "src": "6201:7:22",
15146 "typeDescriptions": {
15147 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
15148 "typeString": "function (bool) pure"
15149 }
15150 },
15151 "id": 5665,
15152 "isConstant": false,
15153 "isLValue": false,
15154 "isPure": false,
15155 "kind": "functionCall",
15156 "lValueRequested": false,
15157 "names": [],
15158 "nodeType": "FunctionCall",
15159 "src": "6201:26:22",
15160 "typeDescriptions": {
15161 "typeIdentifier": "t_tuple$__$",
15162 "typeString": "tuple()"
15163 }
15164 },
15165 "id": 5666,
15166 "nodeType": "ExpressionStatement",
15167 "src": "6201:26:22"
15168 },
15169 {
15170 "expression": {
15171 "argumentTypes": null,
15172 "arguments": [
15173 {
15174 "argumentTypes": null,
15175 "commonType": {
15176 "typeIdentifier": "t_uint256",
15177 "typeString": "uint256"
15178 },
15179 "id": 5672,
15180 "isConstant": false,
15181 "isLValue": false,
15182 "isPure": false,
15183 "lValueRequested": false,
15184 "leftExpression": {
15185 "argumentTypes": null,
15186 "id": 5668,
15187 "name": "_value",
15188 "nodeType": "Identifier",
15189 "overloadedDeclarations": [],
15190 "referencedDeclaration": 5654,
15191 "src": "6245:6:22",
15192 "typeDescriptions": {
15193 "typeIdentifier": "t_uint256",
15194 "typeString": "uint256"
15195 }
15196 },
15197 "nodeType": "BinaryOperation",
15198 "operator": "<=",
15199 "rightExpression": {
15200 "argumentTypes": null,
15201 "baseExpression": {
15202 "argumentTypes": null,
15203 "id": 5669,
15204 "name": "balances",
15205 "nodeType": "Identifier",
15206 "overloadedDeclarations": [],
15207 "referencedDeclaration": 5317,
15208 "src": "6255:8:22",
15209 "typeDescriptions": {
15210 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
15211 "typeString": "mapping(address => uint256)"
15212 }
15213 },
15214 "id": 5671,
15215 "indexExpression": {
15216 "argumentTypes": null,
15217 "id": 5670,
15218 "name": "_from",
15219 "nodeType": "Identifier",
15220 "overloadedDeclarations": [],
15221 "referencedDeclaration": 5650,
15222 "src": "6264:5:22",
15223 "typeDescriptions": {
15224 "typeIdentifier": "t_address",
15225 "typeString": "address"
15226 }
15227 },
15228 "isConstant": false,
15229 "isLValue": true,
15230 "isPure": false,
15231 "lValueRequested": false,
15232 "nodeType": "IndexAccess",
15233 "src": "6255:15:22",
15234 "typeDescriptions": {
15235 "typeIdentifier": "t_uint256",
15236 "typeString": "uint256"
15237 }
15238 },
15239 "src": "6245:25:22",
15240 "typeDescriptions": {
15241 "typeIdentifier": "t_bool",
15242 "typeString": "bool"
15243 }
15244 }
15245 ],
15246 "expression": {
15247 "argumentTypes": [
15248 {
15249 "typeIdentifier": "t_bool",
15250 "typeString": "bool"
15251 }
15252 ],
15253 "id": 5667,
15254 "name": "require",
15255 "nodeType": "Identifier",
15256 "overloadedDeclarations": [
15257 12095,
15258 12096
15259 ],
15260 "referencedDeclaration": 12095,
15261 "src": "6237:7:22",
15262 "typeDescriptions": {
15263 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
15264 "typeString": "function (bool) pure"
15265 }
15266 },
15267 "id": 5673,
15268 "isConstant": false,
15269 "isLValue": false,
15270 "isPure": false,
15271 "kind": "functionCall",
15272 "lValueRequested": false,
15273 "names": [],
15274 "nodeType": "FunctionCall",
15275 "src": "6237:34:22",
15276 "typeDescriptions": {
15277 "typeIdentifier": "t_tuple$__$",
15278 "typeString": "tuple()"
15279 }
15280 },
15281 "id": 5674,
15282 "nodeType": "ExpressionStatement",
15283 "src": "6237:34:22"
15284 },
15285 {
15286 "expression": {
15287 "argumentTypes": null,
15288 "arguments": [
15289 {
15290 "argumentTypes": null,
15291 "commonType": {
15292 "typeIdentifier": "t_uint256",
15293 "typeString": "uint256"
15294 },
15295 "id": 5683,
15296 "isConstant": false,
15297 "isLValue": false,
15298 "isPure": false,
15299 "lValueRequested": false,
15300 "leftExpression": {
15301 "argumentTypes": null,
15302 "id": 5676,
15303 "name": "_value",
15304 "nodeType": "Identifier",
15305 "overloadedDeclarations": [],
15306 "referencedDeclaration": 5654,
15307 "src": "6289:6:22",
15308 "typeDescriptions": {
15309 "typeIdentifier": "t_uint256",
15310 "typeString": "uint256"
15311 }
15312 },
15313 "nodeType": "BinaryOperation",
15314 "operator": "<=",
15315 "rightExpression": {
15316 "argumentTypes": null,
15317 "baseExpression": {
15318 "argumentTypes": null,
15319 "baseExpression": {
15320 "argumentTypes": null,
15321 "id": 5677,
15322 "name": "allowed",
15323 "nodeType": "Identifier",
15324 "overloadedDeclarations": [],
15325 "referencedDeclaration": 5313,
15326 "src": "6299:7:22",
15327 "typeDescriptions": {
15328 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
15329 "typeString": "mapping(address => mapping(address => uint256))"
15330 }
15331 },
15332 "id": 5679,
15333 "indexExpression": {
15334 "argumentTypes": null,
15335 "id": 5678,
15336 "name": "_from",
15337 "nodeType": "Identifier",
15338 "overloadedDeclarations": [],
15339 "referencedDeclaration": 5650,
15340 "src": "6307:5:22",
15341 "typeDescriptions": {
15342 "typeIdentifier": "t_address",
15343 "typeString": "address"
15344 }
15345 },
15346 "isConstant": false,
15347 "isLValue": true,
15348 "isPure": false,
15349 "lValueRequested": false,
15350 "nodeType": "IndexAccess",
15351 "src": "6299:14:22",
15352 "typeDescriptions": {
15353 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
15354 "typeString": "mapping(address => uint256)"
15355 }
15356 },
15357 "id": 5682,
15358 "indexExpression": {
15359 "argumentTypes": null,
15360 "expression": {
15361 "argumentTypes": null,
15362 "id": 5680,
15363 "name": "msg",
15364 "nodeType": "Identifier",
15365 "overloadedDeclarations": [],
15366 "referencedDeclaration": 12092,
15367 "src": "6314:3:22",
15368 "typeDescriptions": {
15369 "typeIdentifier": "t_magic_message",
15370 "typeString": "msg"
15371 }
15372 },
15373 "id": 5681,
15374 "isConstant": false,
15375 "isLValue": false,
15376 "isPure": false,
15377 "lValueRequested": false,
15378 "memberName": "sender",
15379 "nodeType": "MemberAccess",
15380 "referencedDeclaration": null,
15381 "src": "6314:10:22",
15382 "typeDescriptions": {
15383 "typeIdentifier": "t_address",
15384 "typeString": "address"
15385 }
15386 },
15387 "isConstant": false,
15388 "isLValue": true,
15389 "isPure": false,
15390 "lValueRequested": false,
15391 "nodeType": "IndexAccess",
15392 "src": "6299:26:22",
15393 "typeDescriptions": {
15394 "typeIdentifier": "t_uint256",
15395 "typeString": "uint256"
15396 }
15397 },
15398 "src": "6289:36:22",
15399 "typeDescriptions": {
15400 "typeIdentifier": "t_bool",
15401 "typeString": "bool"
15402 }
15403 }
15404 ],
15405 "expression": {
15406 "argumentTypes": [
15407 {
15408 "typeIdentifier": "t_bool",
15409 "typeString": "bool"
15410 }
15411 ],
15412 "id": 5675,
15413 "name": "require",
15414 "nodeType": "Identifier",
15415 "overloadedDeclarations": [
15416 12095,
15417 12096
15418 ],
15419 "referencedDeclaration": 12095,
15420 "src": "6281:7:22",
15421 "typeDescriptions": {
15422 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
15423 "typeString": "function (bool) pure"
15424 }
15425 },
15426 "id": 5684,
15427 "isConstant": false,
15428 "isLValue": false,
15429 "isPure": false,
15430 "kind": "functionCall",
15431 "lValueRequested": false,
15432 "names": [],
15433 "nodeType": "FunctionCall",
15434 "src": "6281:45:22",
15435 "typeDescriptions": {
15436 "typeIdentifier": "t_tuple$__$",
15437 "typeString": "tuple()"
15438 }
15439 },
15440 "id": 5685,
15441 "nodeType": "ExpressionStatement",
15442 "src": "6281:45:22"
15443 },
15444 {
15445 "expression": {
15446 "argumentTypes": null,
15447 "id": 5695,
15448 "isConstant": false,
15449 "isLValue": false,
15450 "isPure": false,
15451 "lValueRequested": false,
15452 "leftHandSide": {
15453 "argumentTypes": null,
15454 "baseExpression": {
15455 "argumentTypes": null,
15456 "id": 5686,
15457 "name": "balances",
15458 "nodeType": "Identifier",
15459 "overloadedDeclarations": [],
15460 "referencedDeclaration": 5317,
15461 "src": "6337:8:22",
15462 "typeDescriptions": {
15463 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
15464 "typeString": "mapping(address => uint256)"
15465 }
15466 },
15467 "id": 5688,
15468 "indexExpression": {
15469 "argumentTypes": null,
15470 "id": 5687,
15471 "name": "_from",
15472 "nodeType": "Identifier",
15473 "overloadedDeclarations": [],
15474 "referencedDeclaration": 5650,
15475 "src": "6346:5:22",
15476 "typeDescriptions": {
15477 "typeIdentifier": "t_address",
15478 "typeString": "address"
15479 }
15480 },
15481 "isConstant": false,
15482 "isLValue": true,
15483 "isPure": false,
15484 "lValueRequested": true,
15485 "nodeType": "IndexAccess",
15486 "src": "6337:15:22",
15487 "typeDescriptions": {
15488 "typeIdentifier": "t_uint256",
15489 "typeString": "uint256"
15490 }
15491 },
15492 "nodeType": "Assignment",
15493 "operator": "=",
15494 "rightHandSide": {
15495 "argumentTypes": null,
15496 "arguments": [
15497 {
15498 "argumentTypes": null,
15499 "id": 5693,
15500 "name": "_value",
15501 "nodeType": "Identifier",
15502 "overloadedDeclarations": [],
15503 "referencedDeclaration": 5654,
15504 "src": "6375:6:22",
15505 "typeDescriptions": {
15506 "typeIdentifier": "t_uint256",
15507 "typeString": "uint256"
15508 }
15509 }
15510 ],
15511 "expression": {
15512 "argumentTypes": [
15513 {
15514 "typeIdentifier": "t_uint256",
15515 "typeString": "uint256"
15516 }
15517 ],
15518 "expression": {
15519 "argumentTypes": null,
15520 "baseExpression": {
15521 "argumentTypes": null,
15522 "id": 5689,
15523 "name": "balances",
15524 "nodeType": "Identifier",
15525 "overloadedDeclarations": [],
15526 "referencedDeclaration": 5317,
15527 "src": "6355:8:22",
15528 "typeDescriptions": {
15529 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
15530 "typeString": "mapping(address => uint256)"
15531 }
15532 },
15533 "id": 5691,
15534 "indexExpression": {
15535 "argumentTypes": null,
15536 "id": 5690,
15537 "name": "_from",
15538 "nodeType": "Identifier",
15539 "overloadedDeclarations": [],
15540 "referencedDeclaration": 5650,
15541 "src": "6364:5:22",
15542 "typeDescriptions": {
15543 "typeIdentifier": "t_address",
15544 "typeString": "address"
15545 }
15546 },
15547 "isConstant": false,
15548 "isLValue": true,
15549 "isPure": false,
15550 "lValueRequested": false,
15551 "nodeType": "IndexAccess",
15552 "src": "6355:15:22",
15553 "typeDescriptions": {
15554 "typeIdentifier": "t_uint256",
15555 "typeString": "uint256"
15556 }
15557 },
15558 "id": 5692,
15559 "isConstant": false,
15560 "isLValue": false,
15561 "isPure": false,
15562 "lValueRequested": false,
15563 "memberName": "sub",
15564 "nodeType": "MemberAccess",
15565 "referencedDeclaration": 5268,
15566 "src": "6355:19:22",
15567 "typeDescriptions": {
15568 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
15569 "typeString": "function (uint256,uint256) pure returns (uint256)"
15570 }
15571 },
15572 "id": 5694,
15573 "isConstant": false,
15574 "isLValue": false,
15575 "isPure": false,
15576 "kind": "functionCall",
15577 "lValueRequested": false,
15578 "names": [],
15579 "nodeType": "FunctionCall",
15580 "src": "6355:27:22",
15581 "typeDescriptions": {
15582 "typeIdentifier": "t_uint256",
15583 "typeString": "uint256"
15584 }
15585 },
15586 "src": "6337:45:22",
15587 "typeDescriptions": {
15588 "typeIdentifier": "t_uint256",
15589 "typeString": "uint256"
15590 }
15591 },
15592 "id": 5696,
15593 "nodeType": "ExpressionStatement",
15594 "src": "6337:45:22"
15595 },
15596 {
15597 "expression": {
15598 "argumentTypes": null,
15599 "id": 5706,
15600 "isConstant": false,
15601 "isLValue": false,
15602 "isPure": false,
15603 "lValueRequested": false,
15604 "leftHandSide": {
15605 "argumentTypes": null,
15606 "baseExpression": {
15607 "argumentTypes": null,
15608 "id": 5697,
15609 "name": "balances",
15610 "nodeType": "Identifier",
15611 "overloadedDeclarations": [],
15612 "referencedDeclaration": 5317,
15613 "src": "6392:8:22",
15614 "typeDescriptions": {
15615 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
15616 "typeString": "mapping(address => uint256)"
15617 }
15618 },
15619 "id": 5699,
15620 "indexExpression": {
15621 "argumentTypes": null,
15622 "id": 5698,
15623 "name": "_to",
15624 "nodeType": "Identifier",
15625 "overloadedDeclarations": [],
15626 "referencedDeclaration": 5652,
15627 "src": "6401:3:22",
15628 "typeDescriptions": {
15629 "typeIdentifier": "t_address",
15630 "typeString": "address"
15631 }
15632 },
15633 "isConstant": false,
15634 "isLValue": true,
15635 "isPure": false,
15636 "lValueRequested": true,
15637 "nodeType": "IndexAccess",
15638 "src": "6392:13:22",
15639 "typeDescriptions": {
15640 "typeIdentifier": "t_uint256",
15641 "typeString": "uint256"
15642 }
15643 },
15644 "nodeType": "Assignment",
15645 "operator": "=",
15646 "rightHandSide": {
15647 "argumentTypes": null,
15648 "arguments": [
15649 {
15650 "argumentTypes": null,
15651 "id": 5704,
15652 "name": "_value",
15653 "nodeType": "Identifier",
15654 "overloadedDeclarations": [],
15655 "referencedDeclaration": 5654,
15656 "src": "6426:6:22",
15657 "typeDescriptions": {
15658 "typeIdentifier": "t_uint256",
15659 "typeString": "uint256"
15660 }
15661 }
15662 ],
15663 "expression": {
15664 "argumentTypes": [
15665 {
15666 "typeIdentifier": "t_uint256",
15667 "typeString": "uint256"
15668 }
15669 ],
15670 "expression": {
15671 "argumentTypes": null,
15672 "baseExpression": {
15673 "argumentTypes": null,
15674 "id": 5700,
15675 "name": "balances",
15676 "nodeType": "Identifier",
15677 "overloadedDeclarations": [],
15678 "referencedDeclaration": 5317,
15679 "src": "6408:8:22",
15680 "typeDescriptions": {
15681 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
15682 "typeString": "mapping(address => uint256)"
15683 }
15684 },
15685 "id": 5702,
15686 "indexExpression": {
15687 "argumentTypes": null,
15688 "id": 5701,
15689 "name": "_to",
15690 "nodeType": "Identifier",
15691 "overloadedDeclarations": [],
15692 "referencedDeclaration": 5652,
15693 "src": "6417:3:22",
15694 "typeDescriptions": {
15695 "typeIdentifier": "t_address",
15696 "typeString": "address"
15697 }
15698 },
15699 "isConstant": false,
15700 "isLValue": true,
15701 "isPure": false,
15702 "lValueRequested": false,
15703 "nodeType": "IndexAccess",
15704 "src": "6408:13:22",
15705 "typeDescriptions": {
15706 "typeIdentifier": "t_uint256",
15707 "typeString": "uint256"
15708 }
15709 },
15710 "id": 5703,
15711 "isConstant": false,
15712 "isLValue": false,
15713 "isPure": false,
15714 "lValueRequested": false,
15715 "memberName": "add",
15716 "nodeType": "MemberAccess",
15717 "referencedDeclaration": 5292,
15718 "src": "6408:17:22",
15719 "typeDescriptions": {
15720 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
15721 "typeString": "function (uint256,uint256) pure returns (uint256)"
15722 }
15723 },
15724 "id": 5705,
15725 "isConstant": false,
15726 "isLValue": false,
15727 "isPure": false,
15728 "kind": "functionCall",
15729 "lValueRequested": false,
15730 "names": [],
15731 "nodeType": "FunctionCall",
15732 "src": "6408:25:22",
15733 "typeDescriptions": {
15734 "typeIdentifier": "t_uint256",
15735 "typeString": "uint256"
15736 }
15737 },
15738 "src": "6392:41:22",
15739 "typeDescriptions": {
15740 "typeIdentifier": "t_uint256",
15741 "typeString": "uint256"
15742 }
15743 },
15744 "id": 5707,
15745 "nodeType": "ExpressionStatement",
15746 "src": "6392:41:22"
15747 },
15748 {
15749 "expression": {
15750 "argumentTypes": null,
15751 "id": 5723,
15752 "isConstant": false,
15753 "isLValue": false,
15754 "isPure": false,
15755 "lValueRequested": false,
15756 "leftHandSide": {
15757 "argumentTypes": null,
15758 "baseExpression": {
15759 "argumentTypes": null,
15760 "baseExpression": {
15761 "argumentTypes": null,
15762 "id": 5708,
15763 "name": "allowed",
15764 "nodeType": "Identifier",
15765 "overloadedDeclarations": [],
15766 "referencedDeclaration": 5313,
15767 "src": "6443:7:22",
15768 "typeDescriptions": {
15769 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
15770 "typeString": "mapping(address => mapping(address => uint256))"
15771 }
15772 },
15773 "id": 5712,
15774 "indexExpression": {
15775 "argumentTypes": null,
15776 "id": 5709,
15777 "name": "_from",
15778 "nodeType": "Identifier",
15779 "overloadedDeclarations": [],
15780 "referencedDeclaration": 5650,
15781 "src": "6451:5:22",
15782 "typeDescriptions": {
15783 "typeIdentifier": "t_address",
15784 "typeString": "address"
15785 }
15786 },
15787 "isConstant": false,
15788 "isLValue": true,
15789 "isPure": false,
15790 "lValueRequested": false,
15791 "nodeType": "IndexAccess",
15792 "src": "6443:14:22",
15793 "typeDescriptions": {
15794 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
15795 "typeString": "mapping(address => uint256)"
15796 }
15797 },
15798 "id": 5713,
15799 "indexExpression": {
15800 "argumentTypes": null,
15801 "expression": {
15802 "argumentTypes": null,
15803 "id": 5710,
15804 "name": "msg",
15805 "nodeType": "Identifier",
15806 "overloadedDeclarations": [],
15807 "referencedDeclaration": 12092,
15808 "src": "6458:3:22",
15809 "typeDescriptions": {
15810 "typeIdentifier": "t_magic_message",
15811 "typeString": "msg"
15812 }
15813 },
15814 "id": 5711,
15815 "isConstant": false,
15816 "isLValue": false,
15817 "isPure": false,
15818 "lValueRequested": false,
15819 "memberName": "sender",
15820 "nodeType": "MemberAccess",
15821 "referencedDeclaration": null,
15822 "src": "6458:10:22",
15823 "typeDescriptions": {
15824 "typeIdentifier": "t_address",
15825 "typeString": "address"
15826 }
15827 },
15828 "isConstant": false,
15829 "isLValue": true,
15830 "isPure": false,
15831 "lValueRequested": true,
15832 "nodeType": "IndexAccess",
15833 "src": "6443:26:22",
15834 "typeDescriptions": {
15835 "typeIdentifier": "t_uint256",
15836 "typeString": "uint256"
15837 }
15838 },
15839 "nodeType": "Assignment",
15840 "operator": "=",
15841 "rightHandSide": {
15842 "argumentTypes": null,
15843 "arguments": [
15844 {
15845 "argumentTypes": null,
15846 "id": 5721,
15847 "name": "_value",
15848 "nodeType": "Identifier",
15849 "overloadedDeclarations": [],
15850 "referencedDeclaration": 5654,
15851 "src": "6503:6:22",
15852 "typeDescriptions": {
15853 "typeIdentifier": "t_uint256",
15854 "typeString": "uint256"
15855 }
15856 }
15857 ],
15858 "expression": {
15859 "argumentTypes": [
15860 {
15861 "typeIdentifier": "t_uint256",
15862 "typeString": "uint256"
15863 }
15864 ],
15865 "expression": {
15866 "argumentTypes": null,
15867 "baseExpression": {
15868 "argumentTypes": null,
15869 "baseExpression": {
15870 "argumentTypes": null,
15871 "id": 5714,
15872 "name": "allowed",
15873 "nodeType": "Identifier",
15874 "overloadedDeclarations": [],
15875 "referencedDeclaration": 5313,
15876 "src": "6472:7:22",
15877 "typeDescriptions": {
15878 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
15879 "typeString": "mapping(address => mapping(address => uint256))"
15880 }
15881 },
15882 "id": 5716,
15883 "indexExpression": {
15884 "argumentTypes": null,
15885 "id": 5715,
15886 "name": "_from",
15887 "nodeType": "Identifier",
15888 "overloadedDeclarations": [],
15889 "referencedDeclaration": 5650,
15890 "src": "6480:5:22",
15891 "typeDescriptions": {
15892 "typeIdentifier": "t_address",
15893 "typeString": "address"
15894 }
15895 },
15896 "isConstant": false,
15897 "isLValue": true,
15898 "isPure": false,
15899 "lValueRequested": false,
15900 "nodeType": "IndexAccess",
15901 "src": "6472:14:22",
15902 "typeDescriptions": {
15903 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
15904 "typeString": "mapping(address => uint256)"
15905 }
15906 },
15907 "id": 5719,
15908 "indexExpression": {
15909 "argumentTypes": null,
15910 "expression": {
15911 "argumentTypes": null,
15912 "id": 5717,
15913 "name": "msg",
15914 "nodeType": "Identifier",
15915 "overloadedDeclarations": [],
15916 "referencedDeclaration": 12092,
15917 "src": "6487:3:22",
15918 "typeDescriptions": {
15919 "typeIdentifier": "t_magic_message",
15920 "typeString": "msg"
15921 }
15922 },
15923 "id": 5718,
15924 "isConstant": false,
15925 "isLValue": false,
15926 "isPure": false,
15927 "lValueRequested": false,
15928 "memberName": "sender",
15929 "nodeType": "MemberAccess",
15930 "referencedDeclaration": null,
15931 "src": "6487:10:22",
15932 "typeDescriptions": {
15933 "typeIdentifier": "t_address",
15934 "typeString": "address"
15935 }
15936 },
15937 "isConstant": false,
15938 "isLValue": true,
15939 "isPure": false,
15940 "lValueRequested": false,
15941 "nodeType": "IndexAccess",
15942 "src": "6472:26:22",
15943 "typeDescriptions": {
15944 "typeIdentifier": "t_uint256",
15945 "typeString": "uint256"
15946 }
15947 },
15948 "id": 5720,
15949 "isConstant": false,
15950 "isLValue": false,
15951 "isPure": false,
15952 "lValueRequested": false,
15953 "memberName": "sub",
15954 "nodeType": "MemberAccess",
15955 "referencedDeclaration": 5268,
15956 "src": "6472:30:22",
15957 "typeDescriptions": {
15958 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
15959 "typeString": "function (uint256,uint256) pure returns (uint256)"
15960 }
15961 },
15962 "id": 5722,
15963 "isConstant": false,
15964 "isLValue": false,
15965 "isPure": false,
15966 "kind": "functionCall",
15967 "lValueRequested": false,
15968 "names": [],
15969 "nodeType": "FunctionCall",
15970 "src": "6472:38:22",
15971 "typeDescriptions": {
15972 "typeIdentifier": "t_uint256",
15973 "typeString": "uint256"
15974 }
15975 },
15976 "src": "6443:67:22",
15977 "typeDescriptions": {
15978 "typeIdentifier": "t_uint256",
15979 "typeString": "uint256"
15980 }
15981 },
15982 "id": 5724,
15983 "nodeType": "ExpressionStatement",
15984 "src": "6443:67:22"
15985 },
15986 {
15987 "eventCall": {
15988 "argumentTypes": null,
15989 "arguments": [
15990 {
15991 "argumentTypes": null,
15992 "id": 5726,
15993 "name": "_from",
15994 "nodeType": "Identifier",
15995 "overloadedDeclarations": [],
15996 "referencedDeclaration": 5650,
15997 "src": "6534:5:22",
15998 "typeDescriptions": {
15999 "typeIdentifier": "t_address",
16000 "typeString": "address"
16001 }
16002 },
16003 {
16004 "argumentTypes": null,
16005 "id": 5727,
16006 "name": "_to",
16007 "nodeType": "Identifier",
16008 "overloadedDeclarations": [],
16009 "referencedDeclaration": 5652,
16010 "src": "6541:3:22",
16011 "typeDescriptions": {
16012 "typeIdentifier": "t_address",
16013 "typeString": "address"
16014 }
16015 },
16016 {
16017 "argumentTypes": null,
16018 "id": 5728,
16019 "name": "_value",
16020 "nodeType": "Identifier",
16021 "overloadedDeclarations": [],
16022 "referencedDeclaration": 5654,
16023 "src": "6546:6:22",
16024 "typeDescriptions": {
16025 "typeIdentifier": "t_uint256",
16026 "typeString": "uint256"
16027 }
16028 }
16029 ],
16030 "expression": {
16031 "argumentTypes": [
16032 {
16033 "typeIdentifier": "t_address",
16034 "typeString": "address"
16035 },
16036 {
16037 "typeIdentifier": "t_address",
16038 "typeString": "address"
16039 },
16040 {
16041 "typeIdentifier": "t_uint256",
16042 "typeString": "uint256"
16043 }
16044 ],
16045 "id": 5725,
16046 "name": "Transfer",
16047 "nodeType": "Identifier",
16048 "overloadedDeclarations": [],
16049 "referencedDeclaration": 5334,
16050 "src": "6525:8:22",
16051 "typeDescriptions": {
16052 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
16053 "typeString": "function (address,address,uint256)"
16054 }
16055 },
16056 "id": 5729,
16057 "isConstant": false,
16058 "isLValue": false,
16059 "isPure": false,
16060 "kind": "functionCall",
16061 "lValueRequested": false,
16062 "names": [],
16063 "nodeType": "FunctionCall",
16064 "src": "6525:28:22",
16065 "typeDescriptions": {
16066 "typeIdentifier": "t_tuple$__$",
16067 "typeString": "tuple()"
16068 }
16069 },
16070 "id": 5730,
16071 "nodeType": "EmitStatement",
16072 "src": "6520:33:22"
16073 },
16074 {
16075 "expression": {
16076 "argumentTypes": null,
16077 "hexValue": "74727565",
16078 "id": 5731,
16079 "isConstant": false,
16080 "isLValue": false,
16081 "isPure": true,
16082 "kind": "bool",
16083 "lValueRequested": false,
16084 "nodeType": "Literal",
16085 "src": "6570:4:22",
16086 "subdenomination": null,
16087 "typeDescriptions": {
16088 "typeIdentifier": "t_bool",
16089 "typeString": "bool"
16090 },
16091 "value": "true"
16092 },
16093 "functionReturnParameters": 5658,
16094 "id": 5732,
16095 "nodeType": "Return",
16096 "src": "6563:11:22"
16097 }
16098 ]
16099 },
16100 "documentation": "@dev Transfer tokens from one address to another\n@param _from address The address which you want to send tokens from\n@param _to address The address which you want to transfer to\n@param _value uint256 the amount of tokens to be transferred",
16101 "id": 5734,
16102 "implemented": true,
16103 "isConstructor": false,
16104 "isDeclaredConst": false,
16105 "modifiers": [],
16106 "name": "transferFrom",
16107 "nodeType": "FunctionDefinition",
16108 "parameters": {
16109 "id": 5655,
16110 "nodeType": "ParameterList",
16111 "parameters": [
16112 {
16113 "constant": false,
16114 "id": 5650,
16115 "name": "_from",
16116 "nodeType": "VariableDeclaration",
16117 "scope": 5734,
16118 "src": "6092:13:22",
16119 "stateVariable": false,
16120 "storageLocation": "default",
16121 "typeDescriptions": {
16122 "typeIdentifier": "t_address",
16123 "typeString": "address"
16124 },
16125 "typeName": {
16126 "id": 5649,
16127 "name": "address",
16128 "nodeType": "ElementaryTypeName",
16129 "src": "6092:7:22",
16130 "typeDescriptions": {
16131 "typeIdentifier": "t_address",
16132 "typeString": "address"
16133 }
16134 },
16135 "value": null,
16136 "visibility": "internal"
16137 },
16138 {
16139 "constant": false,
16140 "id": 5652,
16141 "name": "_to",
16142 "nodeType": "VariableDeclaration",
16143 "scope": 5734,
16144 "src": "6115:11:22",
16145 "stateVariable": false,
16146 "storageLocation": "default",
16147 "typeDescriptions": {
16148 "typeIdentifier": "t_address",
16149 "typeString": "address"
16150 },
16151 "typeName": {
16152 "id": 5651,
16153 "name": "address",
16154 "nodeType": "ElementaryTypeName",
16155 "src": "6115:7:22",
16156 "typeDescriptions": {
16157 "typeIdentifier": "t_address",
16158 "typeString": "address"
16159 }
16160 },
16161 "value": null,
16162 "visibility": "internal"
16163 },
16164 {
16165 "constant": false,
16166 "id": 5654,
16167 "name": "_value",
16168 "nodeType": "VariableDeclaration",
16169 "scope": 5734,
16170 "src": "6136:14:22",
16171 "stateVariable": false,
16172 "storageLocation": "default",
16173 "typeDescriptions": {
16174 "typeIdentifier": "t_uint256",
16175 "typeString": "uint256"
16176 },
16177 "typeName": {
16178 "id": 5653,
16179 "name": "uint256",
16180 "nodeType": "ElementaryTypeName",
16181 "src": "6136:7:22",
16182 "typeDescriptions": {
16183 "typeIdentifier": "t_uint256",
16184 "typeString": "uint256"
16185 }
16186 },
16187 "value": null,
16188 "visibility": "internal"
16189 }
16190 ],
16191 "src": "6082:74:22"
16192 },
16193 "payable": false,
16194 "returnParameters": {
16195 "id": 5658,
16196 "nodeType": "ParameterList",
16197 "parameters": [
16198 {
16199 "constant": false,
16200 "id": 5657,
16201 "name": "",
16202 "nodeType": "VariableDeclaration",
16203 "scope": 5734,
16204 "src": "6181:4:22",
16205 "stateVariable": false,
16206 "storageLocation": "default",
16207 "typeDescriptions": {
16208 "typeIdentifier": "t_bool",
16209 "typeString": "bool"
16210 },
16211 "typeName": {
16212 "id": 5656,
16213 "name": "bool",
16214 "nodeType": "ElementaryTypeName",
16215 "src": "6181:4:22",
16216 "typeDescriptions": {
16217 "typeIdentifier": "t_bool",
16218 "typeString": "bool"
16219 }
16220 },
16221 "value": null,
16222 "visibility": "internal"
16223 }
16224 ],
16225 "src": "6180:6:22"
16226 },
16227 "scope": 5881,
16228 "src": "6061:520:22",
16229 "stateMutability": "nonpayable",
16230 "superFunction": 5163,
16231 "visibility": "public"
16232 },
16233 {
16234 "body": {
16235 "id": 5761,
16236 "nodeType": "Block",
16237 "src": "7299:129:22",
16238 "statements": [
16239 {
16240 "expression": {
16241 "argumentTypes": null,
16242 "id": 5750,
16243 "isConstant": false,
16244 "isLValue": false,
16245 "isPure": false,
16246 "lValueRequested": false,
16247 "leftHandSide": {
16248 "argumentTypes": null,
16249 "baseExpression": {
16250 "argumentTypes": null,
16251 "baseExpression": {
16252 "argumentTypes": null,
16253 "id": 5743,
16254 "name": "allowed",
16255 "nodeType": "Identifier",
16256 "overloadedDeclarations": [],
16257 "referencedDeclaration": 5313,
16258 "src": "7309:7:22",
16259 "typeDescriptions": {
16260 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
16261 "typeString": "mapping(address => mapping(address => uint256))"
16262 }
16263 },
16264 "id": 5747,
16265 "indexExpression": {
16266 "argumentTypes": null,
16267 "expression": {
16268 "argumentTypes": null,
16269 "id": 5744,
16270 "name": "msg",
16271 "nodeType": "Identifier",
16272 "overloadedDeclarations": [],
16273 "referencedDeclaration": 12092,
16274 "src": "7317:3:22",
16275 "typeDescriptions": {
16276 "typeIdentifier": "t_magic_message",
16277 "typeString": "msg"
16278 }
16279 },
16280 "id": 5745,
16281 "isConstant": false,
16282 "isLValue": false,
16283 "isPure": false,
16284 "lValueRequested": false,
16285 "memberName": "sender",
16286 "nodeType": "MemberAccess",
16287 "referencedDeclaration": null,
16288 "src": "7317:10:22",
16289 "typeDescriptions": {
16290 "typeIdentifier": "t_address",
16291 "typeString": "address"
16292 }
16293 },
16294 "isConstant": false,
16295 "isLValue": true,
16296 "isPure": false,
16297 "lValueRequested": false,
16298 "nodeType": "IndexAccess",
16299 "src": "7309:19:22",
16300 "typeDescriptions": {
16301 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
16302 "typeString": "mapping(address => uint256)"
16303 }
16304 },
16305 "id": 5748,
16306 "indexExpression": {
16307 "argumentTypes": null,
16308 "id": 5746,
16309 "name": "_spender",
16310 "nodeType": "Identifier",
16311 "overloadedDeclarations": [],
16312 "referencedDeclaration": 5736,
16313 "src": "7329:8:22",
16314 "typeDescriptions": {
16315 "typeIdentifier": "t_address",
16316 "typeString": "address"
16317 }
16318 },
16319 "isConstant": false,
16320 "isLValue": true,
16321 "isPure": false,
16322 "lValueRequested": true,
16323 "nodeType": "IndexAccess",
16324 "src": "7309:29:22",
16325 "typeDescriptions": {
16326 "typeIdentifier": "t_uint256",
16327 "typeString": "uint256"
16328 }
16329 },
16330 "nodeType": "Assignment",
16331 "operator": "=",
16332 "rightHandSide": {
16333 "argumentTypes": null,
16334 "id": 5749,
16335 "name": "_value",
16336 "nodeType": "Identifier",
16337 "overloadedDeclarations": [],
16338 "referencedDeclaration": 5738,
16339 "src": "7341:6:22",
16340 "typeDescriptions": {
16341 "typeIdentifier": "t_uint256",
16342 "typeString": "uint256"
16343 }
16344 },
16345 "src": "7309:38:22",
16346 "typeDescriptions": {
16347 "typeIdentifier": "t_uint256",
16348 "typeString": "uint256"
16349 }
16350 },
16351 "id": 5751,
16352 "nodeType": "ExpressionStatement",
16353 "src": "7309:38:22"
16354 },
16355 {
16356 "eventCall": {
16357 "argumentTypes": null,
16358 "arguments": [
16359 {
16360 "argumentTypes": null,
16361 "expression": {
16362 "argumentTypes": null,
16363 "id": 5753,
16364 "name": "msg",
16365 "nodeType": "Identifier",
16366 "overloadedDeclarations": [],
16367 "referencedDeclaration": 12092,
16368 "src": "7371:3:22",
16369 "typeDescriptions": {
16370 "typeIdentifier": "t_magic_message",
16371 "typeString": "msg"
16372 }
16373 },
16374 "id": 5754,
16375 "isConstant": false,
16376 "isLValue": false,
16377 "isPure": false,
16378 "lValueRequested": false,
16379 "memberName": "sender",
16380 "nodeType": "MemberAccess",
16381 "referencedDeclaration": null,
16382 "src": "7371:10:22",
16383 "typeDescriptions": {
16384 "typeIdentifier": "t_address",
16385 "typeString": "address"
16386 }
16387 },
16388 {
16389 "argumentTypes": null,
16390 "id": 5755,
16391 "name": "_spender",
16392 "nodeType": "Identifier",
16393 "overloadedDeclarations": [],
16394 "referencedDeclaration": 5736,
16395 "src": "7383:8:22",
16396 "typeDescriptions": {
16397 "typeIdentifier": "t_address",
16398 "typeString": "address"
16399 }
16400 },
16401 {
16402 "argumentTypes": null,
16403 "id": 5756,
16404 "name": "_value",
16405 "nodeType": "Identifier",
16406 "overloadedDeclarations": [],
16407 "referencedDeclaration": 5738,
16408 "src": "7393:6:22",
16409 "typeDescriptions": {
16410 "typeIdentifier": "t_uint256",
16411 "typeString": "uint256"
16412 }
16413 }
16414 ],
16415 "expression": {
16416 "argumentTypes": [
16417 {
16418 "typeIdentifier": "t_address",
16419 "typeString": "address"
16420 },
16421 {
16422 "typeIdentifier": "t_address",
16423 "typeString": "address"
16424 },
16425 {
16426 "typeIdentifier": "t_uint256",
16427 "typeString": "uint256"
16428 }
16429 ],
16430 "id": 5752,
16431 "name": "Approval",
16432 "nodeType": "Identifier",
16433 "overloadedDeclarations": [],
16434 "referencedDeclaration": 5350,
16435 "src": "7362:8:22",
16436 "typeDescriptions": {
16437 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
16438 "typeString": "function (address,address,uint256)"
16439 }
16440 },
16441 "id": 5757,
16442 "isConstant": false,
16443 "isLValue": false,
16444 "isPure": false,
16445 "kind": "functionCall",
16446 "lValueRequested": false,
16447 "names": [],
16448 "nodeType": "FunctionCall",
16449 "src": "7362:38:22",
16450 "typeDescriptions": {
16451 "typeIdentifier": "t_tuple$__$",
16452 "typeString": "tuple()"
16453 }
16454 },
16455 "id": 5758,
16456 "nodeType": "EmitStatement",
16457 "src": "7357:43:22"
16458 },
16459 {
16460 "expression": {
16461 "argumentTypes": null,
16462 "hexValue": "74727565",
16463 "id": 5759,
16464 "isConstant": false,
16465 "isLValue": false,
16466 "isPure": true,
16467 "kind": "bool",
16468 "lValueRequested": false,
16469 "nodeType": "Literal",
16470 "src": "7417:4:22",
16471 "subdenomination": null,
16472 "typeDescriptions": {
16473 "typeIdentifier": "t_bool",
16474 "typeString": "bool"
16475 },
16476 "value": "true"
16477 },
16478 "functionReturnParameters": 5742,
16479 "id": 5760,
16480 "nodeType": "Return",
16481 "src": "7410:11:22"
16482 }
16483 ]
16484 },
16485 "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n * Beware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param _spender The address which will spend the funds.\n@param _value The amount of tokens to be spent.",
16486 "id": 5762,
16487 "implemented": true,
16488 "isConstructor": false,
16489 "isDeclaredConst": false,
16490 "modifiers": [],
16491 "name": "approve",
16492 "nodeType": "FunctionDefinition",
16493 "parameters": {
16494 "id": 5739,
16495 "nodeType": "ParameterList",
16496 "parameters": [
16497 {
16498 "constant": false,
16499 "id": 5736,
16500 "name": "_spender",
16501 "nodeType": "VariableDeclaration",
16502 "scope": 5762,
16503 "src": "7243:16:22",
16504 "stateVariable": false,
16505 "storageLocation": "default",
16506 "typeDescriptions": {
16507 "typeIdentifier": "t_address",
16508 "typeString": "address"
16509 },
16510 "typeName": {
16511 "id": 5735,
16512 "name": "address",
16513 "nodeType": "ElementaryTypeName",
16514 "src": "7243:7:22",
16515 "typeDescriptions": {
16516 "typeIdentifier": "t_address",
16517 "typeString": "address"
16518 }
16519 },
16520 "value": null,
16521 "visibility": "internal"
16522 },
16523 {
16524 "constant": false,
16525 "id": 5738,
16526 "name": "_value",
16527 "nodeType": "VariableDeclaration",
16528 "scope": 5762,
16529 "src": "7261:14:22",
16530 "stateVariable": false,
16531 "storageLocation": "default",
16532 "typeDescriptions": {
16533 "typeIdentifier": "t_uint256",
16534 "typeString": "uint256"
16535 },
16536 "typeName": {
16537 "id": 5737,
16538 "name": "uint256",
16539 "nodeType": "ElementaryTypeName",
16540 "src": "7261:7:22",
16541 "typeDescriptions": {
16542 "typeIdentifier": "t_uint256",
16543 "typeString": "uint256"
16544 }
16545 },
16546 "value": null,
16547 "visibility": "internal"
16548 }
16549 ],
16550 "src": "7242:34:22"
16551 },
16552 "payable": false,
16553 "returnParameters": {
16554 "id": 5742,
16555 "nodeType": "ParameterList",
16556 "parameters": [
16557 {
16558 "constant": false,
16559 "id": 5741,
16560 "name": "",
16561 "nodeType": "VariableDeclaration",
16562 "scope": 5762,
16563 "src": "7293:4:22",
16564 "stateVariable": false,
16565 "storageLocation": "default",
16566 "typeDescriptions": {
16567 "typeIdentifier": "t_bool",
16568 "typeString": "bool"
16569 },
16570 "typeName": {
16571 "id": 5740,
16572 "name": "bool",
16573 "nodeType": "ElementaryTypeName",
16574 "src": "7293:4:22",
16575 "typeDescriptions": {
16576 "typeIdentifier": "t_bool",
16577 "typeString": "bool"
16578 }
16579 },
16580 "value": null,
16581 "visibility": "internal"
16582 }
16583 ],
16584 "src": "7292:6:22"
16585 },
16586 "scope": 5881,
16587 "src": "7226:202:22",
16588 "stateMutability": "nonpayable",
16589 "superFunction": 5172,
16590 "visibility": "public"
16591 },
16592 {
16593 "body": {
16594 "id": 5777,
16595 "nodeType": "Block",
16596 "src": "7882:49:22",
16597 "statements": [
16598 {
16599 "expression": {
16600 "argumentTypes": null,
16601 "baseExpression": {
16602 "argumentTypes": null,
16603 "baseExpression": {
16604 "argumentTypes": null,
16605 "id": 5771,
16606 "name": "allowed",
16607 "nodeType": "Identifier",
16608 "overloadedDeclarations": [],
16609 "referencedDeclaration": 5313,
16610 "src": "7899:7:22",
16611 "typeDescriptions": {
16612 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
16613 "typeString": "mapping(address => mapping(address => uint256))"
16614 }
16615 },
16616 "id": 5773,
16617 "indexExpression": {
16618 "argumentTypes": null,
16619 "id": 5772,
16620 "name": "_owner",
16621 "nodeType": "Identifier",
16622 "overloadedDeclarations": [],
16623 "referencedDeclaration": 5764,
16624 "src": "7907:6:22",
16625 "typeDescriptions": {
16626 "typeIdentifier": "t_address",
16627 "typeString": "address"
16628 }
16629 },
16630 "isConstant": false,
16631 "isLValue": true,
16632 "isPure": false,
16633 "lValueRequested": false,
16634 "nodeType": "IndexAccess",
16635 "src": "7899:15:22",
16636 "typeDescriptions": {
16637 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
16638 "typeString": "mapping(address => uint256)"
16639 }
16640 },
16641 "id": 5775,
16642 "indexExpression": {
16643 "argumentTypes": null,
16644 "id": 5774,
16645 "name": "_spender",
16646 "nodeType": "Identifier",
16647 "overloadedDeclarations": [],
16648 "referencedDeclaration": 5766,
16649 "src": "7915:8:22",
16650 "typeDescriptions": {
16651 "typeIdentifier": "t_address",
16652 "typeString": "address"
16653 }
16654 },
16655 "isConstant": false,
16656 "isLValue": true,
16657 "isPure": false,
16658 "lValueRequested": false,
16659 "nodeType": "IndexAccess",
16660 "src": "7899:25:22",
16661 "typeDescriptions": {
16662 "typeIdentifier": "t_uint256",
16663 "typeString": "uint256"
16664 }
16665 },
16666 "functionReturnParameters": 5770,
16667 "id": 5776,
16668 "nodeType": "Return",
16669 "src": "7892:32:22"
16670 }
16671 ]
16672 },
16673 "documentation": "@dev Function to check the amount of tokens that an owner allowed to a spender.\n@param _owner address The address which owns the funds.\n@param _spender address The address which will spend the funds.\n@return A uint256 specifying the amount of tokens still available for the spender.",
16674 "id": 5778,
16675 "implemented": true,
16676 "isConstructor": false,
16677 "isDeclaredConst": true,
16678 "modifiers": [],
16679 "name": "allowance",
16680 "nodeType": "FunctionDefinition",
16681 "parameters": {
16682 "id": 5767,
16683 "nodeType": "ParameterList",
16684 "parameters": [
16685 {
16686 "constant": false,
16687 "id": 5764,
16688 "name": "_owner",
16689 "nodeType": "VariableDeclaration",
16690 "scope": 5778,
16691 "src": "7789:14:22",
16692 "stateVariable": false,
16693 "storageLocation": "default",
16694 "typeDescriptions": {
16695 "typeIdentifier": "t_address",
16696 "typeString": "address"
16697 },
16698 "typeName": {
16699 "id": 5763,
16700 "name": "address",
16701 "nodeType": "ElementaryTypeName",
16702 "src": "7789:7:22",
16703 "typeDescriptions": {
16704 "typeIdentifier": "t_address",
16705 "typeString": "address"
16706 }
16707 },
16708 "value": null,
16709 "visibility": "internal"
16710 },
16711 {
16712 "constant": false,
16713 "id": 5766,
16714 "name": "_spender",
16715 "nodeType": "VariableDeclaration",
16716 "scope": 5778,
16717 "src": "7813:16:22",
16718 "stateVariable": false,
16719 "storageLocation": "default",
16720 "typeDescriptions": {
16721 "typeIdentifier": "t_address",
16722 "typeString": "address"
16723 },
16724 "typeName": {
16725 "id": 5765,
16726 "name": "address",
16727 "nodeType": "ElementaryTypeName",
16728 "src": "7813:7:22",
16729 "typeDescriptions": {
16730 "typeIdentifier": "t_address",
16731 "typeString": "address"
16732 }
16733 },
16734 "value": null,
16735 "visibility": "internal"
16736 }
16737 ],
16738 "src": "7779:56:22"
16739 },
16740 "payable": false,
16741 "returnParameters": {
16742 "id": 5770,
16743 "nodeType": "ParameterList",
16744 "parameters": [
16745 {
16746 "constant": false,
16747 "id": 5769,
16748 "name": "",
16749 "nodeType": "VariableDeclaration",
16750 "scope": 5778,
16751 "src": "7869:7:22",
16752 "stateVariable": false,
16753 "storageLocation": "default",
16754 "typeDescriptions": {
16755 "typeIdentifier": "t_uint256",
16756 "typeString": "uint256"
16757 },
16758 "typeName": {
16759 "id": 5768,
16760 "name": "uint256",
16761 "nodeType": "ElementaryTypeName",
16762 "src": "7869:7:22",
16763 "typeDescriptions": {
16764 "typeIdentifier": "t_uint256",
16765 "typeString": "uint256"
16766 }
16767 },
16768 "value": null,
16769 "visibility": "internal"
16770 }
16771 ],
16772 "src": "7868:9:22"
16773 },
16774 "scope": 5881,
16775 "src": "7761:170:22",
16776 "stateMutability": "view",
16777 "superFunction": 5181,
16778 "visibility": "public"
16779 },
16780 {
16781 "body": {
16782 "id": 5819,
16783 "nodeType": "Block",
16784 "src": "8528:203:22",
16785 "statements": [
16786 {
16787 "expression": {
16788 "argumentTypes": null,
16789 "id": 5803,
16790 "isConstant": false,
16791 "isLValue": false,
16792 "isPure": false,
16793 "lValueRequested": false,
16794 "leftHandSide": {
16795 "argumentTypes": null,
16796 "baseExpression": {
16797 "argumentTypes": null,
16798 "baseExpression": {
16799 "argumentTypes": null,
16800 "id": 5787,
16801 "name": "allowed",
16802 "nodeType": "Identifier",
16803 "overloadedDeclarations": [],
16804 "referencedDeclaration": 5313,
16805 "src": "8538:7:22",
16806 "typeDescriptions": {
16807 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
16808 "typeString": "mapping(address => mapping(address => uint256))"
16809 }
16810 },
16811 "id": 5791,
16812 "indexExpression": {
16813 "argumentTypes": null,
16814 "expression": {
16815 "argumentTypes": null,
16816 "id": 5788,
16817 "name": "msg",
16818 "nodeType": "Identifier",
16819 "overloadedDeclarations": [],
16820 "referencedDeclaration": 12092,
16821 "src": "8546:3:22",
16822 "typeDescriptions": {
16823 "typeIdentifier": "t_magic_message",
16824 "typeString": "msg"
16825 }
16826 },
16827 "id": 5789,
16828 "isConstant": false,
16829 "isLValue": false,
16830 "isPure": false,
16831 "lValueRequested": false,
16832 "memberName": "sender",
16833 "nodeType": "MemberAccess",
16834 "referencedDeclaration": null,
16835 "src": "8546:10:22",
16836 "typeDescriptions": {
16837 "typeIdentifier": "t_address",
16838 "typeString": "address"
16839 }
16840 },
16841 "isConstant": false,
16842 "isLValue": true,
16843 "isPure": false,
16844 "lValueRequested": false,
16845 "nodeType": "IndexAccess",
16846 "src": "8538:19:22",
16847 "typeDescriptions": {
16848 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
16849 "typeString": "mapping(address => uint256)"
16850 }
16851 },
16852 "id": 5792,
16853 "indexExpression": {
16854 "argumentTypes": null,
16855 "id": 5790,
16856 "name": "_spender",
16857 "nodeType": "Identifier",
16858 "overloadedDeclarations": [],
16859 "referencedDeclaration": 5780,
16860 "src": "8558:8:22",
16861 "typeDescriptions": {
16862 "typeIdentifier": "t_address",
16863 "typeString": "address"
16864 }
16865 },
16866 "isConstant": false,
16867 "isLValue": true,
16868 "isPure": false,
16869 "lValueRequested": true,
16870 "nodeType": "IndexAccess",
16871 "src": "8538:29:22",
16872 "typeDescriptions": {
16873 "typeIdentifier": "t_uint256",
16874 "typeString": "uint256"
16875 }
16876 },
16877 "nodeType": "Assignment",
16878 "operator": "=",
16879 "rightHandSide": {
16880 "argumentTypes": null,
16881 "components": [
16882 {
16883 "argumentTypes": null,
16884 "arguments": [
16885 {
16886 "argumentTypes": null,
16887 "id": 5800,
16888 "name": "_addedValue",
16889 "nodeType": "Identifier",
16890 "overloadedDeclarations": [],
16891 "referencedDeclaration": 5782,
16892 "src": "8614:11:22",
16893 "typeDescriptions": {
16894 "typeIdentifier": "t_uint256",
16895 "typeString": "uint256"
16896 }
16897 }
16898 ],
16899 "expression": {
16900 "argumentTypes": [
16901 {
16902 "typeIdentifier": "t_uint256",
16903 "typeString": "uint256"
16904 }
16905 ],
16906 "expression": {
16907 "argumentTypes": null,
16908 "baseExpression": {
16909 "argumentTypes": null,
16910 "baseExpression": {
16911 "argumentTypes": null,
16912 "id": 5793,
16913 "name": "allowed",
16914 "nodeType": "Identifier",
16915 "overloadedDeclarations": [],
16916 "referencedDeclaration": 5313,
16917 "src": "8580:7:22",
16918 "typeDescriptions": {
16919 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
16920 "typeString": "mapping(address => mapping(address => uint256))"
16921 }
16922 },
16923 "id": 5796,
16924 "indexExpression": {
16925 "argumentTypes": null,
16926 "expression": {
16927 "argumentTypes": null,
16928 "id": 5794,
16929 "name": "msg",
16930 "nodeType": "Identifier",
16931 "overloadedDeclarations": [],
16932 "referencedDeclaration": 12092,
16933 "src": "8588:3:22",
16934 "typeDescriptions": {
16935 "typeIdentifier": "t_magic_message",
16936 "typeString": "msg"
16937 }
16938 },
16939 "id": 5795,
16940 "isConstant": false,
16941 "isLValue": false,
16942 "isPure": false,
16943 "lValueRequested": false,
16944 "memberName": "sender",
16945 "nodeType": "MemberAccess",
16946 "referencedDeclaration": null,
16947 "src": "8588:10:22",
16948 "typeDescriptions": {
16949 "typeIdentifier": "t_address",
16950 "typeString": "address"
16951 }
16952 },
16953 "isConstant": false,
16954 "isLValue": true,
16955 "isPure": false,
16956 "lValueRequested": false,
16957 "nodeType": "IndexAccess",
16958 "src": "8580:19:22",
16959 "typeDescriptions": {
16960 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
16961 "typeString": "mapping(address => uint256)"
16962 }
16963 },
16964 "id": 5798,
16965 "indexExpression": {
16966 "argumentTypes": null,
16967 "id": 5797,
16968 "name": "_spender",
16969 "nodeType": "Identifier",
16970 "overloadedDeclarations": [],
16971 "referencedDeclaration": 5780,
16972 "src": "8600:8:22",
16973 "typeDescriptions": {
16974 "typeIdentifier": "t_address",
16975 "typeString": "address"
16976 }
16977 },
16978 "isConstant": false,
16979 "isLValue": true,
16980 "isPure": false,
16981 "lValueRequested": false,
16982 "nodeType": "IndexAccess",
16983 "src": "8580:29:22",
16984 "typeDescriptions": {
16985 "typeIdentifier": "t_uint256",
16986 "typeString": "uint256"
16987 }
16988 },
16989 "id": 5799,
16990 "isConstant": false,
16991 "isLValue": false,
16992 "isPure": false,
16993 "lValueRequested": false,
16994 "memberName": "add",
16995 "nodeType": "MemberAccess",
16996 "referencedDeclaration": 5292,
16997 "src": "8580:33:22",
16998 "typeDescriptions": {
16999 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
17000 "typeString": "function (uint256,uint256) pure returns (uint256)"
17001 }
17002 },
17003 "id": 5801,
17004 "isConstant": false,
17005 "isLValue": false,
17006 "isPure": false,
17007 "kind": "functionCall",
17008 "lValueRequested": false,
17009 "names": [],
17010 "nodeType": "FunctionCall",
17011 "src": "8580:46:22",
17012 "typeDescriptions": {
17013 "typeIdentifier": "t_uint256",
17014 "typeString": "uint256"
17015 }
17016 }
17017 ],
17018 "id": 5802,
17019 "isConstant": false,
17020 "isInlineArray": false,
17021 "isLValue": false,
17022 "isPure": false,
17023 "lValueRequested": false,
17024 "nodeType": "TupleExpression",
17025 "src": "8570:57:22",
17026 "typeDescriptions": {
17027 "typeIdentifier": "t_uint256",
17028 "typeString": "uint256"
17029 }
17030 },
17031 "src": "8538:89:22",
17032 "typeDescriptions": {
17033 "typeIdentifier": "t_uint256",
17034 "typeString": "uint256"
17035 }
17036 },
17037 "id": 5804,
17038 "nodeType": "ExpressionStatement",
17039 "src": "8538:89:22"
17040 },
17041 {
17042 "eventCall": {
17043 "argumentTypes": null,
17044 "arguments": [
17045 {
17046 "argumentTypes": null,
17047 "expression": {
17048 "argumentTypes": null,
17049 "id": 5806,
17050 "name": "msg",
17051 "nodeType": "Identifier",
17052 "overloadedDeclarations": [],
17053 "referencedDeclaration": 12092,
17054 "src": "8651:3:22",
17055 "typeDescriptions": {
17056 "typeIdentifier": "t_magic_message",
17057 "typeString": "msg"
17058 }
17059 },
17060 "id": 5807,
17061 "isConstant": false,
17062 "isLValue": false,
17063 "isPure": false,
17064 "lValueRequested": false,
17065 "memberName": "sender",
17066 "nodeType": "MemberAccess",
17067 "referencedDeclaration": null,
17068 "src": "8651:10:22",
17069 "typeDescriptions": {
17070 "typeIdentifier": "t_address",
17071 "typeString": "address"
17072 }
17073 },
17074 {
17075 "argumentTypes": null,
17076 "id": 5808,
17077 "name": "_spender",
17078 "nodeType": "Identifier",
17079 "overloadedDeclarations": [],
17080 "referencedDeclaration": 5780,
17081 "src": "8663:8:22",
17082 "typeDescriptions": {
17083 "typeIdentifier": "t_address",
17084 "typeString": "address"
17085 }
17086 },
17087 {
17088 "argumentTypes": null,
17089 "baseExpression": {
17090 "argumentTypes": null,
17091 "baseExpression": {
17092 "argumentTypes": null,
17093 "id": 5809,
17094 "name": "allowed",
17095 "nodeType": "Identifier",
17096 "overloadedDeclarations": [],
17097 "referencedDeclaration": 5313,
17098 "src": "8673:7:22",
17099 "typeDescriptions": {
17100 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
17101 "typeString": "mapping(address => mapping(address => uint256))"
17102 }
17103 },
17104 "id": 5812,
17105 "indexExpression": {
17106 "argumentTypes": null,
17107 "expression": {
17108 "argumentTypes": null,
17109 "id": 5810,
17110 "name": "msg",
17111 "nodeType": "Identifier",
17112 "overloadedDeclarations": [],
17113 "referencedDeclaration": 12092,
17114 "src": "8681:3:22",
17115 "typeDescriptions": {
17116 "typeIdentifier": "t_magic_message",
17117 "typeString": "msg"
17118 }
17119 },
17120 "id": 5811,
17121 "isConstant": false,
17122 "isLValue": false,
17123 "isPure": false,
17124 "lValueRequested": false,
17125 "memberName": "sender",
17126 "nodeType": "MemberAccess",
17127 "referencedDeclaration": null,
17128 "src": "8681:10:22",
17129 "typeDescriptions": {
17130 "typeIdentifier": "t_address",
17131 "typeString": "address"
17132 }
17133 },
17134 "isConstant": false,
17135 "isLValue": true,
17136 "isPure": false,
17137 "lValueRequested": false,
17138 "nodeType": "IndexAccess",
17139 "src": "8673:19:22",
17140 "typeDescriptions": {
17141 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
17142 "typeString": "mapping(address => uint256)"
17143 }
17144 },
17145 "id": 5814,
17146 "indexExpression": {
17147 "argumentTypes": null,
17148 "id": 5813,
17149 "name": "_spender",
17150 "nodeType": "Identifier",
17151 "overloadedDeclarations": [],
17152 "referencedDeclaration": 5780,
17153 "src": "8693:8:22",
17154 "typeDescriptions": {
17155 "typeIdentifier": "t_address",
17156 "typeString": "address"
17157 }
17158 },
17159 "isConstant": false,
17160 "isLValue": true,
17161 "isPure": false,
17162 "lValueRequested": false,
17163 "nodeType": "IndexAccess",
17164 "src": "8673:29:22",
17165 "typeDescriptions": {
17166 "typeIdentifier": "t_uint256",
17167 "typeString": "uint256"
17168 }
17169 }
17170 ],
17171 "expression": {
17172 "argumentTypes": [
17173 {
17174 "typeIdentifier": "t_address",
17175 "typeString": "address"
17176 },
17177 {
17178 "typeIdentifier": "t_address",
17179 "typeString": "address"
17180 },
17181 {
17182 "typeIdentifier": "t_uint256",
17183 "typeString": "uint256"
17184 }
17185 ],
17186 "id": 5805,
17187 "name": "Approval",
17188 "nodeType": "Identifier",
17189 "overloadedDeclarations": [],
17190 "referencedDeclaration": 5350,
17191 "src": "8642:8:22",
17192 "typeDescriptions": {
17193 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
17194 "typeString": "function (address,address,uint256)"
17195 }
17196 },
17197 "id": 5815,
17198 "isConstant": false,
17199 "isLValue": false,
17200 "isPure": false,
17201 "kind": "functionCall",
17202 "lValueRequested": false,
17203 "names": [],
17204 "nodeType": "FunctionCall",
17205 "src": "8642:61:22",
17206 "typeDescriptions": {
17207 "typeIdentifier": "t_tuple$__$",
17208 "typeString": "tuple()"
17209 }
17210 },
17211 "id": 5816,
17212 "nodeType": "EmitStatement",
17213 "src": "8637:66:22"
17214 },
17215 {
17216 "expression": {
17217 "argumentTypes": null,
17218 "hexValue": "74727565",
17219 "id": 5817,
17220 "isConstant": false,
17221 "isLValue": false,
17222 "isPure": true,
17223 "kind": "bool",
17224 "lValueRequested": false,
17225 "nodeType": "Literal",
17226 "src": "8720:4:22",
17227 "subdenomination": null,
17228 "typeDescriptions": {
17229 "typeIdentifier": "t_bool",
17230 "typeString": "bool"
17231 },
17232 "value": "true"
17233 },
17234 "functionReturnParameters": 5786,
17235 "id": 5818,
17236 "nodeType": "Return",
17237 "src": "8713:11:22"
17238 }
17239 ]
17240 },
17241 "documentation": "@dev Increase the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed[_spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _addedValue The amount of tokens to increase the allowance by.",
17242 "id": 5820,
17243 "implemented": true,
17244 "isConstructor": false,
17245 "isDeclaredConst": false,
17246 "modifiers": [],
17247 "name": "increaseApproval",
17248 "nodeType": "FunctionDefinition",
17249 "parameters": {
17250 "id": 5783,
17251 "nodeType": "ParameterList",
17252 "parameters": [
17253 {
17254 "constant": false,
17255 "id": 5780,
17256 "name": "_spender",
17257 "nodeType": "VariableDeclaration",
17258 "scope": 5820,
17259 "src": "8445:16:22",
17260 "stateVariable": false,
17261 "storageLocation": "default",
17262 "typeDescriptions": {
17263 "typeIdentifier": "t_address",
17264 "typeString": "address"
17265 },
17266 "typeName": {
17267 "id": 5779,
17268 "name": "address",
17269 "nodeType": "ElementaryTypeName",
17270 "src": "8445:7:22",
17271 "typeDescriptions": {
17272 "typeIdentifier": "t_address",
17273 "typeString": "address"
17274 }
17275 },
17276 "value": null,
17277 "visibility": "internal"
17278 },
17279 {
17280 "constant": false,
17281 "id": 5782,
17282 "name": "_addedValue",
17283 "nodeType": "VariableDeclaration",
17284 "scope": 5820,
17285 "src": "8471:16:22",
17286 "stateVariable": false,
17287 "storageLocation": "default",
17288 "typeDescriptions": {
17289 "typeIdentifier": "t_uint256",
17290 "typeString": "uint256"
17291 },
17292 "typeName": {
17293 "id": 5781,
17294 "name": "uint",
17295 "nodeType": "ElementaryTypeName",
17296 "src": "8471:4:22",
17297 "typeDescriptions": {
17298 "typeIdentifier": "t_uint256",
17299 "typeString": "uint256"
17300 }
17301 },
17302 "value": null,
17303 "visibility": "internal"
17304 }
17305 ],
17306 "src": "8435:58:22"
17307 },
17308 "payable": false,
17309 "returnParameters": {
17310 "id": 5786,
17311 "nodeType": "ParameterList",
17312 "parameters": [
17313 {
17314 "constant": false,
17315 "id": 5785,
17316 "name": "",
17317 "nodeType": "VariableDeclaration",
17318 "scope": 5820,
17319 "src": "8518:4:22",
17320 "stateVariable": false,
17321 "storageLocation": "default",
17322 "typeDescriptions": {
17323 "typeIdentifier": "t_bool",
17324 "typeString": "bool"
17325 },
17326 "typeName": {
17327 "id": 5784,
17328 "name": "bool",
17329 "nodeType": "ElementaryTypeName",
17330 "src": "8518:4:22",
17331 "typeDescriptions": {
17332 "typeIdentifier": "t_bool",
17333 "typeString": "bool"
17334 }
17335 },
17336 "value": null,
17337 "visibility": "internal"
17338 }
17339 ],
17340 "src": "8517:6:22"
17341 },
17342 "scope": 5881,
17343 "src": "8410:321:22",
17344 "stateMutability": "nonpayable",
17345 "superFunction": null,
17346 "visibility": "public"
17347 },
17348 {
17349 "body": {
17350 "id": 5879,
17351 "nodeType": "Block",
17352 "src": "9338:352:22",
17353 "statements": [
17354 {
17355 "assignments": [
17356 5830
17357 ],
17358 "declarations": [
17359 {
17360 "constant": false,
17361 "id": 5830,
17362 "name": "oldValue",
17363 "nodeType": "VariableDeclaration",
17364 "scope": 5880,
17365 "src": "9348:13:22",
17366 "stateVariable": false,
17367 "storageLocation": "default",
17368 "typeDescriptions": {
17369 "typeIdentifier": "t_uint256",
17370 "typeString": "uint256"
17371 },
17372 "typeName": {
17373 "id": 5829,
17374 "name": "uint",
17375 "nodeType": "ElementaryTypeName",
17376 "src": "9348:4:22",
17377 "typeDescriptions": {
17378 "typeIdentifier": "t_uint256",
17379 "typeString": "uint256"
17380 }
17381 },
17382 "value": null,
17383 "visibility": "internal"
17384 }
17385 ],
17386 "id": 5837,
17387 "initialValue": {
17388 "argumentTypes": null,
17389 "baseExpression": {
17390 "argumentTypes": null,
17391 "baseExpression": {
17392 "argumentTypes": null,
17393 "id": 5831,
17394 "name": "allowed",
17395 "nodeType": "Identifier",
17396 "overloadedDeclarations": [],
17397 "referencedDeclaration": 5313,
17398 "src": "9364:7:22",
17399 "typeDescriptions": {
17400 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
17401 "typeString": "mapping(address => mapping(address => uint256))"
17402 }
17403 },
17404 "id": 5834,
17405 "indexExpression": {
17406 "argumentTypes": null,
17407 "expression": {
17408 "argumentTypes": null,
17409 "id": 5832,
17410 "name": "msg",
17411 "nodeType": "Identifier",
17412 "overloadedDeclarations": [],
17413 "referencedDeclaration": 12092,
17414 "src": "9372:3:22",
17415 "typeDescriptions": {
17416 "typeIdentifier": "t_magic_message",
17417 "typeString": "msg"
17418 }
17419 },
17420 "id": 5833,
17421 "isConstant": false,
17422 "isLValue": false,
17423 "isPure": false,
17424 "lValueRequested": false,
17425 "memberName": "sender",
17426 "nodeType": "MemberAccess",
17427 "referencedDeclaration": null,
17428 "src": "9372:10:22",
17429 "typeDescriptions": {
17430 "typeIdentifier": "t_address",
17431 "typeString": "address"
17432 }
17433 },
17434 "isConstant": false,
17435 "isLValue": true,
17436 "isPure": false,
17437 "lValueRequested": false,
17438 "nodeType": "IndexAccess",
17439 "src": "9364:19:22",
17440 "typeDescriptions": {
17441 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
17442 "typeString": "mapping(address => uint256)"
17443 }
17444 },
17445 "id": 5836,
17446 "indexExpression": {
17447 "argumentTypes": null,
17448 "id": 5835,
17449 "name": "_spender",
17450 "nodeType": "Identifier",
17451 "overloadedDeclarations": [],
17452 "referencedDeclaration": 5822,
17453 "src": "9384:8:22",
17454 "typeDescriptions": {
17455 "typeIdentifier": "t_address",
17456 "typeString": "address"
17457 }
17458 },
17459 "isConstant": false,
17460 "isLValue": true,
17461 "isPure": false,
17462 "lValueRequested": false,
17463 "nodeType": "IndexAccess",
17464 "src": "9364:29:22",
17465 "typeDescriptions": {
17466 "typeIdentifier": "t_uint256",
17467 "typeString": "uint256"
17468 }
17469 },
17470 "nodeType": "VariableDeclarationStatement",
17471 "src": "9348:45:22"
17472 },
17473 {
17474 "condition": {
17475 "argumentTypes": null,
17476 "commonType": {
17477 "typeIdentifier": "t_uint256",
17478 "typeString": "uint256"
17479 },
17480 "id": 5840,
17481 "isConstant": false,
17482 "isLValue": false,
17483 "isPure": false,
17484 "lValueRequested": false,
17485 "leftExpression": {
17486 "argumentTypes": null,
17487 "id": 5838,
17488 "name": "_subtractedValue",
17489 "nodeType": "Identifier",
17490 "overloadedDeclarations": [],
17491 "referencedDeclaration": 5824,
17492 "src": "9407:16:22",
17493 "typeDescriptions": {
17494 "typeIdentifier": "t_uint256",
17495 "typeString": "uint256"
17496 }
17497 },
17498 "nodeType": "BinaryOperation",
17499 "operator": ">",
17500 "rightExpression": {
17501 "argumentTypes": null,
17502 "id": 5839,
17503 "name": "oldValue",
17504 "nodeType": "Identifier",
17505 "overloadedDeclarations": [],
17506 "referencedDeclaration": 5830,
17507 "src": "9426:8:22",
17508 "typeDescriptions": {
17509 "typeIdentifier": "t_uint256",
17510 "typeString": "uint256"
17511 }
17512 },
17513 "src": "9407:27:22",
17514 "typeDescriptions": {
17515 "typeIdentifier": "t_bool",
17516 "typeString": "bool"
17517 }
17518 },
17519 "falseBody": {
17520 "id": 5863,
17521 "nodeType": "Block",
17522 "src": "9500:87:22",
17523 "statements": [
17524 {
17525 "expression": {
17526 "argumentTypes": null,
17527 "id": 5861,
17528 "isConstant": false,
17529 "isLValue": false,
17530 "isPure": false,
17531 "lValueRequested": false,
17532 "leftHandSide": {
17533 "argumentTypes": null,
17534 "baseExpression": {
17535 "argumentTypes": null,
17536 "baseExpression": {
17537 "argumentTypes": null,
17538 "id": 5851,
17539 "name": "allowed",
17540 "nodeType": "Identifier",
17541 "overloadedDeclarations": [],
17542 "referencedDeclaration": 5313,
17543 "src": "9514:7:22",
17544 "typeDescriptions": {
17545 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
17546 "typeString": "mapping(address => mapping(address => uint256))"
17547 }
17548 },
17549 "id": 5855,
17550 "indexExpression": {
17551 "argumentTypes": null,
17552 "expression": {
17553 "argumentTypes": null,
17554 "id": 5852,
17555 "name": "msg",
17556 "nodeType": "Identifier",
17557 "overloadedDeclarations": [],
17558 "referencedDeclaration": 12092,
17559 "src": "9522:3:22",
17560 "typeDescriptions": {
17561 "typeIdentifier": "t_magic_message",
17562 "typeString": "msg"
17563 }
17564 },
17565 "id": 5853,
17566 "isConstant": false,
17567 "isLValue": false,
17568 "isPure": false,
17569 "lValueRequested": false,
17570 "memberName": "sender",
17571 "nodeType": "MemberAccess",
17572 "referencedDeclaration": null,
17573 "src": "9522:10:22",
17574 "typeDescriptions": {
17575 "typeIdentifier": "t_address",
17576 "typeString": "address"
17577 }
17578 },
17579 "isConstant": false,
17580 "isLValue": true,
17581 "isPure": false,
17582 "lValueRequested": false,
17583 "nodeType": "IndexAccess",
17584 "src": "9514:19:22",
17585 "typeDescriptions": {
17586 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
17587 "typeString": "mapping(address => uint256)"
17588 }
17589 },
17590 "id": 5856,
17591 "indexExpression": {
17592 "argumentTypes": null,
17593 "id": 5854,
17594 "name": "_spender",
17595 "nodeType": "Identifier",
17596 "overloadedDeclarations": [],
17597 "referencedDeclaration": 5822,
17598 "src": "9534:8:22",
17599 "typeDescriptions": {
17600 "typeIdentifier": "t_address",
17601 "typeString": "address"
17602 }
17603 },
17604 "isConstant": false,
17605 "isLValue": true,
17606 "isPure": false,
17607 "lValueRequested": true,
17608 "nodeType": "IndexAccess",
17609 "src": "9514:29:22",
17610 "typeDescriptions": {
17611 "typeIdentifier": "t_uint256",
17612 "typeString": "uint256"
17613 }
17614 },
17615 "nodeType": "Assignment",
17616 "operator": "=",
17617 "rightHandSide": {
17618 "argumentTypes": null,
17619 "arguments": [
17620 {
17621 "argumentTypes": null,
17622 "id": 5859,
17623 "name": "_subtractedValue",
17624 "nodeType": "Identifier",
17625 "overloadedDeclarations": [],
17626 "referencedDeclaration": 5824,
17627 "src": "9559:16:22",
17628 "typeDescriptions": {
17629 "typeIdentifier": "t_uint256",
17630 "typeString": "uint256"
17631 }
17632 }
17633 ],
17634 "expression": {
17635 "argumentTypes": [
17636 {
17637 "typeIdentifier": "t_uint256",
17638 "typeString": "uint256"
17639 }
17640 ],
17641 "expression": {
17642 "argumentTypes": null,
17643 "id": 5857,
17644 "name": "oldValue",
17645 "nodeType": "Identifier",
17646 "overloadedDeclarations": [],
17647 "referencedDeclaration": 5830,
17648 "src": "9546:8:22",
17649 "typeDescriptions": {
17650 "typeIdentifier": "t_uint256",
17651 "typeString": "uint256"
17652 }
17653 },
17654 "id": 5858,
17655 "isConstant": false,
17656 "isLValue": false,
17657 "isPure": false,
17658 "lValueRequested": false,
17659 "memberName": "sub",
17660 "nodeType": "MemberAccess",
17661 "referencedDeclaration": 5268,
17662 "src": "9546:12:22",
17663 "typeDescriptions": {
17664 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
17665 "typeString": "function (uint256,uint256) pure returns (uint256)"
17666 }
17667 },
17668 "id": 5860,
17669 "isConstant": false,
17670 "isLValue": false,
17671 "isPure": false,
17672 "kind": "functionCall",
17673 "lValueRequested": false,
17674 "names": [],
17675 "nodeType": "FunctionCall",
17676 "src": "9546:30:22",
17677 "typeDescriptions": {
17678 "typeIdentifier": "t_uint256",
17679 "typeString": "uint256"
17680 }
17681 },
17682 "src": "9514:62:22",
17683 "typeDescriptions": {
17684 "typeIdentifier": "t_uint256",
17685 "typeString": "uint256"
17686 }
17687 },
17688 "id": 5862,
17689 "nodeType": "ExpressionStatement",
17690 "src": "9514:62:22"
17691 }
17692 ]
17693 },
17694 "id": 5864,
17695 "nodeType": "IfStatement",
17696 "src": "9403:184:22",
17697 "trueBody": {
17698 "id": 5850,
17699 "nodeType": "Block",
17700 "src": "9436:58:22",
17701 "statements": [
17702 {
17703 "expression": {
17704 "argumentTypes": null,
17705 "id": 5848,
17706 "isConstant": false,
17707 "isLValue": false,
17708 "isPure": false,
17709 "lValueRequested": false,
17710 "leftHandSide": {
17711 "argumentTypes": null,
17712 "baseExpression": {
17713 "argumentTypes": null,
17714 "baseExpression": {
17715 "argumentTypes": null,
17716 "id": 5841,
17717 "name": "allowed",
17718 "nodeType": "Identifier",
17719 "overloadedDeclarations": [],
17720 "referencedDeclaration": 5313,
17721 "src": "9450:7:22",
17722 "typeDescriptions": {
17723 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
17724 "typeString": "mapping(address => mapping(address => uint256))"
17725 }
17726 },
17727 "id": 5845,
17728 "indexExpression": {
17729 "argumentTypes": null,
17730 "expression": {
17731 "argumentTypes": null,
17732 "id": 5842,
17733 "name": "msg",
17734 "nodeType": "Identifier",
17735 "overloadedDeclarations": [],
17736 "referencedDeclaration": 12092,
17737 "src": "9458:3:22",
17738 "typeDescriptions": {
17739 "typeIdentifier": "t_magic_message",
17740 "typeString": "msg"
17741 }
17742 },
17743 "id": 5843,
17744 "isConstant": false,
17745 "isLValue": false,
17746 "isPure": false,
17747 "lValueRequested": false,
17748 "memberName": "sender",
17749 "nodeType": "MemberAccess",
17750 "referencedDeclaration": null,
17751 "src": "9458:10:22",
17752 "typeDescriptions": {
17753 "typeIdentifier": "t_address",
17754 "typeString": "address"
17755 }
17756 },
17757 "isConstant": false,
17758 "isLValue": true,
17759 "isPure": false,
17760 "lValueRequested": false,
17761 "nodeType": "IndexAccess",
17762 "src": "9450:19:22",
17763 "typeDescriptions": {
17764 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
17765 "typeString": "mapping(address => uint256)"
17766 }
17767 },
17768 "id": 5846,
17769 "indexExpression": {
17770 "argumentTypes": null,
17771 "id": 5844,
17772 "name": "_spender",
17773 "nodeType": "Identifier",
17774 "overloadedDeclarations": [],
17775 "referencedDeclaration": 5822,
17776 "src": "9470:8:22",
17777 "typeDescriptions": {
17778 "typeIdentifier": "t_address",
17779 "typeString": "address"
17780 }
17781 },
17782 "isConstant": false,
17783 "isLValue": true,
17784 "isPure": false,
17785 "lValueRequested": true,
17786 "nodeType": "IndexAccess",
17787 "src": "9450:29:22",
17788 "typeDescriptions": {
17789 "typeIdentifier": "t_uint256",
17790 "typeString": "uint256"
17791 }
17792 },
17793 "nodeType": "Assignment",
17794 "operator": "=",
17795 "rightHandSide": {
17796 "argumentTypes": null,
17797 "hexValue": "30",
17798 "id": 5847,
17799 "isConstant": false,
17800 "isLValue": false,
17801 "isPure": true,
17802 "kind": "number",
17803 "lValueRequested": false,
17804 "nodeType": "Literal",
17805 "src": "9482:1:22",
17806 "subdenomination": null,
17807 "typeDescriptions": {
17808 "typeIdentifier": "t_rational_0_by_1",
17809 "typeString": "int_const 0"
17810 },
17811 "value": "0"
17812 },
17813 "src": "9450:33:22",
17814 "typeDescriptions": {
17815 "typeIdentifier": "t_uint256",
17816 "typeString": "uint256"
17817 }
17818 },
17819 "id": 5849,
17820 "nodeType": "ExpressionStatement",
17821 "src": "9450:33:22"
17822 }
17823 ]
17824 }
17825 },
17826 {
17827 "eventCall": {
17828 "argumentTypes": null,
17829 "arguments": [
17830 {
17831 "argumentTypes": null,
17832 "expression": {
17833 "argumentTypes": null,
17834 "id": 5866,
17835 "name": "msg",
17836 "nodeType": "Identifier",
17837 "overloadedDeclarations": [],
17838 "referencedDeclaration": 12092,
17839 "src": "9610:3:22",
17840 "typeDescriptions": {
17841 "typeIdentifier": "t_magic_message",
17842 "typeString": "msg"
17843 }
17844 },
17845 "id": 5867,
17846 "isConstant": false,
17847 "isLValue": false,
17848 "isPure": false,
17849 "lValueRequested": false,
17850 "memberName": "sender",
17851 "nodeType": "MemberAccess",
17852 "referencedDeclaration": null,
17853 "src": "9610:10:22",
17854 "typeDescriptions": {
17855 "typeIdentifier": "t_address",
17856 "typeString": "address"
17857 }
17858 },
17859 {
17860 "argumentTypes": null,
17861 "id": 5868,
17862 "name": "_spender",
17863 "nodeType": "Identifier",
17864 "overloadedDeclarations": [],
17865 "referencedDeclaration": 5822,
17866 "src": "9622:8:22",
17867 "typeDescriptions": {
17868 "typeIdentifier": "t_address",
17869 "typeString": "address"
17870 }
17871 },
17872 {
17873 "argumentTypes": null,
17874 "baseExpression": {
17875 "argumentTypes": null,
17876 "baseExpression": {
17877 "argumentTypes": null,
17878 "id": 5869,
17879 "name": "allowed",
17880 "nodeType": "Identifier",
17881 "overloadedDeclarations": [],
17882 "referencedDeclaration": 5313,
17883 "src": "9632:7:22",
17884 "typeDescriptions": {
17885 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
17886 "typeString": "mapping(address => mapping(address => uint256))"
17887 }
17888 },
17889 "id": 5872,
17890 "indexExpression": {
17891 "argumentTypes": null,
17892 "expression": {
17893 "argumentTypes": null,
17894 "id": 5870,
17895 "name": "msg",
17896 "nodeType": "Identifier",
17897 "overloadedDeclarations": [],
17898 "referencedDeclaration": 12092,
17899 "src": "9640:3:22",
17900 "typeDescriptions": {
17901 "typeIdentifier": "t_magic_message",
17902 "typeString": "msg"
17903 }
17904 },
17905 "id": 5871,
17906 "isConstant": false,
17907 "isLValue": false,
17908 "isPure": false,
17909 "lValueRequested": false,
17910 "memberName": "sender",
17911 "nodeType": "MemberAccess",
17912 "referencedDeclaration": null,
17913 "src": "9640:10:22",
17914 "typeDescriptions": {
17915 "typeIdentifier": "t_address",
17916 "typeString": "address"
17917 }
17918 },
17919 "isConstant": false,
17920 "isLValue": true,
17921 "isPure": false,
17922 "lValueRequested": false,
17923 "nodeType": "IndexAccess",
17924 "src": "9632:19:22",
17925 "typeDescriptions": {
17926 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
17927 "typeString": "mapping(address => uint256)"
17928 }
17929 },
17930 "id": 5874,
17931 "indexExpression": {
17932 "argumentTypes": null,
17933 "id": 5873,
17934 "name": "_spender",
17935 "nodeType": "Identifier",
17936 "overloadedDeclarations": [],
17937 "referencedDeclaration": 5822,
17938 "src": "9652:8:22",
17939 "typeDescriptions": {
17940 "typeIdentifier": "t_address",
17941 "typeString": "address"
17942 }
17943 },
17944 "isConstant": false,
17945 "isLValue": true,
17946 "isPure": false,
17947 "lValueRequested": false,
17948 "nodeType": "IndexAccess",
17949 "src": "9632:29:22",
17950 "typeDescriptions": {
17951 "typeIdentifier": "t_uint256",
17952 "typeString": "uint256"
17953 }
17954 }
17955 ],
17956 "expression": {
17957 "argumentTypes": [
17958 {
17959 "typeIdentifier": "t_address",
17960 "typeString": "address"
17961 },
17962 {
17963 "typeIdentifier": "t_address",
17964 "typeString": "address"
17965 },
17966 {
17967 "typeIdentifier": "t_uint256",
17968 "typeString": "uint256"
17969 }
17970 ],
17971 "id": 5865,
17972 "name": "Approval",
17973 "nodeType": "Identifier",
17974 "overloadedDeclarations": [],
17975 "referencedDeclaration": 5350,
17976 "src": "9601:8:22",
17977 "typeDescriptions": {
17978 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
17979 "typeString": "function (address,address,uint256)"
17980 }
17981 },
17982 "id": 5875,
17983 "isConstant": false,
17984 "isLValue": false,
17985 "isPure": false,
17986 "kind": "functionCall",
17987 "lValueRequested": false,
17988 "names": [],
17989 "nodeType": "FunctionCall",
17990 "src": "9601:61:22",
17991 "typeDescriptions": {
17992 "typeIdentifier": "t_tuple$__$",
17993 "typeString": "tuple()"
17994 }
17995 },
17996 "id": 5876,
17997 "nodeType": "EmitStatement",
17998 "src": "9596:66:22"
17999 },
18000 {
18001 "expression": {
18002 "argumentTypes": null,
18003 "hexValue": "74727565",
18004 "id": 5877,
18005 "isConstant": false,
18006 "isLValue": false,
18007 "isPure": true,
18008 "kind": "bool",
18009 "lValueRequested": false,
18010 "nodeType": "Literal",
18011 "src": "9679:4:22",
18012 "subdenomination": null,
18013 "typeDescriptions": {
18014 "typeIdentifier": "t_bool",
18015 "typeString": "bool"
18016 },
18017 "value": "true"
18018 },
18019 "functionReturnParameters": 5828,
18020 "id": 5878,
18021 "nodeType": "Return",
18022 "src": "9672:11:22"
18023 }
18024 ]
18025 },
18026 "documentation": "@dev Decrease the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed[_spender] == 0. To decrement\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _subtractedValue The amount of tokens to decrease the allowance by.",
18027 "id": 5880,
18028 "implemented": true,
18029 "isConstructor": false,
18030 "isDeclaredConst": false,
18031 "modifiers": [],
18032 "name": "decreaseApproval",
18033 "nodeType": "FunctionDefinition",
18034 "parameters": {
18035 "id": 5825,
18036 "nodeType": "ParameterList",
18037 "parameters": [
18038 {
18039 "constant": false,
18040 "id": 5822,
18041 "name": "_spender",
18042 "nodeType": "VariableDeclaration",
18043 "scope": 5880,
18044 "src": "9250:16:22",
18045 "stateVariable": false,
18046 "storageLocation": "default",
18047 "typeDescriptions": {
18048 "typeIdentifier": "t_address",
18049 "typeString": "address"
18050 },
18051 "typeName": {
18052 "id": 5821,
18053 "name": "address",
18054 "nodeType": "ElementaryTypeName",
18055 "src": "9250:7:22",
18056 "typeDescriptions": {
18057 "typeIdentifier": "t_address",
18058 "typeString": "address"
18059 }
18060 },
18061 "value": null,
18062 "visibility": "internal"
18063 },
18064 {
18065 "constant": false,
18066 "id": 5824,
18067 "name": "_subtractedValue",
18068 "nodeType": "VariableDeclaration",
18069 "scope": 5880,
18070 "src": "9276:21:22",
18071 "stateVariable": false,
18072 "storageLocation": "default",
18073 "typeDescriptions": {
18074 "typeIdentifier": "t_uint256",
18075 "typeString": "uint256"
18076 },
18077 "typeName": {
18078 "id": 5823,
18079 "name": "uint",
18080 "nodeType": "ElementaryTypeName",
18081 "src": "9276:4:22",
18082 "typeDescriptions": {
18083 "typeIdentifier": "t_uint256",
18084 "typeString": "uint256"
18085 }
18086 },
18087 "value": null,
18088 "visibility": "internal"
18089 }
18090 ],
18091 "src": "9240:63:22"
18092 },
18093 "payable": false,
18094 "returnParameters": {
18095 "id": 5828,
18096 "nodeType": "ParameterList",
18097 "parameters": [
18098 {
18099 "constant": false,
18100 "id": 5827,
18101 "name": "",
18102 "nodeType": "VariableDeclaration",
18103 "scope": 5880,
18104 "src": "9328:4:22",
18105 "stateVariable": false,
18106 "storageLocation": "default",
18107 "typeDescriptions": {
18108 "typeIdentifier": "t_bool",
18109 "typeString": "bool"
18110 },
18111 "typeName": {
18112 "id": 5826,
18113 "name": "bool",
18114 "nodeType": "ElementaryTypeName",
18115 "src": "9328:4:22",
18116 "typeDescriptions": {
18117 "typeIdentifier": "t_bool",
18118 "typeString": "bool"
18119 }
18120 },
18121 "value": null,
18122 "visibility": "internal"
18123 }
18124 ],
18125 "src": "9327:6:22"
18126 },
18127 "scope": 5881,
18128 "src": "9215:475:22",
18129 "stateMutability": "nonpayable",
18130 "superFunction": null,
18131 "visibility": "public"
18132 }
18133 ],
18134 "scope": 5882,
18135 "src": "1571:8121:22"
18136 }
18137 ],
18138 "src": "0:9693:22"
18139 },
18140 "compiler": {
18141 "name": "solc",
18142 "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
18143 },
18144 "networks": {},
18145 "schemaVersion": "2.0.2",
18146 "updatedAt": "2019-06-25T21:15:14.205Z"
18147}
\No newline at end of file