UNPKG

25.2 kBJavaScriptView Raw
1// koffee 1.14.0
2
3/*
4000 000 000 000 000 0000000 0000000 000 000
5000 0 000 000 0000 000 000 000 000 000 000 0 000
6000000000 000 000 0 000 000 000 000 000 000000000
7000 000 000 000 0000 000 000 000 000 000 000
800 00 000 000 000 0000000 0000000 00 00
9 */
10var $, _, elem, fadeOverlay, koSend, onError, onFile, onMessage, onTask, openFile, post, ref, showOverlay, slash, taskDiv, tasks, title, udp, w, win;
11
12ref = require('kxk'), $ = ref.$, _ = ref._, elem = ref.elem, post = ref.post, slash = ref.slash, title = ref.title, udp = ref.udp, win = ref.win;
13
14w = new win({
15 dir: __dirname,
16 pkg: require('../package.json'),
17 menu: '../coffee/menu.noon',
18 icon: '../img/menu@2x.png'
19});
20
21koSend = null;
22
23openFile = function(f) {
24 if (!koSend) {
25 koSend = new udp({
26 port: 9779
27 });
28 }
29 return koSend.send(slash.resolve(f));
30};
31
32tasks = {};
33
34showOverlay = function() {
35 var img, overlay, ref1;
36 img = slash.fileUrl(slash.join(__dirname, '..', 'img', 'about.png'));
37 if ((ref1 = $('#overlay')) != null) {
38 ref1.remove();
39 }
40 overlay = elem({
41 id: 'overlay'
42 });
43 overlay.appendChild(elem('img', {
44 "class": 'info',
45 src: img
46 }));
47 overlay.addEventListener('click', function(event) {
48 return event.target.remove();
49 });
50 return $('main').appendChild(overlay);
51};
52
53fadeOverlay = function() {
54 showOverlay();
55 return $('#overlay').classList.add('fade-in');
56};
57
58post.on('konradExit', function(s) {});
59
60post.on('konradError', function(s, html) {
61 return onError(s, html);
62});
63
64post.on('konradOutput', function(s, html) {
65 if (/ 😡 /.test(s)) {
66 onError(s, html);
67 }
68 if (/ 🔺 /.test(s)) {
69 return onFile(s, html);
70 } else if (/ 👍 /.test(s)) {
71 return onTask(s, html);
72 } else if (/ 🔧 /.test(s)) {
73 return onMessage(s, html);
74 }
75});
76
77post.on('konradVersion', function(s) {
78 var split;
79 split = s.trim().split(/\s+/);
80 title = ['path'];
81 if (process.argv[0].endsWith('Electron Helper') || process.argv[0].endsWith('electron.exe')) {
82 title = ['version', 'path'];
83 }
84 return window.titlebar.setTitle({
85 title: title,
86 pkg: {
87 version: split[0],
88 path: slash.tilde(split[2])
89 }
90 });
91});
92
93post.on('clearLog', function() {
94 $('main').innerHTML = '';
95 tasks = {};
96 return showOverlay();
97});
98
99taskDiv = function(opt) {
100 var div, fil, main, ref1, ref2, ref3, tim;
101 main = $('main');
102 if (_.isEmpty(tasks)) {
103 main.innerHTML = '';
104 }
105 if ((ref1 = tasks[opt.key]) != null) {
106 ref1.remove();
107 }
108 div = document.createElement('div');
109 tim = document.createElement('span');
110 fil = document.createElement('span');
111 div.classList.add('task');
112 tim.classList.add('time');
113 tim.innerHTML = opt.time;
114 fil.classList.add((opt.file != null) && 'file' || 'message');
115 fil.innerHTML = (ref2 = opt.fileHtml) != null ? ref2 : " " + opt.icon + " " + ((ref3 = opt.file) != null ? ref3 : opt.message);
116 fil.onclick = function() {
117 if (opt.file != null) {
118 return openFile(opt.file);
119 }
120 };
121 div.appendChild(tim);
122 div.appendChild(fil);
123 tasks[opt.key] = div;
124 main.appendChild(div);
125 return div;
126};
127
128onTask = function(s) {
129 var div, ref1, ref2, ref3, source, sourceTarget, target, time;
130 post.toMain('highlight');
131 ref1 = s.split(' 👍 '), time = ref1[0], sourceTarget = ref1[1];
132 ref2 = sourceTarget.split(' ► '), source = ref2[0], target = ref2[1];
133 source = slash.tilde(source.trim());
134 target = slash.tilde(target.trim());
135 div = taskDiv({
136 time: time,
137 file: source,
138 key: source,
139 icon: '👍'
140 });
141 div.scrollIntoViewIfNeeded();
142 if (slash.dir(target).startsWith(slash.tilde(slash.dir(__filename)))) {
143 if (slash.file(target) === 'window.js' || ((ref3 = slash.ext(target)) === 'css' || ref3 === 'html')) {
144 post.emit('menuAction', 'Reload');
145 } else if (slash.file(target) === 'main.js') {
146 post.toMain('Restart');
147 } else {
148 post.toMain('Restart konrad');
149 }
150 }
151 return fadeOverlay();
152};
153
154onMessage = function(s) {
155 var div, msg, ref1, time;
156 ref1 = s.split(' 🔧 '), time = ref1[0], msg = ref1[1];
157 return div = taskDiv({
158 time: time,
159 message: msg,
160 key: 'msg',
161 icon: '🔧'
162 });
163};
164
165onError = function(s, html) {
166 var div, fileHtml, htmls, i, j, key, lines, msg, pre, ref1, ref2, task, time;
167 post.toMain('showWindow');
168 post.toMain('highlight');
169 for (key in tasks) {
170 task = tasks[key];
171 if (task.icon === '😡') {
172 task.div.remove();
173 delete tasks[key];
174 }
175 }
176 lines = s.split('\n');
177 if (html) {
178 htmls = html.split('\n');
179 fileHtml = htmls.shift().split('</span>').slice(5).join('</span>');
180 }
181 ref1 = lines.shift().split(' 😡 '), time = ref1[0], msg = ref1[1];
182 if ((msg != null ? msg.trim : void 0) != null) {
183 msg = msg.trim();
184 if (msg.split(':').length >= 3) {
185 msg = '';
186 }
187 }
188 div = taskDiv({
189 time: time,
190 icon: '😡',
191 message: msg
192 });
193 for (i = j = 0, ref2 = lines.length; 0 <= ref2 ? j < ref2 : j > ref2; i = 0 <= ref2 ? ++j : --j) {
194 pre = document.createElement('pre');
195 pre.classList.add('error');
196 if (htmls[i]) {
197 pre.innerHTML = htmls[i];
198 } else {
199 pre.textContent = lines[i];
200 }
201 div.appendChild(pre);
202 }
203 return div.scrollIntoViewIfNeeded();
204};
205
206onFile = function(s, html) {
207 var div, file, fileHtml, htmls, ref1, time;
208 post.toMain('showWindow');
209 post.toMain('highlight');
210 if (html) {
211 htmls = html.split('\n');
212 fileHtml = htmls.shift().split('</span>').slice(5).join('</span>');
213 }
214 ref1 = s.split(' 🔺 '), time = ref1[0], file = ref1[1];
215 file = file.trim();
216 div = taskDiv({
217 time: time,
218 file: file,
219 key: file.split(':')[0],
220 icon: '🔺',
221 fileHtml: fileHtml
222 });
223 return div.scrollIntoViewIfNeeded();
224};
225
226post.on('menuAction', function(action) {
227 switch (action) {
228 case 'Clear':
229 return post.emit('clearLog');
230 case 'Set Dir...':
231 return post.toMain('setRootDir');
232 }
233});
234
235showOverlay();
236
237//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LmpzIiwic291cmNlUm9vdCI6Ii4uL2NvZmZlZSIsInNvdXJjZXMiOlsid2luZG93LmNvZmZlZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7O0FBQUEsSUFBQTs7QUFRQSxNQUErQyxPQUFBLENBQVEsS0FBUixDQUEvQyxFQUFFLFNBQUYsRUFBSyxTQUFMLEVBQVEsZUFBUixFQUFjLGVBQWQsRUFBb0IsaUJBQXBCLEVBQTJCLGlCQUEzQixFQUFrQyxhQUFsQyxFQUF1Qzs7QUFFdkMsQ0FBQSxHQUFJLElBQUksR0FBSixDQUNBO0lBQUEsR0FBQSxFQUFRLFNBQVI7SUFDQSxHQUFBLEVBQVEsT0FBQSxDQUFRLGlCQUFSLENBRFI7SUFFQSxJQUFBLEVBQVEscUJBRlI7SUFHQSxJQUFBLEVBQVEsb0JBSFI7Q0FEQTs7QUFZSixNQUFBLEdBQVM7O0FBQ1QsUUFBQSxHQUFXLFNBQUMsQ0FBRDtJQUNQLElBQUcsQ0FBSSxNQUFQO1FBQW1CLE1BQUEsR0FBUyxJQUFJLEdBQUosQ0FBUTtZQUFBLElBQUEsRUFBSyxJQUFMO1NBQVIsRUFBNUI7O1dBQ0EsTUFBTSxDQUFDLElBQVAsQ0FBWSxLQUFLLENBQUMsT0FBTixDQUFjLENBQWQsQ0FBWjtBQUZPOztBQUlYLEtBQUEsR0FBUTs7QUFRUixXQUFBLEdBQWMsU0FBQTtBQUVWLFFBQUE7SUFBQSxHQUFBLEdBQU0sS0FBSyxDQUFDLE9BQU4sQ0FBYyxLQUFLLENBQUMsSUFBTixDQUFXLFNBQVgsRUFBc0IsSUFBdEIsRUFBMkIsS0FBM0IsRUFBaUMsV0FBakMsQ0FBZDs7WUFDTyxDQUFFLE1BQWYsQ0FBQTs7SUFDQSxPQUFBLEdBQVUsSUFBQSxDQUFLO1FBQUEsRUFBQSxFQUFHLFNBQUg7S0FBTDtJQUNWLE9BQU8sQ0FBQyxXQUFSLENBQW9CLElBQUEsQ0FBSyxLQUFMLEVBQVc7UUFBQSxDQUFBLEtBQUEsQ0FBQSxFQUFNLE1BQU47UUFBYSxHQUFBLEVBQUksR0FBakI7S0FBWCxDQUFwQjtJQUNB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LElBQUg7UUFDSSxLQUFBLEdBQVEsSUFBSSxDQUFDLEtBQUwsQ0FBVyxJQUFYO1FBQ1IsUUFBQSxHQUFXLEtBQUssQ0FBQyxLQUFOLENBQUEsQ0FBYSxDQUFDLEtBQWQsQ0FBb0IsU0FBcEIsQ0FBK0IsU0FBSSxDQUFDLElBQXBDLENBQXlDLFNBQXpDLEVBRmY7O0lBSUEsT0FBZSxDQUFDLENBQUMsS0FBRixDQUFRLE1BQVIsQ0FBZixFQUFDLGNBQUQsRUFBTztJQUNQLElBQUEsR0FBTyxJQUFJLENBQUMsSUFBTCxDQUFBO0lBRVAsR0FBQSxHQUFNLE9BQUEsQ0FBUTtRQUFBLElBQUEsRUFBSyxJQUFMO1FBQVcsSUFBQSxFQUFLLElBQWhCO1FBQXNCLEdBQUEsRUFBSSxJQUFJLENBQUMsS0FBTCxDQUFXLEdBQVgsQ0FBZ0IsQ0FBQSxDQUFBLENBQTFDO1FBQThDLElBQUEsRUFBSyxJQUFuRDtRQUF3RCxRQUFBLEVBQVMsUUFBakU7S0FBUjtXQUVOLEdBQUcsQ0FBQyxzQkFBSixDQUFBO0FBZEs7O0FBc0JULElBQUksQ0FBQyxFQUFMLENBQVEsWUFBUixFQUFxQixTQUFDLE1BQUQ7QUFFakIsWUFBTyxNQUFQO0FBQUEsYUFDUyxPQURUO21CQUMyQixJQUFJLENBQUMsSUFBTCxDQUFVLFVBQVY7QUFEM0IsYUFFUyxZQUZUO21CQUUyQixJQUFJLENBQUMsTUFBTCxDQUFZLFlBQVo7QUFGM0I7QUFGaUIsQ0FBckI7O0FBTUEsV0FBQSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiIyMjXG4wMDAgICAwMDAgIDAwMCAgMDAwICAgMDAwICAwMDAwMDAwICAgICAwMDAwMDAwICAgMDAwICAgMDAwICBcbjAwMCAwIDAwMCAgMDAwICAwMDAwICAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDAgMCAwMDAgIFxuMDAwMDAwMDAwICAwMDAgIDAwMCAwIDAwMCAgMDAwICAgMDAwICAwMDAgICAwMDAgIDAwMDAwMDAwMCAgXG4wMDAgICAwMDAgIDAwMCAgMDAwICAwMDAwICAwMDAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwICBcbjAwICAgICAwMCAgMDAwICAwMDAgICAwMDAgIDAwMDAwMDAgICAgIDAwMDAwMDAgICAwMCAgICAgMDAgIFxuIyMjXG5cbnsgJCwgXywgZWxlbSwgcG9zdCwgc2xhc2gsIHRpdGxlLCB1ZHAsIHdpbiB9ID0gcmVxdWlyZSAna3hrJ1xuXG53ID0gbmV3IHdpblxuICAgIGRpcjogICAgX19kaXJuYW1lXG4gICAgcGtnOiAgICByZXF1aXJlICcuLi9wYWNrYWdlLmpzb24nXG4gICAgbWVudTogICAnLi4vY29mZmVlL21lbnUubm9vbidcbiAgICBpY29uOiAgICcuLi9pbWcvbWVudUAyeC5wbmcnXG4gICAgXG4jICAwMDAwMDAwICAgMDAwMDAwMDAgICAwMDAwMDAwMCAgMDAwICAgMDAwICBcbiMgMDAwICAgMDAwICAwMDAgICAwMDAgIDAwMCAgICAgICAwMDAwICAwMDAgIFxuIyAwMDAgICAwMDAgIDAwMDAwMDAwICAgMDAwMDAwMCAgIDAwMCAwIDAwMCAgXG4jIDAwMCAgIDAwMCAgMDAwICAgICAgICAwMDAgICAgICAgMDAwICAwMDAwICBcbiMgIDAwMDAwMDAgICAwMDAgICAgICAgIDAwMDAwMDAwICAwMDAgICAwMDAgIFxuXG5rb1NlbmQgPSBudWxsXG5vcGVuRmlsZSA9IChmKSAtPlxuICAgIGlmIG5vdCBrb1NlbmQgdGhlbiBrb1NlbmQgPSBuZXcgdWRwIHBvcnQ6OTc3OVxuICAgIGtvU2VuZC5zZW5kIHNsYXNoLnJlc29sdmUgZlxuXG50YXNrcyA9IHt9XG5cbiMgIDAwMDAwMDAgICAwMDAgICAwMDAgIDAwMDAwMDAwICAwMDAwMDAwMCAgIDAwMCAgICAgICAwMDAwMDAwICAgMDAwICAgMDAwICBcbiMgMDAwICAgMDAwICAwMDAgICAwMDAgIDAwMCAgICAgICAwMDAgICAwMDAgIDAwMCAgICAgIDAwMCAgIDAwMCAgIDAwMCAwMDAgICBcbiMgMDAwICAgMDAwICAgMDAwIDAwMCAgIDAwMDAwMDAgICAwMDAwMDAwICAgIDAwMCAgICAgIDAwMDAwMDAwMCAgICAwMDAwMCAgICBcbiMgMDAwICAgMDAwICAgICAwMDAgICAgIDAwMCAgICAgICAwMDAgICAwMDAgIDAwMCAgICAgIDAwMCAgIDAwMCAgICAgMDAwICAgICBcbiMgIDAwMDAwMDAgICAgICAgMCAgICAgIDAwMDAwMDAwICAwMDAgICAwMDAgIDAwMDAwMDAgIDAwMCAgIDAwMCAgICAgMDAwICAgICBcblxuc2hvd092ZXJsYXkgPSAtPlxuXG4gICAgaW1nID0gc2xhc2guZmlsZVVybCBzbGFzaC5qb2luIF9fZGlybmFtZSwgJy4uJyAnaW1nJyAnYWJvdXQucG5nJ1xuICAgICQoJyNvdmVybGF5Jyk/LnJlbW92ZSgpIFxuICAgIG92ZXJsYXkgPSBlbGVtIGlkOidvdmVybGF5J1xuICAgIG92ZXJsYXkuYXBwZW5kQ2hpbGQgZWxlbSAnaW1nJyBjbGFzczonaW5mbycgc3JjOmltZ1xuICAgIG92ZXJsYXkuYWRkRXZlbnRMaXN0ZW5lciAnY2xpY2snIChldmVudCkgLT4gZXZlbnQudGFyZ2V0LnJlbW92ZSgpXG4gICAgJCgnbWFpbicpLmFwcGVuZENoaWxkIG92ZXJsYXlcblxuZmFkZU92ZXJsYXkgPSAtPlxuICAgIFxuICAgIHNob3dPdmVybGF5KClcbiAgICAkKCcjb3ZlcmxheScpLmNsYXNzTGlzdC5hZGQgJ2ZhZGUtaW4nXG4gICAgXG4jIDAwMDAwMDAwICAgIDAwMDAwMDAgICAgMDAwMDAwMCAgMDAwMDAwMDAwICBcbiMgMDAwICAgMDAwICAwMDAgICAwMDAgIDAwMCAgICAgICAgICAwMDAgICAgIFxuIyAwMDAwMDAwMCAgIDAwMCAgIDAwMCAgMDAwMDAwMCAgICAgIDAwMCAgICAgXG4jIDAwMCAgICAgICAgMDAwICAgMDAwICAgICAgIDAwMCAgICAgMDAwICAgICBcbiMgMDAwICAgICAgICAgMDAwMDAwMCAgIDAwMDAwMDAgICAgICAwMDAgICAgIFxuXG5wb3N0Lm9uICdrb25yYWRFeGl0JyAocykgLT5cbnBvc3Qub24gJ2tvbnJhZEVycm9yJyAocywgaHRtbCkgLT4gb25FcnJvciBzLCBodG1sXG5wb3N0Lm9uICdrb25yYWRPdXRwdXQnIChzLCBodG1sKSAtPlxuICAgIFxuICAgIGlmICAgICAgLyDwn5ihIC8udGVzdCBzIHRoZW4gb25FcnJvciAgIHMsIGh0bWxcbiAgICBpZiAgICAgIC8g8J+UuiAvLnRlc3QgcyB0aGVuIG9uRmlsZSAgICBzLCBodG1sXG4gICAgZWxzZSBpZiAvIPCfkY0gLy50ZXN0IHMgdGhlbiBvblRhc2sgICAgcywgaHRtbFxuICAgIGVsc2UgaWYgLyDwn5SnIC8udGVzdCBzIHRoZW4gb25NZXNzYWdlIHMsIGh0bWxcbiAgICAjIGVsc2UgbG9nICdrb25yYWQnIHNcblxucG9zdC5vbiAna29ucmFkVmVyc2lvbicgKHMpIC0+XG5cbiAgICAjIGtsb2cgcHJvY2Vzcy5hcmd2WzBdXG4gICAgc3BsaXQgPSBzLnRyaW0oKS5zcGxpdCAvXFxzKy9cbiAgICB0aXRsZSA9IFsncGF0aCddXG4gICAgaWYgcHJvY2Vzcy5hcmd2WzBdLmVuZHNXaXRoKCdFbGVjdHJvbiBIZWxwZXInKSBvciBwcm9jZXNzLmFyZ3ZbMF0uZW5kc1dpdGgoJ2VsZWN0cm9uLmV4ZScpXG4gICAgICAgIHRpdGxlID0gWyd2ZXJzaW9uJyAncGF0aCddXG4gICAgd2luZG93LnRpdGxlYmFyLnNldFRpdGxlICBcbiAgICAgICAgdGl0bGU6dGl0bGVcbiAgICAgICAgcGtnOlxuICAgICAgICAgICAgdmVyc2lvbjogc3BsaXRbMF1cbiAgICAgICAgICAgIHBhdGg6IHNsYXNoLnRpbGRlIHNwbGl0WzJdXG4gICAgXG5wb3N0Lm9uICdjbGVhckxvZycgLT4gXG4gICAgXG4gICAgJCgnbWFpbicpLmlubmVySFRNTCA9ICcnIFxuICAgIHRhc2tzID0ge30gXG4gICAgc2hvd092ZXJsYXkoKVxuICAgIFxuIyAwMDAwMDAwMDAgICAwMDAwMDAwICAgIDAwMDAwMDAgIDAwMCAgIDAwMCAgMDAwMDAwMCAgICAwMDAgIDAwMCAgIDAwMCAgXG4jICAgIDAwMCAgICAgMDAwICAgMDAwICAwMDAgICAgICAgMDAwICAwMDAgICAwMDAgICAwMDAgIDAwMCAgMDAwICAgMDAwICBcbiMgICAgMDAwICAgICAwMDAwMDAwMDAgIDAwMDAwMDAgICAwMDAwMDAwICAgIDAwMCAgIDAwMCAgMDAwICAgMDAwIDAwMCAgIFxuIyAgICAwMDAgICAgIDAwMCAgIDAwMCAgICAgICAwMDAgIDAwMCAgMDAwICAgMDAwICAgMDAwICAwMDAgICAgIDAwMCAgICAgXG4jICAgIDAwMCAgICAgMDAwICAgMDAwICAwMDAwMDAwICAgMDAwICAgMDAwICAwMDAwMDAwICAgIDAwMCAgICAgIDAgICAgICBcblxudGFza0RpdiA9IChvcHQpIC0+XG5cbiAgICBtYWluID0kICdtYWluJ1xuICAgIGlmIF8uaXNFbXB0eSB0YXNrc1xuICAgICAgICBtYWluLmlubmVySFRNTCA9ICcnXG5cbiAgICB0YXNrc1tvcHQua2V5XT8ucmVtb3ZlKClcblxuICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgJ2RpdidcbiAgICB0aW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50ICdzcGFuJ1xuICAgIGZpbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgJ3NwYW4nXG5cbiAgICBkaXYuY2xhc3NMaXN0LmFkZCAndGFzaydcblxuICAgIHRpbS5jbGFzc0xpc3QuYWRkICd0aW1lJ1xuICAgIHRpbS5pbm5lckhUTUwgPSBvcHQudGltZVxuXG4gICAgZmlsLmNsYXNzTGlzdC5hZGQgb3B0LmZpbGU/IGFuZCAnZmlsZScgb3IgJ21lc3NhZ2UnXG4gICAgZmlsLmlubmVySFRNTCA9IG9wdC5maWxlSHRtbCA/IFwiICN7b3B0Lmljb259ICN7b3B0LmZpbGUgPyBvcHQubWVzc2FnZX1cIlxuICAgIGZpbC5vbmNsaWNrID0gLT4gb3BlbkZpbGUgb3B0LmZpbGUgaWYgb3B0LmZpbGU/XG5cbiAgICBkaXYuYXBwZW5kQ2hpbGQgdGltXG4gICAgZGl2LmFwcGVuZENoaWxkIGZpbFxuXG4gICAgdGFza3Nbb3B0LmtleV0gPSBkaXZcbiAgICBtYWluLmFwcGVuZENoaWxkIGRpdlxuXG4gICAgZGl2XG4gICAgXG4jIDAwMDAwMDAwMCAgIDAwMDAwMDAgICAgMDAwMDAwMCAgMDAwICAgMDAwXG4jICAgIDAwMCAgICAgMDAwICAgMDAwICAwMDAgICAgICAgMDAwICAwMDBcbiMgICAgMDAwICAgICAwMDAwMDAwMDAgIDAwMDAwMDAgICAwMDAwMDAwXG4jICAgIDAwMCAgICAgMDAwICAgMDAwICAgICAgIDAwMCAgMDAwICAwMDBcbiMgICAgMDAwICAgICAwMDAgICAwMDAgIDAwMDAwMDAgICAwMDAgICAwMDBcblxub25UYXNrID0gKHMpIC0+XG4gICAgXG4gICAgcG9zdC50b01haW4gJ2hpZ2hsaWdodCdcblxuICAgIFt0aW1lLCBzb3VyY2VUYXJnZXRdID0gcy5zcGxpdCAnIPCfkY0gJ1xuICAgIFtzb3VyY2UsIHRhcmdldF0gPSBzb3VyY2VUYXJnZXQuc3BsaXQgJyDilrogJ1xuICAgIFxuICAgIHNvdXJjZSA9IHNsYXNoLnRpbGRlIHNvdXJjZS50cmltKClcbiAgICB0YXJnZXQgPSBzbGFzaC50aWxkZSB0YXJnZXQudHJpbSgpXG4gICAgZGl2ID0gdGFza0RpdiB0aW1lOiB0aW1lLCBmaWxlOiBzb3VyY2UsIGtleTogc291cmNlLCBpY29uOiAn8J+RjSdcbiAgICBkaXYuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCgpXG4gICAgXG4gICAgaWYgc2xhc2guZGlyKHRhcmdldCkuc3RhcnRzV2l0aCBzbGFzaC50aWxkZSBzbGFzaC5kaXIgX19maWxlbmFtZVxuICAgICAgICBpZiBzbGFzaC5maWxlKHRhcmdldCkgPT0gJ3dpbmRvdy5qcycgb3Igc2xhc2guZXh0KHRhcmdldCkgaW4gWydjc3MnLCAnaHRtbCddXG4gICAgICAgICAgICBwb3N0LmVtaXQgJ21lbnVBY3Rpb24nICdSZWxvYWQnXG4gICAgICAgIGVsc2UgaWYgc2xhc2guZmlsZSh0YXJnZXQpID09ICdtYWluLmpzJ1xuICAgICAgICAgICAgcG9zdC50b01haW4gJ1Jlc3RhcnQnXG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgICMga2xvZyBcInNob3VsZCByZXN0YXJ0IGtvbnJhZCAnI3tzbGFzaC5maWxlKHRhcmdldCl9J1wiLCB0YXJnZXQsIHNsYXNoLnBhdGggX19maWxlbmFtZVxuICAgICAgICAgICAgcG9zdC50b01haW4gJ1Jlc3RhcnQga29ucmFkJ1xuICAgIFxuICAgIGZhZGVPdmVybGF5KClcblxuIyAwMCAgICAgMDAgIDAwMDAwMDAwICAgMDAwMDAwMCAgIDAwMDAwMDAgICAwMDAwMDAwICAgIDAwMDAwMDAgICAwMDAwMDAwMFxuIyAwMDAgICAwMDAgIDAwMCAgICAgICAwMDAgICAgICAgMDAwICAgICAgIDAwMCAgIDAwMCAgMDAwICAgICAgICAwMDBcbiMgMDAwMDAwMDAwICAwMDAwMDAwICAgMDAwMDAwMCAgIDAwMDAwMDAgICAwMDAwMDAwMDAgIDAwMCAgMDAwMCAgMDAwMDAwMFxuIyAwMDAgMCAwMDAgIDAwMCAgICAgICAgICAgIDAwMCAgICAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDBcbiMgMDAwICAgMDAwICAwMDAwMDAwMCAgMDAwMDAwMCAgIDAwMDAwMDAgICAwMDAgICAwMDAgICAwMDAwMDAwICAgMDAwMDAwMDBcblxub25NZXNzYWdlID0gKHMpIC0+XG5cbiAgICBbdGltZSwgbXNnXSA9IHMuc3BsaXQgJyDwn5SnICdcblxuICAgIGRpdiA9IHRhc2tEaXYgdGltZTp0aW1lLCBtZXNzYWdlOm1zZywga2V5Oidtc2cnIGljb246J/CflKcnXG4gICAgXG4jIDAwMDAwMDAwICAwMDAwMDAwMCAgIDAwMDAwMDAwICAgIDAwMDAwMDAgICAwMDAwMDAwMFxuIyAwMDAgICAgICAgMDAwICAgMDAwICAwMDAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwXG4jIDAwMDAwMDAgICAwMDAwMDAwICAgIDAwMDAwMDAgICAgMDAwICAgMDAwICAwMDAwMDAwXG4jIDAwMCAgICAgICAwMDAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDAgICAwMDBcbiMgMDAwMDAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwICAgMDAwMDAwMCAgIDAwMCAgIDAwMFxuXG5vbkVycm9yID0gKHMsIGh0bWwpIC0+XG5cbiAgICBwb3N0LnRvTWFpbiAnc2hvd1dpbmRvdydcbiAgICBwb3N0LnRvTWFpbiAnaGlnaGxpZ2h0J1xuICAgIFxuICAgIGZvciBrZXksdGFzayBvZiB0YXNrc1xuICAgICAgICBpZiB0YXNrLmljb24gPT0gJ/CfmKEnIFxuICAgICAgICAgICAgdGFzay5kaXYucmVtb3ZlKClcbiAgICAgICAgICAgIGRlbGV0ZSB0YXNrc1trZXldXG5cbiAgICBsaW5lcyA9IHMuc3BsaXQgJ1xcbidcbiAgICBpZiBodG1sXG4gICAgICAgIGh0bWxzID0gaHRtbC5zcGxpdCAnXFxuJ1xuICAgICAgICBmaWxlSHRtbCA9IGh0bWxzLnNoaWZ0KCkuc3BsaXQoJzwvc3Bhbj4nKVs1Li5dLmpvaW4gJzwvc3Bhbj4nXG4gICAgXG4gICAgW3RpbWUsIG1zZ10gPSBsaW5lcy5zaGlmdCgpLnNwbGl0ICcg8J+YoSAnXG4gICAgaWYgbXNnPy50cmltP1xuICAgICAgICBtc2cgPSBtc2cudHJpbSgpXG4gICAgICAgIGlmIG1zZy5zcGxpdCgnOicpLmxlbmd0aCA+PSAzIHRoZW4gbXNnID0gJydcblxuICAgIGRpdiA9IHRhc2tEaXYgdGltZTp0aW1lLCBpY29uOifwn5ihJyBtZXNzYWdlOm1zZ1xuXG4gICAgZm9yIGkgaW4gWzAuLi5saW5lcy5sZW5ndGhdXG4gICAgICAgIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgJ3ByZSdcbiAgICAgICAgcHJlLmNsYXNzTGlzdC5hZGQgJ2Vycm9yJ1xuICAgICAgICBpZiBodG1sc1tpXVxuICAgICAgICAgICAgcHJlLmlubmVySFRNTCA9IGh0bWxzW2ldXG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHByZS50ZXh0Q29udGVudCA9IGxpbmVzW2ldXG4gICAgICAgIGRpdi5hcHBlbmRDaGlsZCBwcmVcblxuICAgIGRpdi5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKClcblxuIyAwMDAwMDAwMCAgMDAwICAwMDAgICAgICAwMDAwMDAwMCAgXG4jIDAwMCAgICAgICAwMDAgIDAwMCAgICAgIDAwMCAgICAgICBcbiMgMDAwMDAwICAgIDAwMCAgMDAwICAgICAgMDAwMDAwMCAgIFxuIyAwMDAgICAgICAgMDAwICAwMDAgICAgICAwMDAgICAgICAgXG4jIDAwMCAgICAgICAwMDAgIDAwMDAwMDAgIDAwMDAwMDAwICBcblxub25GaWxlID0gKHMsIGh0bWwpIC0+XG5cbiAgICBwb3N0LnRvTWFpbiAnc2hvd1dpbmRvdydcbiAgICBwb3N0LnRvTWFpbiAnaGlnaGxpZ2h0J1xuICAgIFxuICAgIGlmIGh0bWxcbiAgICAgICAgaHRtbHMgPSBodG1sLnNwbGl0ICdcXG4nXG4gICAgICAgIGZpbGVIdG1sID0gaHRtbHMuc2hpZnQoKS5zcGxpdCgnPC9zcGFuPicpWzUuLl0uam9pbiAnPC9zcGFuPidcbiAgICBcbiAgICBbdGltZSwgZmlsZV0gPSBzLnNwbGl0ICcg8J+UuiAnXG4gICAgZmlsZSA9IGZpbGUudHJpbSgpXG5cbiAgICBkaXYgPSB0YXNrRGl2IHRpbWU6dGltZSwgZmlsZTpmaWxlLCBrZXk6ZmlsZS5zcGxpdCgnOicpWzBdLCBpY29uOifwn5S6JyBmaWxlSHRtbDpmaWxlSHRtbFxuXG4gICAgZGl2LnNjcm9sbEludG9WaWV3SWZOZWVkZWQoKVxuICAgIFxuIyAwMCAgICAgMDAgIDAwMDAwMDAwICAwMDAgICAwMDAgIDAwMCAgIDAwMCAgIDAwMDAwMDAgICAgMDAwMDAwMCAgMDAwMDAwMDAwICAwMDAgICAwMDAwMDAwICAgMDAwICAgMDAwICBcbiMgMDAwICAgMDAwICAwMDAgICAgICAgMDAwMCAgMDAwICAwMDAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAgICAgICAgIDAwMCAgICAgMDAwICAwMDAgICAwMDAgIDAwMDAgIDAwMCAgXG4jIDAwMDAwMDAwMCAgMDAwMDAwMCAgIDAwMCAwIDAwMCAgMDAwICAgMDAwICAwMDAwMDAwMDAgIDAwMCAgICAgICAgICAwMDAgICAgIDAwMCAgMDAwICAgMDAwICAwMDAgMCAwMDAgIFxuIyAwMDAgMCAwMDAgIDAwMCAgICAgICAwMDAgIDAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDAgICAgICAgICAgMDAwICAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAwMDAwICBcbiMgMDAwICAgMDAwICAwMDAwMDAwMCAgMDAwICAgMDAwICAgMDAwMDAwMCAgIDAwMCAgIDAwMCAgIDAwMDAwMDAgICAgIDAwMCAgICAgMDAwICAgMDAwMDAwMCAgIDAwMCAgIDAwMCAgXG5cbnBvc3Qub24gJ21lbnVBY3Rpb24nIChhY3Rpb24pIC0+XG4gICAgXG4gICAgc3dpdGNoIGFjdGlvblxuICAgICAgICB3aGVuICdDbGVhcicgICAgICB0aGVuIHBvc3QuZW1pdCAnY2xlYXJMb2cnXG4gICAgICAgIHdoZW4gJ1NldCBEaXIuLi4nIHRoZW4gcG9zdC50b01haW4gJ3NldFJvb3REaXInXG4gICAgICAgIFxuc2hvd092ZXJsYXkoKVxuIl19
238//# sourceURL=../coffee/window.coffee
\No newline at end of file