forked from RaspberryPiFoundation/blockly
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathblocks_compressed.js
More file actions
292 lines (290 loc) · 233 KB
/
blocks_compressed.js
File metadata and controls
292 lines (290 loc) · 233 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
// Do not edit this file; automatically generated by gulp.
'use strict';
Blockly.Blocks.colour={};Blockly.Constants={};Blockly.Constants.Colour={};Blockly.Constants.Colour.HUE=20;
Blockly.defineBlocksWithJsonArray([{type:"colour_picker",message0:"%1",args0:[{type:"field_colour",name:"COLOUR",colour:"#ff0000"}],output:"Colour",helpUrl:"%{BKY_COLOUR_PICKER_HELPURL}",style:"light_blocks",tooltip:"%{BKY_COLOUR_PICKER_TOOLTIP}",extensions:["parent_tooltip_when_inline"]},{type:"colour_random",message0:"%{BKY_COLOUR_RANDOM_TITLE}",output:"Colour",helpUrl:"%{BKY_COLOUR_RANDOM_HELPURL}",style:"colour_blocks",tooltip:"%{BKY_COLOUR_RANDOM_TOOLTIP}"},{type:"colour_rgb",message0:"%{BKY_COLOUR_RGB_TITLE} %{BKY_COLOUR_RGB_RED} %1 %{BKY_COLOUR_RGB_GREEN} %2 %{BKY_COLOUR_RGB_BLUE} %3",
args0:[{type:"input_value",name:"RED",check:"Number",align:"RIGHT"},{type:"input_value",name:"GREEN",check:"Number",align:"RIGHT"},{type:"input_value",name:"BLUE",check:"Number",align:"RIGHT"}],output:"Colour",helpUrl:"%{BKY_COLOUR_RGB_HELPURL}",style:"colour_blocks",tooltip:"%{BKY_COLOUR_RGB_TOOLTIP}"},{type:"colour_blend",message0:"%{BKY_COLOUR_BLEND_TITLE} %{BKY_COLOUR_BLEND_COLOUR1} %1 %{BKY_COLOUR_BLEND_COLOUR2} %2 %{BKY_COLOUR_BLEND_RATIO} %3",args0:[{type:"input_value",name:"COLOUR1",check:"Colour",
align:"RIGHT"},{type:"input_value",name:"COLOUR2",check:"Colour",align:"RIGHT"},{type:"input_value",name:"RATIO",check:"Number",align:"RIGHT"}],output:"Colour",helpUrl:"%{BKY_COLOUR_BLEND_HELPURL}",style:"colour_blocks",tooltip:"%{BKY_COLOUR_BLEND_TOOLTIP}"}]);var CUSTOM_IMAGES={DIRECTION_RIGHT:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAAXNSR0IArs4c6QAAAeNJREFUaAXtmkFOwzAQRROE0jNwiq65BSfgGuxZVL0G3KHAEZA4A0vSE7BggcL/KJZSMw4RsRN7mJFGTsaJ7ffHjVs3VWVmCpgCpoApYAqYAqbAf1Kg67oGvoO38CN8D9+o1QBwhPXtEQGd0AB782n7c53QI8Dk1gcNKGlKE9aZLmhQNfCDowuU6qA3Bi2n2jJd/HqNxNr0lme3siXLMh1IM8IPFKf4z7IDmJhpg3aCFVv2mWYmx0xlpg1aSLmY6Xo4v3FTg/Nb+DX8YlhX6PErxr2t6/rdjd8H3qPixlUqKZ8BfOlYfOAWFRoy6/hYfgL43AV84M5VKCpPgM8UgYVQXoYV2jP846E1hK+ER/t36OSiDE4wKP58nL8WlwAcDZaJyx04KmzuwNFhcwZOApsrcA/72561+L2ZTKOGxkUbvSlhJQYzZTPvb7Act0iLYEKmYNMTYeftUecCvAhsLhleDDYH4EVh1wZeHHZNYMCu83cpOhaNYqQ0dLrOH+IiLYIpYdk2ugi948EhzVt6xgaPxlv24Bm3fZIa+gsBR4f1dzzuBTIpJlw2K3Qn3P2E2BX2oz6EujghKM2HB18KY6bpPObWbVJjH/AdnH0e4bpfTEuqpjVuCpgCpoApYAqYAtko8AVTOveurE9g/wAAAABJRU5ErkJggg==",
DIRECTION_FWD:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAAXNSR0IArs4c6QAAAdFJREFUaAXtmc1twzAMhZMekkP3bjJHd2i7QbtEzu0SAVw+wAKCgJYoiUqeABIg7NASzY/PPzG024VFB6IDrR1YluVV/Fv8uvoPYq35qOcJ2FH8In5viB2pi68tDkDiH/ekN78/MaY2L+V4gIjnYBP3/NAVsPNDN8DOC90BOx+0A2yC/kIuygdTKsoRlh96ACwvtBEWl+iW4ZWUM57LW6rEe9ZUcIbInCPdPk/Z1sCiwC3g9Rg3dC1sCZgaugXWAkwJ3QprBb6BLv3/Hv8g64GtAaaANsJmv3gkh2oA1EwGW760/JWWEx/ES6+eLCyAVFoJarApJocfDy0nPW0Vu8aLsK3A6zwL9Dk1qXsrUL8ZYBNsD7AR+q8bNCXIAJthe4EN0K7Ab4rCVbAewAXoE467mMDioQVoXNpw3NOH2uQyR7WGPM317GtP1jMetNr8vZgWHxF7GZGUOWcAM6vjUVso7NFF5hyhMLM6HrWFwh5dZM4RCjOr41FbKOzRReYcoTCzOh61hcIeXWTOEQozq+NRWyjs0UXmHKEwszoetYXCHl1kzhEKD1ZHW+HTYsPKeLTC7wqJFlOGTRiStTSs+p3F0yok9qtXISdEj5KjA6M68A8EfLZH1sRx5QAAAABJRU5ErkJggg==",
DIRECTION_FWD_FAST:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFEGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAxLTA3VDEwOjIzKzAxOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0wMS0wN1QxMDoyOTo1NCswMTowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMC0wMS0wN1QxMDoyOTo1NCswMTowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5YTY3ZjM3NC1iODUzLTA3NDQtOTUzMS1mOTk2ODM0ZDMxMDIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OWE2N2YzNzQtYjg1My0wNzQ0LTk1MzEtZjk5NjgzNGQzMTAyIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6OWE2N2YzNzQtYjg1My0wNzQ0LTk1MzEtZjk5NjgzNGQzMTAyIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo5YTY3ZjM3NC1iODUzLTA3NDQtOTUzMS1mOTk2ODM0ZDMxMDIiIHN0RXZ0OndoZW49IjIwMjAtMDEtMDdUMTA6MjMrMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4wIChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4a8yBbAAACPElEQVRoge3awU7CQBAG4F1NwISn04cCHoP4Bh4ECSIn9SU4w11OJra/B7YJYrud2Z3ZkqV/wqWU2fkC2TJNLQBzTbnpuoHUuTqwAdD6ElxrBOADwI97fQIYCdZvt6QCAxgC2OJ/tgCGQmtcBthhn2uwVeYS6IsAE7Bi6M7BDKwIulNwADYa3Rk4AhuF7gRMxK4AvLecs+Cik4NJ2LJcuvPuUJYvkuikYBK2KN5OAQDuUBQrKXQyMAlblqu6xiXRScAOOyc0fHvYbMxhs/lT+2u9NgAsimIZi1YHM7DDOuwZOvqbVgVzsCef8Q4PDv0ailYDB2JJwwMidm8VcASWPDwAsACeuGhxsBK2CU353PlacmAiNqRpMbQYGMAgATamzsKdJwaeKDQpXW/q6Z8N3gk3Rwl3L9h7+hcDa2GrcNCi4HHNAtrYKlT0xNN/0KY1xvGb3rnig4CNpSncS11tP2JgX8C4NnveZ1/fG3rRBXMbbTohpFZycEiDPrAEWg0c2lgbOBatAo5sqBV8sgbrf7QKOAbLAYeiRcFErPd+MgccghYDI2B4kABz0ZJg1vAgCWaguxkeNMBENOm/dOwjDwtjzL219juyTmvcGg/GmHlMHSp4VnMsGbZKC3pGKkL8SXuHB2piftJndYKHB0tZz1rL7amp0drFrNACFMvVPbbUg3NPD849PTj39ODc04NzTw/OPanBe+IxtaQGPxKP6YUyNAuuNcDxZls1uE9DbiR46svcAMgp/aaVe34BkPklp8STkGMAAAAASUVORK5CYII=",
DIRECTION_LEFT:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAAXNSR0IArs4c6QAAAeBJREFUaAXtmkFOwzAQRROQyoIbsOUSnIPTsGKJ6DHgDpQjsGDFJRquAEJK/6BO9GU5JMhO8JixNPLEjpN5f5y6Td00XlwBV8AVcAVcAVfAFbCsQN/3G9gdbA/rYPewjWWm0dgBdgZ7goVlOzrIagcIx2AF/t0qVzTuCdi6gGfACnAdU3om7LOcF50alhodFgoExTNraQZ/x4oM/rT0aII9s1Yzu9MUjtRVZdZhKcueWX9mS1YAU1WWHn9m6ZkVMUx+N255pgHiHMdvsEtuN+p3iPsRdtu27acyhMAv6LjSzkrqLYBvlCUE/kLHqXZWUncAvlCW/wDcAHjgPFHyY/0aHFd3OJALWWUfWkOyOMNDozqy3MCm1uAilyXEHS3KNlpjlEnoKC0aR0G5wyJ0ErDAz4Qu5pdSMrA16CzAlqCzAVuBzgpsATo7cOnQiwATdOw/YL7n6p/efHP2JebkggsW90KeIdlPhtULlAbNkOxrvFnqkqAZkv0soHyRmdCL/yHOkOxzrNn8GdCL7/FgSPazQYYXmoBeA1i2SYVlz3GGbzy479c+fmh/YNA1bBcZ/BBpy90kbynDEmsLz0k7hsR/sjHteF/ZBCeZFqt3Q1xainy0K+AKuAKugCvgCqyhwAG/yvXGudncwgAAAABJRU5ErkJggg==",
DIRECTION_BACK:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAAXNSR0IArs4c6QAAAeJJREFUaAXtmd1uwyAMhdtdpBd777UvtO0NtpfYdfsSk7JjCaQ0AoPBCc5kJERC8MGfT3/F6eTNK+AVaK3APM8T+g39HjpdT6165uMCLIandjOfeGuCwCRn1+3eqtcSd24Jao0h0lTsGS01v8XcyxailjUd2LI7Grm5wxpVtKzhDlt2RyM3d1ijipY13GHL7mjk5g5rVNGyhjts2R2N3NxhjSpa1nCHLbujkZs7rFFFyxrusGV3NHJzhzWqaFnDHU65gxMSOvV7Q4+nfleaS63dY27zfAIshqf2gbuLBPApenEj1Lgg9H0RHi+vEh12LRRTp360kQg6ZrYe2c0XDxGXgyXJx2Jp3yXEcsC0UTU0LU61muwQx8GSrCowvWe5VgWdEygBI64ES9J6B+sQm9AJimtF6FwwB4yYGthPWsfpiJ+FjbugpcDDYGN1eqElwMNhhdDJl1gtsBnYXugaYHOwPdAlYLOwrdAccIAtfSgm3yoxn11GSaI5YInGLlClTQQJ55jtO7suQiV0DpibH/8yXsPG+wCd+ifDAXHP7MJuAF38qRr3HD4qOH0c2FjtDujjwXZAHxe2Afr4sALo/wO7gv5JfAfRnO6f97jp6BFgr+hf6L+hf9Pc6Lx8f6/AgSvwB0P1yfltdbYsAAAAAElFTkSuQmCC",
DIRECTION_BACK_FAST:"data:image/png;base64,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aXYyIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOmlwdGNFeHQ9Imh0dHA6Ly9pcHRjLm9yZy9zdGQvSXB0YzR4bXBFeHQvMjAwOC0wMi0yOS8iCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpwbHVzPSJodHRwOi8vbnMudXNlcGx1cy5vcmcvbGRmL3htcC8xLjAvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjlhNjdmMzc0LWI4NTMtMDc0NC05NTMxLWY5OTY4MzRkMzEwMiIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpjY2IyMDQyNS1mZWVjLTQzODMtYjgyMS0xNWNlZTZjNmRkYjgiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo5YTY3ZjM3NC1iODUzLTA3NDQtOTUzMS1mOTk2ODM0ZDMxMDIiCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09Ik1hYyBPUyIKICAgR0lNUDpUaW1lU3RhbXA9IjE1NzgzOTA3NTA5ODc5MTciCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4xNCIKICAgZGM6Rm9ybWF0PSJpbWFnZS9wbmciCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIKICAgeG1wOkNyZWF0ZURhdGU9IjIwMjAtMDEtMDdUMTA6MjMrMDE6MDAiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIgogICB4bXA6TWV0YWRhdGFEYXRlPSIyMDIwLTAxLTA3VDEwOjI5OjU0KzAxOjAwIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0wMS0wN1QxMDoyOTo1NCswMTowMCI+CiAgIDxpcHRjRXh0OkxvY2F0aW9uQ3JlYXRlZD4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OkxvY2F0aW9uQ3JlYXRlZD4KICAgPGlwdGNFeHQ6TG9jYXRpb25TaG93bj4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OkxvY2F0aW9uU2hvd24+CiAgIDxpcHRjRXh0OkFydHdvcmtPck9iamVjdD4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OkFydHdvcmtPck9iamVjdD4KICAgPGlwdGNFeHQ6UmVnaXN0cnlJZD4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OlJlZ2lzdHJ5SWQ+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249ImNyZWF0ZWQiCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6OWE2N2YzNzQtYjg1My0wNzQ0LTk1MzEtZjk5NjgzNGQzMTAyIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjAtMDEtMDdUMTA6MjMrMDE6MDAiLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MzI0NThhNDMtY2M5NS00MDEzLWI0YTEtYWQ1YWI3MzA2NmIzIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKE1hYyBPUykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjAtMDEtMDdUMTA6NTI6MzArMDE6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogICA8cGx1czpJbWFnZVN1cHBsaWVyPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6SW1hZ2VTdXBwbGllcj4KICAgPHBsdXM6SW1hZ2VDcmVhdG9yPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6SW1hZ2VDcmVhdG9yPgogICA8cGx1czpDb3B5cmlnaHRPd25lcj4KICAgIDxyZGY6U2VxLz4KICAgPC9wbHVzOkNvcHlyaWdodE93bmVyPgogICA8cGx1czpMaWNlbnNvcj4KICAgIDxyZGY6U2VxLz4KICAgPC9wbHVzOkxpY2Vuc29yPgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+BuZCpQAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+QBBwk0Hq9CFyYAAAIfSURBVGje7dtLTsMwEAbgMUhNpZ4AbgQHa3ONXgDEgkJVSlbAJbpu93SL87MJUhXy8IwnTtJ6pGz6cOaTHau/pRoAdEl1RRdWFwcmAK2X4r0mAFIA++JKAUyCWgKDU/yvNCTYuICMMVoN7YnopvTywRhzqwVutQQGo2Z8Ewocd+kIjuAIjuAIjuAIjuAIjuAI1gMXwX1xEtznmsFdeJAg68clNBeDl+sZQMKNh1XFHCMBsKoYZq524gHgUNMrC+0LbsCimOlWi+8zfE9ED9yZFi7jhIgeieguxKa17BPtiF1qPsMJgBc0V+vylizplmX8V6tiI9M7tdRAc8EMbOI6eaxjWl80B+x4r9XpvTo5l/ZBu4Il2M7Ang21gqVjdwr2WHKNYB9s52BJg01gX2wQMLfRhve9sargth/rjIbrirUJ1vWjCV44NOGCllTVfYYRHjpAu2Kdw4MvuEs0B6sOTpWbQwfjLTTBiWBjkaIl4wwjPAjQUuxwwgMDLdkLBhMengAYBtob2394yPNXANPSd3YVn9xpYIcRHqx9K6FnAL4A/BTXJ4DZeYUHazcApt/bbeXYxyyjY5adWXiwdg3AlNEn2OtBhQfH82Knma78bp5vfA8Ig4KlaAAJrH3XwAYHc3fvYmbXWthewIyd9gPARhPbG7iL8DB4sGZ4GA1YIzyMDuwTHkYLloSH0YM54eFswC7hIQTYIP5RK4LPqn4BT80Uo2sa9KoAAAAASUVORK5CYII=",
TURN_RIGHT_90:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNC4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDcwIDc0IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA3MCA3NDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2Rpc3BsYXk6bm9uZTt9DQoJLnN0MXtkaXNwbGF5OmlubGluZTtmaWxsOiNGQzAwMDA7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQ0KCS5zdDJ7b3BhY2l0eTowLjQ7ZmlsbDojRkZGRkZGO2VuYWJsZS1iYWNrZ3JvdW5kOm5ldyAgICA7fQ0KCS5zdDN7ZmlsbDpub25lO3N0cm9rZTojRkZGRkZGO3N0cm9rZS13aWR0aDo3O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDt9DQoJLnN0NHtmaWxsOiNGRkZGRkY7c3Ryb2tlOiNGRkZGRkY7c3Ryb2tlLXdpZHRoOjQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwO30NCjwvc3R5bGU+DQo8ZyBpZD0iTGF5ZXJfMiIgY2xhc3M9InN0MCI+DQoJPHJlY3QgeD0iLTI0IiB5PSItMjAiIGNsYXNzPSJzdDEiIHdpZHRoPSIxMTEuNSIgaGVpZ2h0PSIxMTEuNSIvPg0KPC9nPg0KPGcgaWQ9IkxheWVyXzEiPg0KCTxjaXJjbGUgY2xhc3M9InN0MiIgY3g9IjMyLjIiIGN5PSIzNS4yIiByPSIzMC44Ii8+DQoJPHBhdGggY2xhc3M9InN0MiIgZD0iTTYzLDM1LjJIMzIuMlY0LjRDNDkuMSw0LjQsNjMsMTguMiw2MywzNS4yeiIvPg0KCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0zMi4yLDQuNGMxNC4xLDAsMjUuOSw5LjUsMjkuNiwyMi4zIi8+DQoJPGc+DQoJCTxwb2x5Z29uIGNsYXNzPSJzdDQiIHBvaW50cz0iNTUuNSwyNi4xIDYzLDM1LjIgNjcuMSwyNC4yIAkJIi8+DQoJPC9nPg0KPC9nPg0KPC9zdmc+DQo=",
TURN_LEFT_90:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNC4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDcwIDc0IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA3MCA3NDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2Rpc3BsYXk6bm9uZTt9DQoJLnN0MXtkaXNwbGF5OmlubGluZTtmaWxsOiNGRjAwMDA7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQ0KCS5zdDJ7b3BhY2l0eTowLjQ7ZmlsbDojRkZGRkZGO2VuYWJsZS1iYWNrZ3JvdW5kOm5ldyAgICA7fQ0KCS5zdDN7ZmlsbDpub25lO3N0cm9rZTojRkZGRkZGO3N0cm9rZS13aWR0aDo3O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDt9DQoJLnN0NHtmaWxsOiNGRkZGRkY7c3Ryb2tlOiNGRkZGRkY7c3Ryb2tlLXdpZHRoOjQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwO30NCjwvc3R5bGU+DQo8ZyBpZD0iTGF5ZXJfMiIgY2xhc3M9InN0MCI+DQoJPHJlY3QgeD0iLTIyIiB5PSItMTUiIGNsYXNzPSJzdDEiIHdpZHRoPSIxNjMiIGhlaWdodD0iMTI3Ii8+DQo8L2c+DQo8ZyBpZD0iTGF5ZXJfMSI+DQoJPGNpcmNsZSBjbGFzcz0ic3QyIiBjeD0iMzcuNyIgY3k9IjM1LjYiIHI9IjMwLjgiLz4NCgk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNNi45LDM1LjZoMzAuOFY0LjhDMjAuNyw0LjgsNi45LDE4LjYsNi45LDM1LjZ6Ii8+DQoJPHBhdGggY2xhc3M9InN0MyIgZD0iTTM3LjcsNC44Yy0xNC4xLDAtMjUuOSw5LjUtMjkuNiwyMi4zIi8+DQoJPGc+DQoJCTxwb2x5Z29uIGNsYXNzPSJzdDQiIHBvaW50cz0iMi43LDI0LjYgNi45LDM1LjYgMTQuMywyNi41IAkJIi8+DQoJPC9nPg0KPC9nPg0KPC9zdmc+DQo=",
TURN_RIGHT_180:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNC4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDcwIDc0IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA3MCA3NDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2Rpc3BsYXk6bm9uZTt9DQoJLnN0MXtkaXNwbGF5OmlubGluZTtmaWxsOiNGQjBGMEM7fQ0KCS5zdDJ7b3BhY2l0eTowLjQ7ZmlsbDojRkZGRkZGO2VuYWJsZS1iYWNrZ3JvdW5kOm5ldyAgICA7fQ0KCS5zdDN7b3BhY2l0eTowLjQxO2ZpbGw6I0ZGRkZGRjtzdHJva2U6I0ZGRkZGRjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtlbmFibGUtYmFja2dyb3VuZDpuZXcgICAgO30NCgkuc3Q0e2ZpbGw6bm9uZTtzdHJva2U6I0ZGRkZGRjtzdHJva2Utd2lkdGg6NztzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7fQ0KCS5zdDV7ZmlsbDojRkZGRkZGO3N0cm9rZTojRkZGRkZGO3N0cm9rZS13aWR0aDo0O3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPGcgaWQ9IkxheWVyXzIiIGNsYXNzPSJzdDAiPg0KCTxyZWN0IHg9Ii04LjYiIHk9Ii03LjQiIGNsYXNzPSJzdDEiIHdpZHRoPSI5Ny43IiBoZWlnaHQ9Ijk1LjIiLz4NCjwvZz4NCjxnIGlkPSJMYXllcl8xIj4NCgk8Y2lyY2xlIGNsYXNzPSJzdDIiIGN4PSIzNC41IiBjeT0iMzYuMiIgcj0iMzEuNyIvPg0KCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0zNC44LDY3LjZDNTIuMiw2NS42LDY4LjEsNDkuOSw2NiwzMi41Yy0xLjktMTYtMTUuNC0yNy44LTMxLjItMjcuOUwzNSwzNi4yTDM0LjgsNjcuNnoiLz4NCgk8cGF0aCBjbGFzcz0ic3Q0IiBkPSJNNDQsNjUuOGMxMy44LTQuOSwyMy41LTE4LjcsMjEuOC0zMy4yQzY0LDE2LjYsNTAuNSw0LjgsMzQuOCw0LjUiLz4NCgk8Zz4NCgkJPHBvbHlnb24gY2xhc3M9InN0NSIgcG9pbnRzPSI0Nyw3MS4xIDM1LjUsNjcuNiA0NC4zLDU5LjMgCQkiLz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==",
TURN_LEFT_180:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNC4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDcwIDc0IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA3MCA3NDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2Rpc3BsYXk6bm9uZTt9DQoJLnN0MXtkaXNwbGF5OmlubGluZTtmaWxsOiNGRjAwMDA7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQ0KCS5zdDJ7b3BhY2l0eTowLjQ7ZmlsbDojRkZGRkZGO2VuYWJsZS1iYWNrZ3JvdW5kOm5ldyAgICA7fQ0KCS5zdDN7ZmlsbDpub25lO3N0cm9rZTojRkZGRkZGO3N0cm9rZS13aWR0aDo3O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDt9DQoJLnN0NHtmaWxsOiNGRkZGRkY7c3Ryb2tlOiNGRkZGRkY7c3Ryb2tlLXdpZHRoOjQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwO30NCjwvc3R5bGU+DQo8ZyBpZD0iTGF5ZXJfMiIgY2xhc3M9InN0MCI+DQoJPHJlY3QgeD0iLTMuOSIgeT0iLTIuOCIgY2xhc3M9InN0MSIgd2lkdGg9IjgzLjMiIGhlaWdodD0iODUuMiIvPg0KPC9nPg0KPGcgaWQ9IkxheWVyXzEiPg0KCTxjaXJjbGUgY2xhc3M9InN0MiIgY3g9IjM2IiBjeT0iMzYuMyIgcj0iMzIiLz4NCgk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMzUuNSwzNi4zbDAuMS0zMkMxOS43LDQuNSw2LjEsMTYuNCw0LjIsMzIuNkMyLjEsNTAuMiwxOC4yLDY2LDM1LjYsNjhMMzUuNSwzNi4zeiIvPg0KCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0zNS42LDQuNEMxOS44LDQuNiw2LjMsMTYuNSw0LjQsMzIuN2MtMS43LDE0LjYsOCwyOC42LDIyLDMzLjUiLz4NCgk8Zz4NCgkJPHBvbHlnb24gY2xhc3M9InN0NCIgcG9pbnRzPSIyNi4xLDU5LjYgMzUsNjggMjMuMyw3MS41IAkJIi8+DQoJPC9nPg0KPC9nPg0KPC9zdmc+DQo=",
WAIT:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjRkZGIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgPHBhdGggZD0iTTkgOUgybDctN0gyTTcgMTZINGwzLTNINE0xNiAxMWgtNWw1LTVoLTUiLz4KICAgIDwvZz4KPC9zdmc+Cg==",WAIT_1:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAC4jAAAuIwF4pT92AAAG12lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAxLTA4VDEzOjIyOjEyKzAxOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0wMS0wOFQxMzoyODozNyswMTowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMC0wMS0wOFQxMzoyODozNyswMTowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxMTFiNjM0ZS0xMzk4LWFiNGUtODM2MS0zZWFiODYzMmM5OTciIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDoxYzRlMzcyZi1hOTU4LTkwNDQtOTY4Mi1mNGJmZWFlMzYyZDgiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpiNTE5MjY5OC1jNTZhLWY1NDUtODY4Yy1mOTg2MTc3N2EwNWQiPiA8cGhvdG9zaG9wOlRleHRMYXllcnM+IDxyZGY6QmFnPiA8cmRmOmxpIHBob3Rvc2hvcDpMYXllck5hbWU9IjEiIHBob3Rvc2hvcDpMYXllclRleHQ9IjEiLz4gPC9yZGY6QmFnPiA8L3Bob3Rvc2hvcDpUZXh0TGF5ZXJzPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmI1MTkyNjk4LWM1NmEtZjU0NS04NjhjLWY5ODYxNzc3YTA1ZCIgc3RFdnQ6d2hlbj0iMjAyMC0wMS0wOFQxMzoyMjoxMiswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjExMWI2MzRlLTEzOTgtYWI0ZS04MzYxLTNlYWI4NjMyYzk5NyIgc3RFdnQ6d2hlbj0iMjAyMC0wMS0wOFQxMzoyODozNyswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFj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",
WAIT_5:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAC4jAAAuIwF4pT92AAAG12lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAxLTA4VDEzOjIyOjEyKzAxOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0wMS0wOFQxMzoyODoxNSswMTowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMC0wMS0wOFQxMzoyODoxNSswMTowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozYzI4YjA0ZS02YjQ1LTlhNGEtYjVjNy1kY2I4YjI0YTY4OTIiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo1OGE2MDA4ZC04ZDIzLTI4NDgtOTU4ZS1kZGM2MzAxZjlhYTkiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpmNDhhMTc5NC04YjQ0LWE4NDgtYjcwNC02NjAwZjIzYTMyNDgiPiA8cGhvdG9zaG9wOlRleHRMYXllcnM+IDxyZGY6QmFnPiA8cmRmOmxpIHBob3Rvc2hvcDpMYXllck5hbWU9IjUiIHBob3Rvc2hvcDpMYXllclRleHQ9IjUiLz4gPC9yZGY6QmFnPiA8L3Bob3Rvc2hvcDpUZXh0TGF5ZXJzPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmY0OGExNzk0LThiNDQtYTg0OC1iNzA0LTY2MDBmMjNhMzI0OCIgc3RFdnQ6d2hlbj0iMjAyMC0wMS0wOFQxMzoyMjoxMiswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjNjMjhiMDRlLTZiNDUtOWE0YS1iNWM3LWRjYjhiMjRhNjg5MiIgc3RFdnQ6d2hlbj0iMjAyMC0wMS0wOFQxMzoyODoxNSswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFj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",
BREAK:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjRkZGIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgPHBhdGggZD0iTTE2LjQ0OSA4LjkyM0g3LjExNU0xMi45NSAxMi40MjNsMy40OTktMy41LTMuNS0zLjUiLz4KICAgICAgICA8cGF0aCBkPSJNMTMgMTZIMlYyaDExIi8+CiAgICA8L2c+Cjwvc3ZnPgo=",STOP_ALL:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjRkZGIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgICAgICA8cGF0aCBkPSJNMTYuNjY3IDlBNy42NjYgNy42NjYgMCAxIDEgMS4zMzQgOWE3LjY2NiA3LjY2NiAwIDAgMSAxNS4zMzMgMHpNMy41NzkgMy41OEwxNC40MiAxNC40Mk0xNC40MjEgMy41OEwzLjU4IDE0LjQyIi8+CiAgICA8L2c+Cjwvc3ZnPgo=",
STOP:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjRkZGIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgICAgICA8cGF0aCBkPSJNMTYuNjY3IDlBNy42NjYgNy42NjYgMCAxIDEgMS4zMzQgOWE3LjY2NiA3LjY2NiAwIDAgMSAxNS4zMzMgMHpNMTQuNDIxIDMuNThMMy41OCAxNC40MiIvPgogICAgPC9nPgo8L3N2Zz4K",BUMPER:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxwYXRoIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTQuNTU2IDkuODg5SDFWOC4xMWgzLjU1NlY2LjMzM0w3LjIyMiA5bC0yLjY2NiAyLjY2N1Y5Ljg4OXptOC44ODgtMS43NzhIMTdWOS44OWgtMy41NTZ2MS43NzhMMTAuNzc4IDlsMi42NjYtMi42Njd2MS43Nzh6TTkgOWwuODg5LThoMi42NjdMOSA5em0wIDBsMy41NTYgOEg5Ljg4OUw5IDl6bTAgMEw1LjQ0NCAxaDIuNjY3TDkgOXptMCAwbC0uODg5IDhINS40NDRMOSA5eiIvPgo8L3N2Zz4K",
REPEAT:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjRkZGIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgICAgICA8cGF0aCBkPSJNMTEuMzMzIDE0LjY2N2gtNmEyIDIgMCAwIDEtMi0yVjcuMzMzTTYuNjY3IDMuMzMzaDZhMiAyIDAgMCAxIDIgMnY1LjMzNCIvPgogICAgICAgIDxwYXRoIGQ9Ik0xLjMzMyA4LjY2N2wyLTEuMzM0IDIgMS4zMzRNMTIuNjY3IDkuMzMzbDIgMS4zMzQgMi0xLjMzNCIvPgogICAgPC9nPgo8L3N2Zz4K",
TUNE:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjRkZGIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgICAgICA8cGF0aCBkPSJNOS40MTcgMTQuMzMzYzAgMS4xNDMtMS4xMiAyLjI4Ni0yLjUgMi4yODZzLTIuNS0xLjAyNC0yLjUtMi4yODYgMS4xMi0yLjI4NSAyLjUtMi4yODVoMi41djIuMjg1ek05LjQxNyAxMi4wNDhWMi45MDVsNC4xNjYtMS41MjRNOS40MTcgNS41NzFsNC4xNjYtMS41MjMiLz4KICAgIDwvZz4KPC9zdmc+Cg==",
SPIN:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjRkZGIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgICAgICA8cGF0aCBkPSJNMTcuMTU4IDEwLjA0OEwxNC44OCA3LjU3M2wtMS43OTEgMi44MzNNMTQuODY3IDcuNjA0Yy44OTYgMy40NjUtMS4xNzQgNy4wNDUtNC43MTYgNy45MjFNNS40MiAxLjM2TDQuMTQ5IDQuNDVsMy4zODcuMzNNNC4xNTggNC40NDRjMi43ODktMi4zMDggNy4wMS0yLjA2IDkuMzcuNjdNMi45ODIgMTZsMy4zNjgtLjQ4Mi0xLjQxOC0zLjAyOU02LjMwNCAxNS40OUMyLjg2IDE0LjMuOTg4IDEwLjYzIDIuMjA2IDcuMjYiLz4KICAgIDwvZz4KPC9zdmc+Cg==",
LIGHT:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxwYXRoIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTcuMTI3IDEyLjg2OGMtMS41MDMtLjc1Mi0yLjU0Mi0yLjM2NS0yLjU0Mi00LjIzNCAwLTIuNTg4IDEuOTkyLTQuNjg2IDQuNDQ5LTQuNjg2czQuNDQ4IDIuMDk4IDQuNDQ4IDQuNjg2YzAgMS44NjktMS4wMzkgMy40ODItMi41NDIgNC4yMzR2MS4xMkg3LjEyN3YtMS4xMnptMCAyLjEyNGgzLjgxM1YxN0g3LjEyN3YtMi4wMDh6TTkuNTQgMi45NDRoLTFWMWgxdjEuOTQ0ek0xLjUgOC44MVY3LjgwNmgyLjIxNlY4LjgxSDEuNXpNMy40NTIgMy4zbC42OTktLjcxIDEuNTY3IDEuNTktLjcuNzFMMy40NTMgMy4zem0xMC45NjcgNS42MTVWNy45MTFIMTYuNXYxLjAwNGgtMi4wODF6bS0xLjA4Mi00LjEyMWwtLjY5OS0uNzFMMTQuMTEgMi41OWwuNy43MS0xLjQ3MyAxLjQ5NHoiLz4KPC9zdmc+Cg==",
LIGHT_BLUE:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAYAAAA4TnrqAAAACXBIWXMAAC4jAAAuIwF4pT92AAAGWWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAxLTA3VDEzOjM5OjE5KzAxOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0wMS0wN1QxMzo0NzoyOSswMTowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMC0wMS0wN1QxMzo0NzoyOSswMTowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4ZTQ2MWRmNy00M2QyLTA0NDktOThlYS02YzZmZjQzZDMxODYiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDplY2U1Yzg4Zi0yY2NjLWFjNDAtYWNlOC05YjY0ZDAzOWI5ZDEiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0NDdiOGRhZC0yOGEwLWUyNGUtYWZmNi1lYjc4OTA0NmM5Y2UiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjQ0N2I4ZGFkLTI4YTAtZTI0ZS1hZmY2LWViNzg5MDQ2YzljZSIgc3RFdnQ6d2hlbj0iMjAyMC0wMS0wN1QxMzozOToxOSswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjhlNDYxZGY3LTQzZDItMDQ0OS05OGVhLTZjNmZmNDNkMzE4NiIgc3RFdnQ6d2hlbj0iMjAyMC0wMS0wN1QxMzo0NzoyOSswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgdcC2IAAAWpSURBVHic7ZvNa1NLGMafSWuwWCX4gdaqRBD8qNJzuxJd3IpUFDctuhO8daGgrq66EuF250r7F0jvwp3o7V24cZMU3GpjBXVTEhUNgu2pWlqlH89dnNPbdDKTZHLm5APOA0PITM68z/nlncmcMyeCJCJVpli9DTSTIlgGimCZiKSy1MnLENcqVScfyhJlloEiWAaKYBkogmWgCJaBrMAi6djoJ0yRTAbtIzAskiMAUo0MzPc27nutWq0BTYwAGPTfpkieEEJkAnSZlt7nAvQF4H9QKQAJAIMkIYS4VG1nVS1KSQ6zWG4jZRhJx/cka7jMcWomAWDpjDQEsCD+rMMKaihMBfWlYyJ0YIQQFRvD6pxQqBkAFc1hfh+9fh/dBX2N+a9pABkhxEwAPwDwW4V+9A3VZlahQc03qb0QJtlLckRznE7/kBys0kvJ46Q+7A/DMiZdKtY2PqSUASCVsqVOXuGlYlA1gSWZdCnNDSQTVP+CBlGKmsVmgRcjUDWDVWDSkeqSJMctg1qRS7K3asPqcwhngq8gsAP9hIvFRWB6GpiYAF6+BCYngU+fgK1bgd27ge5uoKcH2LULiMdLhrokBP4GgvvWJovtzJL6TlAzgS8tkV+/kg8fkqdPk9u3kxs2kLGYl++xGLl+Pbl5M3n0KHnvHpnNkgsLJbOs35Lv2gzDgoAJaobe3Bz56BHpOJ6DSktnJ3n/Pjk1VXJIOs0Ia1h1Np8/kzdvkq2tZqAKy8AAOTlJLi8rgY03FSx6y4MiffhAnjtXPaTC0tNDTkxoM2yomWClZPeuS169agfUSjl2jMzllLBckomGh6XKqoUFcnjYLqiVcvky+f273eyqJawR2fWLF+TeveHAAsjHj5Xzl9vQsOj9Aq7R3Bx55054oADy1Cny2zdldvU3Mqx+VVYdPBguLIBMp5WwRmzCsr2787tcMTYGvH1rOYpCo6PAz59F1Y7NGNp78PQuQJNljk8LIdIF7x35A8+fV+GqCqVSgOsCHR1rqov8sPx15AyAjLJFl3Ks7DbKkNRXVv7A/v3hD0HAu1R69Urp0ZE8llOqVsMwKVd8/Gg5gkbz80A2q2xK2IoR+o703FzYETy1tAC/foUbo9S+YaaC43N2bDSHtLCEEH/aCNDeDszO2uiptJaXgba2ij56okz7jK4h0I60QjlI89aePcCbN5ajKNTWBiSTyqaZwjfSr7dS1Kwzbc9ZObni8GHLETTq6ipaNgAAAj5OsEa2YWXkipMnLUfQqK8P2LSpqDpjM4ZtWGNyxfHjwKFDlqNIiseBs2eV9+jTNuNYhSWEGJXr9u0DLlywGaVYfX3AkSPKpqIvL5B0q9UA/Y3IS+LXr8murnBW7uvWkU+fKlfi6iVqECYhwOqVXS8ukg8ekC0t9mHduEHOziphDTU8LD9YSnb+4wd5+7ZdUGfOkPm8EpTLZrit7AdzVGcwPU1eu2YHVF8f+e6dElSgrKo5LD/gkOospqbIu3fJjRurgxSPk7duke/fa0GNW/BeW1h+0HHV2czPk2Nj3k50pZBiMW8359kz73iNXFp4KrlesBI6YCQ5Okru3Lm6ZV8KVGentzGxtKQFRVp6QKQusPzAjg5YPk9euUJ2dJQGtm2bN9d9+VIS1CBg7UuuDyyAJTMsmyWvXye3bFGDam8nL170JnPNdr1L0vFAhQsr9EeOCk+AxBCAv9YaA/J54MkTb2NjaWm1rbUVOHAAOH8e2LFD2XkawIAQhXcWmvSRI028pC7LDOTS0uNFGo/KUvM/OgkhcgD+DdhNRnUdGraif4UZKIJloAiWgWzfg69U6YDH5yx4MFYNlg7NJx2TaBgaKIJloLrMWfSe0PkjQBcZW5vAJqrXBJ+E95e5plI0DA0UwTJQBMtAESwDRbAMFMEyUATLQNprw0jFijLLQBEsA0WwDPQfaXGcu7aWuzIAAAAASUVORK5CYII=",
LIGHT_RED:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAYAAAA4TnrqAAAACXBIWXMAAC4jAAAuIwF4pT92AAAGWWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAxLTA3VDEzOjM5OjE5KzAxOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0wMS0wN1QxMzo0NjowMyswMTowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMC0wMS0wN1QxMzo0NjowMyswMTowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxODZjNjhkZS1mN2NmLTg5NDYtOWQ2ZC1lYzcxYzc0NjJlNGIiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo1ODVkMWZjNC04ZGZlLTllNGUtYmU4NS00N2JlZDJhMTI1ZDciIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDplZTNhYmQ4My1iMjY1LTk2NGEtOTEyNC00NDQ2MzMzNDY3YTAiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmVlM2FiZDgzLWIyNjUtOTY0YS05MTI0LTQ0NDYzMzM0NjdhMCIgc3RFdnQ6d2hlbj0iMjAyMC0wMS0wN1QxMzozOToxOSswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjE4NmM2OGRlLWY3Y2YtODk0Ni05ZDZkLWVjNzFjNzQ2MmU0YiIgc3RFdnQ6d2hlbj0iMjAyMC0wMS0wN1QxMzo0NjowMyswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqHq9wwAAAWnSURBVHic7ZvNaxRJGMafmsRgMMrgBxqjMoLgR5T05iR62IhEFC8JehPceFBQT6ueRNi5edL8BZI9eBPd7MGLl5mAV80YQb2EGRUdBJOOGhIlH88eurOZdFfNdE1Xzwf0A03o6un3ffqXt2qqu3oEScQKpkS9DTSTYlgaimHpiKR0q5OXNNcqUycf0i2uLA3FsDQUw9JQDEtDMSwNGYFF0jIRJ0qRTIWNERoWyREAmUYG5nobd71WrdaQJkYADLm7GZInhBC5ECGznv1CiFgA/geVAZAEMEQSQohL1QaralJKcph+2Y1UYSQt15NXwxXOkzMJAUtlpCGAhfFnHFZYQ1EqrC8VE6ECI4QIbAyrY0KpZgAEGsPcGH1ujJ6SWGPu3yyAnBBiJoQfAPgtoB/1gWorq9Sg4j+pvBEm2UdyRHGeSv+QHKrSS9nzPDHMd8MKJm1K5jYupIwGIJny5S5e4iUwqJrA8pi06RkbSCYp/wYNowwVk80SL1qgagarxKTlaUuRHDcMakU2yb6qDcuvIZoBPkBiC+oBF1hcBKangYkJ4OVLYHIS+PQJ2LoV2L0b6OkBenuBXbuAtrZyqS5BiL9NuFYWi+nK8sROUjWALy2RX7+SDx+Sp0+T27eTGzaQiYRT8IkEuX49uXkzefQoee8emc+TCwvlqmzAkO/adMOShEmqut7cHPnoEWlZjoWgW1cXef8+OTVVrktazQhrWHo5nz+TN2+Sra16oEq3wUFycpJcXpZlGG8qWHSmB359+ECeO1c9pNKtt5ecmFBVWLqZYGV89m2bvHrVDKiV7dgxslCQwbJJJhselrSqFhbI4WGzoFa2y5fJ79+NVlctYY34bL94Qe7dGw0sgHz8WDZ+2Q0Ni8434FrNzZF37kQHCiBPnSK/fZNV10AjwxqQVtXBg9HCAshsVgZrxCQs06s7v/taxsaAt28Np5FodBT4+dPbaplMoXwGT+cGNFXh/KwQIluyb/k+8fy5vqtqlMkAtg10dpa2+vyw8n3kDICc9Iiq5BjsMUraEyvv+8T+/dF3QcC5VXr1SubR8nispEytumHK1/Lxo+EUCs3PA/m87EjSVIroV6Tn5iJPAQBoaQF+/Yo0Rbl1w1yA8wtmbDSHlLCEEH8aydDRAczOGglVVsvLQHt7kE+eqHB8RnUg1Iq0RAV4x609e4A3bwynkai9HUilZEdmSnc8395SUTHPND1mFXwthw8bTqFQd7d32gAACPk6wRqZhpXztZw8aTiFQv39wKZN3tacyRSmYY35Wo4fBw4dMpzGo7Y24OxZ2TP6rMk0RmEJIUZ9jfv2ARcumEzjV38/cOSI7Ij/nxdGqtlqiHgjvjnx69dkd3c0M/d168inT2UzcekMNRSTCGD1+WwvLpIPHpAtLeZh3bhBzs7KYKUbHpabLOOz/uMHefu2WVBnzpDFogyUzWZ4rOwms2RXwOlp8to1M6D6+8l376RpwlRVzWG5CdPSy5iaIu/eJTdurA5SWxt56xb5/r0K1LgB77WF5SYdl17O/Dw5NuasRAeFlEg4qznPnjnny2XTwFvJ9YKVVAIjydFRcufO1SX7cqC6upyFiaUlZTgaekGkLrDcxJYSWLFIXrlCdnaWB7ZtmzPWfflSDtSQKdf1g4UKFZbPk9evk1u2yEF1dJAXLzqDuXy53iZp0c1lxLOCSfSvHK11kQbwl8cZUCwCT544CxtLS6vHWluBAweA8+eBHTtk4bMABlHyrmnTvnKkyJdSVllw2TT0epHCo3Sr+Q+dhBAFAP+GDJOT3odGrPhXYRqKYWkohqUh08/ggyob8vyCAQ/ainzq0IxSMYm7oYZiWBqqy5hF5w2dP0KEyBlbBNZQvQb4FJyfzDWV4m6ooRiWhmJYGophaSiGpaEYloZiWBpS3hvG8iuuLA3FsDQUw9LQf+hRnLtpwpU+AAAAAElFTkSuQmCC",
LIGHT_GREEN:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAYAAAA4TnrqAAAACXBIWXMAAC4jAAAuIwF4pT92AAAGWWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAxLTA3VDEzOjM5OjE5KzAxOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0wMS0wN1QxMzo0Njo0NSswMTowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMC0wMS0wN1QxMzo0Njo0NSswMTowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozMWQ4ZmZiMy05NThiLWFiNGQtYmY5NS0wMzE2MWRkM2UwZjMiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDowNWQ4YzU3Ny05ZGUxLTE5NGMtOGY5Mi1jMjI4NDM0ZTVmZDgiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0YWRlOTRiMS04NjAwLTUwNGItYWQ0Ny0xM2M5MzM1YmE0YWYiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjRhZGU5NGIxLTg2MDAtNTA0Yi1hZDQ3LTEzYzkzMzViYTRhZiIgc3RFdnQ6d2hlbj0iMjAyMC0wMS0wN1QxMzozOToxOSswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjMxZDhmZmIzLTk1OGItYWI0ZC1iZjk1LTAzMTYxZGQzZTBmMyIgc3RFdnQ6d2hlbj0iMjAyMC0wMS0wN1QxMzo0Njo0NSswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhfppGkAAAZ6SURBVHic7ZtPaBNZHMe/L0kT28bdLhX806pdEFGrmO1FqIIVKSiKbv13EbS9VmR3tSJ42V7Em931IuLBLogXqXZvUg9JQTzaUtB6UFqVRNGtibQ2/TOZ7x6adaeTN0km86Z/YD4wtPNe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",
LIGHT_BLACK:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAYAAAA4TnrqAAAACXBIWXMAAC4jAAAuIwF4pT92AAAJi2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyMC0wMS0wN1QxMzozOToxOSswMTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjAtMDEtMDdUMTQ6NDY6NTErMDE6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjAtMDEtMDdUMTQ6NDY6NTErMDE6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzMwZGM1YTAtNDQ0NC1jMzRiLTg0YWMtOTE3MWFjNjNlMGZhIiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6OGNhOGYzNjItN2Q3NC1jMjQyLThiOTMtMTkyZjcyNTcyOTg2IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6YjQ4NTFiNGYtMmIxZC00YjRlLTliYTctMmJkMDhhN2JiYzJiIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpiNDg1MWI0Zi0yYjFkLTRiNGUtOWJhNy0yYmQwOGE3YmJjMmIiIHN0RXZ0OndoZW49IjIwMjAtMDEtMDdUMTM6Mzk6MTkrMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4wIChXaW5kb3dzKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6YWQ5NzhlNzctNmE5MS1mNzQwLWE2NjctYWM1ZTZjNTkyMDUxIiBzdEV2dDp3aGVuPSIyMDIwLTAxLTA3VDEzOjQ5OjMxKzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjliOTdlMWNjLWYyOTYtMGE0MS04NTE5LWVkMTQxNWI1YTE0OSIgc3RFdnQ6d2hlbj0iMjAyMC0wMS0wN1QxNDo0Njo1MSswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImRlcml2ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImNvbnZlcnRlZCBmcm9tIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AgdG8gaW1hZ2UvcG5nIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDozMzBkYzVhMC00NDQ0LWMzNGItODRhYy05MTcxYWM2M2UwZmEiIHN0RXZ0OndoZW49IjIwMjAtMDEtMDdUMTQ6NDY6NTErMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4wIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OWI5N2UxY2MtZjI5Ni0wYTQxLTg1MTktZWQxNDE1YjVhMTQ5IiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6ZjE5MTI3ZDgtMWY3MC02NDQ2LWE4ODMtZjk4MjVlYmY0ZDE1IiBzdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6YjQ4NTFiNGYtMmIxZC00YjRlLTliYTctMmJkMDhhN2JiYzJiIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+lFIqNwAABIdJREFUeJztm01oXFUYhp/bpILZZKQFi4JMXIgihraCblQGtagIxU1BNGrcKKgL/xaiYCvuitaVdKkiuBDxB0S0QjMKBW0XCSoqgiRCdVHQGbHWSExeF2cGk3Huz3fvOXNHOQ9cQsI93/nuM+ee+e45N4kkIsXYVncC/yWiLANRloEoy0CUZSDKMhBlGYiyDERZBqIsA1GWgSjLQJRlIMoyEGUZmKw7gR67gRYwDcwCF/T+/mnvZxtYArojzWoQSXUdLUmvSOqoOO9Imq/Q5wFJH0naXqZ9aCFJiqQFg6BhLBulXSQnus8zZa4npKiJgd8bkl6qKGmQBUnNjBwSSQ9I6g60W5V0ufWaQokaHOZNSYuV1QynIzdaB3O4TFI7o117SJvaRlb/2C3bvFSW+V5/k5KeknQu49xFSXtlvJZECrq70wCWez9HwRPAPbhv12H8ATwHvAj8ZQ0eUlYDWCA98VHTBh4EvisbIGRRepDxENXFSbqRCqIg3Mhq4UZV3bwLPAz85CNYqAr+YKC4RfkTmAPe8hk0hKxW76iLE8B+4BffgUPMWfcFiFmEc8CdwHUEEAX+56wG0PEZsCAfAAdwwoLhe2S1PMfL41fgFuB2AosC/7Ku9xwvDQFvADuBYxnnXeyzU9+yrvIcbxhngGuBu0mvwidx1XylumoQ37KanuNtZgN4GdgFnMo4by/wOfACMIXHwth36XCp53h9fgBuBb7NOGcK99z3KFuvq+ErCd8ja8JzvHXgedyIzRK1D/gSeJKAS+XjsgY/jK9x33SnM87ZCRzBrTQEZxx3d9Zwt9KVZIuawwkdiSjwP7JWqDbJnwRuI7sCnwGO4kZdEboV8tmC75G1UrLdKnAvriRIE9UvB76iuChwW2he8C1rqUSb48AO4PWMc/YAn/FPORAyn1R8y/rEcO5Z3OrATaQ/qkwBh3G359Ul8mmXaJOOddG+wFGEtyWdlxNnn6TvC8ZL4w6f1+ZT0rSkoznJ/yzphpw4OyS9VkLMIMser82rrP2STmckviG3Vb8tJ86cpDOl1PybQ56uzZusCyW9mZP0j8rfo5uR9GE5J0PpyO2Aj4WsRNL9crdVGuuSjmj4+w79Y1LS45LOlrWSgvdRpZKyZiQdy0h0Xe6dhl05cfZIOlXeRyqLOf2ORNaE3Cj4PSPRLyRdkxPnfEmHJa2V95FKR9kvioxE1qykkxlJrkp6VvnlwM2qXg5k0crpfySyjmckeELSFTntp+XKgY0qJnKYz8mh8lG0gn8I9/y2md+AR3Dr7t8UiDELJMXL5cJ0cY9DrwaIvRWD2ac3fYrvS7qkxKdzyNcw6rGgACVC2mE5ebukjyXdVbHTpqq/2NaR50eZIodlPWsNt3xblRXgPaptJCzhXvoYKV4X/5Kk2JQkVd8FL9qXr/5gPJeVx5Yoy0Bduzvtiu1XPORgxutbNJZ5ZJTEOasGoiwDtcxZkuap9obgUpIkj3lKpzB1TfBN6n3vtBTxNjQQZRmIsgxEWQaiLANRloEoy0Dof878XxFHloEoy0CUZeBvIistmofAAwkAAAAASUVORK5CYII=",
LIGHT_SIREN:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAGTGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAxLTA4VDE1OjIxOjMwKzAxOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIwLTAxLTA4VDE1OjIxOjMwKzAxOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0wMS0wOFQxNToyMTozMCswMTowMCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0NjAwNDc0ZC00ZGY5LTJhNDUtYTc1YS03N2NlNDQ0MThhNTYiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo3NjUzNGVhYy0zYjFjLTNjNDktOGExMi00ZGNlODIyYWU3MTIiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDplZGQ1MGVjZC1iNzE4LTlkNGQtODkxYy05N2RiZTQ0MGVmZTUiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDplZGQ1MGVjZC1iNzE4LTlkNGQtODkxYy05N2RiZTQ0MGVmZTUiIHN0RXZ0OndoZW49IjIwMjAtMDEtMDhUMTU6MjE6MzArMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4wIChXaW5kb3dzKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NDYwMDQ3NGQtNGRmOS0yYTQ1LWE3NWEtNzdjZTQ0NDE4YTU2IiBzdEV2dDp3aGVuPSIyMDIwLTAxLTA4VDE1OjIxOjMwKzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDxwaG90b3Nob3A6VGV4dExheWVycz4gPHJkZjpCYWc+IDxyZGY6bGkgcGhvdG9zaG9wOkxheWVyTmFtZT0i8J+aqCIgcGhvdG9zaG9wOkxheWVyVGV4dD0i8J+aqCIvPiA8L3JkZjpCYWc+IDwvcGhvdG9zaG9wOlRleHRMYXllcnM+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+MCjO/wAABlVJREFUeJztnM2LHEUUwF+rSyCDmcUoOUxQlLgERMSDmIPkkpW5iHhbD7ILgoKgN/0rkpsBYReEBA/Zm4iXkPXiKcGDhxCQyaIkZA9DzDLjMithWdrDUmN1TX12vVf1erZ/sDAfPdWv6tfvVXX37BRlWUILH57J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",
LIGHT_RAINBOW:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAGTGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAxLTA4VDE1OjIwOjI4KzAxOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIwLTAxLTA4VDE1OjIwOjI4KzAxOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0wMS0wOFQxNToyMDoyOCswMTowMCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpmNzNhNzc2MC1iODUxLTU0NDAtOTgyYy01Yzk5ZGVmMDdkOWQiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDplMzI0YzAxZC1mMmNmLWFmNDAtOTQ2Ny03ZWM3NzY5YmZhZmEiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDphNTE3Nzk5MS03ODU0LTNmNDQtODNmNS1hYmFkMTcxOWNlZTIiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDphNTE3Nzk5MS03ODU0LTNmNDQtODNmNS1hYmFkMTcxOWNlZTIiIHN0RXZ0OndoZW49IjIwMjAtMDEtMDhUMTU6MjA6MjgrMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4wIChXaW5kb3dzKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZjczYTc3NjAtYjg1MS01NDQwLTk4MmMtNWM5OWRlZjA3ZDlkIiBzdEV2dDp3aGVuPSIyMDIwLTAxLTA4VDE1OjIwOjI4KzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDxwaG90b3Nob3A6VGV4dExheWVycz4gPHJkZjpCYWc+IDxyZGY6bGkgcGhvdG9zaG9wOkxheWVyTmFtZT0i8J+MiCIgcGhvdG9zaG9wOkxheWVyVGV4dD0i8J+MiCIvPiA8L3JkZjpCYWc+IDwvcGhvdG9zaG9wOlRleHRMYXllcnM+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+hu6ZkwAABGBJREFUeJzt3LFyEzEQBuA1kz5NGhheIPAMvEYq6rTQxC3UpqGhSE/FQ9DwDkkBZTqYYXgCUxDZ8qGTVtLu6ted/pnMeBz7cqfPu7o732Wz3+9pBCdPWq/AyGnO3IPNZtNyPRad/fV1vA3d3h4G/yz2uhF+koPOzAApiNTghzJAmNFE8DNAIrFC8DNAJmmB4GeAPKY1hMuqQUwRPj1jvWyVIGoQzEGPZVUgohACgx/KakBEMJQQ/CwepBrCAMHPYkGqIIwR/CwSpBijIYTLokDQIT7//B18/vXT4+PFgBRhKEDMDTo3iwDJxhCCqB38ULoHscbQQPDTLYglhDaCny5BrDAsIVy6A8nC6AjCpSsQbQwLiG8/Pv73XJe7vZoY0hChQeemCxA2RiOIGoBp4EEQMSQBpoEG0cBAhXCBBUHCsIBwgQRBwbCEcIEEYYWJgQbx8mvgyVfHh3AgrOpQwpCECA48I1AgrTAkIEoBpoEB6RFDCsEPDEgyIBgaCH4gQKSul+JiIEK4NAeRalVaGFYQLvj3GK4Ig4ho4+7CbXGPYbI6GmFYQLx5fxxw/07oZi1LYt7oAcMfeE6azyGzEboyhIshBZELME0TEKtWZYVRi+AHt0IiQcGQhHAxB6mtDgQMDQiXLiskFk0MTQgX0+MQi+rgBBWDCKlCBPaqONWRi2EF4WJWIbXHHanqWAIGEcqpE4NW1QMGkRGI9v3g0l+5tsIgQqmQSKxbVUsMIgQQ5dvJesIgMtjLym1X2+/v2K/98yv++94wiFrv9nrVkQPhcn5xfJzCiQUFg0gZhFMdJRChnF+conCrAwmDqPEcIoXhcn5xWjU9pknL2r69VV0+FwWtOogagHAxdpeRZdyn3/9wRfT8y/zvETGIFEFKDwZjENPXpGBSKIhRucjh5q7s/5dzMEKJwYRA0KrDv8hBDKQUgagcwk8OCjJIdcuqgZDM7pI3t6BhTFO823tzt99LYEhUR2pZD1dyf0M7RSCSVcH5VEsFvTqICkByMXaX6SqQRJGsuBbJmtQ5GJwBmQOQGsy55X94gVkhKpeS5gwm9zhijWG3rFh1lH6yp+8bQEwQDQyp91st0yqsOWQORHLD/eqoWS6nytDmEn8Oaf8V7mNqEdwPJygHs6EkQSyqozQ5CNOgoiRblub8Ecr2Pn/XOfR6LhRC+2Lv9qY+RVJ9vySpv9frrvVsy8ot6Zr2oZnUmQK01hVsWbUriTC/hBL7wLRsXdHvQ0pPj0w3tjcUFJCsUyexQe61Z6PlZA6R2KNCh5nbDpS5hFUhue0HtV31kOSB4Rhc2xxAUErWIsgfMphzWSP/skoQ1B0OopWCIGeAgGV1IIhH6n4OIHMrhNxvl5hVVQh6dRAxQZZQJb1sQ/bZXuSDqlBSEAjVUXWhnNtAZJheqiEUlS+oeglCdRAxLgNCWVHNoG5j9KqTJVYKIkT2LW1LgUHEIKq8x7A3HFQEP0GQEYys6ki9hwwQsPwFk+dqL3R2kRsAAAAASUVORK5CYII=",
LIGHT_TRAFFIC:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAGTGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAxLTA4VDE1OjE4OjQ5KzAxOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIwLTAxLTA4VDE1OjE4OjQ5KzAxOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0wMS0wOFQxNToxODo0OSswMTowMCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpiYTdiODQ1NS1jZTY1LTZkNDEtYjQwZC1lOTg5ZDk4OTM2NzUiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo1ZDVkYjc2MC03NjcwLTAzNGQtYTkwMi01ZGU0MWMwYTcxMTgiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDplYzU3MjlmYi1mMDI0LTVhNDMtYjY5NC1iZGVhNDUwMjJlNDUiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDplYzU3MjlmYi1mMDI0LTVhNDMtYjY5NC1iZGVhNDUwMjJlNDUiIHN0RXZ0OndoZW49IjIwMjAtMDEtMDhUMTU6MTg6NDkrMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4wIChXaW5kb3dzKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6YmE3Yjg0NTUtY2U2NS02ZDQxLWI0MGQtZTk4OWQ5ODkzNjc1IiBzdEV2dDp3aGVuPSIyMDIwLTAxLTA4VDE1OjE4OjQ5KzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDxwaG90b3Nob3A6VGV4dExheWVycz4gPHJkZjpCYWc+IDxyZGY6bGkgcGhvdG9zaG9wOkxheWVyTmFtZT0i8J+apiIgcGhvdG9zaG9wOkxheWVyVGV4dD0i8J+apiIvPiA8L3JkZjpCYWc+IDwvcGhvdG9zaG9wOlRleHRMYXllcnM+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+f44s1QAAA5pJREFUeJzt3TFu1EAYhuHPiAIOQMFpqDgAEtDRERGJHIGSIwQpKHR0BIkDUHEaCg4A3VJEFl7HnhmvZ+Z/f2beko2NPY9nvLEieTgcDupxumd9AL3j7lsfwDAMJ213eXUdnNoX52dJO6atEIP1AaWCxABirQFZn/88NMhehKXmMNbnPw8JEoP4cvM1ut+XL54HPx9hrM9/Hg5kDSMFYa0Qzts3r0+7iRUKA1ICYqklHBIKAmQJIwbx7eGj1c+e/f4V3JaMYg7y4eOnowMIQYQQ1grhzGEIKKa/GJbGiG03///mx2ORGUgNjJTtaSiIRyclMVL2k/uLw55MQFKvwlwYKfuboljOEvMZUvvqTEW2QqkOMj3RGkvVlghLl/kMIWcxS6qCpM6O0pFv8MgZYrFcUaoGYv39fkuW37hMZoj1skAOuWS1XAeBhQSJPT6n739PSBBCVjf2DgILC1JqWSEvVxIYpNXQILmvZvrskOAgUr5B9IAhOQCRbgdzz4B6wZCcgIxtHdi9kBaZ//X71pYGeHw67G3wl3IHstT/ADHmaslqoQ4Cq4PAcn0P+fH5551/e/LqscGR5MsdyBLC2ucecdyAxCBC23iCcXEPOQUj5/Y1w4PkGkwvKGiQ3IPoAQUN0mJYkFJXM32WYEFarUkQ8ixpEoQcEoR8BZcOCdJyHQRWB4GFBPH0MDB3SJDSkcGbBCGHBSl1FZNnhwQGaTU0SO6rmT47JDiIlG8QPWBIDkCk/YPpBUNyAiLdDuopA+sJQ3L0Vydj4wCHHkB6Q5jmDmTM86CHcrNktVIHgdVBYHUQWC5v6k/fPYj+zPf3fyocSf5cgaRAzH/WG4wLkC0Qa9t6gcHfQ/ZglNhP6fAgOfOAggbxMIC5w4KUwqAjY0FarYMkVPPNO02CpCxbsdfulQoJQl/nS4YEabkOAqsayPTGaLU+pzY9vtqv0kPOEC/PnUpkBmI5S8jgVUEIb9KMZblcScZLVmiWWFzFhHtbdRDrWZIKbXWcJjMk9RtX7lkS2h9hdkiQb1nWSxfprdGmr+/e8oLiPY9TtswM6yXVdIbMT77ETPGEIQFecD8Mgy6vru8cxN7ZEgMkYkgQEEmbUU5taRZSMCQQiLSMIuWBWVsOSRgSDGRsDUbahhO6J12cnw2SZH3+85AgYyGYPY0YUge5ewABkLEcMFOEadbnP88FyLQtOGsI06zPf545SO84xKOT3r86CKy/nuaY8mKoUr0AAAAASUVORK5CYII=",
GLOBAL_TIMER:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPHBhdGggc3Ryb2tlPSIjRkZGIiBzdHJva2Utd2lkdGg9IjIiIGQ9Ik0xNCAxMC41YTYgNiAwIDEgMC0xMiAwIDYgNiAwIDAgMCAxMiAweiIvPgogICAgICAgIDxwYXRoIHN0cm9rZT0iI0ZGRiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIGQ9Ik02LjM3NSAyaDMuNDMyTTUuNjE5IDguMTE5bDIuNDI3IDIuNDI3Ii8+CiAgICAgICAgPHBhdGggZmlsbD0iI0ZGRiIgZD0iTTggMTJhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDN6Ii8+CiAgICAgICAgPHBhdGggc3Ryb2tlPSIjRkZGIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTEyLjYxOSAzLjExOWwyLjQyNyAyLjQyN00xMi42MTkgNS40MTdsMS4yMTMtMS4wODUiLz4KICAgIDwvZz4KPC9zdmc+Cg==",
REPEAT_FOREVER:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjRkZGIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgICAgICA8cGF0aCBkPSJNOC43NSAxMC43NWgtNC41YTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtNE01LjI1IDIuMjVoNC41YTEuNSAxLjUgMCAwIDEgMS41IDEuNXY0Ii8+CiAgICAgICAgPHBhdGggZD0iTTEuMjUgNi4yNWwxLjUtMSAxLjUgMU05Ljc1IDYuNzVsMS41IDEgMS41LTFNMTMuMzQ4IDE1LjkxUzE0LjA0MyAxNyAxNS4wODcgMTdDMTYuMTMgMTcgMTcgMTYuMTA0IDE3IDE1cy0uODctMi0xLjkxMy0yYy0xLjc0IDAtMi40MzUgNC00LjE3NCA0QzkuODU2IDE3IDkgMTYuMTA0IDkgMTVzLjg3LTIgMS45MTMtMmMxLjA0NCAwIDEuNTY1IDEuMjczIDEuNTY1IDEuMjczIi8+CiAgICA8L2c+Cjwvc3ZnPgo=",
REPEAT_UNTIL:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjRkZGIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogICAgICAgIDxnIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgICAgICAgICAgPHBhdGggZD0iTTEzLjUzOCAxMy41SDhNMTEuNDYyIDE1LjU3N2wyLjA3Ni0yLjA3Ny0yLjA3Ni0yLjA3NyIvPgogICAgICAgIDwvZz4KICAgICAgICA8cGF0aCBzdHJva2Utd2lkdGg9IjIiIGQ9Ik0xNi4zMDggMTZ2LTUiLz4KICAgICAgICA8ZyBzdHJva2Utd2lkdGg9IjEuNSI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik03LjAyOCA3LjgwNmgtMy41QTEuMTY2IDEuMTY2IDAgMCAxIDIuMzYgNi42MzlWMy41MjhNNC4zMDYgMS4xOTRoMy41Yy42NDQgMCAxLjE2Ni41MjMgMS4xNjYgMS4xNjd2My4xMTEiLz4KICAgICAgICAgICAgPHBhdGggZD0iTTEuMTk0IDQuMzA2bDEuMTY3LS43NzggMS4xNjcuNzc4TTcuODA2IDQuNjk0bDEuMTY2Ljc3OCAxLjE2Ny0uNzc4Ii8+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4K",
REPEAT_WHILE:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjRkZGIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogICAgICAgIDxnIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgICAgICAgICAgPHBhdGggZD0iTTE2LjY1NCAxMy41aC01LjUzOU0xNC41NzggMTUuNTc3bDIuMDc2LTIuMDc3LTIuMDc2LTIuMDc3Ii8+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIHN0cm9rZS13aWR0aD0iMiIgZD0iTTguMzQ2IDE2di01Ii8+CiAgICAgICAgPGcgc3Ryb2tlLXdpZHRoPSIxLjUiPgogICAgICAgICAgICA8cGF0aCBkPSJNNy4wMjggNy44MDZoLTMuNUExLjE2NiAxLjE2NiAwIDAgMSAyLjM2IDYuNjM5VjMuNTI4TTQuMzA2IDEuMTk0aDMuNWMuNjQ0IDAgMS4xNjYuNTIzIDEuMTY2IDEuMTY3djMuMTExIi8+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xLjE5NCA0LjMwNmwxLjE2Ny0uNzc4IDEuMTY3Ljc3OE03LjgwNiA0LjY5NGwxLjE2Ni43NzggMS4xNjctLjc3OCIvPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+Cg==",
ULTRASONIC:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxwYXRoIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTUuNSA3LjIyMmMuOTkgMCAxLjguOCAxLjggMS43NzggMCAuOTc3LS44MSAxLjc3OC0xLjggMS43NzhWMTVhMiAyIDAgMCAxLTIgMkgzYTIgMiAwIDAgMS0yLTJWM2EyIDIgMCAwIDEgMi0yaC41YTIgMiAwIDAgMSAyIDJ2NC4yMjJ6TTEwLjY5NSAxYy4wNjggMCAuMTM5LjAwOS4yMDkuMDI3QzE0LjQwOSAxLjkzNiAxNyA1LjE2NiAxNyA5YzAgMy44MzQtMi41OTEgNy4wNjQtNi4wOTYgNy45NzMtLjU2LjE0NS0xLjEwNC0uMzA1LTEuMTA0LS44OTQgMC0uNDA2LjI2Mi0uNzcyLjY0Ny0uODcyQzEzLjE4NSAxNC40OTUgMTUuMiAxMS45ODUgMTUuMiA5YzAtLjE4Ny0uMDA3LS4zNzItLjAyMy0uNTU1LS4yMzEtMi43MzgtMi4xNjMtNC45ODUtNC43My01LjY1Mi0uMzg1LS4xLS42NDctLjQ2Ni0uNjQ3LS44NzIgMC0uNTE2LjQxNi0uOTI0Ljg5NS0uOTIxem0tLjAzIDMuOWEuODM2LjgzNiAwIDAgMSAuNDU1LjExNEE0LjYwMSA0LjYwMSAwIDAgMSAxMy40IDlhNC42IDQuNiAwIDAgMS0yLjI4IDMuOTg1Yy0uNTg3LjM0My0xLjMyLS4xMi0xLjMyLS44MXYtLjAxOWMwLS4zMjMuMTY3LS42MjYuNDQ1LS43ODJDMTEuMDczIDEwLjkwOSAxMS42IDEwLjAyIDExLjYgOWMwLTEuMDIyLS41MjctMS45MS0xLjM1NS0yLjM3NmEuODkuODkgMCAwIDEtLjQ0NS0uNzh2LS4wMjJjMC0uNTE3LjQxMS0uOTA1Ljg2NS0uOTIzeiIvPgo8L3N2Zz4K",
ENGINE:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxwYXRoIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTcuNTQ1IDJhLjcuNyAwIDAgMC0uNjM2LjdjLS4wMDYuMzguMzEuNjk1LjcwNS43SDl2MS40aDIuMTgyVjMuNGgxLjQ1NGEuNzM0LjczNCAwIDAgMCAuNTE3LS4yMDIuNjc5LjY3OSAwIDAgMCAuMjEtLjQ5OC42NzkuNjc5IDAgMCAwLS4yMS0uNDk4LjczNC43MzQgMCAwIDAtLjUxNy0uMjAySDcuNTQ1em0tLjcyNyAzLjVjLS4xNDUgMC0uMjg3LjE0OC0uNDMyLjIxOUw1LjEzNiA3LjZIMy45MWMtLjIxOSAwLS4yODEuMDgtLjUuMjE5LS4yMTkuMTQtLjIyNy4yNy0uMjI3LjQ4MXYxLjRoLS43MjdWOC4zNjZjMC0uMzUtLjI5LS43LS43MjgtLjctLjI5LS4wNzEtLjcyNy4yMS0uNzI3Ljd2NC45YzAgLjM1LjI5LjcuNzI3LjcuMzY0IDAgLjcyOC0uMjguNzI4LS43di0xLjRoLjcyN3YxLjRjMCAuMzUuMjkuNy43MjcuN2gxLjE2bDEuMzE3IDEuODE1Yy4xNDUuMTQuMjg3LjIxOS40MzIuMjE5aDUuMDkxYy4yMTkgMCAuMzU1LS4wOC41LS4yMTlsMi4xODItMi44Yy4xNDUtLjE0LjIyNy0uMjc2LjIyNy0uNDE1di0uN2guNzI3VjEzLjJjMCAuMzUuMjkuNy43MjguNy4zNjMgMCAuNzI3LS4yNzkuNzI3LS43VjguM2MwLS4zNS0uMzctLjctLjY2LS43LS4zNjMgMC0uNzI2LjI3OS0uNzI2Ljd2MS40aC0uNzI4VjYuMmMwLS4zNS0uMjktLjctLjcyNy0uN0g2Ljgyem0yLjc3MyAyLjE2NmgxLjcyN2wtMS43MjcgMi44aDEuNjU5VjEwLjRoLjA2OGwtLjA2OC4wNjYtMy4yNzMgNC4wNjggMS4yNS0zLjMwM0g3LjY4Mkw5LjU5IDcuNjY2eiIvPgo8L3N2Zz4K",
LIGHTS:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxnIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPHBhdGggZD0iTTQuOTI0IDEwLjM4NGMtMS4zMTUtLjY1OC0yLjIyNS0yLjA3LTIuMjI1LTMuNzA1IDAtMi4yNjQgMS43NDMtNC4xIDMuODkzLTQuMSAyLjE1IDAgMy44OTIgMS44MzYgMy44OTIgNC4xIDAgMS42MzYtLjkwOSAzLjA0Ny0yLjIyNCAzLjcwNXYuOThINC45MjR2LS45OHptMCAxLjg2SDguMjZWMTRINC45MjR2LTEuNzU3ek03LjcxNSAxLjdINi4xNTlWMGgxLjU1NnYxLjcwMXpNMCA2LjgzNHYtLjg3OGgxLjkzOXYuODc4SDB6bTEuNzA4LTQuODIybC42MTEtLjYyMUwzLjY5IDIuNzgzbC0uNjExLjYyMS0xLjM3MS0xLjM5MnptOS41OTYgNC45MTR2LS44NzhoMS44MjF2Ljg3OGgtMS44MjF6bS0uOTQ2LTMuNjA2bC0uNjEyLS42MjEgMS4yODgtMS4zMDguNjExLjYyMS0xLjI4NyAxLjMwOHpNMTIuNjY1IDE1LjY3NmMtLjg0NS0uNDIzLTEuNDMtMS4zMy0xLjQzLTIuMzgyIDAtMS40NTYgMS4xMi0yLjYzNiAyLjUwMy0yLjYzNiAxLjM4MiAwIDIuNTAyIDEuMTggMi41MDIgMi42MzYgMCAxLjA1MS0uNTg0IDEuOTU5LTEuNDMgMi4zODJ2LjYzaC0yLjE0NXYtLjYzem0wIDEuMTk1aDIuMTQ1VjE4aC0yLjE0NXYtMS4xM3ptMS43OTUtNi43NzdoLTFWOWgxdjEuMDk0em0tNC45NiAzLjN2LS41NjVoMS4yNDZ2LjU2NEg5LjV6bTEuMDk4LTMuMWwuMzkzLS40Ljg4MS44OTUtLjM5My40LS44ODEtLjg5NnptNi4xNjkgMy4xNTh2LS41NjRoMS4xN3YuNTY0aC0xLjE3em0tLjYwOC0yLjMxOGwtLjM5NC0uNC44MjgtLjg0LjM5My40LS44MjcuODR6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",
CLOCKWISE:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjRkZGIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgPHBhdGggZD0iTTE4LjYwOSA3LjU5NWwtMi4zNDggMy42LTIuNzQtMy4yIi8+CiAgICAgICAgPHBhdGggZD0iTTguODI2IDE3LjZjLTQuMTA2IDAtNy40MzUtMy40MDItNy40MzUtNy42IDAtNC4xOTcgMy4zMjktNy42IDcuNDM1LTcuNnM3LjQzNSAzLjQwMyA3LjQzNSA3LjZ2MS4xOTUiLz4KICAgIDwvZz4KPC9zdmc+Cg==",
COUNTERCLOCKWISE:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjRkZGIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgPHBhdGggZD0iTTEuMzkxIDcuNTk1bDIuMzQ4IDMuNiAyLjc0LTMuMiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMS4xNzQgMTcuNmM0LjEwNiAwIDcuNDM1LTMuNDAyIDcuNDM1LTcuNiAwLTQuMTk3LTMuMzI5LTcuNi03LjQzNS03LjZTMy43MzkgNS44MDMgMy43MzkgMTB2MS4xOTUiLz4KICAgIDwvZz4KPC9zdmc+Cg==",
DICE:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTZweCIgaGVpZ2h0PSIxNnB4IiB2aWV3Qm94PSIwIDAgMTYgMTYiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDU1LjIgKDc4MTgxKSAtIGh0dHBzOi8vc2tldGNoYXBwLmNvbSAtLT4KICAgIDx0aXRsZT5ibG9ja2x5L2Nsb3NlPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGcgaWQ9IlVJIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iVUkta2l0IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNDIuMDAwMDAwLCAtODU3NC4wMDAwMDApIiBmaWxsPSIjRkZGRkZGIj4KICAgICAgICAgICAgPGcgaWQ9ImJsb2NrbHktaWNvbnMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0wLjAwMDAwMCwgNzIwNi4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxnIGlkPSJtb3Rvci1jb3B5LTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI0LjAwMDAwMCwgMTM1NS4wMDAwMDApIj4KICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iYmxvY2tseS9kaWNlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNy4wMDAwMDAsIDEyLjAwMDAwMCkiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iR3JvdXAtOSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMS4wMDAwMDAsIDEuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNy43ODUwNjY2NywzLjMzMzQgQzcuMDUxMDY2NjcsMy4zMzM0IDYuNDUxNzMzMzMsMy4wMzM0IDYuNDUxNzMzMzMsMi42NjY3MzMzMyBDNi40NTE3MzMzMywyLjMwMDA2NjY3IDcuMDUxMDY2NjcsMi4wMDAwNjY2NyA3Ljc4NTA2NjY3LDIuMDAwMDY2NjcgQzguNTE4NCwyLjAwMDA2NjY3IDkuMTE4NCwyLjMwMDA2NjY3IDkuMTE4NCwyLjY2NjczMzMzIEM5LjExODQsMy4wMzM0IDguNTE4NCwzLjMzMzQgNy43ODUwNjY2NywzLjMzMzQgTTE0LjEzODQsMi4zNDY3MzMzMyBMOC41MTg0LDAuMTQwMDY2NjY3IEM4LjI4NTA2NjY3LDAuMDQ2NzMzMzMzMyA4LjAzMTczMzMzLDYuNjY2NjY2NjdlLTA1IDcuNzg1MDY2NjcsNi42NjY2NjY2N2UtMDUgQzcuNTM4NCw2LjY2NjY2NjY3ZS0wNSA3LjI4NTA2NjY3LDAuMDQ2NzMzMzMzMyA3LjA1MTA2NjY3LDAuMTQwMDY2NjY3IEwxLjQzMTczMzMzLDIuMzQ2NzMzMzMgQzEuMDMxNzMzMzMsMi41MDY3MzMzMyAxLjAyNDQsMy4wNzM0IDEuNDI1MDY2NjcsMy4yNDY3MzMzMyBMNy4zOTE3MzMzMyw1Ljc3MzQgQzcuNTE4NCw1LjgyNjczMzMzIDcuNjUxNzMzMzMsNS44NTM0IDcuNzg1MDY2NjcsNS44NTM0IEM3LjkxODQsNS44NTM0IDguMDUxMDY2NjcsNS44MjY3MzMzMyA4LjE3ODQsNS43NzM0IEwxNC4xNDUwNjY3LDMuMjQ2NzMzMzMgQzE0LjU0NTA2NjcsMy4wNzM0IDE0LjUzODQsMi41MDY3MzMzMyAxNC4xMzg0LDIuMzQ2NzMzMzMiIGlkPSJGaWxsLTEiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00LjY2NjYsMTMuMjI0IEM0LjI5OTkzMzMzLDEzLjExMDY2NjcgMy45OTk5MzMzMywxMi41NjQgMy45OTk5MzMzMywxMi4wMTA2NjY3IEMzLjk5OTkzMzMzLDExLjUzMDY2NjcgNC4yMjY2LDExLjE5NzMzMzMgNC41MzMyNjY2NywxMS4yMDQgQzQuNTczMjY2NjcsMTEuMjA0IDQuNjE5OTMzMzMsMTEuMjEwNjY2NyA0LjY2NjYsMTEuMjI0IEM1LjAzMzI2NjY3LDExLjMzNzMzMzMgNS4zMzMyNjY2NywxMS44NzczMzMzIDUuMzMzMjY2NjcsMTIuNDMwNjY2NyBDNS4zMzMyNjY2NywxMi45ODQgNS4wMzMyNjY2NywxMy4zMzczMzMzIDQuNjY2NiwxMy4yMjQgTTEuOTk5OTMzMzMsNy44OTA2NjY2NyBDMS42MzMyNjY2Nyw3Ljc3NzMzMzMzIDEuMzMzMjY2NjcsNy4yMzA2NjY2NyAxLjMzMzI2NjY3LDYuNjc3MzMzMzMgQzEuMzMzMjY2NjcsNi4xOTczMzMzMyAxLjU1OTkzMzMzLDUuODY0IDEuODY2Niw1Ljg3MDY2NjY3IEMxLjkwNjYsNS44NzA2NjY2NyAxLjk1MzI2NjY3LDUuODc3MzMzMzMgMS45OTk5MzMzMyw1Ljg5MDY2NjY3IEMyLjM2NjYsNi4wMDQgMi42NjY2LDYuNTQ0IDIuNjY2Niw3LjA5NzMzMzMzIEMyLjY2NjYsNy42NTA2NjY2NyAyLjM2NjYsOC4wMDQgMS45OTk5MzMzMyw3Ljg5MDY2NjY3IE02LjQ3OTkzMzMzLDYuNDI0IEwwLjkxMzI2NjY2Nyw0LjA2NCBDMC44MDY2LDQuMDE3MzMzMzMgMC42OTMyNjY2NjcsNC4wMDQgMC41ODY2LDQuMDE3MzMzMzMgQzAuMjczMjY2NjY3LDQuMDUwNjY2NjcgLTYuNjY2NjY2NjdlLTA1LDQuMzE3MzMzMzMgLTYuNjY2NjY2NjdlLTA1LDQuNjcwNjY2NjcgTC02LjY2NjY2NjY3ZS0wNSwxMS4zNzA2NjY3IEMtNi42NjY2NjY2N2UtMDUsMTIuMTM3MzMzMyAwLjQyNjYsMTIuODI0IDEuMTEzMjY2NjcsMTMuMTY0IEMxLjExMzI2NjY3LDEzLjE2NCA0LjE5OTkzMzMzLDE0LjY4NCA2LjAyNjYsMTUuNTc3MzMzMyBDNi42MzMyNjY2NywxNS44NzA2NjY3IDcuMzMzMjY2NjcsMTUuNDMwNjY2NyA3LjMzMzI2NjY3LDE0Ljc1NzMzMzMgTDcuMzMzMjY2NjcsNy43MTA2NjY2NyBDNy4zMzMyNjY2Nyw3LjE1MDY2NjY3IDYuOTk5OTMzMzMsNi42NDQgNi40Nzk5MzMzMyw2LjQyNCIgaWQ9IkZpbGwtMyI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTEzLjU2OTYsOC4xMzA5MzMzMyBDMTMuMjAyOTMzMyw4LjI0NDI2NjY3IDEyLjkwMjkzMzMsNy44OTA5MzMzMyAxMi45MDI5MzMzLDcuMzM3NiBDMTIuOTAyOTMzMyw2Ljc4NDI2NjY3IDEzLjIwMjkzMzMsNi4yNDQyNjY2NyAxMy41Njk2LDYuMTMwOTMzMzMgQzEzLjYxNjI2NjcsNi4xMTc2IDEzLjY2MzYsNi4xMTA5MzMzMyAxMy43MDI5MzMzLDYuMTA0MjY2NjcgQzE0LjAwOTYsNi4xMDQyNjY2NyAxNC4yMzYyNjY3LDYuNDM3NiAxNC4yMzYyNjY3LDYuOTE3NiBDMTQuMjM2MjY2Nyw3LjQ3MDkzMzMzIDEzLjkzNjkzMzMsOC4wMTA5MzMzMyAxMy41Njk2LDguMTMwOTMzMzMgTTEzLjU2OTYsMTEuODkwOTMzMyBDMTMuMjAyOTMzMywxMi4wMDQyNjY3IDEyLjkwMjkzMzMsMTEuNjUwOTMzMyAxMi45MDI5MzMzLDExLjA5NzYgQzEyLjkwMjkzMzMsMTAuNTUwOTMzMyAxMy4yMDI5MzMzLDEwLjAwNDI2NjcgMTMuNTY5Niw5Ljg5MDkzMzMzIEMxMy42MTYyNjY3LDkuODc3NiAxMy42NjM2LDkuODcwOTMzMzMgMTMuNzAyOTMzMyw5Ljg3MDkzMzMzIEMxNC4wMDk2LDkuODY0MjY2NjcgMTQuMjM2MjY2NywxMC4xOTc2IDE0LjIzNjI2NjcsMTAuNjc3NiBDMTQuMjM2MjY2NywxMS4yMzA5MzMzIDEzLjkzNjkzMzMsMTEuNzc3NiAxMy41Njk2LDExLjg5MDkzMzMgTTEwLjkwMjkzMzMsOS4yMjQyNjY2NyBDMTAuNTM2MjY2Nyw5LjMzNzYgMTAuMjM2MjY2Nyw4Ljk4NDI2NjY3IDEwLjIzNjI2NjcsOC40MzA5MzMzMyBDMTAuMjM2MjY2Nyw3Ljg4NDI2NjY3IDEwLjUzNjI2NjcsNy4zMzc2IDEwLjkwMjkzMzMsNy4yMjQyNjY2NyBDMTAuOTQ5Niw3LjIxMDkzMzMzIDEwLjk5NjkzMzMsNy4yMDQyNjY2NyAxMS4wMzYyNjY3LDcuMjA0MjY2NjcgQzExLjM0MjkzMzMsNy4xOTc2IDExLjU2OTYsNy41MzA5MzMzMyAxMS41Njk2LDguMDEwOTMzMzMgQzExLjU2OTYsOC41NjQyNjY2NyAxMS4yNzAyNjY3LDkuMTEwOTMzMzMgMTAuOTAyOTMzMyw5LjIyNDI2NjY3IE0xMC45MDI5MzMzLDEzLjIyNDI2NjcgQzEwLjUzNjI2NjcsMTMuMzM3NiAxMC4yMzYyNjY3LDEyLjk4NDI2NjcgMTAuMjM2MjY2NywxMi40MzA5MzMzIEMxMC4yMzYyNjY3LDExLjg4NDI2NjcgMTAuNTM2MjY2NywxMS4zMzc2IDEwLjkwMjkzMzMsMTEuMjI0MjY2NyBDMTAuOTQ5NiwxMS4yMTA5MzMzIDEwLjk5NjkzMzMsMTEuMjA0MjY2NyAxMS4wMzYyNjY3LDExLjIwNDI2NjcgQzExLjM0MjkzMzMsMTEuMTk3NiAxMS41Njk2LDExLjUzMDkzMzMgMTEuNTY5NiwxMi4wMTA5MzMzIEMxMS41Njk2LDEyLjU2NDI2NjcgMTEuMjcwMjY2NywxMy4xMTA5MzMzIDEwLjkwMjkzMzMsMTMuMjI0MjY2NyBNMTQuOTgyOTMzMyw0LjAxNzYgQzE0Ljg3NjkzMzMsNC4wMDQyNjY2NyAxNC43NjI5MzMzLDQuMDE3NiAxNC42NTY5MzMzLDQuMDY0MjY2NjcgTDkuMDg5Niw2LjQyNDI2NjY3IEM4LjU2OTYsNi42NDQyNjY2NyA4LjIzNjI2NjY3LDcuMTUwOTMzMzMgOC4yMzYyNjY2Nyw3LjcxMDkzMzMzIEw4LjIzNjI2NjY3LDE0Ljc1NzYgQzguMjM2MjY2NjcsMTUuNDMwOTMzMyA4LjkzNjkzMzMzLDE1Ljg3MDkzMzMgOS41NDM2LDE1LjU3NzYgQzExLjM2OTYsMTQuNjg0MjY2NyAxNC40NTYyNjY3LDEzLjE2NDI2NjcgMTQuNDU2MjY2NywxMy4xNjQyNjY3IEMxNS4xNDI5MzMzLDEyLjgyNDI2NjcgMTUuNTY5NiwxMi4xMzc2IDE1LjU2OTYsMTEuMzcwOTMzMyBMMTUuNTY5Niw0LjY3MDkzMzMzIEMxNS41Njk2LDQuMzE3NiAxNS4yOTY5MzMzLDQuMDUwOTMzMzMgMTQuOTgyOTMzMyw0LjAxNzYiIGlkPSJGaWxsLTYiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+",
CAT:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAGTGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAxLTA3VDE2OjMzOjIwKzAxOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIwLTAxLTA3VDE2OjMzOjIwKzAxOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0wMS0wN1QxNjozMzoyMCswMTowMCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpkZmRmMzE3Yy1mZGI5LTExNDktOTk4Ni1lZDgxMDNhOGIxNTEiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDpjOWQyODY3Zi1iNmUyLWRlNDctYTI5My1mNzFjYjcwNjY1MTIiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpiNzUzMjRiNS01ODdmLWJmNDQtYmFhMC00YzJhYmEwNTU0MDYiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpiNzUzMjRiNS01ODdmLWJmNDQtYmFhMC00YzJhYmEwNTU0MDYiIHN0RXZ0OndoZW49IjIwMjAtMDEtMDdUMTY6MzM6MjArMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4wIChXaW5kb3dzKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZGZkZjMxN2MtZmRiOS0xMTQ5LTk5ODYtZWQ4MTAzYThiMTUxIiBzdEV2dDp3aGVuPSIyMDIwLTAxLTA3VDE2OjMzOjIwKzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDxwaG90b3Nob3A6VGV4dExheWVycz4gPHJkZjpCYWc+IDxyZGY6bGkgcGhvdG9zaG9wOkxheWVyTmFtZT0i8J+YuiIgcGhvdG9zaG9wOkxheWVyVGV4dD0i8J+YuiIvPiA8L3JkZjpCYWc+IDwvcGhvdG9zaG9wOlRleHRMYXllcnM+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+TQislwAAFVhJREFUeJztnXmQI1d9xz+to6XRaHTMoblH0uxK653Zy9fu2hiDMRiIIcbGhoUEnGAqpAqKkCIkZUISQhkMAaqAVEgqSQWK5SoccxrMEUPwmhgfa+M9vLuaXY3m2J17R3PpbHXnD41mRlJL6u6ZscdmPlVTq5Xe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",
UH_OH:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAGTGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAxLTA3VDE2OjMyOjEzKzAxOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIwLTAxLTA3VDE2OjMyOjEzKzAxOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0wMS0wN1QxNjozMjoxMyswMTowMCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowYmI4ODQyNy1mMGNlLTM2NDktYjBlNy1iMmZkMjBhNzg2ZjMiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo0NmMxYzIxNC1iNTgyLWEzNDItOTg3NS1jZWM3MWYyZGEwN2MiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowOWM1MjhiZS02ZjBkLTExNDQtYjRjMi0xOGI1NDZmZjc5YTkiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDowOWM1MjhiZS02ZjBkLTExNDQtYjRjMi0xOGI1NDZmZjc5YTkiIHN0RXZ0OndoZW49IjIwMjAtMDEtMDdUMTY6MzI6MTMrMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4wIChXaW5kb3dzKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MGJiODg0MjctZjBjZS0zNjQ5LWIwZTctYjJmZDIwYTc4NmYzIiBzdEV2dDp3aGVuPSIyMDIwLTAxLTA3VDE2OjMyOjEzKzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDxwaG90b3Nob3A6VGV4dExheWVycz4gPHJkZjpCYWc+IDxyZGY6bGkgcGhvdG9zaG9wOkxheWVyTmFtZT0i8J+ZiiIgcGhvdG9zaG9wOkxheWVyVGV4dD0i8J+ZiiIvPiA8L3JkZjpCYWc+IDwvcGhvdG9zaG9wOlRleHRMYXllcnM+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+G3zzNwAAEe9JREFUeJztnXlwXMWdxz9v3sybS3NIMzpGl21ZNtjY+MIGH4DNYjAwgixbLGxgIWSLURJ22VqWSEmxKZIilWRUqUoVsAQNW2Q3KUhttsAxmgRzH+GyMbZxjA/k27IO6z5GmpHm2D9GtufWnPKYmk+V/nj9+nX3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",
ROBOT:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAGTGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAxLTA3VDE2OjM0OjMxKzAxOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIwLTAxLTA3VDE2OjM0OjMxKzAxOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0wMS0wN1QxNjozNDozMSswMTowMCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDplNjFjOTEwZS1iOTYzLTY2NDMtYmM2Ny05Mjg0OWI5MmViYzMiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo3ODZlYWMzMy1hYzk3LTZiNGMtYjAwNi0wMDk3MTk0ZmQwNjUiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDozMjJkZDFkNi00MDVhLTA3NDMtODhjMS1jYjBjYTNkYmY5MDMiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDozMjJkZDFkNi00MDVhLTA3NDMtODhjMS1jYjBjYTNkYmY5MDMiIHN0RXZ0OndoZW49IjIwMjAtMDEtMDdUMTY6MzQ6MzErMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4wIChXaW5kb3dzKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZTYxYzkxMGUtYjk2My02NjQzLWJjNjctOTI4NDliOTJlYmMzIiBzdEV2dDp3aGVuPSIyMDIwLTAxLTA3VDE2OjM0OjMxKzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDxwaG90b3Nob3A6VGV4dExheWVycz4gPHJkZjpCYWc+IDxyZGY6bGkgcGhvdG9zaG9wOkxheWVyTmFtZT0i8J+kliIgcGhvdG9zaG9wOkxheWVyVGV4dD0i8J+kliIvPiA8L3JkZjpCYWc+IDwvcGhvdG9zaG9wOlRleHRMYXllcnM+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Aq/SdAAAE0pJREFUeJztnXt4m9V9xz+6WPJNfmXL8iWJLTvEjklCLgRS2rqhEIhoytpAgZFC17S0Wxd6eVpKs4XtGU+3eU27tqzNk5aNtE8LnUdXPFiphyBhEAyhpKG5kMRxEgfHcezE8eX1VZIlvfvjyLq+UiRHkpU9/jxP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",
TADA:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAGTGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAxLTA3VDE2OjMwOjI5KzAxOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIwLTAxLTA3VDE2OjMwOjI5KzAxOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0wMS0wN1QxNjozMDoyOSswMTowMCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NWIxYTMyMy05MmQxLTFjNGQtOGEzZi1mYzUzOTViMTdiYjIiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo4ZWVkNjkzMy1lNzFmLWViNGItOWY2ZC0yZmM3ZmJlOTc5NWUiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDplMzljMjJhYi1jNDlmLTE1NDAtYjM4ZS00ZmI3NTcyM2ExOGEiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDplMzljMjJhYi1jNDlmLTE1NDAtYjM4ZS00ZmI3NTcyM2ExOGEiIHN0RXZ0OndoZW49IjIwMjAtMDEtMDdUMTY6MzA6MjkrMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4wIChXaW5kb3dzKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NzViMWEzMjMtOTJkMS0xYzRkLThhM2YtZmM1Mzk1YjE3YmIyIiBzdEV2dDp3aGVuPSIyMDIwLTAxLTA3VDE2OjMwOjI5KzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDxwaG90b3Nob3A6VGV4dExheWVycz4gPHJkZjpCYWc+IDxyZGY6bGkgcGhvdG9zaG9wOkxheWVyTmFtZT0i8J+OiSIgcGhvdG9zaG9wOkxheWVyVGV4dD0i8J+OiSIvPiA8L3JkZjpCYWc+IDwvcGhvdG9zaG9wOlRleHRMYXllcnM+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+WNSqzQAAFI5JREFUeJztnXl4VOW9xz9nZrIBIXtYJCNKZBMEl45BuClMtBpMrJdY3JKq9datvbWptTK1oBbbwdZLrtetVtvbQgSUDl4kkGphsKnSMBVEqCBiECdsCVmAQNbJnPvHeyY5k8xMziyBqU++z5Nnzpzznvf85nze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"};
function createShadowElement(a,b,c,d){a=a.newBlock(b);a.setShadow(!0);d&&a.setFieldValue(d,"NUM");c.connection.connect(a.outputConnection)}function roundNumber(a,b,c){a instanceof Blockly.Events.Change&&b.childBlocks_.map(function(a){return a.id}).includes(a.blockId)&&c.getBlockById(a.blockId).inputList[0].fieldRow[0].setValue(Math.round(a.newValue))};Blockly.Blocks.block_set_leds_white={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.LIGHT,50,50,"*"),"LIGHT_IMAGE");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("light_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_set_leds_red={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.LIGHT_RED,50,50,"*"),"LIGHT_IMAGE");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("light_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_set_leds_green={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.LIGHT_GREEN,50,50,"*"),"LIGHT_IMAGE");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("light_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_set_leds_blue={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.LIGHT_BLUE,50,50,"*"),"LIGHT_IMAGE");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("light_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_set_leds_black={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.LIGHT_BLACK,50,50,"*"),"LIGHT_IMAGE");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("light_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_light_siren={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.LIGHT_SIREN,50,50,"*"),"LIGHT_IMAGE");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("light_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_light_rainbow={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.LIGHT_RAINBOW,50,50,"*"),"LIGHT_IMAGE");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("light_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_light_traffic={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.LIGHT_TRAFFIC,50,50,"*"),"LIGHT_IMAGE");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("light_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_set_all_leds={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.LIGHTS,15,15,"*"),"LIGHT_IMAGE");var a=this.appendValueInput("COLOR").setCheck("Colour").appendField("set lights");createShadowElement(this.workspace,"colour_picker",a);this.setInputsInline(!0);this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("light_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_set_leds_black_small={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.LIGHT_BLACK,15,15,"*"),"LIGHT_IMAGE").appendField("turn lights off");this.setInputsInline(!0);this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("light_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_set_light_effect={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.LIGHTS,15,15,"*"),"LIGHT_IMAGE").appendField("set light effect").appendField(new Blockly.FieldDropdown([["\ud83d\udea8","RingLed.Siren"],["\ud83d\udea6","RingLed.TrafficLight"],["\ud83c\udf08","RingLed.ColorWheel"]]),"LIGHT_EFFECT_SELECTOR");this.setInputsInline(!0);this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("light_blocks");this.setTooltip("");
this.setHelpUrl("")}};
Blockly.Blocks.block_set_led={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.LIGHT,15,15,"*"),"LIGHT_IMAGE");var a=this.appendValueInput("LED").setCheck("Number").appendField("set LED");createShadowElement(this.workspace,"math_number",a,"1");a=this.appendValueInput("COLOR").setCheck("Colour").appendField("color");createShadowElement(this.workspace,"colour_picker",a);this.setInputsInline(!0);this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);
this.setStyle("light_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_set_multiple_led={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.LIGHTS,15,15,"*"),"LIGHT_IMAGE").appendField("set LEDs").appendField(new Blockly.FieldTextInput("1,2,3"),"LED_IDS");var a=this.appendValueInput("COLOR").setCheck("Colour").appendField("color");createShadowElement(this.workspace,"colour_picker",a);this.setInputsInline(!0);this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("light_blocks");this.setTooltip("");
this.setHelpUrl("")}};
Blockly.Blocks.colour_rgb2={init:function(){this.appendDummyInput().appendField("color with red");var a=this.appendValueInput("RED").setCheck("Number");createShadowElement(this.workspace,"math_number",a,"0");this.appendDummyInput().appendField("green");a=this.appendValueInput("GREEN").setCheck("Number");createShadowElement(this.workspace,"math_number",a,"0");this.appendDummyInput().appendField("blue");a=this.appendValueInput("BLUE").setCheck("Number");createShadowElement(this.workspace,"math_number",
a,"0");this.setInputsInline(!0);this.setOutput(!0,"Colour");this.setStyle("light_blocks");this.setTooltip("%{BKY_COLOUR_RGB_TOOLTIP}");this.setHelpUrl("%{BKY_COLOUR_RGB_HELPURL}")}};Blockly.Blocks.if_then_else={init:function(){this.appendValueInput("COND").setCheck("Boolean").appendField("if");this.appendStatementInput("IN_IF").setCheck(null).appendField("then");this.appendStatementInput("IN_ELSE").setCheck(null).appendField("else");this.setInputsInline(!1);this.setStyle("logic_blocks");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.if_then={init:function(){this.appendValueInput("COND").setCheck("Boolean").appendField("if");this.appendStatementInput("IN_IF").setCheck(null).appendField("then");this.setInputsInline(!1);this.setStyle("logic_blocks");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.logic_and={init:function(){var a=this.appendValueInput("LEFT").setCheck("Boolean");createShadowElement(this.workspace,"logic_boolean",a);this.appendDummyInput().appendField("and");a=this.appendValueInput("RIGHT").setCheck("Boolean");createShadowElement(this.workspace,"logic_boolean",a);this.setInputsInline(!0);this.setOutput(!0,"Boolean");this.setStyle("logic_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.logic_or={init:function(){var a=this.appendValueInput("LEFT").setCheck("Boolean");createShadowElement(this.workspace,"logic_boolean",a);this.appendDummyInput().appendField("or");a=this.appendValueInput("RIGHT").setCheck("Boolean");createShadowElement(this.workspace,"logic_boolean",a);this.setInputsInline(!0);this.setOutput(!0,"Boolean");this.setStyle("logic_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.logic_not={init:function(){this.appendDummyInput().appendField("not");var a=this.appendValueInput("RIGHT").setCheck("Boolean");createShadowElement(this.workspace,"logic_boolean",a);this.setInputsInline(!0);this.setOutput(!0,"Boolean");this.setStyle("logic_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.logic_compare2={init:function(){this.appendValueInput("A").setCheck("Number");this.appendDummyInput().appendField(new Blockly.FieldDropdown([["==","EQ"],["!=","NEQ"],["<","LT"],["<=","LTE"],[">","GT"],[">=","GTE"]]),"LOGIC_SELECTOR");var a=this.appendValueInput("B").setCheck("Number");createShadowElement(this.workspace,"math_number",a,"10");this.setInputsInline(!0);this.setOutput(!0,"Boolean");this.setStyle("logic_blocks");this.setTooltip("");this.setHelpUrl("%{BKY_LOGIC_COMPARE_HELPURL}")}};Blockly.Blocks.block_repeat_forever={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.REPEAT_FOREVER,15,15,"*"),"REPEAT_FOREVER_IMAGE").appendField("repeat forever");this.appendStatementInput("STATEMENT").setCheck(null).appendField("do");this.setInputsInline(!1);this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("loop_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.controls_repeat_n_times={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.REPEAT,15,15,"*")).appendField("repeat").appendField(new Blockly.FieldDropdown([["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"]]),"TIMES_SELECTOR").appendField("times");this.appendStatementInput("DO").setCheck(null).appendField("do");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("loop_blocks");
this.setTooltip("");this.setHelpUrl("")}};Blockly.Blocks.block_break={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.BREAK,15,15,"*"),"BREAK_IMAGE").appendField("break");this.setInputsInline(!1);this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("loop_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_repeat_while={init:function(){this.appendValueInput("CONDITION").setCheck("Boolean").appendField(new Blockly.FieldImage(CUSTOM_IMAGES.REPEAT_WHILE,15,15,"*"),"REPEAT_WHILE_IMAGE").appendField("repeat while");this.appendStatementInput("STATEMENT").setCheck(null).appendField("do");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("loop_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_repeat_until={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.REPEAT_UNTIL,15,15,"*"),"REPEAT_UNTIL_IMAGE").appendField("repeat");this.appendStatementInput("STATEMENT").setCheck(null).appendField("do");this.appendValueInput("CONDITION").setCheck("Boolean").appendField("until");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("loop_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.controls_repeat_ext2={init:function(){var a=this.appendValueInput("TIMES").setCheck("Number").appendField(new Blockly.FieldImage(CUSTOM_IMAGES.REPEAT,15,15,"*")).appendField("repeat");createShadowElement(this.workspace,"math_number",a,3);this.appendDummyInput().appendField("times");this.appendStatementInput("DO").setCheck(null).appendField("do");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("loop_blocks");this.setTooltip("");this.setHelpUrl("")},onchange:function(a){roundNumber(a,
this,this.workspace)}};Blockly.Blocks.block_terminate_program={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.STOP,15,15,"*"),"STOP_IMAGE").appendField("terminate program");this.setPreviousStatement(!0,null);this.setNextStatement(!1,null);this.setStyle("loop_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_terminate_all={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.STOP_ALL,15,15,"*"),"STOP_IMAGE").appendField("terminate all");this.setPreviousStatement(!0,null);this.setNextStatement(!1,null);this.setStyle("loop_blocks");this.setTooltip("");this.setHelpUrl("")}};Blockly.Blocks.math_random_int2={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.DICE,18,18,"*"),"DICE_IMAGE");var a=this.appendValueInput("FROM").setCheck("Number");createShadowElement(this.workspace,"math_number",a,"1");this.appendDummyInput().appendField("to");a=this.appendValueInput("TO").setCheck("Number");createShadowElement(this.workspace,"math_number",a,"100");this.setInputsInline(!0);this.setOutput(!0,"Number");this.setStyle("math_blocks");this.setTooltip("%{BKY_MATH_RANDOM_INT_TOOLTIP}");
this.setHelpUrl("%{BKY_MATH_RANDOM_INT_HELPURL}")},onchange:function(a){roundNumber(a,this,this.workspace)}};
Blockly.Blocks.math_round2={init:function(){this.appendDummyInput().appendField(new Blockly.FieldDropdown([["%{BKY_MATH_ROUND_OPERATOR_ROUND}","ROUND"],["%{BKY_MATH_ROUND_OPERATOR_ROUNDUP}","ROUNDUP"],["%{BKY_MATH_ROUND_OPERATOR_ROUNDDOWN}","ROUNDDOWN"]]),"OPERATOR_SELECTOR");var a=this.appendValueInput("NUM").setCheck("Number");createShadowElement(this.workspace,"math_number",a);this.setInputsInline(!0);this.setOutput(!0,"Number");this.setStyle("math_blocks");this.setTooltip("%{BKY_MATH_ROUND_HELPURL}");
this.setHelpUrl("%{BKY_MATH_ROUND_TOOLTIP}")}};
Blockly.Blocks.math_arithmetic2={init:function(){var a=this.appendValueInput("A").setCheck("Number");createShadowElement(this.workspace,"math_number",a);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["+","ADD"],["-","MINUS"],["*","MULTIPLY"],["/","DIVIDE"],["%","MODULO"]]),"OPERATOR_SELECTOR");a=this.appendValueInput("B").setCheck("Number");createShadowElement(this.workspace,"math_number",a);this.setInputsInline(!0);this.setOutput(!0,"Number");this.setStyle("math_blocks");this.setTooltip("");
this.setHelpUrl("")}};Blockly.Blocks.math_pi={init:function(){this.appendDummyInput().appendField("\u03c0");this.setOutput(!0,"Number");this.setStyle("math_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.math_trig2={init:function(){this.setStyle("math_blocks");var a=this.appendValueInput("RIGHT").setCheck("Number").appendField(new Blockly.FieldDropdown([["sin","sin"],["cos","cos"],["tan","tan"]]),"MATH_TRIG_SELECTOR");createShadowElement(this.workspace,"math_number",a);this.setInputsInline(!0);this.setOutput(!0,"Number");this.setTooltip("");this.setHelpUrl("")}};Blockly.Blocks.block_drive_fwd_small={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.DIRECTION_FWD,50,50,"*"),"DIRECTION_IMAGE");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("motor_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_drive_fwd_big={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.DIRECTION_FWD_FAST,50,50,"*"),"DIRECTION_IMAGE");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("motor_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_drive_back_small={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.DIRECTION_BACK,50,50,"*"),"DIRECTION_IMAGE");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("motor_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_drive_back_big={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.DIRECTION_BACK_FAST,50,50,"*"),"DIRECTION_IMAGE");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("motor_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_turn_left_90={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.TURN_LEFT_90,50,50,"*"),"DIRECTION_IMAGE");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("motor_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_turn_right_90={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.TURN_RIGHT_90,50,50,"*"),"DIRECTION_IMAGE");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("motor_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_turn_left_180={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.TURN_LEFT_180,50,50,"*"),"DIRECTION_IMAGE");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("motor_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_turn_right_180={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.TURN_RIGHT_180,50,50,"*"),"DIRECTION_IMAGE");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("motor_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_drive_simplified={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.DIRECTION_FWD,15,15,"*"),"DIRECTION_IMAGE").appendField("drive","DIRECTION_LABEL").appendField(new Blockly.FieldDropdown([["forward","Motor.DIRECTION_FWD"],["backward","Motor.DIRECTION_BACK"]]),"DIRECTION_SELECTOR").appendField("for").appendField(new Blockly.FieldDropdown([["1","DURATION_SHORT"],["2","DURATION_MEDIUM"],["5","DURATION_LONG"]]),"DURATION_SELECTOR").appendField("seconds with").appendField(new Blockly.FieldDropdown([["slow",
"SPEED_SLOW"],["medium","SPEED_MEDIUM"],["fast","SPEED_FAST"]]),"SPEED_SELECTOR").appendField("speed");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("motor_blocks");this.setTooltip("");this.setHelpUrl("")},onchange:function(a){if(a instanceof Blockly.Events.Create)for(var b=this.workspace.getBlocksByType("block_drive"),c=0;c<b.length;c++){var d=b[c],e=null!==d?d.getField("DIRECTION_SELECTOR"):null;e&&(d=d.getField("DIRECTION_IMAGE"))&&d.setValue(CUSTOM_IMAGES[e.getValue().replace("Motor.",
"")])}a instanceof Blockly.Events.Change&&"DIRECTION_SELECTOR"===a.name&&(d=this.workspace.getBlockById(a.blockId),d=d.getField("DIRECTION_IMAGE"),d.setValue(CUSTOM_IMAGES[a.newValue.replace("Motor.","")]))}};
Blockly.Blocks.block_turn_simplified={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.DIRECTION_LEFT,15,15,"*"),"DIRECTION_IMAGE").appendField("turn","DIRECTION_LABEL").appendField(new Blockly.FieldDropdown([["left","Motor.DIRECTION_LEFT"],["right","Motor.DIRECTION_RIGHT"]]),"DIRECTION_SELECTOR").appendField(new Blockly.FieldDropdown([["45","ANGLE_SLIGHT"],["90","ANGLE_RIGHT"],["180","ANGLE_HALF"]]),"ROTATION_SELECTOR").appendField("degrees");this.setPreviousStatement(!0,
null);this.setNextStatement(!0,null);this.setStyle("motor_blocks");this.setTooltip("");this.setHelpUrl("")},onchange:function(a){if(a instanceof Blockly.Events.Create)for(var b=this.workspace.getBlocksByType("block_turn"),c=0;c<b.length;c++){var d=b[c],e=null!==d?d.getField("DIRECTION_SELECTOR"):null;e&&(d=d.getField("DIRECTION_IMAGE"))&&d.setValue(CUSTOM_IMAGES[e.getValue().replace("Motor.","")])}a instanceof Blockly.Events.Change&&"DIRECTION_SELECTOR"===a.name&&(d=this.workspace.getBlockById(a.blockId),
d=d.getField("DIRECTION_IMAGE"),d.setValue(CUSTOM_IMAGES[a.newValue.replace("Motor.","")]))}};
Blockly.Blocks.block_motor_simplified={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.ENGINE,15,15,"*"),"ENGINE_IMAGE").appendField("move").appendField(new Blockly.FieldTextInput("motor1"),"NAME_INPUT").appendField(new Blockly.FieldDropdown([["forward","Motor.DIRECTION_FWD"],["reversed","Motor.DIRECTION_BACK"]]),"DIRECTION_SELECTOR").appendField(new Blockly.FieldDropdown([["45","ANGLE_SLIGHT"],["90","ANGLE_RIGHT"],["180","ANGLE_HALF"],["360","ANGLE_FULL"]]),
"AMOUNT_SELECTOR").appendField("degrees");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("motor_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_spin_motor_simplified={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.SPIN,15,15,"*"),"SPIN_IMAGE").appendField("spin").appendField(new Blockly.FieldTextInput("motor1"),"NAME_INPUT").appendField(new Blockly.FieldDropdown([["forward","Motor.DIRECTION_FWD"],["reversed","Motor.DIRECTION_BACK"]]),"DIRECTION_SELECTOR").appendField("with").appendField(new Blockly.FieldDropdown([["slow","SPEED_SLOW"],["medium","SPEED_MEDIUM"],["fast","SPEED_FAST"]]),
"SPEED_SELECTOR").appendField("speed");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("motor_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_drive={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.DIRECTION_FWD,15,15,"*"),"DIRECTION_IMAGE").appendField("drive","DIRECTION_LABEL").appendField(new Blockly.FieldDropdown([["forward","Motor.DIRECTION_FWD"],["backward","Motor.DIRECTION_BACK"]]),"DIRECTION_SELECTOR");var a=this.appendValueInput("ROTATION").setCheck("Number");createShadowElement(this.workspace,"math_number",a,"3");this.appendDummyInput().appendField(new Blockly.FieldDropdown([["seconds",
"Motor.UNIT_SEC"],["rotations","Motor.UNIT_ROT"]]),"UNIT_ROTATION_SELECTOR");a=this.appendValueInput("SPEED_SLIDER").setCheck("Number");createShadowElement(this.workspace,"math_number",a,75);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["rpm","Motor.UNIT_SPEED_RPM"],["power","Motor.UNIT_SPEED_PWR"]]),"UNIT_SPEED_SELECTOR");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("motor_blocks");this.setTooltip("");this.setHelpUrl("")},onchange:function(a){if(a instanceof
Blockly.Events.Create)for(var b=this.workspace.getBlocksByType("block_drive"),c=0;c<b.length;c++){var d=b[c],e=null!==d?d.getField("DIRECTION_SELECTOR"):null;e&&(d=d.getField("DIRECTION_IMAGE"))&&d.setValue(CUSTOM_IMAGES[e.getValue().replace("Motor.","")])}a instanceof Blockly.Events.Change&&("DIRECTION_SELECTOR"===a.name&&(d=this.workspace.getBlockById(a.blockId),d=d.getField("DIRECTION_IMAGE"),d.setValue(CUSTOM_IMAGES[a.newValue.replace("Motor.","")])),"UNIT_SPEED_SELECTOR"===a.name&&(d=this.workspace.getBlockById(a.blockId),
a=120,"Motor.UNIT_SPEED_PWR"===d.getField("UNIT_SPEED_SELECTOR").getValue()&&(a=100),b=d.getChildren()[1].inputList[0].fieldRow[0],b.getValue()>=a&&b.setValue(100)))}};
Blockly.Blocks.block_set_speed={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.DIRECTION_FWD,15,15,"*"),"DIRECTION_IMAGE").appendField("set drive speed to","DIRECTION_LABEL").appendField(new Blockly.FieldDropdown([["forward","Motor.DIRECTION_FWD"],["backward","Motor.DIRECTION_BACK"]]),"DIRECTION_SELECTOR");var a=this.appendValueInput("SPEED_SLIDER").setCheck("Number");createShadowElement(this.workspace,"math_number",a,75);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["rpm",
"Motor.UNIT_SPEED_RPM"],["power","Motor.UNIT_SPEED_PWR"]]),"UNIT_SPEED_SELECTOR");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("motor_blocks");this.setTooltip("");this.setHelpUrl("")},onchange:function(a){if(a instanceof Blockly.Events.Create)for(var b=this.workspace.getBlocksByType("block_set_speed"),c=0;c<b.length;c++){var d=b[c],e=null!==d?d.getField("DIRECTION_SELECTOR"):null;e&&(d=d.getField("DIRECTION_IMAGE"))&&d.setValue(CUSTOM_IMAGES[e.getValue().replace("Motor.",
"")])}a instanceof Blockly.Events.Change&&("DIRECTION_SELECTOR"===a.name&&(d=this.workspace.getBlockById(a.blockId),d=d.getField("DIRECTION_IMAGE"),d.setValue(CUSTOM_IMAGES[a.newValue.replace("Motor.","")])),"UNIT_SPEED_SELECTOR"===a.name&&(d=this.workspace.getBlockById(a.blockId),a=120,"Motor.UNIT_SPEED_PWR"===d.getField("UNIT_SPEED_SELECTOR").getValue()&&(a=100),b=d.getChildren()[1].inputList[0].fieldRow[0],b.getValue()>=a&&b.setValue(100)))}};
Blockly.Blocks.block_turn={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.DIRECTION_LEFT,15,15,"*"),"DIRECTION_IMAGE").appendField("turn","DIRECTION_LABEL").appendField(new Blockly.FieldDropdown([["left","Motor.DIRECTION_LEFT"],["right","Motor.DIRECTION_RIGHT"]]),"DIRECTION_SELECTOR");var a=this.appendValueInput("ROTATION").setCheck("Number");createShadowElement(this.workspace,"math_number",a,90);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["degrees",
"Motor.UNIT_TURN_ANGLE"],["seconds","Motor.UNIT_SEC"]]),"UNIT_ROTATION_SELECTOR");a=this.appendValueInput("SPEED_SLIDER").setCheck("Number");createShadowElement(this.workspace,"math_number",a,75);this.appendDummyInput().appendField("rpm","SPEED_LABEL");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("motor_blocks");this.setTooltip("");this.setHelpUrl("")},onchange:function(a){if(a instanceof Blockly.Events.Create)for(var b=this.workspace.getBlocksByType("block_turn"),
c=0;c<b.length;c++){var d=b[c],e=null!==d?d.getField("DIRECTION_SELECTOR"):null;e&&(d=d.getField("DIRECTION_IMAGE"))&&d.setValue(CUSTOM_IMAGES[e.getValue().replace("Motor.","")])}a instanceof Blockly.Events.Change&&"DIRECTION_SELECTOR"===a.name&&(d=this.workspace.getBlockById(a.blockId),d=d.getField("DIRECTION_IMAGE"),d.setValue(CUSTOM_IMAGES[a.newValue.replace("Motor.","")]))}};
Blockly.Blocks.block_motor={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.ENGINE,15,15,"*"),"ENGINE_IMAGE").appendField("move motor").appendField(new Blockly.FieldTextInput("motor1"),"NAME_INPUT").appendField(new Blockly.FieldDropdown([["forward","Motor.DIRECTION_FWD"],["reversed","Motor.DIRECTION_BACK"]]),"DIRECTION_SELECTOR");var a=this.appendValueInput("AMOUNT").setCheck("Number");createShadowElement(this.workspace,"math_number",a,3);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["seconds",
"Motor.UNIT_SEC"],["degrees","Motor.UNIT_DEG"],["rotations","Motor.UNIT_ROT"]]),"UNIT_AMOUNT_SELECTOR");a=this.appendValueInput("LIMIT_SLIDER").setCheck("Number");createShadowElement(this.workspace,"math_number",a,75);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["rpm","Motor.UNIT_SPEED_RPM"],["power","Motor.UNIT_SPEED_PWR"]]),"UNIT_LIMIT_SELECTOR");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("motor_blocks");this.setTooltip("");this.setHelpUrl("")},
onchange:function(a){if(a instanceof Blockly.Events.Change&&"UNIT_LIMIT_SELECTOR"===a.name){var b=this.workspace.getBlockById(a.blockId);a=170;"Motor.UNIT_SPEED_PWR"===b.getField("UNIT_LIMIT_SELECTOR").getValue()&&(a=100);b=b.getChildren()[1].inputList[0].fieldRow[0];b.getValue()>=a&&b.setValue(100)}}};
Blockly.Blocks.spin_motor={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.SPIN,15,15,"*"),"SPIN_IMAGE").appendField("spin motor").appendField(new Blockly.FieldTextInput("motor1"),"NAME_INPUT").appendField(new Blockly.FieldDropdown([["forward","Motor.DIRECTION_FWD"],["reversed","Motor.DIRECTION_BACK"]]),"DIRECTION_SELECTOR");var a=this.appendValueInput("ROTATION_SLIDER").setCheck("Number");createShadowElement(this.workspace,"math_number",a,75);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["rpm",
"Motor.UNIT_SPEED_RPM"],["power","Motor.UNIT_SPEED_PWR"]]),"UNIT_SPEED_SELECTOR");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("motor_blocks");this.setTooltip("");this.setHelpUrl("")},onchange:function(a){if(a instanceof Blockly.Events.Change&&"UNIT_SPEED_SELECTOR"===a.name){var b=this.workspace.getBlockById(a.blockId);a=170;"Motor.UNIT_SPEED_PWR"===b.getField("UNIT_SPEED_SELECTOR").getValue()&&(a=100);b=b.getChildren()[0].inputList[0].fieldRow[0];b.getValue()>=
a&&b.setValue(100)}}};Blockly.Blocks.block_stop_motor_simplified={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.STOP,15,15,"*"),"STOP_IMAGE").appendField("stop motor").appendField(new Blockly.FieldTextInput("motor1"),"NAME_INPUT");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("motor_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_stop_all_motors_simplified={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.STOP_ALL,15,15,"*"),"STOP_ALL_IMAGE").appendField("stop all motors");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("motor_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_stop_motor={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.STOP,15,15,"*"),"STOP_IMAGE").appendField("stop motor").appendField(new Blockly.FieldTextInput("motor1"),"NAME_INPUT").appendField(new Blockly.FieldDropdown([["Stop & hold","Motor.ACTION_STOP_AND_HOLD"],["Release","Motor.ACTION_RELEASE"]]),"STOP_ACTION_SELECTOR");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("motor_blocks");this.setTooltip("");
this.setHelpUrl("")}};Blockly.Blocks.block_stop_all_motors={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.STOP_ALL,15,15,"*"),"STOP_ALL_IMAGE").appendField("stop all motors").appendField(new Blockly.FieldDropdown([["Stop & hold","Motor.ACTION_STOP_AND_HOLD"],["Release","Motor.ACTION_RELEASE"]]),"STOP_ALL_ACTION_SELECTOR");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("motor_blocks");this.setTooltip("");this.setHelpUrl("")}};Blockly.Blocks.block_is_object_near={init:function(){this.appendDummyInput().appendField("object is near").appendField(new Blockly.FieldTextInput("distance"),"NAME_INPUT");this.setOutput(!0,"Boolean");this.setStyle("sensor_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_wait_for_button_press={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.BUMPER,15,15,"*"),"BUMPER_IMAGE").appendField("wait until").appendField(new Blockly.FieldTextInput("button"),"NAME_INPUT").appendField("is pressed");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("sensor_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_ultrasonic_sensor={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.ULTRASONIC,15,15,"*"),"ULTRASONIC_IMAGE").appendField(new Blockly.FieldTextInput("distance"),"NAME_INPUT");this.setOutput(!0,"Number");this.setStyle("sensor_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_bumper={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.BUMPER,15,15,"*"),"BUMPER_IMAGE").appendField(new Blockly.FieldTextInput("button"),"NAME_INPUT").appendField("pressed");this.setOutput(!0,"Boolean");this.setStyle("sensor_blocks");this.setTooltip("");this.setHelpUrl("")}};Blockly.Blocks.play_tune_cat={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.CAT,50,50,"*"),"TUNE_IMAGE");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("sound_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.play_tune_uh_oh={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.UH_OH,50,50,"*"),"TUNE_IMAGE");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("sound_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.play_tune_robot={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.ROBOT,50,50,"*"),"TUNE_IMAGE");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("sound_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.play_tune_tada={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.TADA,50,50,"*"),"TUNE_IMAGE");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("sound_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.play_tune={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.TUNE,15,15,"*"),"TUNE_IMAGE").appendField("play tune").appendField(new Blockly.FieldDropdown([["\ud83d\udd09","siren"],["\ud83d\ude38","cat"],["\ud83d\udcef","car_horn"],["\ud83e\udd16","robot"],["\ud83d\udcdf","robot2"],["\u274c","buzzer"],["\ud83d\ude31","oh_no"],["\ud83d\udc0e","yee_haw"],["\ud83c\udfcd","engine_revving"],["\ud83c\udf89","ta_da"],["\ud83d\ude4a","uh_oh"],["\ud83d\udd14",
"bell"],["\ud83d\udc24","duck"],["\u23f0","alarm_clock"],["\ud83d\udc2f","lion"],["\ud83d\udc36","dog"]]),"IN_SOUND");this.setInputsInline(!1);this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("sound_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_play_note={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.TUNE,15,15,"*"),"TUNE_IMAGE").appendField("play note").appendField("Octave:").appendField(new Blockly.FieldDropdown([["1st","Sound.OCTAVE_1"],["2nd","Sound.OCTAVE_2"],["3rd","Sound.OCTAVE_3"],["4th","Sound.OCTAVE_4"],["5th","Sound.OCTAVE_5"],["6th","Sound.OCTAVE_6"],["7th","Sound.OCTAVE_7"],["8th","Sound.OCTAVE_8"]]),"OCTAVE_SELECTOR").appendField("Key:").appendField(new Blockly.FieldDropdown([["C",
"Sound.OPTION_C"],["C# / Db","Sound.OPTION_CS"],["D","Sound.OPTION_D"],["D# / Eb","Sound.OPTION_DS"],["E","Sound.OPTION_E"],["F","Sound.OPTION_F"],["F# / Gb","Sound.OPTION_FS"],["G","Sound.OPTION_G"],["G# / Ab","Sound.OPTION_GS"],["A","Sound.OPTION_A"],["A# / Bb","Sound.OPTION_AS"],["B","Sound.OPTION_B"]]),"KEY_SELECTOR").appendField("Duration:");this.appendValueInput("DURATION").setCheck("Number");this.setInputsInline(!0);this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("sound_blocks");
this.setTooltip("");this.setHelpUrl("")}};Blockly.Blocks.block_stop_playback={init:function(){this.appendDummyInput().appendField("Stop playback");this.setInputsInline(!0);this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("sound_blocks");this.setTooltip("");this.setHelpUrl("")}};Blockly.Blocks.block_wait_1={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.WAIT_1,50,50,"*"),"LIGHT_IMAGE");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("time_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_wait_5={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.WAIT_5,50,50,"*"),"LIGHT_IMAGE");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("time_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_wait_simplified={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.WAIT,15,15,"*"),"WAIT_IMAGE").appendField("wait").appendField(new Blockly.FieldDropdown([["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"]]),"WAIT_SELECTOR").appendField("sec");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("time_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_wait={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.WAIT,15,15,"*"),"WAIT_IMAGE").appendField("wait");var a=this.appendValueInput("WAIT").setCheck("Number");createShadowElement(this.workspace,"math_number",a,"1");this.appendDummyInput().appendField("sec");this.setInputsInline(!0);this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setStyle("time_blocks");this.setTooltip("");this.setHelpUrl("")}};
Blockly.Blocks.block_global_timer={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage(CUSTOM_IMAGES.GLOBAL_TIMER,15,15,"*"),"GLOBAL_TIMER_IMAGE").appendField("read global timer in sec");this.setOutput(!0,"Number");this.setStyle("time_blocks");this.setTooltip("");this.setHelpUrl("")}};Blockly.Blocks.lists={};Blockly.Constants.Lists={};Blockly.Constants.Lists.HUE=260;
Blockly.defineBlocksWithJsonArray([{type:"lists_create_empty",message0:"%{BKY_LISTS_CREATE_EMPTY_TITLE}",output:"Array",style:"list_blocks",tooltip:"%{BKY_LISTS_CREATE_EMPTY_TOOLTIP}",helpUrl:"%{BKY_LISTS_CREATE_EMPTY_HELPURL}"},{type:"lists_repeat",message0:"%{BKY_LISTS_REPEAT_TITLE}",args0:[{type:"input_value",name:"ITEM"},{type:"input_value",name:"NUM",check:"Number"}],output:"Array",style:"list_blocks",tooltip:"%{BKY_LISTS_REPEAT_TOOLTIP}",helpUrl:"%{BKY_LISTS_REPEAT_HELPURL}"},{type:"lists_reverse",
message0:"%{BKY_LISTS_REVERSE_MESSAGE0}",args0:[{type:"input_value",name:"LIST",check:"Array"}],output:"Array",inputsInline:!0,style:"list_blocks",tooltip:"%{BKY_LISTS_REVERSE_TOOLTIP}",helpUrl:"%{BKY_LISTS_REVERSE_HELPURL}"},{type:"lists_isEmpty",message0:"%{BKY_LISTS_ISEMPTY_TITLE}",args0:[{type:"input_value",name:"VALUE",check:["String","Array"]}],output:"Boolean",style:"list_blocks",tooltip:"%{BKY_LISTS_ISEMPTY_TOOLTIP}",helpUrl:"%{BKY_LISTS_ISEMPTY_HELPURL}"},{type:"lists_length",message0:"%{BKY_LISTS_LENGTH_TITLE}",
args0:[{type:"input_value",name:"VALUE",check:["String","Array"]}],output:"Number",style:"list_blocks",tooltip:"%{BKY_LISTS_LENGTH_TOOLTIP}",helpUrl:"%{BKY_LISTS_LENGTH_HELPURL}"}]);
Blockly.Blocks.lists_create_with={init:function(){this.setHelpUrl(Blockly.Msg.LISTS_CREATE_WITH_HELPURL);this.setStyle("list_blocks");this.itemCount_=3;this.updateShape_();this.setOutput(!0,"Array");this.setMutator(new Blockly.Mutator(["lists_create_with_item"]));this.setTooltip(Blockly.Msg.LISTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var a=Blockly.utils.xml.createElement("mutation");a.setAttribute("items",this.itemCount_);return a},domToMutation:function(a){this.itemCount_=parseInt(a.getAttribute("items"),
10);this.updateShape_()},decompose:function(a){var b=a.newBlock("lists_create_with_container");b.initSvg();for(var c=b.getInput("STACK").connection,d=0;d<this.itemCount_;d++){var e=a.newBlock("lists_create_with_item");e.initSvg();c.connect(e.previousConnection);c=e.nextConnection}return b},compose:function(a){var b=a.getInputTargetBlock("STACK");for(a=[];b;)a.push(b.valueConnection_),b=b.nextConnection&&b.nextConnection.targetBlock();for(b=0;b<this.itemCount_;b++){var c=this.getInput("ADD"+b).connection.targetConnection;
c&&-1==a.indexOf(c)&&c.disconnect()}this.itemCount_=a.length;this.updateShape_();for(b=0;b<this.itemCount_;b++)Blockly.Mutator.reconnect(a[b],this,"ADD"+b)},saveConnections:function(a){a=a.getInputTargetBlock("STACK");for(var b=0;a;){var c=this.getInput("ADD"+b);a.valueConnection_=c&&c.connection.targetConnection;b++;a=a.nextConnection&&a.nextConnection.targetBlock()}},updateShape_:function(){this.itemCount_&&this.getInput("EMPTY")?this.removeInput("EMPTY"):this.itemCount_||this.getInput("EMPTY")||
this.appendDummyInput("EMPTY").appendField(Blockly.Msg.LISTS_CREATE_EMPTY_TITLE);for(var a=0;a<this.itemCount_;a++)if(!this.getInput("ADD"+a)){var b=this.appendValueInput("ADD"+a).setAlign(Blockly.ALIGN_RIGHT);0==a&&b.appendField(Blockly.Msg.LISTS_CREATE_WITH_INPUT_WITH)}for(;this.getInput("ADD"+a);)this.removeInput("ADD"+a),a++}};
Blockly.Blocks.lists_create_with_container={init:function(){this.setStyle("list_blocks");this.appendDummyInput().appendField(Blockly.Msg.LISTS_CREATE_WITH_CONTAINER_TITLE_ADD);this.appendStatementInput("STACK");this.setTooltip(Blockly.Msg.LISTS_CREATE_WITH_CONTAINER_TOOLTIP);this.contextMenu=!1}};
Blockly.Blocks.lists_create_with_item={init:function(){this.setStyle("list_blocks");this.appendDummyInput().appendField(Blockly.Msg.LISTS_CREATE_WITH_ITEM_TITLE);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.LISTS_CREATE_WITH_ITEM_TOOLTIP);this.contextMenu=!1}};
Blockly.Blocks.lists_indexOf={init:function(){var a=[[Blockly.Msg.LISTS_INDEX_OF_FIRST,"FIRST"],[Blockly.Msg.LISTS_INDEX_OF_LAST,"LAST"]];this.setHelpUrl(Blockly.Msg.LISTS_INDEX_OF_HELPURL);this.setStyle("list_blocks");this.setOutput(!0,"Number");this.appendValueInput("VALUE").setCheck("Array").appendField(Blockly.Msg.LISTS_INDEX_OF_INPUT_IN_LIST);this.appendValueInput("FIND").appendField(new Blockly.FieldDropdown(a),"END");this.setInputsInline(!0);var b=this;this.setTooltip(function(){return Blockly.Msg.LISTS_INDEX_OF_TOOLTIP.replace("%1",
b.workspace.options.oneBasedIndex?"0":"-1")})}};
Blockly.Blocks.lists_getIndex={init:function(){var a=[[Blockly.Msg.LISTS_GET_INDEX_GET,"GET"],[Blockly.Msg.LISTS_GET_INDEX_GET_REMOVE,"GET_REMOVE"],[Blockly.Msg.LISTS_GET_INDEX_REMOVE,"REMOVE"]];this.WHERE_OPTIONS=[[Blockly.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Blockly.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Blockly.Msg.LISTS_GET_INDEX_FIRST,"FIRST"],[Blockly.Msg.LISTS_GET_INDEX_LAST,"LAST"],[Blockly.Msg.LISTS_GET_INDEX_RANDOM,"RANDOM"]];this.setHelpUrl(Blockly.Msg.LISTS_GET_INDEX_HELPURL);this.setStyle("list_blocks");
a=new Blockly.FieldDropdown(a,function(a){a="REMOVE"==a;this.getSourceBlock().updateStatement_(a)});this.appendValueInput("VALUE").setCheck("Array").appendField(Blockly.Msg.LISTS_GET_INDEX_INPUT_IN_LIST);this.appendDummyInput().appendField(a,"MODE").appendField("","SPACE");this.appendDummyInput("AT");Blockly.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(Blockly.Msg.LISTS_GET_INDEX_TAIL);this.setInputsInline(!0);this.setOutput(!0);this.updateAt_(!0);var b=this;this.setTooltip(function(){var a=
b.getFieldValue("MODE"),d=b.getFieldValue("WHERE"),e="";switch(a+" "+d){case "GET FROM_START":case "GET FROM_END":e=Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case "GET FIRST":e=Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FIRST;break;case "GET LAST":e=Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_LAST;break;case "GET RANDOM":e=Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case "GET_REMOVE FROM_START":case "GET_REMOVE FROM_END":e=Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case "GET_REMOVE FIRST":e=
Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST;break;case "GET_REMOVE LAST":e=Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST;break;case "GET_REMOVE RANDOM":e=Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM;break;case "REMOVE FROM_START":case "REMOVE FROM_END":e=Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM;break;case "REMOVE FIRST":e=Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST;break;case "REMOVE LAST":e=Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST;break;case "REMOVE RANDOM":e=
Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM}if("FROM_START"==d||"FROM_END"==d)e+=" "+("FROM_START"==d?Blockly.Msg.LISTS_INDEX_FROM_START_TOOLTIP:Blockly.Msg.LISTS_INDEX_FROM_END_TOOLTIP).replace("%1",b.workspace.options.oneBasedIndex?"#1":"#0");return e})},mutationToDom:function(){var a=Blockly.utils.xml.createElement("mutation");a.setAttribute("statement",!this.outputConnection);var b=this.getInput("AT").type==Blockly.INPUT_VALUE;a.setAttribute("at",b);return a},domToMutation:function(a){var b=
"true"==a.getAttribute("statement");this.updateStatement_(b);a="false"!=a.getAttribute("at");this.updateAt_(a)},updateStatement_:function(a){a!=!this.outputConnection&&(this.unplug(!0,!0),a?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(a){this.removeInput("AT");this.removeInput("ORDINAL",!0);a?(this.appendValueInput("AT").setCheck("Number"),Blockly.Msg.ORDINAL_NUMBER_SUFFIX&&
this.appendDummyInput("ORDINAL").appendField(Blockly.Msg.ORDINAL_NUMBER_SUFFIX)):this.appendDummyInput("AT");var b=new Blockly.FieldDropdown(this.WHERE_OPTIONS,function(b){var c="FROM_START"==b||"FROM_END"==b;if(c!=a){var e=this.getSourceBlock();e.updateAt_(c);e.setFieldValue(b,"WHERE");return null}});this.getInput("AT").appendField(b,"WHERE");Blockly.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}};
Blockly.Blocks.lists_setIndex={init:function(){var a=[[Blockly.Msg.LISTS_SET_INDEX_SET,"SET"],[Blockly.Msg.LISTS_SET_INDEX_INSERT,"INSERT"]];this.WHERE_OPTIONS=[[Blockly.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Blockly.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Blockly.Msg.LISTS_GET_INDEX_FIRST,"FIRST"],[Blockly.Msg.LISTS_GET_INDEX_LAST,"LAST"],[Blockly.Msg.LISTS_GET_INDEX_RANDOM,"RANDOM"]];this.setHelpUrl(Blockly.Msg.LISTS_SET_INDEX_HELPURL);this.setStyle("list_blocks");this.appendValueInput("LIST").setCheck("Array").appendField(Blockly.Msg.LISTS_SET_INDEX_INPUT_IN_LIST);
this.appendDummyInput().appendField(new Blockly.FieldDropdown(a),"MODE").appendField("","SPACE");this.appendDummyInput("AT");this.appendValueInput("TO").appendField(Blockly.Msg.LISTS_SET_INDEX_INPUT_TO);this.setInputsInline(!0);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.LISTS_SET_INDEX_TOOLTIP);this.updateAt_(!0);var b=this;this.setTooltip(function(){var a=b.getFieldValue("MODE"),d=b.getFieldValue("WHERE"),e="";switch(a+" "+d){case "SET FROM_START":case "SET FROM_END":e=
Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_SET_FROM;break;case "SET FIRST":e=Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_SET_FIRST;break;case "SET LAST":e=Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_SET_LAST;break;case "SET RANDOM":e=Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_SET_RANDOM;break;case "INSERT FROM_START":case "INSERT FROM_END":e=Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT_FROM;break;case "INSERT FIRST":e=Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST;break;case "INSERT LAST":e=Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT_LAST;
break;case "INSERT RANDOM":e=Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM}if("FROM_START"==d||"FROM_END"==d)e+=" "+Blockly.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",b.workspace.options.oneBasedIndex?"#1":"#0");return e})},mutationToDom:function(){var a=Blockly.utils.xml.createElement("mutation"),b=this.getInput("AT").type==Blockly.INPUT_VALUE;a.setAttribute("at",b);return a},domToMutation:function(a){a="false"!=a.getAttribute("at");this.updateAt_(a)},updateAt_:function(a){this.removeInput("AT");
this.removeInput("ORDINAL",!0);a?(this.appendValueInput("AT").setCheck("Number"),Blockly.Msg.ORDINAL_NUMBER_SUFFIX&&this.appendDummyInput("ORDINAL").appendField(Blockly.Msg.ORDINAL_NUMBER_SUFFIX)):this.appendDummyInput("AT");var b=new Blockly.FieldDropdown(this.WHERE_OPTIONS,function(b){var c="FROM_START"==b||"FROM_END"==b;if(c!=a){var e=this.getSourceBlock();e.updateAt_(c);e.setFieldValue(b,"WHERE");return null}});this.moveInputBefore("AT","TO");this.getInput("ORDINAL")&&this.moveInputBefore("ORDINAL",
"TO");this.getInput("AT").appendField(b,"WHERE")}};
Blockly.Blocks.lists_getSublist={init:function(){this.WHERE_OPTIONS_1=[[Blockly.Msg.LISTS_GET_SUBLIST_START_FROM_START,"FROM_START"],[Blockly.Msg.LISTS_GET_SUBLIST_START_FROM_END,"FROM_END"],[Blockly.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]];this.WHERE_OPTIONS_2=[[Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[Blockly.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]];this.setHelpUrl(Blockly.Msg.LISTS_GET_SUBLIST_HELPURL);this.setStyle("list_blocks");
this.appendValueInput("LIST").setCheck("Array").appendField(Blockly.Msg.LISTS_GET_SUBLIST_INPUT_IN_LIST);this.appendDummyInput("AT1");this.appendDummyInput("AT2");Blockly.Msg.LISTS_GET_SUBLIST_TAIL&&this.appendDummyInput("TAIL").appendField(Blockly.Msg.LISTS_GET_SUBLIST_TAIL);this.setInputsInline(!0);this.setOutput(!0,"Array");this.updateAt_(1,!0);this.updateAt_(2,!0);this.setTooltip(Blockly.Msg.LISTS_GET_SUBLIST_TOOLTIP)},mutationToDom:function(){var a=Blockly.utils.xml.createElement("mutation"),
b=this.getInput("AT1").type==Blockly.INPUT_VALUE;a.setAttribute("at1",b);b=this.getInput("AT2").type==Blockly.INPUT_VALUE;a.setAttribute("at2",b);return a},domToMutation:function(a){var b="true"==a.getAttribute("at1");a="true"==a.getAttribute("at2");this.updateAt_(1,b);this.updateAt_(2,a)},updateAt_:function(a,b){this.removeInput("AT"+a);this.removeInput("ORDINAL"+a,!0);b?(this.appendValueInput("AT"+a).setCheck("Number"),Blockly.Msg.ORDINAL_NUMBER_SUFFIX&&this.appendDummyInput("ORDINAL"+a).appendField(Blockly.Msg.ORDINAL_NUMBER_SUFFIX)):
this.appendDummyInput("AT"+a);var c=new Blockly.FieldDropdown(this["WHERE_OPTIONS_"+a],function(c){var d="FROM_START"==c||"FROM_END"==c;if(d!=b){var f=this.getSourceBlock();f.updateAt_(a,d);f.setFieldValue(c,"WHERE"+a);return null}});this.getInput("AT"+a).appendField(c,"WHERE"+a);1==a&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"));Blockly.Msg.LISTS_GET_SUBLIST_TAIL&&this.moveInputBefore("TAIL",null)}};
Blockly.Blocks.lists_sort={init:function(){this.jsonInit({message0:Blockly.Msg.LISTS_SORT_TITLE,args0:[{type:"field_dropdown",name:"TYPE",options:[[Blockly.Msg.LISTS_SORT_TYPE_NUMERIC,"NUMERIC"],[Blockly.Msg.LISTS_SORT_TYPE_TEXT,"TEXT"],[Blockly.Msg.LISTS_SORT_TYPE_IGNORECASE,"IGNORE_CASE"]]},{type:"field_dropdown",name:"DIRECTION",options:[[Blockly.Msg.LISTS_SORT_ORDER_ASCENDING,"1"],[Blockly.Msg.LISTS_SORT_ORDER_DESCENDING,"-1"]]},{type:"input_value",name:"LIST",check:"Array"}],output:"Array",style:"list_blocks",
tooltip:Blockly.Msg.LISTS_SORT_TOOLTIP,helpUrl:Blockly.Msg.LISTS_SORT_HELPURL})}};
Blockly.Blocks.lists_split={init:function(){var a=this,b=new Blockly.FieldDropdown([[Blockly.Msg.LISTS_SPLIT_LIST_FROM_TEXT,"SPLIT"],[Blockly.Msg.LISTS_SPLIT_TEXT_FROM_LIST,"JOIN"]],function(b){a.updateType_(b)});this.setHelpUrl(Blockly.Msg.LISTS_SPLIT_HELPURL);this.setStyle("list_blocks");this.appendValueInput("INPUT").setCheck("String").appendField(b,"MODE");this.appendValueInput("DELIM").setCheck("String").appendField(Blockly.Msg.LISTS_SPLIT_WITH_DELIMITER);this.setInputsInline(!0);this.setOutput(!0,
"Array");this.setTooltip(function(){var b=a.getFieldValue("MODE");if("SPLIT"==b)return Blockly.Msg.LISTS_SPLIT_TOOLTIP_SPLIT;if("JOIN"==b)return Blockly.Msg.LISTS_SPLIT_TOOLTIP_JOIN;throw Error("Unknown mode: "+b);})},updateType_:function(a){if(this.getFieldValue("MODE")!=a){var b=this.getInput("INPUT").connection;b.setShadowDom(null);var c=b.targetBlock();c&&(b.disconnect(),c.isShadow()?c.dispose():this.bumpNeighbours())}"SPLIT"==a?(this.outputConnection.setCheck("Array"),this.getInput("INPUT").setCheck("String")):
(this.outputConnection.setCheck("String"),this.getInput("INPUT").setCheck("Array"))},mutationToDom:function(){var a=Blockly.utils.xml.createElement("mutation");a.setAttribute("mode",this.getFieldValue("MODE"));return a},domToMutation:function(a){this.updateType_(a.getAttribute("mode"))}};Blockly.Blocks.logic={};Blockly.Constants.Logic={};Blockly.Constants.Logic.HUE=210;
Blockly.defineBlocksWithJsonArray([{type:"logic_boolean",message0:"%1",args0:[{type:"field_dropdown",name:"BOOL",options:[["%{BKY_LOGIC_BOOLEAN_TRUE}","TRUE"],["%{BKY_LOGIC_BOOLEAN_FALSE}","FALSE"]]}],output:"Boolean",style:"logic_blocks",tooltip:"%{BKY_LOGIC_BOOLEAN_TOOLTIP}",helpUrl:"%{BKY_LOGIC_BOOLEAN_HELPURL}"},{type:"controls_if",message0:"%{BKY_CONTROLS_IF_MSG_IF} %1",args0:[{type:"input_value",name:"IF0",check:"Boolean"}],message1:"%{BKY_CONTROLS_IF_MSG_THEN} %1",args1:[{type:"input_statement",
name:"DO0"}],previousStatement:null,nextStatement:null,style:"logic_blocks",helpUrl:"%{BKY_CONTROLS_IF_HELPURL}",mutator:"controls_if_mutator",extensions:["controls_if_tooltip"]},{type:"controls_ifelse",message0:"%{BKY_CONTROLS_IF_MSG_IF} %1",args0:[{type:"input_value",name:"IF0",check:"Boolean"}],message1:"%{BKY_CONTROLS_IF_MSG_THEN} %1",args1:[{type:"input_statement",name:"DO0"}],message2:"%{BKY_CONTROLS_IF_MSG_ELSE} %1",args2:[{type:"input_statement",name:"ELSE"}],previousStatement:null,nextStatement:null,
style:"logic_blocks",tooltip:"%{BKYCONTROLS_IF_TOOLTIP_2}",helpUrl:"%{BKY_CONTROLS_IF_HELPURL}",extensions:["controls_if_tooltip"]},{type:"logic_compare",message0:"%1 %2 %3",args0:[{type:"input_value",name:"A"},{type:"field_dropdown",name:"OP",options:[["=","EQ"],["\u2260","NEQ"],["\u200f<","LT"],["\u200f\u2264","LTE"],["\u200f>","GT"],["\u200f\u2265","GTE"]]},{type:"input_value",name:"B"}],inputsInline:!0,output:"Boolean",style:"logic_blocks",helpUrl:"%{BKY_LOGIC_COMPARE_HELPURL}",extensions:["logic_compare",
"logic_op_tooltip"]},{type:"logic_operation",message0:"%1 %2 %3",args0:[{type:"input_value",name:"A",check:"Boolean"},{type:"field_dropdown",name:"OP",options:[["%{BKY_LOGIC_OPERATION_AND}","AND"],["%{BKY_LOGIC_OPERATION_OR}","OR"]]},{type:"input_value",name:"B",check:"Boolean"}],inputsInline:!0,output:"Boolean",style:"logic_blocks",helpUrl:"%{BKY_LOGIC_OPERATION_HELPURL}",extensions:["logic_op_tooltip"]},{type:"logic_negate",message0:"%{BKY_LOGIC_NEGATE_TITLE}",args0:[{type:"input_value",name:"BOOL",
check:"Boolean"}],output:"Boolean",style:"logic_blocks",tooltip:"%{BKY_LOGIC_NEGATE_TOOLTIP}",helpUrl:"%{BKY_LOGIC_NEGATE_HELPURL}"},{type:"logic_null",message0:"%{BKY_LOGIC_NULL}",output:null,style:"logic_blocks",tooltip:"%{BKY_LOGIC_NULL_TOOLTIP}",helpUrl:"%{BKY_LOGIC_NULL_HELPURL}"},{type:"logic_ternary",message0:"%{BKY_LOGIC_TERNARY_CONDITION} %1",args0:[{type:"input_value",name:"IF",check:"Boolean"}],message1:"%{BKY_LOGIC_TERNARY_IF_TRUE} %1",args1:[{type:"input_value",name:"THEN"}],message2:"%{BKY_LOGIC_TERNARY_IF_FALSE} %1",
args2:[{type:"input_value",name:"ELSE"}],output:null,style:"logic_blocks",tooltip:"%{BKY_LOGIC_TERNARY_TOOLTIP}",helpUrl:"%{BKY_LOGIC_TERNARY_HELPURL}",extensions:["logic_ternary"]}]);
Blockly.defineBlocksWithJsonArray([{type:"controls_if_if",message0:"%{BKY_CONTROLS_IF_IF_TITLE_IF}",nextStatement:null,enableContextMenu:!1,style:"logic_blocks",tooltip:"%{BKY_CONTROLS_IF_IF_TOOLTIP}"},{type:"controls_if_elseif",message0:"%{BKY_CONTROLS_IF_ELSEIF_TITLE_ELSEIF}",previousStatement:null,nextStatement:null,enableContextMenu:!1,style:"logic_blocks",tooltip:"%{BKY_CONTROLS_IF_ELSEIF_TOOLTIP}"},{type:"controls_if_else",message0:"%{BKY_CONTROLS_IF_ELSE_TITLE_ELSE}",previousStatement:null,
enableContextMenu:!1,style:"logic_blocks",tooltip:"%{BKY_CONTROLS_IF_ELSE_TOOLTIP}"}]);Blockly.Constants.Logic.TOOLTIPS_BY_OP={EQ:"%{BKY_LOGIC_COMPARE_TOOLTIP_EQ}",NEQ:"%{BKY_LOGIC_COMPARE_TOOLTIP_NEQ}",LT:"%{BKY_LOGIC_COMPARE_TOOLTIP_LT}",LTE:"%{BKY_LOGIC_COMPARE_TOOLTIP_LTE}",GT:"%{BKY_LOGIC_COMPARE_TOOLTIP_GT}",GTE:"%{BKY_LOGIC_COMPARE_TOOLTIP_GTE}",AND:"%{BKY_LOGIC_OPERATION_TOOLTIP_AND}",OR:"%{BKY_LOGIC_OPERATION_TOOLTIP_OR}"};
Blockly.Extensions.register("logic_op_tooltip",Blockly.Extensions.buildTooltipForDropdown("OP",Blockly.Constants.Logic.TOOLTIPS_BY_OP));
Blockly.Constants.Logic.CONTROLS_IF_MUTATOR_MIXIN={elseifCount_:0,elseCount_:0,suppressPrefixSuffix:!0,mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var a=Blockly.utils.xml.createElement("mutation");this.elseifCount_&&a.setAttribute("elseif",this.elseifCount_);this.elseCount_&&a.setAttribute("else",1);return a},domToMutation:function(a){this.elseifCount_=parseInt(a.getAttribute("elseif"),10)||0;this.elseCount_=parseInt(a.getAttribute("else"),10)||0;this.rebuildShape_()},
decompose:function(a){var b=a.newBlock("controls_if_if");b.initSvg();for(var c=b.nextConnection,d=1;d<=this.elseifCount_;d++){var e=a.newBlock("controls_if_elseif");e.initSvg();c.connect(e.previousConnection);c=e.nextConnection}this.elseCount_&&(a=a.newBlock("controls_if_else"),a.initSvg(),c.connect(a.previousConnection));return b},compose:function(a){a=a.nextConnection.targetBlock();this.elseCount_=this.elseifCount_=0;for(var b=[null],c=[null],d=null;a;){switch(a.type){case "controls_if_elseif":this.elseifCount_++;
b.push(a.valueConnection_);c.push(a.statementConnection_);break;case "controls_if_else":this.elseCount_++;d=a.statementConnection_;break;default:throw TypeError("Unknown block type: "+a.type);}a=a.nextConnection&&a.nextConnection.targetBlock()}this.updateShape_();this.reconnectChildBlocks_(b,c,d)},saveConnections:function(a){a=a.nextConnection.targetBlock();for(var b=1;a;){switch(a.type){case "controls_if_elseif":var c=this.getInput("IF"+b),d=this.getInput("DO"+b);a.valueConnection_=c&&c.connection.targetConnection;
a.statementConnection_=d&&d.connection.targetConnection;b++;break;case "controls_if_else":d=this.getInput("ELSE");a.statementConnection_=d&&d.connection.targetConnection;break;default:throw TypeError("Unknown block type: "+a.type);}a=a.nextConnection&&a.nextConnection.targetBlock()}},rebuildShape_:function(){var a=[null],b=[null],c=null;this.getInput("ELSE")&&(c=this.getInput("ELSE").connection.targetConnection);for(var d=1;this.getInput("IF"+d);){var e=this.getInput("IF"+d),f=this.getInput("DO"+
d);a.push(e.connection.targetConnection);b.push(f.connection.targetConnection);d++}this.updateShape_();this.reconnectChildBlocks_(a,b,c)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var a=1;this.getInput("IF"+a);)this.removeInput("IF"+a),this.removeInput("DO"+a),a++;for(a=1;a<=this.elseifCount_;a++)this.appendValueInput("IF"+a).setCheck("Boolean").appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+a).appendField(Blockly.Msg.CONTROLS_IF_MSG_THEN);
this.elseCount_&&this.appendStatementInput("ELSE").appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(a,b,c){for(var d=1;d<=this.elseifCount_;d++)Blockly.Mutator.reconnect(a[d],this,"IF"+d),Blockly.Mutator.reconnect(b[d],this,"DO"+d);Blockly.Mutator.reconnect(c,this,"ELSE")}};Blockly.Extensions.registerMutator("controls_if_mutator",Blockly.Constants.Logic.CONTROLS_IF_MUTATOR_MIXIN,null,["controls_if_elseif","controls_if_else"]);
Blockly.Constants.Logic.CONTROLS_IF_TOOLTIP_EXTENSION=function(){this.setTooltip(function(){if(this.elseifCount_||this.elseCount_){if(!this.elseifCount_&&this.elseCount_)return Blockly.Msg.CONTROLS_IF_TOOLTIP_2;if(this.elseifCount_&&!this.elseCount_)return Blockly.Msg.CONTROLS_IF_TOOLTIP_3;if(this.elseifCount_&&this.elseCount_)return Blockly.Msg.CONTROLS_IF_TOOLTIP_4}else return Blockly.Msg.CONTROLS_IF_TOOLTIP_1;return""}.bind(this))};Blockly.Extensions.register("controls_if_tooltip",Blockly.Constants.Logic.CONTROLS_IF_TOOLTIP_EXTENSION);
Blockly.Constants.Logic.LOGIC_COMPARE_ONCHANGE_MIXIN={onchange:function(a){this.prevBlocks_||(this.prevBlocks_=[null,null]);var b=this.getInputTargetBlock("A"),c=this.getInputTargetBlock("B");b&&c&&!b.outputConnection.checkType(c.outputConnection)&&(Blockly.Events.setGroup(a.group),a=this.prevBlocks_[0],a!==b&&(b.unplug(),!a||a.isDisposed()||a.isShadow()||this.getInput("A").connection.connect(a.outputConnection)),b=this.prevBlocks_[1],b!==c&&(c.unplug(),!b||b.isDisposed()||b.isShadow()||this.getInput("B").connection.connect(b.outputConnection)),
this.bumpNeighbours(),Blockly.Events.setGroup(!1));this.prevBlocks_[0]=this.getInputTargetBlock("A");this.prevBlocks_[1]=this.getInputTargetBlock("B")}};Blockly.Constants.Logic.LOGIC_COMPARE_EXTENSION=function(){this.mixin(Blockly.Constants.Logic.LOGIC_COMPARE_ONCHANGE_MIXIN)};Blockly.Extensions.register("logic_compare",Blockly.Constants.Logic.LOGIC_COMPARE_EXTENSION);
Blockly.Constants.Logic.LOGIC_TERNARY_ONCHANGE_MIXIN={prevParentConnection_:null,onchange:function(a){var b=this.getInputTargetBlock("THEN"),c=this.getInputTargetBlock("ELSE"),d=this.outputConnection.targetConnection;if((b||c)&&d)for(var e=0;2>e;e++){var f=1==e?b:c;f&&!f.outputConnection.checkType(d)&&(Blockly.Events.setGroup(a.group),d===this.prevParentConnection_?(this.unplug(),d.getSourceBlock().bumpNeighbours()):(f.unplug(),f.bumpNeighbours()),Blockly.Events.setGroup(!1))}this.prevParentConnection_=
d}};Blockly.Extensions.registerMixin("logic_ternary",Blockly.Constants.Logic.LOGIC_TERNARY_ONCHANGE_MIXIN);Blockly.Blocks.loops={};Blockly.Constants.Loops={};Blockly.Constants.Loops.HUE=120;
Blockly.defineBlocksWithJsonArray([{type:"controls_repeat_ext",message0:"%{BKY_CONTROLS_REPEAT_TITLE}",args0:[{type:"input_value",name:"TIMES",check:"Number"}],message1:"%{BKY_CONTROLS_REPEAT_INPUT_DO} %1",args1:[{type:"input_statement",name:"DO"}],previousStatement:null,nextStatement:null,style:"loop_blocks",tooltip:"%{BKY_CONTROLS_REPEAT_TOOLTIP}",helpUrl:"%{BKY_CONTROLS_REPEAT_HELPURL}"},{type:"controls_repeat",message0:"%{BKY_CONTROLS_REPEAT_TITLE}",args0:[{type:"field_number",name:"TIMES",value:10,
min:0,precision:1}],message1:"%{BKY_CONTROLS_REPEAT_INPUT_DO} %1",args1:[{type:"input_statement",name:"DO"}],previousStatement:null,nextStatement:null,style:"loop_blocks",tooltip:"%{BKY_CONTROLS_REPEAT_TOOLTIP}",helpUrl:"%{BKY_CONTROLS_REPEAT_HELPURL}"},{type:"controls_whileUntil",message0:"%1 %2",args0:[{type:"field_dropdown",name:"MODE",options:[["%{BKY_CONTROLS_WHILEUNTIL_OPERATOR_WHILE}","WHILE"],["%{BKY_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL}","UNTIL"]]},{type:"input_value",name:"BOOL",check:"Boolean"}],
message1:"%{BKY_CONTROLS_REPEAT_INPUT_DO} %1",args1:[{type:"input_statement",name:"DO"}],previousStatement:null,nextStatement:null,style:"loop_blocks",helpUrl:"%{BKY_CONTROLS_WHILEUNTIL_HELPURL}",extensions:["controls_whileUntil_tooltip"]},{type:"controls_for",message0:"%{BKY_CONTROLS_FOR_TITLE}",args0:[{type:"field_variable",name:"VAR",variable:null},{type:"input_value",name:"FROM",check:"Number",align:"RIGHT"},{type:"input_value",name:"TO",check:"Number",align:"RIGHT"},{type:"input_value",name:"BY",
check:"Number",align:"RIGHT"}],message1:"%{BKY_CONTROLS_REPEAT_INPUT_DO} %1",args1:[{type:"input_statement",name:"DO"}],inputsInline:!0,previousStatement:null,nextStatement:null,style:"loop_blocks",helpUrl:"%{BKY_CONTROLS_FOR_HELPURL}",extensions:["contextMenu_newGetVariableBlock","controls_for_tooltip"]},{type:"controls_forEach",message0:"%{BKY_CONTROLS_FOREACH_TITLE}",args0:[{type:"field_variable",name:"VAR",variable:null},{type:"input_value",name:"LIST",check:"Array"}],message1:"%{BKY_CONTROLS_REPEAT_INPUT_DO} %1",
args1:[{type:"input_statement",name:"DO"}],previousStatement:null,nextStatement:null,style:"loop_blocks",helpUrl:"%{BKY_CONTROLS_FOREACH_HELPURL}",extensions:["contextMenu_newGetVariableBlock","controls_forEach_tooltip"]},{type:"controls_flow_statements",message0:"%1",args0:[{type:"field_dropdown",name:"FLOW",options:[["%{BKY_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK}","BREAK"],["%{BKY_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE}","CONTINUE"]]}],previousStatement:null,style:"loop_blocks",helpUrl:"%{BKY_CONTROLS_FLOW_STATEMENTS_HELPURL}",
extensions:["controls_flow_tooltip","controls_flow_in_loop_check"]}]);Blockly.Constants.Loops.WHILE_UNTIL_TOOLTIPS={WHILE:"%{BKY_CONTROLS_WHILEUNTIL_TOOLTIP_WHILE}",UNTIL:"%{BKY_CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}"};Blockly.Extensions.register("controls_whileUntil_tooltip",Blockly.Extensions.buildTooltipForDropdown("MODE",Blockly.Constants.Loops.WHILE_UNTIL_TOOLTIPS));Blockly.Constants.Loops.BREAK_CONTINUE_TOOLTIPS={BREAK:"%{BKY_CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK}",CONTINUE:"%{BKY_CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}"};
Blockly.Extensions.register("controls_flow_tooltip",Blockly.Extensions.buildTooltipForDropdown("FLOW",Blockly.Constants.Loops.BREAK_CONTINUE_TOOLTIPS));
Blockly.Constants.Loops.CUSTOM_CONTEXT_MENU_CREATE_VARIABLES_GET_MIXIN={customContextMenu:function(a){if(!this.isInFlyout){var b=this.getField("VAR").getVariable(),c=b.name;if(!this.isCollapsed()&&null!=c){var d={enabled:!0};d.text=Blockly.Msg.VARIABLES_SET_CREATE_GET.replace("%1",c);b=Blockly.Variables.generateVariableFieldDom(b);c=Blockly.utils.xml.createElement("block");c.setAttribute("type","variables_get");c.appendChild(b);d.callback=Blockly.ContextMenu.callbackFactory(this,c);a.push(d)}}}};
Blockly.Extensions.registerMixin("contextMenu_newGetVariableBlock",Blockly.Constants.Loops.CUSTOM_CONTEXT_MENU_CREATE_VARIABLES_GET_MIXIN);Blockly.Extensions.register("controls_for_tooltip",Blockly.Extensions.buildTooltipWithFieldText("%{BKY_CONTROLS_FOR_TOOLTIP}","VAR"));Blockly.Extensions.register("controls_forEach_tooltip",Blockly.Extensions.buildTooltipWithFieldText("%{BKY_CONTROLS_FOREACH_TOOLTIP}","VAR"));
Blockly.Constants.Loops.CONTROL_FLOW_IN_LOOP_CHECK_MIXIN={LOOP_TYPES:["controls_repeat","controls_repeat_ext","controls_forEach","controls_for","controls_whileUntil"],suppressPrefixSuffix:!0,getSurroundLoop:function(a){do{if(-1!=Blockly.Constants.Loops.CONTROL_FLOW_IN_LOOP_CHECK_MIXIN.LOOP_TYPES.indexOf(a.type))return a;a=a.getSurroundParent()}while(a);return null},onchange:function(a){this.workspace.isDragging&&!this.workspace.isDragging()&&(Blockly.Constants.Loops.CONTROL_FLOW_IN_LOOP_CHECK_MIXIN.getSurroundLoop(this)?
(this.setWarningText(null),this.isInFlyout||this.setEnabled(!0)):(this.setWarningText(Blockly.Msg.CONTROLS_FLOW_STATEMENTS_WARNING),this.isInFlyout||this.getInheritedDisabled()||this.setEnabled(!1)))}};Blockly.Extensions.registerMixin("controls_flow_in_loop_check",Blockly.Constants.Loops.CONTROL_FLOW_IN_LOOP_CHECK_MIXIN);Blockly.Blocks.math={};Blockly.Constants.Math={};Blockly.Constants.Math.HUE=230;
Blockly.defineBlocksWithJsonArray([{type:"math_number",message0:"%1",args0:[{type:"field_number",name:"NUM",value:0}],output:"Number",helpUrl:"%{BKY_MATH_NUMBER_HELPURL}",style:"math_blocks",tooltip:"%{BKY_MATH_NUMBER_TOOLTIP}",extensions:["parent_tooltip_when_inline"]},{type:"math_arithmetic",message0:"%1 %2 %3",args0:[{type:"input_value",name:"A",check:"Number"},{type:"field_dropdown",name:"OP",options:[["%{BKY_MATH_ADDITION_SYMBOL}","ADD"],["%{BKY_MATH_SUBTRACTION_SYMBOL}","MINUS"],["%{BKY_MATH_MULTIPLICATION_SYMBOL}",
"MULTIPLY"],["%{BKY_MATH_DIVISION_SYMBOL}","DIVIDE"],["%{BKY_MATH_POWER_SYMBOL}","POWER"]]},{type:"input_value",name:"B",check:"Number"}],inputsInline:!0,output:"Number",style:"math_blocks",helpUrl:"%{BKY_MATH_ARITHMETIC_HELPURL}",extensions:["math_op_tooltip"]},{type:"math_single",message0:"%1 %2",args0:[{type:"field_dropdown",name:"OP",options:[["%{BKY_MATH_SINGLE_OP_ROOT}","ROOT"],["%{BKY_MATH_SINGLE_OP_ABSOLUTE}","ABS"],["-","NEG"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]},
{type:"input_value",name:"NUM",check:"Number"}],output:"Number",style:"math_blocks",helpUrl:"%{BKY_MATH_SINGLE_HELPURL}",extensions:["math_op_tooltip"]},{type:"math_trig",message0:"%1 %2",args0:[{type:"field_dropdown",name:"OP",options:[["%{BKY_MATH_TRIG_SIN}","SIN"],["%{BKY_MATH_TRIG_COS}","COS"],["%{BKY_MATH_TRIG_TAN}","TAN"],["%{BKY_MATH_TRIG_ASIN}","ASIN"],["%{BKY_MATH_TRIG_ACOS}","ACOS"],["%{BKY_MATH_TRIG_ATAN}","ATAN"]]},{type:"input_value",name:"NUM",check:"Number"}],output:"Number",style:"math_blocks",
helpUrl:"%{BKY_MATH_TRIG_HELPURL}",extensions:["math_op_tooltip"]},{type:"math_constant",message0:"%1",args0:[{type:"field_dropdown",name:"CONSTANT",options:[["\u03c0","PI"],["e","E"],["\u03c6","GOLDEN_RATIO"],["sqrt(2)","SQRT2"],["sqrt(\u00bd)","SQRT1_2"],["\u221e","INFINITY"]]}],output:"Number",style:"math_blocks",tooltip:"%{BKY_MATH_CONSTANT_TOOLTIP}",helpUrl:"%{BKY_MATH_CONSTANT_HELPURL}"},{type:"math_number_property",message0:"%1 %2",args0:[{type:"input_value",name:"NUMBER_TO_CHECK",check:"Number"},
{type:"field_dropdown",name:"PROPERTY",options:[["%{BKY_MATH_IS_EVEN}","EVEN"],["%{BKY_MATH_IS_ODD}","ODD"],["%{BKY_MATH_IS_PRIME}","PRIME"],["%{BKY_MATH_IS_WHOLE}","WHOLE"],["%{BKY_MATH_IS_POSITIVE}","POSITIVE"],["%{BKY_MATH_IS_NEGATIVE}","NEGATIVE"],["%{BKY_MATH_IS_DIVISIBLE_BY}","DIVISIBLE_BY"]]}],inputsInline:!0,output:"Boolean",style:"math_blocks",tooltip:"%{BKY_MATH_IS_TOOLTIP}",mutator:"math_is_divisibleby_mutator"},{type:"math_change",message0:"%{BKY_MATH_CHANGE_TITLE}",args0:[{type:"field_variable",
name:"VAR",variable:"%{BKY_MATH_CHANGE_TITLE_ITEM}"},{type:"input_value",name:"DELTA",check:"Number"}],previousStatement:null,nextStatement:null,style:"variable_blocks",helpUrl:"%{BKY_MATH_CHANGE_HELPURL}",extensions:["math_change_tooltip"]},{type:"math_round",message0:"%1 %2",args0:[{type:"field_dropdown",name:"OP",options:[["%{BKY_MATH_ROUND_OPERATOR_ROUND}","ROUND"],["%{BKY_MATH_ROUND_OPERATOR_ROUNDUP}","ROUNDUP"],["%{BKY_MATH_ROUND_OPERATOR_ROUNDDOWN}","ROUNDDOWN"]]},{type:"input_value",name:"NUM",
check:"Number"}],output:"Number",style:"math_blocks",helpUrl:"%{BKY_MATH_ROUND_HELPURL}",tooltip:"%{BKY_MATH_ROUND_TOOLTIP}"},{type:"math_on_list",message0:"%1 %2",args0:[{type:"field_dropdown",name:"OP",options:[["%{BKY_MATH_ONLIST_OPERATOR_SUM}","SUM"],["%{BKY_MATH_ONLIST_OPERATOR_MIN}","MIN"],["%{BKY_MATH_ONLIST_OPERATOR_MAX}","MAX"],["%{BKY_MATH_ONLIST_OPERATOR_AVERAGE}","AVERAGE"],["%{BKY_MATH_ONLIST_OPERATOR_MEDIAN}","MEDIAN"],["%{BKY_MATH_ONLIST_OPERATOR_MODE}","MODE"],["%{BKY_MATH_ONLIST_OPERATOR_STD_DEV}",
"STD_DEV"],["%{BKY_MATH_ONLIST_OPERATOR_RANDOM}","RANDOM"]]},{type:"input_value",name:"LIST",check:"Array"}],output:"Number",style:"math_blocks",helpUrl:"%{BKY_MATH_ONLIST_HELPURL}",mutator:"math_modes_of_list_mutator",extensions:["math_op_tooltip"]},{type:"math_modulo",message0:"%{BKY_MATH_MODULO_TITLE}",args0:[{type:"input_value",name:"DIVIDEND",check:"Number"},{type:"input_value",name:"DIVISOR",check:"Number"}],inputsInline:!0,output:"Number",style:"math_blocks",tooltip:"%{BKY_MATH_MODULO_TOOLTIP}",
helpUrl:"%{BKY_MATH_MODULO_HELPURL}"},{type:"math_constrain",message0:"%{BKY_MATH_CONSTRAIN_TITLE}",args0:[{type:"input_value",name:"VALUE",check:"Number"},{type:"input_value",name:"LOW",check:"Number"},{type:"input_value",name:"HIGH",check:"Number"}],inputsInline:!0,output:"Number",style:"math_blocks",tooltip:"%{BKY_MATH_CONSTRAIN_TOOLTIP}",helpUrl:"%{BKY_MATH_CONSTRAIN_HELPURL}"},{type:"math_random_int",message0:"%{BKY_MATH_RANDOM_INT_TITLE}",args0:[{type:"input_value",name:"FROM",check:"Number"},
{type:"input_value",name:"TO",check:"Number"}],inputsInline:!0,output:"Number",style:"math_blocks",tooltip:"%{BKY_MATH_RANDOM_INT_TOOLTIP}",helpUrl:"%{BKY_MATH_RANDOM_INT_HELPURL}"},{type:"math_random_float",message0:"%{BKY_MATH_RANDOM_FLOAT_TITLE_RANDOM}",output:"Number",style:"math_blocks",tooltip:"%{BKY_MATH_RANDOM_FLOAT_TOOLTIP}",helpUrl:"%{BKY_MATH_RANDOM_FLOAT_HELPURL}"},{type:"math_atan2",message0:"%{BKY_MATH_ATAN2_TITLE}",args0:[{type:"input_value",name:"X",check:"Number"},{type:"input_value",
name:"Y",check:"Number"}],inputsInline:!0,output:"Number",style:"math_blocks",tooltip:"%{BKY_MATH_ATAN2_TOOLTIP}",helpUrl:"%{BKY_MATH_ATAN2_HELPURL}"}]);
Blockly.Constants.Math.TOOLTIPS_BY_OP={ADD:"%{BKY_MATH_ARITHMETIC_TOOLTIP_ADD}",MINUS:"%{BKY_MATH_ARITHMETIC_TOOLTIP_MINUS}",MULTIPLY:"%{BKY_MATH_ARITHMETIC_TOOLTIP_MULTIPLY}",DIVIDE:"%{BKY_MATH_ARITHMETIC_TOOLTIP_DIVIDE}",POWER:"%{BKY_MATH_ARITHMETIC_TOOLTIP_POWER}",ROOT:"%{BKY_MATH_SINGLE_TOOLTIP_ROOT}",ABS:"%{BKY_MATH_SINGLE_TOOLTIP_ABS}",NEG:"%{BKY_MATH_SINGLE_TOOLTIP_NEG}",LN:"%{BKY_MATH_SINGLE_TOOLTIP_LN}",LOG10:"%{BKY_MATH_SINGLE_TOOLTIP_LOG10}",EXP:"%{BKY_MATH_SINGLE_TOOLTIP_EXP}",POW10:"%{BKY_MATH_SINGLE_TOOLTIP_POW10}",
SIN:"%{BKY_MATH_TRIG_TOOLTIP_SIN}",COS:"%{BKY_MATH_TRIG_TOOLTIP_COS}",TAN:"%{BKY_MATH_TRIG_TOOLTIP_TAN}",ASIN:"%{BKY_MATH_TRIG_TOOLTIP_ASIN}",ACOS:"%{BKY_MATH_TRIG_TOOLTIP_ACOS}",ATAN:"%{BKY_MATH_TRIG_TOOLTIP_ATAN}",SUM:"%{BKY_MATH_ONLIST_TOOLTIP_SUM}",MIN:"%{BKY_MATH_ONLIST_TOOLTIP_MIN}",MAX:"%{BKY_MATH_ONLIST_TOOLTIP_MAX}",AVERAGE:"%{BKY_MATH_ONLIST_TOOLTIP_AVERAGE}",MEDIAN:"%{BKY_MATH_ONLIST_TOOLTIP_MEDIAN}",MODE:"%{BKY_MATH_ONLIST_TOOLTIP_MODE}",STD_DEV:"%{BKY_MATH_ONLIST_TOOLTIP_STD_DEV}",RANDOM:"%{BKY_MATH_ONLIST_TOOLTIP_RANDOM}"};
Blockly.Extensions.register("math_op_tooltip",Blockly.Extensions.buildTooltipForDropdown("OP",Blockly.Constants.Math.TOOLTIPS_BY_OP));
Blockly.Constants.Math.IS_DIVISIBLEBY_MUTATOR_MIXIN={mutationToDom:function(){var a=Blockly.utils.xml.createElement("mutation"),b="DIVISIBLE_BY"==this.getFieldValue("PROPERTY");a.setAttribute("divisor_input",b);return a},domToMutation:function(a){a="true"==a.getAttribute("divisor_input");this.updateShape_(a)},updateShape_:function(a){var b=this.getInput("DIVISOR");a?b||this.appendValueInput("DIVISOR").setCheck("Number"):b&&this.removeInput("DIVISOR")}};
Blockly.Constants.Math.IS_DIVISIBLE_MUTATOR_EXTENSION=function(){this.getField("PROPERTY").setValidator(function(a){a="DIVISIBLE_BY"==a;this.getSourceBlock().updateShape_(a)})};Blockly.Extensions.registerMutator("math_is_divisibleby_mutator",Blockly.Constants.Math.IS_DIVISIBLEBY_MUTATOR_MIXIN,Blockly.Constants.Math.IS_DIVISIBLE_MUTATOR_EXTENSION);Blockly.Extensions.register("math_change_tooltip",Blockly.Extensions.buildTooltipWithFieldText("%{BKY_MATH_CHANGE_TOOLTIP}","VAR"));
Blockly.Constants.Math.LIST_MODES_MUTATOR_MIXIN={updateType_:function(a){"MODE"==a?this.outputConnection.setCheck("Array"):this.outputConnection.setCheck("Number")},mutationToDom:function(){var a=Blockly.utils.xml.createElement("mutation");a.setAttribute("op",this.getFieldValue("OP"));return a},domToMutation:function(a){this.updateType_(a.getAttribute("op"))}};Blockly.Constants.Math.LIST_MODES_MUTATOR_EXTENSION=function(){this.getField("OP").setValidator(function(a){this.updateType_(a)}.bind(this))};
Blockly.Extensions.registerMutator("math_modes_of_list_mutator",Blockly.Constants.Math.LIST_MODES_MUTATOR_MIXIN,Blockly.Constants.Math.LIST_MODES_MUTATOR_EXTENSION);Blockly.Blocks.procedures={};
Blockly.Blocks.procedures_defnoreturn={init:function(){var a=new Blockly.FieldTextInput("",Blockly.Procedures.rename);a.setSpellcheck(!1);this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_DEFNORETURN_TITLE).appendField(a,"NAME").appendField("","PARAMS");this.setMutator(new Blockly.Mutator(["procedures_mutatorarg"]));this.setStyle("procedure_blocks");this.setTooltip(Blockly.Msg.PROCEDURES_DEFNORETURN_TOOLTIP);this.setHelpUrl(Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL);this.arguments_=[];this.argumentVarModels_=
[];this.setStatements_(!0);this.statementConnection_=null},setStatements_:function(a){this.hasStatements_!==a&&(a?(this.appendStatementInput("STACK").appendField(Blockly.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=a)},updateParams_:function(){var a="";this.arguments_.length&&(a=Blockly.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", "));Blockly.Events.disable();try{this.setFieldValue(a,"PARAMS")}finally{Blockly.Events.enable()}},
mutationToDom:function(a){var b=Blockly.utils.xml.createElement("mutation");a&&b.setAttribute("name",this.getFieldValue("NAME"));for(var c=0;c<this.argumentVarModels_.length;c++){var d=Blockly.utils.xml.createElement("arg"),e=this.argumentVarModels_[c];d.setAttribute("name",e.name);d.setAttribute("varid",e.getId());a&&this.paramIds_&&d.setAttribute("paramId",this.paramIds_[c]);b.appendChild(d)}this.hasStatements_||b.setAttribute("statements","false");return b},domToMutation:function(a){this.arguments_=
[];this.argumentVarModels_=[];for(var b=0,c;c=a.childNodes[b];b++)if("arg"==c.nodeName.toLowerCase()){var d=c.getAttribute("name");c=c.getAttribute("varid")||c.getAttribute("varId");this.arguments_.push(d);c=Blockly.Variables.getOrCreateVariablePackage(this.workspace,c,d,"");null!=c?this.argumentVarModels_.push(c):console.log("Failed to create a variable with name "+d+", ignoring.")}this.updateParams_();Blockly.Procedures.mutateCallers(this);this.setStatements_("false"!==a.getAttribute("statements"))},
decompose:function(a){var b=Blockly.utils.xml.createElement("block");b.setAttribute("type","procedures_mutatorcontainer");var c=Blockly.utils.xml.createElement("statement");c.setAttribute("name","STACK");b.appendChild(c);for(var d=0;d<this.arguments_.length;d++){var e=Blockly.utils.xml.createElement("block");e.setAttribute("type","procedures_mutatorarg");var f=Blockly.utils.xml.createElement("field");f.setAttribute("name","NAME");var g=Blockly.utils.xml.createTextNode(this.arguments_[d]);f.appendChild(g);
e.appendChild(f);f=Blockly.utils.xml.createElement("next");e.appendChild(f);c.appendChild(e);c=f}a=Blockly.Xml.domToBlock(b,a);"procedures_defreturn"==this.type?a.setFieldValue(this.hasStatements_,"STATEMENTS"):a.removeInput("STATEMENT_INPUT");Blockly.Procedures.mutateCallers(this);return a},compose:function(a){this.arguments_=[];this.paramIds_=[];this.argumentVarModels_=[];for(var b=a.getInputTargetBlock("STACK");b;){var c=b.getFieldValue("NAME");this.arguments_.push(c);c=this.workspace.getVariable(c,
"");this.argumentVarModels_.push(c);this.paramIds_.push(b.id);b=b.nextConnection&&b.nextConnection.targetBlock()}this.updateParams_();Blockly.Procedures.mutateCallers(this);a=a.getFieldValue("STATEMENTS");if(null!==a&&(a="TRUE"==a,this.hasStatements_!=a))if(a)this.setStatements_(!0),Blockly.Mutator.reconnect(this.statementConnection_,this,"STACK"),this.statementConnection_=null;else{a=this.getInput("STACK").connection;if(this.statementConnection_=a.targetConnection)a=a.targetBlock(),a.unplug(),a.bumpNeighbours();
this.setStatements_(!1)}},getProcedureDef:function(){return[this.getFieldValue("NAME"),this.arguments_,!1]},getVars:function(){return this.arguments_},getVarModels:function(){return this.argumentVarModels_},renameVarById:function(a,b){var c=this.workspace.getVariableById(a);if(""==c.type){c=c.name;b=this.workspace.getVariableById(b);for(var d=!1,e=0;e<this.argumentVarModels_.length;e++)this.argumentVarModels_[e].getId()==a&&(this.arguments_[e]=b.name,this.argumentVarModels_[e]=b,d=!0);d&&(this.displayRenamedVar_(c,
b.name),Blockly.Procedures.mutateCallers(this))}},updateVarName:function(a){for(var b=a.name,c=!1,d=0;d<this.argumentVarModels_.length;d++)if(this.argumentVarModels_[d].getId()==a.getId()){var e=this.arguments_[d];this.arguments_[d]=b;c=!0}c&&(this.displayRenamedVar_(e,b),Blockly.Procedures.mutateCallers(this))},displayRenamedVar_:function(a,b){this.updateParams_();if(this.mutator&&this.mutator.isVisible())for(var c=this.mutator.workspace_.getAllBlocks(!1),d=0,e;e=c[d];d++)"procedures_mutatorarg"==
e.type&&Blockly.Names.equals(a,e.getFieldValue("NAME"))&&e.setFieldValue(b,"NAME")},customContextMenu:function(a){if(!this.isInFlyout){var b={enabled:!0},c=this.getFieldValue("NAME");b.text=Blockly.Msg.PROCEDURES_CREATE_DO.replace("%1",c);var d=Blockly.utils.xml.createElement("mutation");d.setAttribute("name",c);for(c=0;c<this.arguments_.length;c++){var e=Blockly.utils.xml.createElement("arg");e.setAttribute("name",this.arguments_[c]);d.appendChild(e)}c=Blockly.utils.xml.createElement("block");c.setAttribute("type",
this.callType_);c.appendChild(d);b.callback=Blockly.ContextMenu.callbackFactory(this,c);a.push(b);if(!this.isCollapsed())for(c=0;c<this.argumentVarModels_.length;c++)b={enabled:!0},d=this.argumentVarModels_[c],b.text=Blockly.Msg.VARIABLES_SET_CREATE_GET.replace("%1",d.name),d=Blockly.Variables.generateVariableFieldDom(d),e=Blockly.utils.xml.createElement("block"),e.setAttribute("type","variables_get"),e.appendChild(d),b.callback=Blockly.ContextMenu.callbackFactory(this,e),a.push(b)}},callType_:"procedures_callnoreturn"};
Blockly.Blocks.procedures_defreturn={init:function(){var a=new Blockly.FieldTextInput("",Blockly.Procedures.rename);a.setSpellcheck(!1);this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_DEFRETURN_TITLE).appendField(a,"NAME").appendField("","PARAMS");this.appendValueInput("RETURN").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN);this.setMutator(new Blockly.Mutator(["procedures_mutatorarg"]));this.setStyle("procedure_blocks");this.setTooltip(Blockly.Msg.PROCEDURES_DEFRETURN_TOOLTIP);
this.setHelpUrl(Blockly.Msg.PROCEDURES_DEFRETURN_HELPURL);this.arguments_=[];this.argumentVarModels_=[];this.setStatements_(!0);this.statementConnection_=null},setStatements_:Blockly.Blocks.procedures_defnoreturn.setStatements_,updateParams_:Blockly.Blocks.procedures_defnoreturn.updateParams_,mutationToDom:Blockly.Blocks.procedures_defnoreturn.mutationToDom,domToMutation:Blockly.Blocks.procedures_defnoreturn.domToMutation,decompose:Blockly.Blocks.procedures_defnoreturn.decompose,compose:Blockly.Blocks.procedures_defnoreturn.compose,
getProcedureDef:function(){return[this.getFieldValue("NAME"),this.arguments_,!0]},getVars:Blockly.Blocks.procedures_defnoreturn.getVars,getVarModels:Blockly.Blocks.procedures_defnoreturn.getVarModels,renameVarById:Blockly.Blocks.procedures_defnoreturn.renameVarById,updateVarName:Blockly.Blocks.procedures_defnoreturn.updateVarName,displayRenamedVar_:Blockly.Blocks.procedures_defnoreturn.displayRenamedVar_,customContextMenu:Blockly.Blocks.procedures_defnoreturn.customContextMenu,callType_:"procedures_callreturn"};
Blockly.Blocks.procedures_mutatorcontainer={init:function(){this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_MUTATORCONTAINER_TITLE);this.appendStatementInput("STACK");this.appendDummyInput("STATEMENT_INPUT").appendField(Blockly.Msg.PROCEDURES_ALLOW_STATEMENTS).appendField(new Blockly.FieldCheckbox("TRUE"),"STATEMENTS");this.setStyle("procedure_blocks");this.setTooltip(Blockly.Msg.PROCEDURES_MUTATORCONTAINER_TOOLTIP);this.contextMenu=!1}};
Blockly.Blocks.procedures_mutatorarg={init:function(){var a=new Blockly.FieldTextInput(Blockly.Procedures.DEFAULT_ARG,this.validator_);a.oldShowEditorFn_=a.showEditor_;a.showEditor_=function(){this.createdVariables_=[];this.oldShowEditorFn_()};this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_MUTATORARG_TITLE).appendField(a,"NAME");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setStyle("procedure_blocks");this.setTooltip(Blockly.Msg.PROCEDURES_MUTATORARG_TOOLTIP);this.contextMenu=
!1;a.onFinishEditing_=this.deleteIntermediateVars_;a.createdVariables_=[];a.onFinishEditing_("x")},validator_:function(a){var b=this.getSourceBlock(),c=Blockly.Mutator.findParentWs(b.workspace);a=a.replace(/[\s\xa0]+/g," ").replace(/^ | $/g,"");if(!a)return null;for(var d=(b.workspace.targetWorkspace||b.workspace).getAllBlocks(!1),e=0;e<d.length;e++)if(d[e].id!=this.getSourceBlock().id&&d[e].getFieldValue("NAME")==a)return null;if(b.isInFlyout)return a;(b=c.getVariable(a,""))&&b.name!=a&&c.renameVariableById(b.getId(),
a);b||(b=c.createVariable(a,""))&&this.createdVariables_&&this.createdVariables_.push(b);return a},deleteIntermediateVars_:function(a){var b=Blockly.Mutator.findParentWs(this.getSourceBlock().workspace);if(b)for(var c=0;c<this.createdVariables_.length;c++){var d=this.createdVariables_[c];d.name!=a&&b.deleteVariableById(d.getId())}}};
Blockly.Blocks.procedures_callnoreturn={init:function(){this.appendDummyInput("TOPROW").appendField(this.id,"NAME");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setStyle("procedure_blocks");this.setHelpUrl(Blockly.Msg.PROCEDURES_CALLNORETURN_HELPURL);this.arguments_=[];this.argumentVarModels_=[];this.quarkConnections_={};this.quarkIds_=null;this.previousEnabledState_=!0},getProcedureCall:function(){return this.getFieldValue("NAME")},renameProcedure:function(a,b){Blockly.Names.equals(a,
this.getProcedureCall())&&(this.setFieldValue(b,"NAME"),this.setTooltip((this.outputConnection?Blockly.Msg.PROCEDURES_CALLRETURN_TOOLTIP:Blockly.Msg.PROCEDURES_CALLNORETURN_TOOLTIP).replace("%1",b)))},setProcedureParameters_:function(a,b){var c=Blockly.Procedures.getDefinition(this.getProcedureCall(),this.workspace),d=c&&c.mutator&&c.mutator.isVisible();d||(this.quarkConnections_={},this.quarkIds_=null);if(b)if(a.join("\n")==this.arguments_.join("\n"))this.quarkIds_=b;else{if(b.length!=a.length)throw RangeError("paramNames and paramIds must be the same length.");
this.setCollapsed(!1);this.quarkIds_||(this.quarkConnections_={},this.quarkIds_=[]);c=this.rendered;this.rendered=!1;for(var e=0;e<this.arguments_.length;e++){var f=this.getInput("ARG"+e);f&&(f=f.connection.targetConnection,this.quarkConnections_[this.quarkIds_[e]]=f,d&&f&&-1==b.indexOf(this.quarkIds_[e])&&(f.disconnect(),f.getSourceBlock().bumpNeighbours()))}this.arguments_=[].concat(a);this.argumentVarModels_=[];for(e=0;e<this.arguments_.length;e++)a=Blockly.Variables.getOrCreateVariablePackage(this.workspace,
null,this.arguments_[e],""),this.argumentVarModels_.push(a);this.updateShape_();if(this.quarkIds_=b)for(e=0;e<this.arguments_.length;e++)b=this.quarkIds_[e],b in this.quarkConnections_&&(f=this.quarkConnections_[b],Blockly.Mutator.reconnect(f,this,"ARG"+e)||delete this.quarkConnections_[b]);(this.rendered=c)&&this.render()}},updateShape_:function(){for(var a=0;a<this.arguments_.length;a++){var b=this.getField("ARGNAME"+a);if(b){Blockly.Events.disable();try{b.setValue(this.arguments_[a])}finally{Blockly.Events.enable()}}else b=
new Blockly.FieldLabel(this.arguments_[a]),this.appendValueInput("ARG"+a).setAlign(Blockly.ALIGN_RIGHT).appendField(b,"ARGNAME"+a).init()}for(;this.getInput("ARG"+a);)this.removeInput("ARG"+a),a++;if(a=this.getInput("TOPROW"))this.arguments_.length?this.getField("WITH")||(a.appendField(Blockly.Msg.PROCEDURES_CALL_BEFORE_PARAMS,"WITH"),a.init()):this.getField("WITH")&&a.removeField("WITH")},mutationToDom:function(){var a=Blockly.utils.xml.createElement("mutation");a.setAttribute("name",this.getProcedureCall());
for(var b=0;b<this.arguments_.length;b++){var c=Blockly.utils.xml.createElement("arg");c.setAttribute("name",this.arguments_[b]);a.appendChild(c)}return a},domToMutation:function(a){var b=a.getAttribute("name");this.renameProcedure(this.getProcedureCall(),b);b=[];for(var c=[],d=0,e;e=a.childNodes[d];d++)"arg"==e.nodeName.toLowerCase()&&(b.push(e.getAttribute("name")),c.push(e.getAttribute("paramId")));this.setProcedureParameters_(b,c)},getVarModels:function(){return this.argumentVarModels_},onchange:function(a){if(this.workspace&&
!this.workspace.isFlyout&&a.recordUndo)if(a.type==Blockly.Events.BLOCK_CREATE&&-1!=a.ids.indexOf(this.id)){var b=this.getProcedureCall();b=Blockly.Procedures.getDefinition(b,this.workspace);!b||b.type==this.defType_&&JSON.stringify(b.arguments_)==JSON.stringify(this.arguments_)||(b=null);if(!b){Blockly.Events.setGroup(a.group);a=Blockly.utils.xml.createElement("xml");b=Blockly.utils.xml.createElement("block");b.setAttribute("type",this.defType_);var c=this.getRelativeToSurfaceXY(),d=c.y+2*Blockly.SNAP_RADIUS;
b.setAttribute("x",c.x+Blockly.SNAP_RADIUS*(this.RTL?-1:1));b.setAttribute("y",d);c=this.mutationToDom();b.appendChild(c);c=Blockly.utils.xml.createElement("field");c.setAttribute("name","NAME");c.appendChild(Blockly.utils.xml.createTextNode(this.getProcedureCall()));b.appendChild(c);a.appendChild(b);Blockly.Xml.domToWorkspace(a,this.workspace);Blockly.Events.setGroup(!1)}}else a.type==Blockly.Events.BLOCK_DELETE?(b=this.getProcedureCall(),b=Blockly.Procedures.getDefinition(b,this.workspace),b||(Blockly.Events.setGroup(a.group),
this.dispose(!0),Blockly.Events.setGroup(!1))):a.type==Blockly.Events.CHANGE&&"disabled"==a.element&&(b=this.getProcedureCall(),(b=Blockly.Procedures.getDefinition(b,this.workspace))&&b.id==a.blockId&&((b=Blockly.Events.getGroup())&&console.log("Saw an existing group while responding to a definition change"),Blockly.Events.setGroup(a.group),a.newValue?(this.previousEnabledState_=this.isEnabled(),this.setEnabled(!1)):this.setEnabled(this.previousEnabledState_),Blockly.Events.setGroup(b)))},customContextMenu:function(a){if(this.workspace.isMovable()){var b=
{enabled:!0};b.text=Blockly.Msg.PROCEDURES_HIGHLIGHT_DEF;var c=this.getProcedureCall(),d=this.workspace;b.callback=function(){var a=Blockly.Procedures.getDefinition(c,d);a&&(d.centerOnBlock(a.id),a.select())};a.push(b)}},defType_:"procedures_defnoreturn"};
Blockly.Blocks.procedures_callreturn={init:function(){this.appendDummyInput("TOPROW").appendField("","NAME");this.setOutput(!0);this.setStyle("procedure_blocks");this.setHelpUrl(Blockly.Msg.PROCEDURES_CALLRETURN_HELPURL);this.arguments_=[];this.quarkConnections_={};this.quarkIds_=null;this.previousEnabledState_=!0},getProcedureCall:Blockly.Blocks.procedures_callnoreturn.getProcedureCall,renameProcedure:Blockly.Blocks.procedures_callnoreturn.renameProcedure,setProcedureParameters_:Blockly.Blocks.procedures_callnoreturn.setProcedureParameters_,
updateShape_:Blockly.Blocks.procedures_callnoreturn.updateShape_,mutationToDom:Blockly.Blocks.procedures_callnoreturn.mutationToDom,domToMutation:Blockly.Blocks.procedures_callnoreturn.domToMutation,getVarModels:Blockly.Blocks.procedures_callnoreturn.getVarModels,onchange:Blockly.Blocks.procedures_callnoreturn.onchange,customContextMenu:Blockly.Blocks.procedures_callnoreturn.customContextMenu,defType_:"procedures_defreturn"};
Blockly.Blocks.procedures_ifreturn={init:function(){this.appendValueInput("CONDITION").setCheck("Boolean").appendField(Blockly.Msg.CONTROLS_IF_MSG_IF);this.appendValueInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN);this.setInputsInline(!0);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setStyle("procedure_blocks");this.setTooltip(Blockly.Msg.PROCEDURES_IFRETURN_TOOLTIP);this.setHelpUrl(Blockly.Msg.PROCEDURES_IFRETURN_HELPURL);this.hasReturnValue_=!0},mutationToDom:function(){var a=
Blockly.utils.xml.createElement("mutation");a.setAttribute("value",Number(this.hasReturnValue_));return a},domToMutation:function(a){this.hasReturnValue_=1==a.getAttribute("value");this.hasReturnValue_||(this.removeInput("VALUE"),this.appendDummyInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN))},onchange:function(a){if(this.workspace.isDragging&&!this.workspace.isDragging()){a=!1;var b=this;do{if(-1!=this.FUNCTION_TYPES.indexOf(b.type)){a=!0;break}b=b.getSurroundParent()}while(b);
a?("procedures_defnoreturn"==b.type&&this.hasReturnValue_?(this.removeInput("VALUE"),this.appendDummyInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN),this.hasReturnValue_=!1):"procedures_defreturn"!=b.type||this.hasReturnValue_||(this.removeInput("VALUE"),this.appendValueInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN),this.hasReturnValue_=!0),this.setWarningText(null),this.isInFlyout||this.setEnabled(!0)):(this.setWarningText(Blockly.Msg.PROCEDURES_IFRETURN_WARNING),
this.isInFlyout||this.getInheritedDisabled()||this.setEnabled(!1))}},FUNCTION_TYPES:["procedures_defnoreturn","procedures_defreturn"]};Blockly.Blocks.texts={};Blockly.Constants.Text={};Blockly.Constants.Text.HUE=160;
Blockly.defineBlocksWithJsonArray([{type:"text",message0:"%1",args0:[{type:"field_input",name:"TEXT",text:""}],output:"String",style:"text_blocks",helpUrl:"%{BKY_TEXT_TEXT_HELPURL}",tooltip:"%{BKY_TEXT_TEXT_TOOLTIP}",extensions:[]},{type:"text_multiline",message0:"%1 %2",args0:[{type:"field_image",src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAARCAYAAADpPU2iAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAdhgAAHYYBXaITgQAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMS42/U4J6AAAAP1JREFUOE+Vks0KQUEYhjmRIja4ABtZ2dm5A3t3Ia6AUm7CylYuQRaUhZSlLZJiQbFAyRnPN33y01HOW08z8873zpwzM4F3GWOCruvGIE4/rLaV+Nq1hVGMBqzhqlxgCys4wJA65xnogMHsQ5lujnYHTejBBCK2mE4abjCgMGhNxHgDFWjDSG07kdfVa2pZMf4ZyMAdWmpZMfYOsLiDMYMjlMB+K613QISRhTnITnsYg5yUd0DETmEoMlkFOeIT/A58iyK5E18BuTBfgYXfwNJv4P9/oEBerLylOnRhygmGdPpTTBZAPkde61lbQe4moWUvYUZYLfUNftIY4zwA5X2Z9AYnQrEAAAAASUVORK5CYII=",width:12,
height:17,alt:"\u00b6"},{type:"field_multilinetext",name:"TEXT",text:""}],output:"String",style:"text_blocks",helpUrl:"%{BKY_TEXT_TEXT_HELPURL}",tooltip:"%{BKY_TEXT_TEXT_TOOLTIP}",extensions:["parent_tooltip_when_inline"]},{type:"text_join",message0:"",output:"String",style:"text_blocks",helpUrl:"%{BKY_TEXT_JOIN_HELPURL}",tooltip:"%{BKY_TEXT_JOIN_TOOLTIP}",mutator:"text_join_mutator"},{type:"text_create_join_container",message0:"%{BKY_TEXT_CREATE_JOIN_TITLE_JOIN} %1 %2",args0:[{type:"input_dummy"},
{type:"input_statement",name:"STACK"}],style:"text_blocks",tooltip:"%{BKY_TEXT_CREATE_JOIN_TOOLTIP}",enableContextMenu:!1},{type:"text_create_join_item",message0:"%{BKY_TEXT_CREATE_JOIN_ITEM_TITLE_ITEM}",previousStatement:null,nextStatement:null,style:"text_blocks",tooltip:"%{BKY_TEXT_CREATE_JOIN_ITEM_TOOLTIP}",enableContextMenu:!1},{type:"text_append",message0:"%{BKY_TEXT_APPEND_TITLE}",args0:[{type:"field_variable",name:"VAR",variable:"%{BKY_TEXT_APPEND_VARIABLE}"},{type:"input_value",name:"TEXT"}],
previousStatement:null,nextStatement:null,style:"text_blocks",extensions:["text_append_tooltip"]},{type:"text_length",message0:"%{BKY_TEXT_LENGTH_TITLE}",args0:[{type:"input_value",name:"VALUE",check:["String","Array"]}],output:"Number",style:"text_blocks",tooltip:"%{BKY_TEXT_LENGTH_TOOLTIP}",helpUrl:"%{BKY_TEXT_LENGTH_HELPURL}"},{type:"text_isEmpty",message0:"%{BKY_TEXT_ISEMPTY_TITLE}",args0:[{type:"input_value",name:"VALUE",check:["String","Array"]}],output:"Boolean",style:"text_blocks",tooltip:"%{BKY_TEXT_ISEMPTY_TOOLTIP}",
helpUrl:"%{BKY_TEXT_ISEMPTY_HELPURL}"},{type:"text_indexOf",message0:"%{BKY_TEXT_INDEXOF_TITLE}",args0:[{type:"input_value",name:"VALUE",check:"String"},{type:"field_dropdown",name:"END",options:[["%{BKY_TEXT_INDEXOF_OPERATOR_FIRST}","FIRST"],["%{BKY_TEXT_INDEXOF_OPERATOR_LAST}","LAST"]]},{type:"input_value",name:"FIND",check:"String"}],output:"Number",style:"text_blocks",helpUrl:"%{BKY_TEXT_INDEXOF_HELPURL}",inputsInline:!0,extensions:["text_indexOf_tooltip"]},{type:"text_charAt",message0:"%{BKY_TEXT_CHARAT_TITLE}",
args0:[{type:"input_value",name:"VALUE",check:"String"},{type:"field_dropdown",name:"WHERE",options:[["%{BKY_TEXT_CHARAT_FROM_START}","FROM_START"],["%{BKY_TEXT_CHARAT_FROM_END}","FROM_END"],["%{BKY_TEXT_CHARAT_FIRST}","FIRST"],["%{BKY_TEXT_CHARAT_LAST}","LAST"],["%{BKY_TEXT_CHARAT_RANDOM}","RANDOM"]]}],output:"String",style:"text_blocks",helpUrl:"%{BKY_TEXT_CHARAT_HELPURL}",inputsInline:!0,mutator:"text_charAt_mutator"}]);
Blockly.Blocks.text_getSubstring={init:function(){this.WHERE_OPTIONS_1=[[Blockly.Msg.TEXT_GET_SUBSTRING_START_FROM_START,"FROM_START"],[Blockly.Msg.TEXT_GET_SUBSTRING_START_FROM_END,"FROM_END"],[Blockly.Msg.TEXT_GET_SUBSTRING_START_FIRST,"FIRST"]];this.WHERE_OPTIONS_2=[[Blockly.Msg.TEXT_GET_SUBSTRING_END_FROM_START,"FROM_START"],[Blockly.Msg.TEXT_GET_SUBSTRING_END_FROM_END,"FROM_END"],[Blockly.Msg.TEXT_GET_SUBSTRING_END_LAST,"LAST"]];this.setHelpUrl(Blockly.Msg.TEXT_GET_SUBSTRING_HELPURL);this.setStyle("text_blocks");
this.appendValueInput("STRING").setCheck("String").appendField(Blockly.Msg.TEXT_GET_SUBSTRING_INPUT_IN_TEXT);this.appendDummyInput("AT1");this.appendDummyInput("AT2");Blockly.Msg.TEXT_GET_SUBSTRING_TAIL&&this.appendDummyInput("TAIL").appendField(Blockly.Msg.TEXT_GET_SUBSTRING_TAIL);this.setInputsInline(!0);this.setOutput(!0,"String");this.updateAt_(1,!0);this.updateAt_(2,!0);this.setTooltip(Blockly.Msg.TEXT_GET_SUBSTRING_TOOLTIP)},mutationToDom:function(){var a=Blockly.utils.xml.createElement("mutation"),
b=this.getInput("AT1").type==Blockly.INPUT_VALUE;a.setAttribute("at1",b);b=this.getInput("AT2").type==Blockly.INPUT_VALUE;a.setAttribute("at2",b);return a},domToMutation:function(a){var b="true"==a.getAttribute("at1");a="true"==a.getAttribute("at2");this.updateAt_(1,b);this.updateAt_(2,a)},updateAt_:function(a,b){this.removeInput("AT"+a);this.removeInput("ORDINAL"+a,!0);b?(this.appendValueInput("AT"+a).setCheck("Number"),Blockly.Msg.ORDINAL_NUMBER_SUFFIX&&this.appendDummyInput("ORDINAL"+a).appendField(Blockly.Msg.ORDINAL_NUMBER_SUFFIX)):
this.appendDummyInput("AT"+a);2==a&&Blockly.Msg.TEXT_GET_SUBSTRING_TAIL&&(this.removeInput("TAIL",!0),this.appendDummyInput("TAIL").appendField(Blockly.Msg.TEXT_GET_SUBSTRING_TAIL));var c=new Blockly.FieldDropdown(this["WHERE_OPTIONS_"+a],function(c){var d="FROM_START"==c||"FROM_END"==c;if(d!=b){var f=this.getSourceBlock();f.updateAt_(a,d);f.setFieldValue(c,"WHERE"+a);return null}});this.getInput("AT"+a).appendField(c,"WHERE"+a);1==a&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&
this.moveInputBefore("ORDINAL1","AT2"))}};Blockly.Blocks.text_changeCase={init:function(){var a=[[Blockly.Msg.TEXT_CHANGECASE_OPERATOR_UPPERCASE,"UPPERCASE"],[Blockly.Msg.TEXT_CHANGECASE_OPERATOR_LOWERCASE,"LOWERCASE"],[Blockly.Msg.TEXT_CHANGECASE_OPERATOR_TITLECASE,"TITLECASE"]];this.setHelpUrl(Blockly.Msg.TEXT_CHANGECASE_HELPURL);this.setStyle("text_blocks");this.appendValueInput("TEXT").setCheck("String").appendField(new Blockly.FieldDropdown(a),"CASE");this.setOutput(!0,"String");this.setTooltip(Blockly.Msg.TEXT_CHANGECASE_TOOLTIP)}};
Blockly.Blocks.text_trim={init:function(){var a=[[Blockly.Msg.TEXT_TRIM_OPERATOR_BOTH,"BOTH"],[Blockly.Msg.TEXT_TRIM_OPERATOR_LEFT,"LEFT"],[Blockly.Msg.TEXT_TRIM_OPERATOR_RIGHT,"RIGHT"]];this.setHelpUrl(Blockly.Msg.TEXT_TRIM_HELPURL);this.setStyle("text_blocks");this.appendValueInput("TEXT").setCheck("String").appendField(new Blockly.FieldDropdown(a),"MODE");this.setOutput(!0,"String");this.setTooltip(Blockly.Msg.TEXT_TRIM_TOOLTIP)}};
Blockly.Blocks.text_print={init:function(){this.jsonInit({message0:Blockly.Msg.TEXT_PRINT_TITLE,args0:[{type:"input_value",name:"TEXT"}],previousStatement:null,nextStatement:null,style:"text_blocks",tooltip:Blockly.Msg.TEXT_PRINT_TOOLTIP,helpUrl:Blockly.Msg.TEXT_PRINT_HELPURL})}};
Blockly.Blocks.text_prompt_ext={init:function(){var a=[[Blockly.Msg.TEXT_PROMPT_TYPE_TEXT,"TEXT"],[Blockly.Msg.TEXT_PROMPT_TYPE_NUMBER,"NUMBER"]];this.setHelpUrl(Blockly.Msg.TEXT_PROMPT_HELPURL);this.setStyle("text_blocks");var b=this;a=new Blockly.FieldDropdown(a,function(a){b.updateType_(a)});this.appendValueInput("TEXT").appendField(a,"TYPE");this.setOutput(!0,"String");this.setTooltip(function(){return"TEXT"==b.getFieldValue("TYPE")?Blockly.Msg.TEXT_PROMPT_TOOLTIP_TEXT:Blockly.Msg.TEXT_PROMPT_TOOLTIP_NUMBER})},
updateType_:function(a){this.outputConnection.setCheck("NUMBER"==a?"Number":"String")},mutationToDom:function(){var a=Blockly.utils.xml.createElement("mutation");a.setAttribute("type",this.getFieldValue("TYPE"));return a},domToMutation:function(a){this.updateType_(a.getAttribute("type"))}};
Blockly.Blocks.text_prompt={init:function(){this.mixin(Blockly.Constants.Text.QUOTE_IMAGE_MIXIN);var a=[[Blockly.Msg.TEXT_PROMPT_TYPE_TEXT,"TEXT"],[Blockly.Msg.TEXT_PROMPT_TYPE_NUMBER,"NUMBER"]],b=this;this.setHelpUrl(Blockly.Msg.TEXT_PROMPT_HELPURL);this.setStyle("text_blocks");a=new Blockly.FieldDropdown(a,function(a){b.updateType_(a)});this.appendDummyInput().appendField(a,"TYPE").appendField(this.newQuote_(!0)).appendField(new Blockly.FieldTextInput(""),"TEXT").appendField(this.newQuote_(!1));
this.setOutput(!0,"String");this.setTooltip(function(){return"TEXT"==b.getFieldValue("TYPE")?Blockly.Msg.TEXT_PROMPT_TOOLTIP_TEXT:Blockly.Msg.TEXT_PROMPT_TOOLTIP_NUMBER})},updateType_:Blockly.Blocks.text_prompt_ext.updateType_,mutationToDom:Blockly.Blocks.text_prompt_ext.mutationToDom,domToMutation:Blockly.Blocks.text_prompt_ext.domToMutation};
Blockly.Blocks.text_count={init:function(){this.jsonInit({message0:Blockly.Msg.TEXT_COUNT_MESSAGE0,args0:[{type:"input_value",name:"SUB",check:"String"},{type:"input_value",name:"TEXT",check:"String"}],output:"Number",inputsInline:!0,style:"text_blocks",tooltip:Blockly.Msg.TEXT_COUNT_TOOLTIP,helpUrl:Blockly.Msg.TEXT_COUNT_HELPURL})}};
Blockly.Blocks.text_replace={init:function(){this.jsonInit({message0:Blockly.Msg.TEXT_REPLACE_MESSAGE0,args0:[{type:"input_value",name:"FROM",check:"String"},{type:"input_value",name:"TO",check:"String"},{type:"input_value",name:"TEXT",check:"String"}],output:"String",inputsInline:!0,style:"text_blocks",tooltip:Blockly.Msg.TEXT_REPLACE_TOOLTIP,helpUrl:Blockly.Msg.TEXT_REPLACE_HELPURL})}};
Blockly.Blocks.text_reverse={init:function(){this.jsonInit({message0:Blockly.Msg.TEXT_REVERSE_MESSAGE0,args0:[{type:"input_value",name:"TEXT",check:"String"}],output:"String",inputsInline:!0,style:"text_blocks",tooltip:Blockly.Msg.TEXT_REVERSE_TOOLTIP,helpUrl:Blockly.Msg.TEXT_REVERSE_HELPURL})}};
Blockly.Constants.Text.QUOTE_IMAGE_MIXIN={QUOTE_IMAGE_LEFT_DATAURI:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC",QUOTE_IMAGE_RIGHT_DATAURI:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==",
QUOTE_IMAGE_WIDTH:12,QUOTE_IMAGE_HEIGHT:12,quoteField_:function(a){for(var b=0,c;c=this.inputList[b];b++)for(var d=0,e;e=c.fieldRow[d];d++)if(a==e.name){c.insertFieldAt(d,this.newQuote_(!0));c.insertFieldAt(d+2,this.newQuote_(!1));return}console.warn('field named "'+a+'" not found in '+this.toDevString())},newQuote_:function(a){a=this.RTL?!a:a;return new Blockly.FieldImage(a?this.QUOTE_IMAGE_LEFT_DATAURI:this.QUOTE_IMAGE_RIGHT_DATAURI,this.QUOTE_IMAGE_WIDTH,this.QUOTE_IMAGE_HEIGHT,a?"\u201c":"\u201d")}};
Blockly.Constants.Text.TEXT_QUOTES_EXTENSION=function(){this.mixin(Blockly.Constants.Text.QUOTE_IMAGE_MIXIN);this.quoteField_("TEXT")};
Blockly.Constants.Text.TEXT_JOIN_MUTATOR_MIXIN={mutationToDom:function(){var a=Blockly.utils.xml.createElement("mutation");a.setAttribute("items",this.itemCount_);return a},domToMutation:function(a){this.itemCount_=parseInt(a.getAttribute("items"),10);this.updateShape_()},decompose:function(a){var b=a.newBlock("text_create_join_container");b.initSvg();for(var c=b.getInput("STACK").connection,d=0;d<this.itemCount_;d++){var e=a.newBlock("text_create_join_item");e.initSvg();c.connect(e.previousConnection);
c=e.nextConnection}return b},compose:function(a){var b=a.getInputTargetBlock("STACK");for(a=[];b;)a.push(b.valueConnection_),b=b.nextConnection&&b.nextConnection.targetBlock();for(b=0;b<this.itemCount_;b++){var c=this.getInput("ADD"+b).connection.targetConnection;c&&-1==a.indexOf(c)&&c.disconnect()}this.itemCount_=a.length;this.updateShape_();for(b=0;b<this.itemCount_;b++)Blockly.Mutator.reconnect(a[b],this,"ADD"+b)},saveConnections:function(a){a=a.getInputTargetBlock("STACK");for(var b=0;a;){var c=
this.getInput("ADD"+b);a.valueConnection_=c&&c.connection.targetConnection;b++;a=a.nextConnection&&a.nextConnection.targetBlock()}},updateShape_:function(){this.itemCount_&&this.getInput("EMPTY")?this.removeInput("EMPTY"):this.itemCount_||this.getInput("EMPTY")||this.appendDummyInput("EMPTY").appendField(this.newQuote_(!0)).appendField(this.newQuote_(!1));for(var a=0;a<this.itemCount_;a++)if(!this.getInput("ADD"+a)){var b=this.appendValueInput("ADD"+a).setAlign(Blockly.ALIGN_RIGHT);0==a&&b.appendField(Blockly.Msg.TEXT_JOIN_TITLE_CREATEWITH)}for(;this.getInput("ADD"+
a);)this.removeInput("ADD"+a),a++}};Blockly.Constants.Text.TEXT_JOIN_EXTENSION=function(){this.mixin(Blockly.Constants.Text.QUOTE_IMAGE_MIXIN);this.itemCount_=2;this.updateShape_();this.setMutator(new Blockly.Mutator(["text_create_join_item"]))};Blockly.Extensions.register("text_append_tooltip",Blockly.Extensions.buildTooltipWithFieldText("%{BKY_TEXT_APPEND_TOOLTIP}","VAR"));
Blockly.Constants.Text.TEXT_INDEXOF_TOOLTIP_EXTENSION=function(){var a=this;this.setTooltip(function(){return Blockly.Msg.TEXT_INDEXOF_TOOLTIP.replace("%1",a.workspace.options.oneBasedIndex?"0":"-1")})};
Blockly.Constants.Text.TEXT_CHARAT_MUTATOR_MIXIN={mutationToDom:function(){var a=Blockly.utils.xml.createElement("mutation");a.setAttribute("at",!!this.isAt_);return a},domToMutation:function(a){a="false"!=a.getAttribute("at");this.updateAt_(a)},updateAt_:function(a){this.removeInput("AT",!0);this.removeInput("ORDINAL",!0);a&&(this.appendValueInput("AT").setCheck("Number"),Blockly.Msg.ORDINAL_NUMBER_SUFFIX&&this.appendDummyInput("ORDINAL").appendField(Blockly.Msg.ORDINAL_NUMBER_SUFFIX));Blockly.Msg.TEXT_CHARAT_TAIL&&
(this.removeInput("TAIL",!0),this.appendDummyInput("TAIL").appendField(Blockly.Msg.TEXT_CHARAT_TAIL));this.isAt_=a}};
Blockly.Constants.Text.TEXT_CHARAT_EXTENSION=function(){this.getField("WHERE").setValidator(function(a){a="FROM_START"==a||"FROM_END"==a;a!=this.isAt_&&this.getSourceBlock().updateAt_(a)});this.updateAt_(!0);var a=this;this.setTooltip(function(){var b=a.getFieldValue("WHERE"),c=Blockly.Msg.TEXT_CHARAT_TOOLTIP;("FROM_START"==b||"FROM_END"==b)&&(b="FROM_START"==b?Blockly.Msg.LISTS_INDEX_FROM_START_TOOLTIP:Blockly.Msg.LISTS_INDEX_FROM_END_TOOLTIP)&&(c+=" "+b.replace("%1",a.workspace.options.oneBasedIndex?
"#1":"#0"));return c})};Blockly.Extensions.register("text_indexOf_tooltip",Blockly.Constants.Text.TEXT_INDEXOF_TOOLTIP_EXTENSION);Blockly.Extensions.register("text_quotes",Blockly.Constants.Text.TEXT_QUOTES_EXTENSION);Blockly.Extensions.registerMutator("text_join_mutator",Blockly.Constants.Text.TEXT_JOIN_MUTATOR_MIXIN,Blockly.Constants.Text.TEXT_JOIN_EXTENSION);Blockly.Extensions.registerMutator("text_charAt_mutator",Blockly.Constants.Text.TEXT_CHARAT_MUTATOR_MIXIN,Blockly.Constants.Text.TEXT_CHARAT_EXTENSION);Blockly.Blocks.variables={};Blockly.Constants.Variables={};Blockly.Constants.Variables.HUE=330;
Blockly.defineBlocksWithJsonArray([{type:"variables_get",message0:"%1",args0:[{type:"field_variable",name:"VAR",variable:"%{BKY_VARIABLES_DEFAULT_NAME}"}],output:null,style:"variable_blocks",helpUrl:"%{BKY_VARIABLES_GET_HELPURL}",tooltip:"%{BKY_VARIABLES_GET_TOOLTIP}",extensions:["contextMenu_variableSetterGetter"]},{type:"variables_set",message0:"%{BKY_VARIABLES_SET}",args0:[{type:"field_variable",name:"VAR",variable:"%{BKY_VARIABLES_DEFAULT_NAME}"},{type:"input_value",name:"VALUE"}],previousStatement:null,
nextStatement:null,style:"variable_blocks",tooltip:"%{BKY_VARIABLES_SET_TOOLTIP}",helpUrl:"%{BKY_VARIABLES_SET_HELPURL}",extensions:["contextMenu_variableSetterGetter"]}]);
Blockly.Constants.Variables.CUSTOM_CONTEXT_MENU_VARIABLE_GETTER_SETTER_MIXIN={customContextMenu:function(a){if(!this.isInFlyout){if("variables_get"==this.type)var b="variables_set",c=Blockly.Msg.VARIABLES_GET_CREATE_SET;else b="variables_get",c=Blockly.Msg.VARIABLES_SET_CREATE_GET;var d={enabled:0<this.workspace.remainingCapacity()},e=this.getField("VAR").getText();d.text=c.replace("%1",e);c=Blockly.utils.xml.createElement("field");c.setAttribute("name","VAR");c.appendChild(Blockly.utils.xml.createTextNode(e));
e=Blockly.utils.xml.createElement("block");e.setAttribute("type",b);e.appendChild(c);d.callback=Blockly.ContextMenu.callbackFactory(this,e);a.push(d)}else if("variables_get"==this.type||"variables_get_reporter"==this.type)b={text:Blockly.Msg.RENAME_VARIABLE,enabled:!0,callback:Blockly.Constants.Variables.RENAME_OPTION_CALLBACK_FACTORY(this)},e=this.getField("VAR").getText(),d={text:Blockly.Msg.DELETE_VARIABLE.replace("%1",e),enabled:!0,callback:Blockly.Constants.Variables.DELETE_OPTION_CALLBACK_FACTORY(this)},
a.unshift(b),a.unshift(d)}};Blockly.Constants.Variables.RENAME_OPTION_CALLBACK_FACTORY=function(a){return function(){var b=a.workspace,c=a.getField("VAR").getVariable();Blockly.Variables.renameVariable(b,c)}};Blockly.Constants.Variables.DELETE_OPTION_CALLBACK_FACTORY=function(a){return function(){var b=a.workspace,c=a.getField("VAR").getVariable();b.deleteVariableById(c.getId());b.refreshToolboxSelection()}};Blockly.Extensions.registerMixin("contextMenu_variableSetterGetter",Blockly.Constants.Variables.CUSTOM_CONTEXT_MENU_VARIABLE_GETTER_SETTER_MIXIN);Blockly.Constants.VariablesDynamic={};Blockly.Constants.VariablesDynamic.HUE=310;
Blockly.defineBlocksWithJsonArray([{type:"variables_get_dynamic",message0:"%1",args0:[{type:"field_variable",name:"VAR",variable:"%{BKY_VARIABLES_DEFAULT_NAME}"}],output:null,style:"variable_dynamic_blocks",helpUrl:"%{BKY_VARIABLES_GET_HELPURL}",tooltip:"%{BKY_VARIABLES_GET_TOOLTIP}",extensions:["contextMenu_variableDynamicSetterGetter"]},{type:"variables_set_dynamic",message0:"%{BKY_VARIABLES_SET}",args0:[{type:"field_variable",name:"VAR",variable:"%{BKY_VARIABLES_DEFAULT_NAME}"},{type:"input_value",
name:"VALUE"}],previousStatement:null,nextStatement:null,style:"variable_dynamic_blocks",tooltip:"%{BKY_VARIABLES_SET_TOOLTIP}",helpUrl:"%{BKY_VARIABLES_SET_HELPURL}",extensions:["contextMenu_variableDynamicSetterGetter"]}]);
Blockly.Constants.VariablesDynamic.CUSTOM_CONTEXT_MENU_VARIABLE_GETTER_SETTER_MIXIN={customContextMenu:function(a){if(!this.isInFlyout){var b=this.getFieldValue("VAR");var c=this.workspace.getVariableById(b).type;if("variables_get_dynamic"==this.type){b="variables_set_dynamic";var d=Blockly.Msg.VARIABLES_GET_CREATE_SET}else b="variables_get_dynamic",d=Blockly.Msg.VARIABLES_SET_CREATE_GET;var e={enabled:0<this.workspace.remainingCapacity()},f=this.getField("VAR").getText();e.text=d.replace("%1",f);
d=Blockly.utils.xml.createElement("field");d.setAttribute("name","VAR");d.setAttribute("variabletype",c);d.appendChild(Blockly.utils.xml.createTextNode(f));f=Blockly.utils.xml.createElement("block");f.setAttribute("type",b);f.appendChild(d);e.callback=Blockly.ContextMenu.callbackFactory(this,f);a.push(e)}else if("variables_get_dynamic"==this.type||"variables_get_reporter_dynamic"==this.type)b={text:Blockly.Msg.RENAME_VARIABLE,enabled:!0,callback:Blockly.Constants.Variables.RENAME_OPTION_CALLBACK_FACTORY(this)},
f=this.getField("VAR").getText(),e={text:Blockly.Msg.DELETE_VARIABLE.replace("%1",f),enabled:!0,callback:Blockly.Constants.Variables.DELETE_OPTION_CALLBACK_FACTORY(this)},a.unshift(b),a.unshift(e)},onchange:function(a){a=this.getFieldValue("VAR");a=Blockly.Variables.getVariable(this.workspace,a);"variables_get_dynamic"==this.type?this.outputConnection.setCheck(a.type):this.getInput("VALUE").connection.setCheck(a.type)}};
Blockly.Constants.VariablesDynamic.RENAME_OPTION_CALLBACK_FACTORY=function(a){return function(){var b=a.workspace,c=a.getField("VAR").getVariable();Blockly.Variables.renameVariable(b,c)}};Blockly.Constants.VariablesDynamic.DELETE_OPTION_CALLBACK_FACTORY=function(a){return function(){var b=a.workspace,c=a.getField("VAR").getVariable();b.deleteVariableById(c.getId());b.refreshToolboxSelection()}};Blockly.Extensions.registerMixin("contextMenu_variableDynamicSetterGetter",Blockly.Constants.VariablesDynamic.CUSTOM_CONTEXT_MENU_VARIABLE_GETTER_SETTER_MIXIN);