1 // Portions copyright 2012 Google, Inc. 2 // Portions copyright 2011 Mozilla Foundation. All rights reserved. 3 4 // This program is free software; you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation; either version 2 of the License, or 7 // (at your option) any later version. 8 // 9 // This program is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with this program; if not, write to the Free Software 16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 18 // The PDF-JS code in this file has been written by Mozilla. 19 // It is available in its latest version from: 20 // 21 // https://github.com/mozilla/pdf.js 22 23 24 //////// Benchmark set-up. (c) by Google. //////// 25 26 var pdf_file = "test.pdf"; 27 var canvas_logs = []; 28 29 var PdfJS = new BenchmarkSuite("PdfJS", 9000000, [ 30 new Benchmark("PdfJS", runPdfJS, setupPdfJS, tearDownPdfJS, 4) 31 ]); 32 33 function setupPdfJS() { 34 // Check for Typed Arrays support, throw error if not. 35 if (!(typeof Uint8Array != "undefined" && 36 typeof Float64Array != "undefined" && 37 typeof (new Uint8Array(0)).subarray != "undefined")) { 38 throw "TypedArrayUnsupported"; 39 } 40 41 PdfJS_window.__resources__[pdf_file] = buffer(PdfJS_window.atob(getPDF())); 42 } 43 44 function runPdfJS() { 45 PDFJS.getDocument(pdf_file).then(function(pdf) { 46 var canvas = PdfJS_window.document.getElementById('canvas'); 47 var context = canvas.getContext('2d'); 48 var renderContext = {canvasContext: context}; 49 canvas_logs.push(context.__log__); 50 51 // Cycle through all pages. 52 function renderPages(i, j) { 53 if (i > j) return; 54 context.clearRect(0, 0, canvas.width, canvas.height); 55 pdf.getPage(i).then(function(page) { 56 renderContext.viewport = page.getViewport(1); 57 canvas.height = renderContext.viewport.height; 58 canvas.width = renderContext.viewport.width; 59 page.render(renderContext).then(renderPages.bind(null, i + 1, j)); 60 }); 61 } 62 renderPages(1, pdf.numPages); 63 }); 64 65 // Wait for everything to complete. 66 PdfJS_window.flushTimeouts(); 67 } 68 69 function tearDownPdfJS() { 70 // Should produce 36788 939524096 for all runs. 71 for (var i = 0; i < canvas_logs.length; ++i) { 72 var log_length = canvas_logs[i].length; 73 var log_hash = hash(canvas_logs[i].join(" ")); 74 var expected_length = 36788; 75 var expected_hash = 939524096; 76 if (log_length !== expected_length || log_hash !== expected_hash) { 77 var message = "PdfJS produced incorrect output: " + 78 "expected " + expected_length + " " + expected_hash + ", " + 79 "got " + log_length + " " + log_hash; 80 console.log(message + "\n"); 81 throw message; 82 } 83 } 84 // Allow GC of global state. 85 delete this.PDFJS; 86 delete this.PdfJS_window; 87 } 88 89 function buffer(s) { 90 var b = new ArrayBuffer(s.length); 91 var a = new Uint8Array(b); 92 for (var i = 0; i < s.length; ++i) a[i] = s.charCodeAt(i); 93 return b; 94 } 95 96 function hash(s) { 97 var up = Math.floor((s.length + 3) / 4); 98 var h = 0; 99 for (var i = 0; 4*i - 3 < s.length; i += 4) { 100 for (var j = 0; j < 4 && i + j < s.length; ++j) 101 h = (h + s.charCodeAt(i + j) << (8*j)) | 0; 102 } 103 return h; 104 } 105 106 107 ///////// Mocks of relevant browser functionality. (c) by Google. //////// 108 109 // Every acces to window will be redirected to PdfJS_window. 110 var PdfJS_window = Object.create(this); 111 112 function PdfJS_windowInstall(name, x) { 113 Object.defineProperty(PdfJS_window, name, {value: x}); 114 } 115 116 PdfJS_windowInstall("setTimeout", function(cmd, delay) { 117 PdfJS_window.__timeouts__.push(cmd); 118 }); 119 120 PdfJS_windowInstall("flushTimeouts", function() { 121 while (PdfJS_window.__timeouts__.length != 0) { 122 var next = PdfJS_window.__timeouts__.pop(); 123 if (typeof next === "function") 124 next({data: "{}"}); 125 else 126 eval(next); 127 } 128 }); 129 130 PdfJS_windowInstall("window", PdfJS_window); 131 132 PdfJS_window.__timeouts__ = []; 133 PdfJS_window.__resources__ = {}; 134 135 136 // Base64 encoding/decoding is based on code by Grant Galitz. 137 PdfJS_window.__to64__ = [ 138 "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", 139 "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", 140 "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", 141 "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", 142 "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "+", "/", "=" 143 ]; 144 145 PdfJS_windowInstall("btoa", function(data) { 146 var result = ""; 147 if (data.length > 0) { 148 var i = 0; 149 while (i < data.length) { 150 var b1 = data.charCodeAt(i++) & 0xff; 151 var b2 = data.charCodeAt(i++ < data.length ? i-1 : 0) & 0xff; 152 var b3 = data.charCodeAt(i++ < data.length ? i-1 : 0) & 0xff; 153 result += PdfJS_window.__to64__[b1 >> 2]; 154 if (i === data.length + 2) { 155 result += PdfJS_window.__to64__[(b1 & 0x3) << 4] + "=="; 156 } else { 157 result += PdfJS_window.__to64__[((b1 & 0x3) << 4) | (b2 >> 4)]; 158 if (i === data.length + 1) { 159 result += PdfJS_window.__to64__[(b2 & 0xF) << 2] + "="; 160 } else { 161 result += PdfJS_window.__to64__[((b2 & 0xF) << 2) | (b3 >> 6)] + 162 PdfJS_window.__to64__[b3 & 0x3F]; 163 } 164 } 165 } 166 } 167 return result; 168 }); 169 170 PdfJS_window.__from64__ = 171 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; 172 173 PdfJS_windowInstall("atob", function(data) { 174 var result = ""; 175 var i = 0; 176 while (i < data.length) { 177 var x1 = PdfJS_window.__from64__.indexOf(data.charAt(i++)); 178 var x2 = PdfJS_window.__from64__.indexOf(data.charAt(i++)); 179 var x3 = PdfJS_window.__from64__.indexOf(data.charAt(i++)); 180 var x4 = PdfJS_window.__from64__.indexOf(data.charAt(i++)); 181 result += String.fromCharCode((x1 << 2) | (x2 >> 4)); 182 if (x3 != 0x40) { 183 result += String.fromCharCode(((x2 & 0x0F) << 4) | (x3 >> 2)); 184 if (x4 != 0x40) { 185 result += String.fromCharCode(((x3 & 0x03) << 6) | x4); 186 } 187 } 188 } 189 return result; 190 }); 191 192 193 PdfJS_windowInstall("XMLHttpRequest", function() { 194 this.open = function(type, url, some_bool) { 195 this.url = url; 196 } 197 this.overrideMimeType = function() {} 198 this.send = function() { 199 this.response = PdfJS_window.__resources__[this.url]; 200 this.readyState = 4; 201 this.status = 0; 202 this.onreadystatechange(); 203 } 204 }); 205 206 PdfJS_windowInstall("console", this.console ? this.console : { 207 log: function(s) { 208 // To verify that the test produces the right results, 209 // uncomment this code. 210 /* 211 var re = new RegExp("%d", "g"); 212 var args = arguments; 213 var i = 0; 214 print(s.replace(re, function() { return args[++i] })); 215 */ 216 } 217 }); 218 219 PdfJS_windowInstall("location", { 220 protocol: "" 221 }); 222 223 PdfJS_windowInstall("Event", function() { 224 this.initEvent = function(name) { 225 this.name = name; 226 } 227 }); 228 229 PdfJS_windowInstall("Element", function(type) { 230 this.__listeners__ = {}; 231 this.element_type = type; 232 this.insertBefore = function() {}; 233 this.addEventListener = function(name, listener) { 234 this.__listeners__[name] = listener; 235 }; 236 this.removeEventListener = function(name) { 237 delete this.__listeners__[name]; 238 }; 239 this.dispatchEvent = function(event) { 240 this.__listeners__[event.name](event) 241 }; 242 this.getElementsByTagName = function(name) { 243 if (name === "head") { 244 return [{appendChild: function() {}}] 245 } 246 }; 247 this.appendChild = function() {}; 248 this.setAttribute = function() {}; 249 this.sheet = { 250 cssRules: [], 251 insertRule: function() {} 252 }; 253 }); 254 255 PdfJS_windowInstall("Context", function() { 256 this.__log__ = []; 257 this.save = function() { 258 this.__log__.push("save","\n"); 259 } 260 this.restore = function() { 261 this.__log__.push("restore","\n"); 262 } 263 this.transform = function(a,b,c,d,e,f) { 264 this.__log__.push("transform",a,b,c,d,e,f,"\n"); 265 } 266 this.translate = function(x,y) { 267 this.__log__.push("translate",x,y,"\n"); 268 } 269 this.scale = function(x,y) { 270 this.__log__.push("scale",x,y,"\n"); 271 } 272 this.rect = function(x,y,w,h) { 273 this.__log__.push("rect",x,y,w,h,"\n"); 274 } 275 this.clip = function() { 276 this.__log__.push("clip","\n"); 277 } 278 this.fill = function() { 279 this.__log__.push("fill","\n"); 280 } 281 this.stroke = function() { 282 this.__log__.push("stroke","\n"); 283 } 284 this.beginPath = function() { 285 this.__log__.push("beginPath","\n"); 286 } 287 this.closePath = function() { 288 this.__log__.push("closePath","\n"); 289 } 290 this.moveTo = function(x,y) { 291 this.__log__.push("moveTo",x,y,"\n"); 292 } 293 this.lineTo = function(x,y) { 294 this.__log__.push("lineTo",x,y,"\n"); 295 } 296 this.fillRect = function(x,y,w,h) { 297 this.__log__.push("fillRect",x,y,w,h,"\n"); 298 } 299 this.fillText = function(s,x,y,w) { 300 this.__log__.push("fillText",s,x,y,"\n"); 301 } 302 this.strokeText = function(s,x,y,w) { 303 this.__log__.push("strokeText",s,x,y,"\n"); 304 } 305 this.getImageData = function(x,y,w,h) { 306 this.__log__.push("getImageData",x,y,w,h,"\n"); 307 return {data: []}; 308 } 309 this.putImageData = function(data,x,y) { 310 this.__log__.push("putImageData","{...}",x,y,"\n"); 311 } 312 this.drawImage = function(image,x,y) { 313 this.__log__.push("drawImage","<elem>",x,y,"\n"); 314 } 315 this.getParameter = function(name) { 316 this.__log__.push("getParameter",name,"\n"); 317 return null; 318 } 319 this.enable = function() { 320 this.__log__.push("enable","\n"); 321 } 322 this.disable = function() { 323 this.__log__.push("disable","\n"); 324 } 325 this.depthFunc = function(param) { 326 this.__log__.push("depthFunc",param,"\n"); 327 } 328 this.clearColor = function(r,g,b,a) { 329 this.__log__.push("clearColor",r,g,b,a,"\n"); 330 } 331 this.clear = function(m) { 332 this.__log__.push("clear",m,"\n"); 333 } 334 this.clearRect = function(x,y,w,h) { 335 this.__log__.push("createRect",x,y,w,h,"\n"); 336 } 337 }); 338 339 PdfJS_windowInstall("Canvas", function() { 340 this.getContext = function() { 341 return new PdfJS_window.Context(); 342 } 343 this.width = 100; 344 this.height = 100; 345 this.style = { visibility: "visibile" }; 346 }); 347 348 PdfJS_windowInstall("document", { 349 body : new PdfJS_window.Element("body"), 350 documentElement : new PdfJS_window.Element("document"), 351 createElement : function(element_type) { 352 var element; 353 if (element_type === "canvas") { 354 element = new PdfJS_window.Canvas(); 355 } else { 356 element = new PdfJS_window.Element(element_type); 357 } 358 element.parentNode = new PdfJS_window.Element("dummy_parent"); 359 return element; 360 }, 361 getElementById : function(name) { 362 if (name === "canvas") { 363 return new PdfJS_window.Canvas(); 364 } else { 365 return undefined; 366 } 367 }, 368 getElementsByTagName : function(element) { 369 if (element === "script") { 370 return new Array(new this.createElement(element)); 371 } 372 }, 373 createEvent : function() { return new PdfJS_window.Event() } 374 }); 375 376 PdfJS_window.window.addEventListener = function(name, listener) { 377 PdfJS_window.setTimeout(listener) 378 } 379 380 PdfJS_windowInstall("Worker", undefined); 381 382 383 ///////// The PDF we want to render, encoded in base64. //////// 384 385 function getPDF() { 386 return "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NyAzOTkuNyA1MTMuOSA3OTkuNCAyODUuNSAzNDIuNiAyODUuNSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSAyODUuNSAyODUuNSAyODUuNSA3OTkuNCA0ODUuMyA0ODUuMyA3OTkuNCA3NzAuNyA3MjcuOSA3NDIuMyA3ODUgNjk5LjQgNjcwLjggODA2LjUgNzcwLjcgMzcxIDUyOC4xIDc5OS4yIDY0Mi4zIDk0MiA3NzAuNyA3OTkuNCA2OTkuNCA3OTkuNCA3NTYuNSA1NzEgNzQyLjMgNzcwLjcgNzcwLjcgMTA1Ni4yIDc3MC43IDc3MC43IDYyOC4xIDI4NS41IDUxMy45IDI4NS41IDUxMy45IDI4NS41IDI4NS41IDUxMy45IDU3MSA0NTYuOCA1NzEgNDU3LjIgMzE0IDUxMy45IDU3MSAyODUuNSAzMTQgNTQyLjQgMjg1LjUgODU2LjUgNTcxIDUxMy45IDU3MSA1NDIuNCA0MDIgNDA1LjQgMzk5LjcgNTcxIDU0Mi40IDc0Mi4zIDU0Mi40IDU0Mi40XQplbmRvYmoKMTYgMCBvYmoKWzYzOC45XQplbmRvYmoKMTcgMCBvYmoKWzU2Mi41IDU2Mi41IDU2Mi41IDU2Mi41IDU2Mi41IDU2Mi41IDU2Mi41IDU2Mi41IDU2Mi41IDMxMi41IDMxMi41IDM0Mi42IDg3NSA1MzEuMiA1MzEuMiA4NzUgODQ5LjUgNzk5LjggODEyLjUgODYyLjMgNzM4LjQgNzA3LjIgODg0LjMgODc5LjYgNDE5IDU4MSA4ODAuOCA2NzUuOSAxMDY3LjEgODc5LjYgODQ0LjkgNzY4LjUgODQ0LjkgODM5LjEgNjI1IDc4Mi40IDg2NC42IDg0OS41IDExNjIgODQ5LjUgODQ5LjUgNjg3LjUgMzEyLjUgNTgxIDMxMi41IDU2Mi41IDMxMi41IDMxMi41IDU0Ni45IDYyNSA1MDAgNjI1IDUxMy4zIDM0My43IDU2Mi41IDYyNSAzMTIuNSAzNDMuNyA1OTMuNyAzMTIuNSA5MzcuNSA2MjUgNTYyLjUgNjI1IDU5My43IDQ1OS41IDQ0My44IDQzNy41IDYyNV0KZW5kb2JqCjE4IDAgb2JqCls1ODMuMyA1NTUuNiA1NTUuNiA4MzMuMyA4MzMuMyAyNzcuOCAzMDUuNiA1MDAgNTAwIDUwMCA1MDAgNTAwIDc1MCA0NDQuNCA1MDAgNzIyLjIgNzc3LjggNTAwIDkwMi44IDEwMTMuOSA3NzcuOCAyNzcuOCAyNzcuOCA1MDAgODMzLjMgNTAwIDgzMy4zIDc3Ny44IDI3Ny44IDM4OC45IDM4OC45IDUwMCA3NzcuOCAyNzcuOCAzMzMuMyAyNzcuOCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDI3Ny44IDI3Ny44IDI3Ny44IDc3Ny44IDQ3Mi4yIDQ3Mi4yIDc3Ny44IDc1MCA3MDguMyA3MjIuMiA3NjMuOSA2ODAuNiA2NTIuOCA3ODQuNyA3NTAgMzYxLjEgNTEzLjkgNzc3LjggNjI1IDkxNi43IDc1MCA3NzcuOCA2ODAuNiA3NzcuOCA3MzYuMSA1NTUuNiA3MjIuMiA3NTAgNzUwIDEwMjcuOCA3NTAgNzUwIDYxMS4xIDI3Ny44IDUwMCAyNzcuOCA1MDAgMjc3LjggMjc3LjggNTAwIDU1NS42IDQ0NC40IDU1NS42IDQ0NC40IDMwNS42IDUwMCA1NTUuNiAyNzcuOCAzMDUuNiA1MjcuOCAyNzcuOCA4MzMuMyA1NTUuNiA1MDAgNTU1LjYgNTI3LjggMzkxLjcgMzk0LjQgMzg4LjkgNTU1LjYgNTI3LjggNzIyLjIgNTI3LjggNTI3LjggNDQ0LjRdCmVuZG9iagoxOSAwIG9iagpbODY5LjQgODE4LjEgODMwLjYgODgxLjkgNzU1LjYgNzIzLjYgOTA0LjIgOTAwIDQzNi4xIDU5NC40IDkwMS40IDY5MS43IDEwOTEuNyA5MDAgODYzLjkgNzg2LjEgODYzLjkgODYyLjUgNjM4LjkgODAwIDg4NC43IDg2OS40IDExODguOSA4NjkuNCA4NjkuNCA3MDIuOCAzMTkuNCA2MDIuOCAzMTkuNCA1NzUgMzE5LjQgMzE5LjQgNTU5IDYzOC45IDUxMS4xIDYzOC45IDUyNy4xIDM1MS40IDU3NSA2MzguOSAzMTkuNCAzNTEuNCA2MDYuOSAzMTkuNCA5NTguMyA2MzguOSA1NzUgNjM4LjkgNjA2LjkgNDczLjYgNDUzLjYgNDQ3LjJdCmVuZG9iagoyMCAwIG9iagpbMjcyIDMyNi40IDI3MiA0ODkuNiA0ODkuNiA0ODkuNiA0ODkuNiA0ODkuNiA0ODkuNiA0ODkuNiA0ODkuNiA0ODkuNiA0ODkuNiA0ODkuNiAyNzIgMjcyIDI3MiA3NjEuNiA0NjIuNCA0NjIuNCA3NjEuNiA3MzQgNjkzLjQgNzA3LjIgNzQ3LjggNjY2LjIgNjM5IDc2OC4zIDczNCAzNTMuMiA1MDMgNzYxLjIgNjExLjggODk3LjIgNzM0IDc2MS42IDY2Ni4yIDc2MS42IDcyMC42IDU0NCA3MDcuMiA3MzQgNzM0IDEwMDYgNzM0IDczNCA1OTguNCAyNzIgNDg5LjYgMjcyIDQ4OS42IDI3MiAyNzIgNDg5LjYgNTQ0IDQzNS4yIDU0NCA0MzUuMiAyOTkuMiA0ODkuNiA1NDQgMjcyIDI5OS4yIDUxNi44IDI3MiA4MTYgNTQ0IDQ4OS42IDU0NCA1MTYuOCAzODAuOCAzODYuMiAzODAuOCA1NDQgNTE2LjggNzA3LjIgNTE2LjggNTE2LjggNDM1LjIgNDg5LjYgOTc5LjIgNDg5LjYgNDg5LjYgNDg5LjZdCmVuZG9iagoyMSAwIG9iagpbNTAwXQplbmRvYmoKMjIgMCBvYmoKWzYwMi4xIDcyNi4zIDY5My4zIDMyNy42IDQ3MS41IDcxOS40IDU3NiA4NTAgNjkzLjMgNzE5LjggNjI4LjIgNzE5LjggNjgwLjUgNTEwLjkgNjY3LjYgNjkzLjMgNjkzLjMgOTU0LjUgNjkzLjMgNjkzLjMgNTYzLjEgMjQ5LjYgNDU4LjYgMjQ5LjYgNDU4LjYgMjQ5LjYgMjQ5LjYgNDU4LjYgNTEwLjkgNDA2LjQgNTEwLjkgNDA2LjQgMjc1LjggNDU4LjYgNTEwLjkgMjQ5LjYgMjc1LjggNDg0LjcgMjQ5LjYgNzcyLjEgNTEwLjkgNDU4LjYgNTEwLjkgNDg0LjcgMzU0LjEgMzU5LjQgMzU0LjEgNTEwLjkgNDg0LjcgNjY3LjYgNDg0LjcgNDg0LjddCmVuZG9iagoyMyAwIG9iaiA8PAovTGVuZ3RoMSAxNDc4Ci9MZW5ndGgyIDg1MTgKL0xlbmd0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v8GGxC7XToegrvebyXdbtw9p5HgLpTWptCKqTLk+yf8P4ygJngplbmRzdHJlYW0KZW5kb2JqCjQwIDAgb2JqIDw8Ci9UeXBlIC9Gb250RGVzY3JpcHRvcgovRm9udE5hbWUgL01GTURBRitDTVRUOQovRmxhZ3MgNAovRm9udEJCb3ggWy02IC0yMzMgNTQyIDY5OF0KL0FzY2VudCA2MTEKL0NhcEhlaWdodCA2MTEKL0Rlc2NlbnQgLTIyMgovSXRhbGljQW5nbGUgMAovU3RlbVYgNzQKL1hIZWlnaHQgNDMxCi9DaGFyU2V0ICgvZi9uL28vcikKL0ZvbnRGaWxlIDM5IDAgUgo+PiBlbmRvYmoKNyAwIG9iaiA8PAovVHlwZSAvRm9udAovU3VidHlwZSAvVHlwZTEKL0Jhc2VGb250IC9RWktSRE0rQ01CWDEwCi9Gb250RGVzY3JpcHRvciAyNCAwIFIKL0ZpcnN0Q2hhciA2NQovTGFzdENoYXIgMTE2Ci9XaWR0aHMgMTkgMCBSCj4+IGVuZG9iago5IDAgb2JqIDw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL0dYR0dCUStDTUJYMTIKL0ZvbnREZXNjcmlwdG9yIDI2IDAgUgovRmlyc3RDaGFyIDQ5Ci9MYXN0Q2hhciAxMTcKL1dpZHRocyAxNyAwIFIKPj4gZW5kb2JqCjggMCBvYmogPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvUlpQTUxTK0NNUjEwCi9Gb250RGVzY3JpcHRvciAyOCAwIFIKL0ZpcnN0Q2hhciAxMQovTGFzdENoYXIgMTIyCi9XaWR0aHMgMTggMCBSCj4+IGVuZG9iago2IDAgb2JqIDw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL1BIQlhEUStDTVIxMgovRm9udERlc2NyaXB0b3IgMzAgMCBSCi9GaXJzdENoYXIgNDQKL0xhc3RDaGFyIDEyNwovV2lkdGhzIDIwIDAgUgo+PiBlbmRvYmoKNCAwIG9iaiA8PAovVHlwZSAvRm9udAovU3VidHlwZSAvVHlwZTEKL0Jhc2VGb250IC9KVFlNS04rQ01SMTcKL0ZvbnREZXNjcmlwdG9yIDMyIDAgUgovRmlyc3RDaGFyIDcwCi9MYXN0Q2hhciAxMjEKL1dpZHRocyAyMiAwIFIKPj4gZW5kb2JqCjExIDAgb2JqIDw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL1RLSkhISStDTVI5Ci9Gb250RGVzY3JpcHRvciAzNCAwIFIKL0ZpcnN0Q2hhciAzMwovTGFzdENoYXIgMTIxCi9XaWR0aHMgMTUgMCBSCj4+IGVuZG9iago1IDAgb2JqIDw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL1VFSVpZVytDTVNZMTAKL0ZvbnREZXNjcmlwdG9yIDM2IDAgUgovRmlyc3RDaGFyIDMKL0xhc3RDaGFyIDMKL1dpZHRocyAyMSAwIFIKPj4gZW5kb2JqCjEwIDAgb2JqIDw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL0dVT1dUSytDTVNZNgovRm9udERlc2NyaXB0b3IgMzggMCBSCi9GaXJzdENoYXIgMwovTGFzdENoYXIgMwovV2lkdGhzIDE2IDAgUgo+PiBlbmRvYmoKMTIgMCBvYmogPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvTUZNREFGK0NNVFQ5Ci9Gb250RGVzY3JpcHRvciA0MCAwIFIKL0ZpcnN0Q2hhciAxMDIKL0xhc3RDaGFyIDExNAovV2lkdGhzIDE0IDAgUgo+PiBlbmRvYmoKMTMgMCBvYmogPDwKL1R5cGUgL1BhZ2VzCi9Db3VudCAxCi9LaWRzIFsyIDAgUl0KPj4gZW5kb2JqCjQxIDAgb2JqIDw8Ci9UeXBlIC9DYXRhbG9nCi9QYWdlcyAxMyAwIFIKPj4gZW5kb2JqCjQyIDAgb2JqIDw8Ci9Qcm9kdWNlciAocGRmVGVYLTEuNDAuMTApCi9DcmVhdG9yIChUZVgpCi9DcmVhdGlvbkRhdGUgKEQ6MjAxMjA2MTExODA4NDYrMDInMDAnKQovTW9kRGF0ZSAoRDoyMDEyMDYxMTE4MDg0NiswMicwMCcpCi9UcmFwcGVkIC9GYWxzZQovUFRFWC5GdWxsYmFubmVyIChUaGlzIGlzIHBkZlRlWCwgVmVyc2lvbiAzLjE0MTU5MjYtMS40MC4xMC0yLjIgKFRlWCBMaXZlIDIwMDkvRGViaWFuKSBrcGF0aHNlYSB2ZXJzaW9uIDUuMC4wKQo+PiBlbmRvYmoKeHJlZgowIDQzCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMzMxNiAwMDAwMCBuIAowMDAwMDAzMjA0IDAwMDAwIG4gCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDEwODgzNCAwMDAwMCBuIAowMDAwMTA5MTEyIDAwMDAwIG4gCjAwMDAxMDg2OTUgMDAwMDAgbiAKMDAwMDEwODI3NiAwMDAwMCBuIAowMDAwMTA4NTU2IDAwMDAwIG4gCjAwMDAxMDg0MTYgMDAwMDAgbiAKMDAwMDEwOTI0OSAwMDAwMCBuIAowMDAwMTA4OTczIDAwMDAwIG4gCjAwMDAxMDkzODYgMDAwMDAgbiAKMDAwMDEwOTUyNyAwMDAwMCBuIAowMDAwMDAzNDc0IDAwMDAwIG4gCjAwMDAwMDM1NDQgMDAwMDAgbiAKMDAwMDAwNDA3MSAwMDAwMCBuIAowMDAwMDA0MDk1IDAwMDAwIG4gCjAwMDAwMDQ1MDEgMDAwMDAgbiAKMDAwMDAwNTEyMyAwMDAwMCBuIAowMDAwMDA1NDQxIDAwMDAwIG4gCjAwMDAwMDU5MDYgMDAwMDAgbiAKMDAwMDAwNTkyOCAwMDAwMCBuIAowMDAwMDA2MjU0IDAwMDAwIG4gCjAwMDAwMTU4NzcgMDAwMDAgbiAKMDAwMDAxNjEwOCAwMDAwMCBuIAowMDAwMDI0NDIxIDAwMDAwIG4gCjAwMDAwMjQ2NjAgMDAwMDAgbiAKMDAwMDA0MzkyNSAwMDAwMCBuIAowMDAwMDQ0MzQyIDAwMDAwIG4gCjAwMDAwNTg3MzMgMDAwMDAgbiAKMDAwMDA1OTA1NiAwMDAwMCBuIAowMDAwMDY5NjY1IDAwMDAwIG4gCjAwMDAwNjk5MTcgMDAwMDAgbiAKMDAwMDA4NTU4MCAwMDAwMCBuIAowMDAwMDg1OTMxIDAwMDAwIG4gCjAwMDAwOTMwNDggMDAwMDAgbiAKMDAwMDA5MzI3OSAwMDAwMCBuIAowMDAwMTAwNDQ1IDAwMDAwIG4gCjAwMDAxMDA2NzQgMDAwMDAgbiAKMDAwMDEwODA1NSAwMDAwMCBuIAowMDAwMTA5NTg1IDAwMDAwIG4gCjAwMDAxMDk2MzYgMDAwMDAgbiAKdHJhaWxlcgo8PCAvU2l6ZSA0MwovUm9vdCA0MSAwIFIKL0luZm8gNDIgMCBSCi9JRCBbPEE1MTIyOERDMEI2RDhERTcwNDA5QjM4RUY1MDJDQkYwPiA8QTUxMjI4REMwQjZEOERFNzA0MDlCMzhFRjUwMkNCRjA+XSA+PgpzdGFydHhyZWYKMTA5OTAyCiUlRU9GCg==" 387 } 388 389 390 ///////// Rest taken from generated pdf.js. (c) by Mozilla. //////// 391 ///////// File unchanged, except that all references to DOM- //////// 392 ///////// specific global names have been prefixed by PdfJS_window., //////// 393 ///////// to avoid interference with the benchmark runner script. //////// 394 395 /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 396 /* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ 397 398 var PDFJS = {}; 399 400 (function pdfjsWrapper() { 401 // Use strict in our context only - users might not want it 402 'use strict'; 403 404 PDFJS.build = '3cc61f0'; 405 406 // Files are inserted below - see Makefile 407 /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 408 /* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ 409 410 'use strict'; 411 412 var globalScope = (typeof PdfJS_window.window === 'undefined') ? this : PdfJS_window.window; 413 414 var isWorker = (typeof PdfJS_window.window == 'undefined'); 415 416 var ERRORS = 0, WARNINGS = 1, TODOS = 5; 417 var verbosity = WARNINGS; 418 419 // The global PDFJS object exposes the API 420 // In production, it will be declared outside a global wrapper 421 // In development, it will be declared here 422 if (!globalScope.PDFJS) { 423 globalScope.PDFJS = {}; 424 } 425 426 // getPdf() 427 // Convenience function to perform binary Ajax GET 428 // Usage: getPdf('http://...', callback) 429 // getPdf({ 430 // url:String , 431 // [,progress:Function, error:Function] 432 // }, 433 // callback) 434 function getPdf(arg, callback) { 435 var params = arg; 436 if (typeof arg === 'string') 437 params = { url: arg }; 438 439 var xhr = new PdfJS_window.XMLHttpRequest(); 440 xhr.open('GET', params.url); 441 xhr.mozResponseType = xhr.responseType = 'arraybuffer'; 442 var protocol = params.url.indexOf(':') < 0 ? PdfJS_window.window.location.protocol : 443 params.url.substring(0, params.url.indexOf(':') + 1); 444 xhr.expected = (protocol === 'http:' || protocol === 'https:') ? 200 : 0; 445 446 if ('progress' in params) 447 xhr.onprogress = params.progress || undefined; 448 449 if ('error' in params) 450 xhr.onerror = params.error || undefined; 451 452 xhr.onreadystatechange = function getPdfOnreadystatechange(e) { 453 if (xhr.readyState === 4) { 454 if (xhr.status === xhr.expected) { 455 var data = (xhr.mozResponseArrayBuffer || xhr.mozResponse || 456 xhr.responseArrayBuffer || xhr.response); 457 callback(data); 458 } else if (params.error) { 459 params.error(e); 460 } 461 } 462 }; 463 xhr.send(null); 464 } 465 globalScope.PDFJS.getPdf = getPdf; 466 globalScope.PDFJS.pdfBug = false; 467 468 var Page = (function PageClosure() { 469 function Page(xref, pageNumber, pageDict, ref) { 470 this.pageNumber = pageNumber; 471 this.pageDict = pageDict; 472 this.xref = xref; 473 this.ref = ref; 474 475 this.displayReadyPromise = null; 476 } 477 478 Page.prototype = { 479 getPageProp: function Page_getPageProp(key) { 480 return this.pageDict.get(key); 481 }, 482 inheritPageProp: function Page_inheritPageProp(key) { 483 var dict = this.pageDict; 484 var obj = dict.get(key); 485 while (obj === undefined) { 486 dict = dict.get('Parent'); 487 if (!dict) 488 break; 489 obj = dict.get(key); 490 } 491 return obj; 492 }, 493 get content() { 494 return shadow(this, 'content', this.getPageProp('Contents')); 495 }, 496 get resources() { 497 return shadow(this, 'resources', this.inheritPageProp('Resources')); 498 }, 499 get mediaBox() { 500 var obj = this.inheritPageProp('MediaBox'); 501 // Reset invalid media box to letter size. 502 if (!isArray(obj) || obj.length !== 4) 503 obj = [0, 0, 612, 792]; 504 return shadow(this, 'mediaBox', obj); 505 }, 506 get view() { 507 var mediaBox = this.mediaBox; 508 var cropBox = this.inheritPageProp('CropBox'); 509 if (!isArray(cropBox) || cropBox.length !== 4) 510 return shadow(this, 'view', mediaBox); 511 512 // From the spec, 6th ed., p.963: 513 // "The crop, bleed, trim, and art boxes should not ordinarily 514 // extend beyond the boundaries of the media box. If they do, they are 515 // effectively reduced to their intersection with the media box." 516 cropBox = Util.intersect(cropBox, mediaBox); 517 if (!cropBox) 518 return shadow(this, 'view', mediaBox); 519 520 return shadow(this, 'view', cropBox); 521 }, 522 get annotations() { 523 return shadow(this, 'annotations', this.inheritPageProp('Annots')); 524 }, 525 get rotate() { 526 var rotate = this.inheritPageProp('Rotate') || 0; 527 // Normalize rotation so it's a multiple of 90 and between 0 and 270 528 if (rotate % 90 != 0) { 529 rotate = 0; 530 } else if (rotate >= 360) { 531 rotate = rotate % 360; 532 } else if (rotate < 0) { 533 // The spec doesn't cover negatives, assume its counterclockwise 534 // rotation. The following is the other implementation of modulo. 535 rotate = ((rotate % 360) + 360) % 360; 536 } 537 return shadow(this, 'rotate', rotate); 538 }, 539 540 getOperatorList: function Page_getOperatorList(handler, dependency) { 541 var xref = this.xref; 542 var content = this.content; 543 var resources = this.resources; 544 if (isArray(content)) { 545 // fetching items 546 var streams = []; 547 var i, n = content.length; 548 for (i = 0; i < n; ++i) 549 streams.push(xref.fetchIfRef(content[i])); 550 content = new StreamsSequenceStream(streams); 551 } else if (isStream(content)) { 552 content.reset(); 553 } else if (!content) { 554 // replacing non-existent page content with empty one 555 content = new Stream(new Uint8Array(0)); 556 } 557 558 var pe = this.pe = new PartialEvaluator( 559 xref, handler, 'p' + this.pageNumber + '_'); 560 561 return pe.getOperatorList(content, resources, dependency); 562 }, 563 564 getLinks: function Page_getLinks() { 565 var links = []; 566 var annotations = pageGetAnnotations(); 567 var i, n = annotations.length; 568 for (i = 0; i < n; ++i) { 569 if (annotations[i].type != 'Link') 570 continue; 571 links.push(annotations[i]); 572 } 573 return links; 574 }, 575 getAnnotations: function Page_getAnnotations() { 576 var xref = this.xref; 577 function getInheritableProperty(annotation, name) { 578 var item = annotation; 579 while (item && !item.has(name)) { 580 item = item.get('Parent'); 581 } 582 if (!item) 583 return null; 584 return item.get(name); 585 } 586 function isValidUrl(url) { 587 if (!url) 588 return false; 589 var colon = url.indexOf(':'); 590 if (colon < 0) 591 return false; 592 var protocol = url.substr(0, colon); 593 switch (protocol) { 594 case 'http': 595 case 'https': 596 case 'ftp': 597 case 'mailto': 598 return true; 599 default: 600 return false; 601 } 602 } 603 604 var annotations = this.annotations || []; 605 var i, n = annotations.length; 606 var items = []; 607 for (i = 0; i < n; ++i) { 608 var annotationRef = annotations[i]; 609 var annotation = xref.fetch(annotationRef); 610 if (!isDict(annotation)) 611 continue; 612 var subtype = annotation.get('Subtype'); 613 if (!isName(subtype)) 614 continue; 615 var rect = annotation.get('Rect'); 616 617 var item = {}; 618 item.type = subtype.name; 619 item.rect = rect; 620 switch (subtype.name) { 621 case 'Link': 622 var a = annotation.get('A'); 623 if (a) { 624 switch (a.get('S').name) { 625 case 'URI': 626 var url = a.get('URI'); 627 // TODO: pdf spec mentions urls can be relative to a Base 628 // entry in the dictionary. 629 if (!isValidUrl(url)) 630 url = ''; 631 item.url = url; 632 break; 633 case 'GoTo': 634 item.dest = a.get('D'); 635 break; 636 default: 637 TODO('other link types'); 638 } 639 } else if (annotation.has('Dest')) { 640 // simple destination link 641 var dest = annotation.get('Dest'); 642 item.dest = isName(dest) ? dest.name : dest; 643 } 644 break; 645 case 'Widget': 646 var fieldType = getInheritableProperty(annotation, 'FT'); 647 if (!isName(fieldType)) 648 break; 649 item.fieldType = fieldType.name; 650 // Building the full field name by collecting the field and 651 // its ancestors 'T' properties and joining them using '.'. 652 var fieldName = []; 653 var namedItem = annotation, ref = annotationRef; 654 while (namedItem) { 655 var parent = namedItem.get('Parent'); 656 var parentRef = namedItem.getRaw('Parent'); 657 var name = namedItem.get('T'); 658 if (name) { 659 fieldName.unshift(stringToPDFString(name)); 660 } else { 661 // The field name is absent, that means more than one field 662 // with the same name may exist. Replacing the empty name 663 // with the '`' plus index in the parent's 'Kids' array. 664 // This is not in the PDF spec but necessary to id the 665 // the input controls. 666 var kids = parent.get('Kids'); 667 var j, jj; 668 for (j = 0, jj = kids.length; j < jj; j++) { 669 var kidRef = kids[j]; 670 if (kidRef.num == ref.num && kidRef.gen == ref.gen) 671 break; 672 } 673 fieldName.unshift('`' + j); 674 } 675 namedItem = parent; 676 ref = parentRef; 677 } 678 item.fullName = fieldName.join('.'); 679 var alternativeText = stringToPDFString(annotation.get('TU') || ''); 680 item.alternativeText = alternativeText; 681 var da = getInheritableProperty(annotation, 'DA') || ''; 682 var m = /([\d\.]+)\sTf/.exec(da); 683 if (m) 684 item.fontSize = parseFloat(m[1]); 685 item.textAlignment = getInheritableProperty(annotation, 'Q'); 686 item.flags = getInheritableProperty(annotation, 'Ff') || 0; 687 break; 688 case 'Text': 689 var content = annotation.get('Contents'); 690 var title = annotation.get('T'); 691 item.content = stringToPDFString(content || ''); 692 item.title = stringToPDFString(title || ''); 693 item.name = !annotation.has('Name') ? 'Note' : 694 annotation.get('Name').name; 695 break; 696 default: 697 TODO('unimplemented annotation type: ' + subtype.name); 698 break; 699 } 700 items.push(item); 701 } 702 return items; 703 } 704 }; 705 706 return Page; 707 })(); 708 709 /** 710 * The `PDFDocument` holds all the data of the PDF file. Compared to the 711 * `PDFDoc`, this one doesn't have any job management code. 712 * Right now there exists one PDFDocument on the main thread + one object 713 * for each worker. If there is no worker support enabled, there are two 714 * `PDFDocument` objects on the main thread created. 715 */ 716 var PDFDocument = (function PDFDocumentClosure() { 717 function PDFDocument(arg, callback) { 718 if (isStream(arg)) 719 init.call(this, arg); 720 else if (isArrayBuffer(arg)) 721 init.call(this, new Stream(arg)); 722 else 723 error('PDFDocument: Unknown argument type'); 724 } 725 726 function init(stream) { 727 assertWellFormed(stream.length > 0, 'stream must have data'); 728 this.stream = stream; 729 this.setup(); 730 this.acroForm = this.catalog.catDict.get('AcroForm'); 731 } 732 733 function find(stream, needle, limit, backwards) { 734 var pos = stream.pos; 735 var end = stream.end; 736 var str = ''; 737 if (pos + limit > end) 738 limit = end - pos; 739 for (var n = 0; n < limit; ++n) 740 str += stream.getChar(); 741 stream.pos = pos; 742 var index = backwards ? str.lastIndexOf(needle) : str.indexOf(needle); 743 if (index == -1) 744 return false; /* not found */ 745 stream.pos += index; 746 return true; /* found */ 747 } 748 749 PDFDocument.prototype = { 750 get linearization() { 751 var length = this.stream.length; 752 var linearization = false; 753 if (length) { 754 linearization = new Linearization(this.stream); 755 if (linearization.length != length) 756 linearization = false; 757 } 758 // shadow the prototype getter with a data property 759 return shadow(this, 'linearization', linearization); 760 }, 761 get startXRef() { 762 var stream = this.stream; 763 var startXRef = 0; 764 var linearization = this.linearization; 765 if (linearization) { 766 // Find end of first obj. 767 stream.reset(); 768 if (find(stream, 'endobj', 1024)) 769 startXRef = stream.pos + 6; 770 } else { 771 // Find startxref by jumping backward from the end of the file. 772 var step = 1024; 773 var found = false, pos = stream.end; 774 while (!found && pos > 0) { 775 pos -= step - 'startxref'.length; 776 if (pos < 0) 777 pos = 0; 778 stream.pos = pos; 779 found = find(stream, 'startxref', step, true); 780 } 781 if (found) { 782 stream.skip(9); 783 var ch; 784 do { 785 ch = stream.getChar(); 786 } while (Lexer.isSpace(ch)); 787 var str = ''; 788 while ((ch - '0') <= 9) { 789 str += ch; 790 ch = stream.getChar(); 791 } 792 startXRef = parseInt(str, 10); 793 if (isNaN(startXRef)) 794 startXRef = 0; 795 } 796 } 797 // shadow the prototype getter with a data property 798 return shadow(this, 'startXRef', startXRef); 799 }, 800 get mainXRefEntriesOffset() { 801 var mainXRefEntriesOffset = 0; 802 var linearization = this.linearization; 803 if (linearization) 804 mainXRefEntriesOffset = linearization.mainXRefEntriesOffset; 805 // shadow the prototype getter with a data property 806 return shadow(this, 'mainXRefEntriesOffset', mainXRefEntriesOffset); 807 }, 808 // Find the header, remove leading garbage and setup the stream 809 // starting from the header. 810 checkHeader: function PDFDocument_checkHeader() { 811 var stream = this.stream; 812 stream.reset(); 813 if (find(stream, '%PDF-', 1024)) { 814 // Found the header, trim off any garbage before it. 815 stream.moveStart(); 816 return; 817 } 818 // May not be a PDF file, continue anyway. 819 }, 820 setup: function PDFDocument_setup(ownerPassword, userPassword) { 821 this.checkHeader(); 822 var xref = new XRef(this.stream, 823 this.startXRef, 824 this.mainXRefEntriesOffset); 825 this.xref = xref; 826 this.catalog = new Catalog(xref); 827 }, 828 get numPages() { 829 var linearization = this.linearization; 830 var num = linearization ? linearization.numPages : this.catalog.numPages; 831 // shadow the prototype getter 832 return shadow(this, 'numPages', num); 833 }, 834 getDocumentInfo: function PDFDocument_getDocumentInfo() { 835 var info; 836 if (this.xref.trailer.has('Info')) { 837 var infoDict = this.xref.trailer.get('Info'); 838 839 info = {}; 840 infoDict.forEach(function(key, value) { 841 info[key] = typeof value !== 'string' ? value : 842 stringToPDFString(value); 843 }); 844 } 845 846 return shadow(this, 'getDocumentInfo', info); 847 }, 848 getFingerprint: function PDFDocument_getFingerprint() { 849 var xref = this.xref, fileID; 850 if (xref.trailer.has('ID')) { 851 fileID = ''; 852 var id = xref.trailer.get('ID')[0]; 853 id.split('').forEach(function(el) { 854 fileID += Number(el.charCodeAt(0)).toString(16); 855 }); 856 } else { 857 // If we got no fileID, then we generate one, 858 // from the first 100 bytes of PDF 859 var data = this.stream.bytes.subarray(0, 100); 860 var hash = calculateMD5(data, 0, data.length); 861 fileID = ''; 862 for (var i = 0, length = hash.length; i < length; i++) { 863 fileID += Number(hash[i]).toString(16); 864 } 865 } 866 867 return shadow(this, 'getFingerprint', fileID); 868 }, 869 getPage: function PDFDocument_getPage(n) { 870 return this.catalog.getPage(n); 871 } 872 }; 873 874 return PDFDocument; 875 })(); 876 877 /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 878 /* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ 879 880 'use strict'; 881 882 function log(msg) { 883 if (PdfJS_window.console && PdfJS_window.console.log) 884 PdfJS_window.console.log(msg); 885 else if (print) 886 print(msg); 887 } 888 889 function warn(msg) { 890 if (verbosity >= WARNINGS) 891 log('Warning: ' + msg); 892 } 893 894 function backtrace() { 895 try { 896 throw new Error(); 897 } catch (e) { 898 return e.stack ? e.stack.split('\n').slice(2).join('\n') : ''; 899 } 900 } 901 902 function error(msg) { 903 log('Error: ' + msg); 904 log(backtrace()); 905 throw new Error(msg); 906 } 907 908 function TODO(what) { 909 if (verbosity >= TODOS) 910 log('TODO: ' + what); 911 } 912 913 function malformed(msg) { 914 error('Malformed PDF: ' + msg); 915 } 916 917 function assert(cond, msg) { 918 if (!cond) 919 error(msg); 920 } 921 922 // In a well-formed PDF, |cond| holds. If it doesn't, subsequent 923 // behavior is undefined. 924 function assertWellFormed(cond, msg) { 925 if (!cond) 926 malformed(msg); 927 } 928 929 function shadow(obj, prop, value) { 930 Object.defineProperty(obj, prop, { value: value, 931 enumerable: true, 932 configurable: true, 933 writable: false }); 934 return value; 935 } 936 937 function bytesToString(bytes) { 938 var str = ''; 939 var length = bytes.length; 940 for (var n = 0; n < length; ++n) 941 str += String.fromCharCode(bytes[n]); 942 return str; 943 } 944 945 function stringToBytes(str) { 946 var length = str.length; 947 var bytes = new Uint8Array(length); 948 for (var n = 0; n < length; ++n) 949 bytes[n] = str.charCodeAt(n) & 0xFF; 950 return bytes; 951 } 952 953 var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; 954 955 var Util = PDFJS.Util = (function UtilClosure() { 956 function Util() {} 957 958 Util.makeCssRgb = function Util_makeCssRgb(r, g, b) { 959 var ri = (255 * r) | 0, gi = (255 * g) | 0, bi = (255 * b) | 0; 960 return 'rgb(' + ri + ',' + gi + ',' + bi + ')'; 961 }; 962 963 Util.makeCssCmyk = function Util_makeCssCmyk(c, m, y, k) { 964 c = (new DeviceCmykCS()).getRgb([c, m, y, k]); 965 var ri = (255 * c[0]) | 0, gi = (255 * c[1]) | 0, bi = (255 * c[2]) | 0; 966 return 'rgb(' + ri + ',' + gi + ',' + bi + ')'; 967 }; 968 969 // For 2d affine transforms 970 Util.applyTransform = function Util_applyTransform(p, m) { 971 var xt = p[0] * m[0] + p[1] * m[2] + m[4]; 972 var yt = p[0] * m[1] + p[1] * m[3] + m[5]; 973 return [xt, yt]; 974 }; 975 976 Util.applyInverseTransform = function Util_applyInverseTransform(p, m) { 977 var d = m[0] * m[3] - m[1] * m[2]; 978 var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; 979 var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; 980 return [xt, yt]; 981 }; 982 983 Util.inverseTransform = function Util_inverseTransform(m) { 984 var d = m[0] * m[3] - m[1] * m[2]; 985 return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, 986 (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d]; 987 }; 988 989 // Apply a generic 3d matrix M on a 3-vector v: 990 // | a b c | | X | 991 // | d e f | x | Y | 992 // | g h i | | Z | 993 // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i], 994 // with v as [X,Y,Z] 995 Util.apply3dTransform = function Util_apply3dTransform(m, v) { 996 return [ 997 m[0] * v[0] + m[1] * v[1] + m[2] * v[2], 998 m[3] * v[0] + m[4] * v[1] + m[5] * v[2], 999 m[6] * v[0] + m[7] * v[1] + m[8] * v[2] 1000 ]; 1001 } 1002 1003 // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2) 1004 // For coordinate systems whose origin lies in the bottom-left, this 1005 // means normalization to (BL,TR) ordering. For systems with origin in the 1006 // top-left, this means (TL,BR) ordering. 1007 Util.normalizeRect = function Util_normalizeRect(rect) { 1008 var r = rect.slice(0); // clone rect 1009 if (rect[0] > rect[2]) { 1010 r[0] = rect[2]; 1011 r[2] = rect[0]; 1012 } 1013 if (rect[1] > rect[3]) { 1014 r[1] = rect[3]; 1015 r[3] = rect[1]; 1016 } 1017 return r; 1018 } 1019 1020 // Returns a rectangle [x1, y1, x2, y2] corresponding to the 1021 // intersection of rect1 and rect2. If no intersection, returns 'false' 1022 // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2] 1023 Util.intersect = function Util_intersect(rect1, rect2) { 1024 function compare(a, b) { 1025 return a - b; 1026 }; 1027 1028 // Order points along the axes 1029 var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare), 1030 orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare), 1031 result = []; 1032 1033 rect1 = Util.normalizeRect(rect1); 1034 rect2 = Util.normalizeRect(rect2); 1035 1036 // X: first and second points belong to different rectangles? 1037 if ((orderedX[0] === rect1[0] && orderedX[1] === rect2[0]) || 1038 (orderedX[0] === rect2[0] && orderedX[1] === rect1[0])) { 1039 // Intersection must be between second and third points 1040 result[0] = orderedX[1]; 1041 result[2] = orderedX[2]; 1042 } else { 1043 return false; 1044 } 1045 1046 // Y: first and second points belong to different rectangles? 1047 if ((orderedY[0] === rect1[1] && orderedY[1] === rect2[1]) || 1048 (orderedY[0] === rect2[1] && orderedY[1] === rect1[1])) { 1049 // Intersection must be between second and third points 1050 result[1] = orderedY[1]; 1051 result[3] = orderedY[2]; 1052 } else { 1053 return false; 1054 } 1055 1056 return result; 1057 }; 1058 1059 Util.sign = function Util_sign(num) { 1060 return num < 0 ? -1 : 1; 1061 }; 1062 1063 return Util; 1064 })(); 1065 1066 var PageViewport = PDFJS.PageViewport = (function PageViewportClosure() { 1067 function PageViewport(viewBox, scale, rotate, offsetX, offsetY) { 1068 // creating transform to convert pdf coordinate system to the normal 1069 // canvas like coordinates taking in account scale and rotation 1070 var centerX = (viewBox[2] + viewBox[0]) / 2; 1071 var centerY = (viewBox[3] + viewBox[1]) / 2; 1072 var rotateA, rotateB, rotateC, rotateD; 1073 switch (rotate) { 1074 case -180: 1075 case 180: 1076 rotateA = -1; rotateB = 0; rotateC = 0; rotateD = 1; 1077 break; 1078 case -270: 1079 case 90: 1080 rotateA = 0; rotateB = 1; rotateC = 1; rotateD = 0; 1081 break; 1082 case -90: 1083 case 270: 1084 rotateA = 0; rotateB = -1; rotateC = -1; rotateD = 0; 1085 break; 1086 case 360: 1087 case 0: 1088 default: 1089 rotateA = 1; rotateB = 0; rotateC = 0; rotateD = -1; 1090 break; 1091 } 1092 var offsetCanvasX, offsetCanvasY; 1093 var width, height; 1094 if (rotateA == 0) { 1095 offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX; 1096 offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY; 1097 width = Math.abs(viewBox[3] - viewBox[1]) * scale; 1098 height = Math.abs(viewBox[2] - viewBox[0]) * scale; 1099 } else { 1100 offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX; 1101 offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY; 1102 width = Math.abs(viewBox[2] - viewBox[0]) * scale; 1103 height = Math.abs(viewBox[3] - viewBox[1]) * scale; 1104 } 1105 // creating transform for the following operations: 1106 // translate(-centerX, -centerY), rotate and flip vertically, 1107 // scale, and translate(offsetCanvasX, offsetCanvasY) 1108 this.transform = [ 1109 rotateA * scale, 1110 rotateB * scale, 1111 rotateC * scale, 1112 rotateD * scale, 1113 offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, 1114 offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY 1115 ]; 1116 1117 this.offsetX = offsetX; 1118 this.offsetY = offsetY; 1119 this.width = width; 1120 this.height = height; 1121 this.fontScale = scale; 1122 } 1123 PageViewport.prototype = { 1124 convertToViewportPoint: function PageViewport_convertToViewportPoint(x, y) { 1125 return Util.applyTransform([x, y], this.transform); 1126 }, 1127 convertToViewportRectangle: 1128 function PageViewport_convertToViewportRectangle(rect) { 1129 var tl = Util.applyTransform([rect[0], rect[1]], this.transform); 1130 var br = Util.applyTransform([rect[2], rect[3]], this.transform); 1131 return [tl[0], tl[1], br[0], br[1]]; 1132 }, 1133 convertToPdfPoint: function PageViewport_convertToPdfPoint(x, y) { 1134 return Util.applyInverseTransform([x, y], this.transform); 1135 } 1136 }; 1137 return PageViewport; 1138 })(); 1139 1140 var PDFStringTranslateTable = [ 1141 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1142 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0, 1143 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1144 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1145 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1146 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 1147 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C, 1148 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160, 1149 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC 1150 ]; 1151 1152 function stringToPDFString(str) { 1153 var i, n = str.length, str2 = ''; 1154 if (str[0] === '\xFE' && str[1] === '\xFF') { 1155 // UTF16BE BOM 1156 for (i = 2; i < n; i += 2) 1157 str2 += String.fromCharCode( 1158 (str.charCodeAt(i) << 8) | str.charCodeAt(i + 1)); 1159 } else { 1160 for (i = 0; i < n; ++i) { 1161 var code = PDFStringTranslateTable[str.charCodeAt(i)]; 1162 str2 += code ? String.fromCharCode(code) : str.charAt(i); 1163 } 1164 } 1165 return str2; 1166 } 1167 1168 function isBool(v) { 1169 return typeof v == 'boolean'; 1170 } 1171 1172 function isInt(v) { 1173 return typeof v == 'number' && ((v | 0) == v); 1174 } 1175 1176 function isNum(v) { 1177 return typeof v == 'number'; 1178 } 1179 1180 function isString(v) { 1181 return typeof v == 'string'; 1182 } 1183 1184 function isNull(v) { 1185 return v === null; 1186 } 1187 1188 function isName(v) { 1189 return v instanceof Name; 1190 } 1191 1192 function isCmd(v, cmd) { 1193 return v instanceof Cmd && (!cmd || v.cmd == cmd); 1194 } 1195 1196 function isDict(v, type) { 1197 return v instanceof Dict && (!type || v.get('Type').name == type); 1198 } 1199 1200 function isArray(v) { 1201 return v instanceof Array; 1202 } 1203 1204 function isStream(v) { 1205 return typeof v == 'object' && v != null && ('getChar' in v); 1206 } 1207 1208 function isArrayBuffer(v) { 1209 return typeof v == 'object' && v != null && ('byteLength' in v); 1210 } 1211 1212 function isRef(v) { 1213 return v instanceof Ref; 1214 } 1215 1216 function isPDFFunction(v) { 1217 var fnDict; 1218 if (typeof v != 'object') 1219 return false; 1220 else if (isDict(v)) 1221 fnDict = v; 1222 else if (isStream(v)) 1223 fnDict = v.dict; 1224 else 1225 return false; 1226 return fnDict.has('FunctionType'); 1227 } 1228 1229 /** 1230 * 'Promise' object. 1231 * Each object that is stored in PDFObjects is based on a Promise object that 1232 * contains the status of the object and the data. There migth be situations, 1233 * where a function want to use the value of an object, but it isn't ready at 1234 * that time. To get a notification, once the object is ready to be used, s.o. 1235 * can add a callback using the `then` method on the promise that then calls 1236 * the callback once the object gets resolved. 1237 * A promise can get resolved only once and only once the data of the promise 1238 * can be set. If any of these happens twice or the data is required before 1239 * it was set, an exception is throw. 1240 */ 1241 var Promise = PDFJS.Promise = (function PromiseClosure() { 1242 var EMPTY_PROMISE = {}; 1243 1244 /** 1245 * If `data` is passed in this constructor, the promise is created resolved. 1246 * If there isn't data, it isn't resolved at the beginning. 1247 */ 1248 function Promise(name, data) { 1249 this.name = name; 1250 this.isRejected = false; 1251 this.error = null; 1252 // If you build a promise and pass in some data it's already resolved. 1253 if (data != null) { 1254 this.isResolved = true; 1255 this._data = data; 1256 this.hasData = true; 1257 } else { 1258 this.isResolved = false; 1259 this._data = EMPTY_PROMISE; 1260 } 1261 this.callbacks = []; 1262 this.errbacks = []; 1263 this.progressbacks = []; 1264 }; 1265 /** 1266 * Builds a promise that is resolved when all the passed in promises are 1267 * resolved. 1268 * @param {Promise[]} promises Array of promises to wait for. 1269 * @return {Promise} New dependant promise. 1270 */ 1271 Promise.all = function Promise_all(promises) { 1272 var deferred = new Promise(); 1273 var unresolved = promises.length; 1274 var results = []; 1275 if (unresolved === 0) { 1276 deferred.resolve(results); 1277 return deferred; 1278 } 1279 for (var i = 0, ii = promises.length; i < ii; ++i) { 1280 var promise = promises[i]; 1281 promise.then((function(i) { 1282 return function(value) { 1283 results[i] = value; 1284 unresolved--; 1285 if (unresolved === 0) 1286 deferred.resolve(results); 1287 }; 1288 })(i)); 1289 } 1290 return deferred; 1291 }; 1292 Promise.prototype = { 1293 hasData: false, 1294 1295 set data(value) { 1296 if (value === undefined) { 1297 return; 1298 } 1299 if (this._data !== EMPTY_PROMISE) { 1300 error('Promise ' + this.name + 1301 ': Cannot set the data of a promise twice'); 1302 } 1303 this._data = value; 1304 this.hasData = true; 1305 1306 if (this.onDataCallback) { 1307 this.onDataCallback(value); 1308 } 1309 }, 1310 1311 get data() { 1312 if (this._data === EMPTY_PROMISE) { 1313 error('Promise ' + this.name + ': Cannot get data that isn\'t set'); 1314 } 1315 return this._data; 1316 }, 1317 1318 onData: function Promise_onData(callback) { 1319 if (this._data !== EMPTY_PROMISE) { 1320 callback(this._data); 1321 } else { 1322 this.onDataCallback = callback; 1323 } 1324 }, 1325 1326 resolve: function Promise_resolve(data) { 1327 if (this.isResolved) { 1328 error('A Promise can be resolved only once ' + this.name); 1329 } 1330 if (this.isRejected) { 1331 error('The Promise was already rejected ' + this.name); 1332 } 1333 1334 this.isResolved = true; 1335 this.data = data || null; 1336 var callbacks = this.callbacks; 1337 1338 for (var i = 0, ii = callbacks.length; i < ii; i++) { 1339 callbacks[i].call(null, data); 1340 } 1341 }, 1342 1343 progress: function Promise_progress(data) { 1344 var callbacks = this.progressbacks; 1345 for (var i = 0, ii = callbacks.length; i < ii; i++) { 1346 callbacks[i].call(null, data); 1347 } 1348 }, 1349 1350 reject: function Promise_reject(reason) { 1351 if (this.isRejected) { 1352 error('A Promise can be rejected only once ' + this.name); 1353 } 1354 if (this.isResolved) { 1355 error('The Promise was already resolved ' + this.name); 1356 } 1357 1358 this.isRejected = true; 1359 this.error = reason || null; 1360 var errbacks = this.errbacks; 1361 1362 for (var i = 0, ii = errbacks.length; i < ii; i++) { 1363 errbacks[i].call(null, reason); 1364 } 1365 }, 1366 1367 then: function Promise_then(callback, errback, progressback) { 1368 if (!callback) { 1369 error('Requiring callback' + this.name); 1370 } 1371 1372 // If the promise is already resolved, call the callback directly. 1373 if (this.isResolved) { 1374 var data = this.data; 1375 callback.call(null, data); 1376 } else if (this.isRejected && errback) { 1377 var error = this.error; 1378 errback.call(null, error); 1379 } else { 1380 this.callbacks.push(callback); 1381 if (errback) 1382 this.errbacks.push(errback); 1383 } 1384 1385 if (progressback) 1386 this.progressbacks.push(progressback); 1387 } 1388 }; 1389 1390 return Promise; 1391 })(); 1392 1393 var StatTimer = (function StatTimerClosure() { 1394 function rpad(str, pad, length) { 1395 while (str.length < length) 1396 str += pad; 1397 return str; 1398 } 1399 function StatTimer() { 1400 this.started = {}; 1401 this.times = []; 1402 this.enabled = true; 1403 } 1404 StatTimer.prototype = { 1405 time: function StatTimer_time(name) { 1406 if (!this.enabled) 1407 return; 1408 if (name in this.started) 1409 throw 'Timer is already running for ' + name; 1410 this.started[name] = Date.now(); 1411 }, 1412 timeEnd: function StatTimer_timeEnd(name) { 1413 if (!this.enabled) 1414 return; 1415 if (!(name in this.started)) 1416 throw 'Timer has not been started for ' + name; 1417 this.times.push({ 1418 'name': name, 1419 'start': this.started[name], 1420 'end': Date.now() 1421 }); 1422 // Remove timer from started so it can be called again. 1423 delete this.started[name]; 1424 }, 1425 toString: function StatTimer_toString() { 1426 var times = this.times; 1427 var out = ''; 1428 // Find the longest name for padding purposes. 1429 var longest = 0; 1430 for (var i = 0, ii = times.length; i < ii; ++i) { 1431 var name = times[i]['name']; 1432 if (name.length > longest) 1433 longest = name.length; 1434 } 1435 for (var i = 0, ii = times.length; i < ii; ++i) { 1436 var span = times[i]; 1437 var duration = span.end - span.start; 1438 out += rpad(span['name'], ' ', longest) + ' ' + duration + 'ms\n'; 1439 } 1440 return out; 1441 } 1442 }; 1443 return StatTimer; 1444 })(); 1445 1446 /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 1447 /* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ 1448 1449 /** 1450 * This is the main entry point for loading a PDF and interacting with it. 1451 * NOTE: If a URL is used to fetch the PDF data a standard XMLHttpRequest(XHR) 1452 * is used, which means it must follow the same origin rules that any XHR does 1453 * e.g. No cross domain requests without CORS. 1454 * 1455 * @param {string|TypedAray} source Either a url to a PDF is located or a 1456 * typed array already populated with data. 1457 * @return {Promise} A promise that is resolved with {PDFDocumentProxy} object. 1458 */ 1459 PDFJS.getDocument = function getDocument(source) { 1460 var promise = new PDFJS.Promise(); 1461 var transport = new WorkerTransport(promise); 1462 if (typeof source === 'string') { 1463 // fetch url 1464 PDFJS.getPdf( 1465 { 1466 url: source, 1467 progress: function getPDFProgress(evt) { 1468 if (evt.lengthComputable) 1469 promise.progress({ 1470 loaded: evt.loaded, 1471 total: evt.total 1472 }); 1473 }, 1474 error: function getPDFError(e) { 1475 promise.reject('Unexpected server response of ' + 1476 e.target.status + '.'); 1477 } 1478 }, 1479 function getPDFLoad(data) { 1480 transport.sendData(data); 1481 }); 1482 } else { 1483 // assuming the source is array, instantiating directly from it 1484 transport.sendData(source); 1485 } 1486 return promise; 1487 }; 1488 1489 /** 1490 * Proxy to a PDFDocument in the worker thread. Also, contains commonly used 1491 * properties that can be read synchronously. 1492 */ 1493 var PDFDocumentProxy = (function PDFDocumentProxyClosure() { 1494 function PDFDocumentProxy(pdfInfo, transport) { 1495 this.pdfInfo = pdfInfo; 1496 this.transport = transport; 1497 } 1498 PDFDocumentProxy.prototype = { 1499 /** 1500 * @return {number} Total number of pages the PDF contains. 1501 */ 1502 get numPages() { 1503 return this.pdfInfo.numPages; 1504 }, 1505 /** 1506 * @return {string} A unique ID to identify a PDF. Not guaranteed to be 1507 * unique. 1508 */ 1509 get fingerprint() { 1510 return this.pdfInfo.fingerprint; 1511 }, 1512 /** 1513 * @param {number} The page number to get. The first page is 1. 1514 * @return {Promise} A promise that is resolved with a {PDFPageProxy} 1515 * object. 1516 */ 1517 getPage: function PDFDocumentProxy_getPage(number) { 1518 return this.transport.getPage(number); 1519 }, 1520 /** 1521 * @return {Promise} A promise that is resolved with a lookup table for 1522 * mapping named destinations to reference numbers. 1523 */ 1524 getDestinations: function PDFDocumentProxy_getDestinations() { 1525 var promise = new PDFJS.Promise(); 1526 var destinations = this.pdfInfo.destinations; 1527 promise.resolve(destinations); 1528 return promise; 1529 }, 1530 /** 1531 * @return {Promise} A promise that is resolved with an {array} that is a 1532 * tree outline (if it has one) of the PDF. The tree is in the format of: 1533 * [ 1534 * { 1535 * title: string, 1536 * bold: boolean, 1537 * italic: boolean, 1538 * color: rgb array, 1539 * dest: dest obj, 1540 * items: array of more items like this 1541 * }, 1542 * ... 1543 * ]. 1544 */ 1545 getOutline: function PDFDocumentProxy_getOutline() { 1546 var promise = new PDFJS.Promise(); 1547 var outline = this.pdfInfo.outline; 1548 promise.resolve(outline); 1549 return promise; 1550 }, 1551 /** 1552 * @return {Promise} A promise that is resolved with an {object} that has 1553 * info and metadata properties. Info is an {object} filled with anything 1554 * available in the information dictionary and similarly metadata is a 1555 * {Metadata} object with information from the metadata section of the PDF. 1556 */ 1557 getMetadata: function PDFDocumentProxy_getMetadata() { 1558 var promise = new PDFJS.Promise(); 1559 var info = this.pdfInfo.info; 1560 var metadata = this.pdfInfo.metadata; 1561 promise.resolve({ 1562 info: info, 1563 metadata: metadata ? new PDFJS.Metadata(metadata) : null 1564 }); 1565 return promise; 1566 }, 1567 destroy: function PDFDocumentProxy_destroy() { 1568 this.transport.destroy(); 1569 } 1570 }; 1571 return PDFDocumentProxy; 1572 })(); 1573 1574 var PDFPageProxy = (function PDFPageProxyClosure() { 1575 function PDFPageProxy(pageInfo, transport) { 1576 this.pageInfo = pageInfo; 1577 this.transport = transport; 1578 this.stats = new StatTimer(); 1579 this.stats.enabled = !!globalScope.PDFJS.enableStats; 1580 this.objs = transport.objs; 1581 this.renderInProgress = false; 1582 } 1583 PDFPageProxy.prototype = { 1584 /** 1585 * @return {number} Page number of the page. First page is 1. 1586 */ 1587 get pageNumber() { 1588 return this.pageInfo.pageIndex + 1; 1589 }, 1590 /** 1591 * @return {number} The number of degrees the page is rotated clockwise. 1592 */ 1593 get rotate() { 1594 return this.pageInfo.rotate; 1595 }, 1596 /** 1597 * @return {object} The reference that points to this page. It has 'num' and 1598 * 'gen' properties. 1599 */ 1600 get ref() { 1601 return this.pageInfo.ref; 1602 }, 1603 /** 1604 * @return {array} An array of the visible portion of the PDF page in the 1605 * user space units - [x1, y1, x2, y2]. 1606 */ 1607 get view() { 1608 return this.pageInfo.view; 1609 }, 1610 /** 1611 * @param {number} scale The desired scale of the viewport. 1612 * @param {number} rotate Degrees to rotate the viewport. If omitted this 1613 * defaults to the page rotation. 1614 * @return {PageViewport} Contains 'width' and 'height' properties along 1615 * with transforms required for rendering. 1616 */ 1617 getViewport: function PDFPageProxy_getViewport(scale, rotate) { 1618 if (arguments.length < 2) 1619 rotate = this.rotate; 1620 return new PDFJS.PageViewport(this.view, scale, rotate, 0, 0); 1621 }, 1622 /** 1623 * @return {Promise} A promise that is resolved with an {array} of the 1624 * annotation objects. 1625 */ 1626 getAnnotations: function PDFPageProxy_getAnnotations() { 1627 if (this.annotationsPromise) 1628 return this.annotationsPromise; 1629 1630 var promise = new PDFJS.Promise(); 1631 this.annotationsPromise = promise; 1632 this.transport.getAnnotations(this.pageInfo.pageIndex); 1633 return promise; 1634 }, 1635 /** 1636 * Begins the process of rendering a page to the desired context. 1637 * @param {object} params A parameter object that supports: 1638 * { 1639 * canvasContext(required): A 2D context of a DOM Canvas object., 1640 * textLayer(optional): An object that has beginLayout, endLayout, and 1641 * appendText functions. 1642 * }. 1643 * @return {Promise} A promise that is resolved when the page finishes 1644 * rendering. 1645 */ 1646 render: function PDFPageProxy_render(params) { 1647 this.renderInProgress = true; 1648 1649 var promise = new Promise(); 1650 var stats = this.stats; 1651 stats.time('Overall'); 1652 // If there is no displayReadyPromise yet, then the operatorList was never 1653 // requested before. Make the request and create the promise. 1654 if (!this.displayReadyPromise) { 1655 this.displayReadyPromise = new Promise(); 1656 this.destroyed = false; 1657 1658 this.stats.time('Page Request'); 1659 this.transport.messageHandler.send('RenderPageRequest', { 1660 pageIndex: this.pageNumber - 1 1661 }); 1662 } 1663 1664 var self = this; 1665 function complete(error) { 1666 self.renderInProgress = false; 1667 if (self.destroyed) { 1668 delete self.operatorList; 1669 delete self.displayReadyPromise; 1670 } 1671 1672 if (error) 1673 promise.reject(error); 1674 else 1675 promise.resolve(); 1676 }; 1677 1678 // Once the operatorList and fonts are loaded, do the actual rendering. 1679 this.displayReadyPromise.then( 1680 function pageDisplayReadyPromise() { 1681 if (self.destroyed) { 1682 complete(); 1683 return; 1684 } 1685 1686 var gfx = new CanvasGraphics(params.canvasContext, 1687 this.objs, params.textLayer); 1688 try { 1689 this.display(gfx, params.viewport, complete); 1690 } catch (e) { 1691 complete(e); 1692 } 1693 }.bind(this), 1694 function pageDisplayReadPromiseError(reason) { 1695 complete(reason); 1696 } 1697 ); 1698 1699 return promise; 1700 }, 1701 /** 1702 * For internal use only. 1703 */ 1704 startRenderingFromOperatorList: 1705 function PDFPageProxy_startRenderingFromOperatorList(operatorList, 1706 fonts) { 1707 var self = this; 1708 this.operatorList = operatorList; 1709 1710 var displayContinuation = function pageDisplayContinuation() { 1711 // Always defer call to display() to work around bug in 1712 // Firefox error reporting from XHR callbacks. 1713 PdfJS_window.setTimeout(function pageSetTimeout() { 1714 self.displayReadyPromise.resolve(); 1715 }); 1716 }; 1717 1718 this.ensureFonts(fonts, 1719 function pageStartRenderingFromOperatorListEnsureFonts() { 1720 displayContinuation(); 1721 } 1722 ); 1723 }, 1724 /** 1725 * For internal use only. 1726 */ 1727 ensureFonts: function PDFPageProxy_ensureFonts(fonts, callback) { 1728 this.stats.time('Font Loading'); 1729 // Convert the font names to the corresponding font obj. 1730 for (var i = 0, ii = fonts.length; i < ii; i++) { 1731 fonts[i] = this.objs.objs[fonts[i]].data; 1732 } 1733 1734 // Load all the fonts 1735 FontLoader.bind( 1736 fonts, 1737 function pageEnsureFontsFontObjs(fontObjs) { 1738 this.stats.timeEnd('Font Loading'); 1739 1740 callback.call(this); 1741 }.bind(this) 1742 ); 1743 }, 1744 /** 1745 * For internal use only. 1746 */ 1747 display: function PDFPageProxy_display(gfx, viewport, callback) { 1748 var stats = this.stats; 1749 stats.time('Rendering'); 1750 1751 gfx.beginDrawing(viewport); 1752 1753 var startIdx = 0; 1754 var length = this.operatorList.fnArray.length; 1755 var operatorList = this.operatorList; 1756 var stepper = null; 1757 if (PDFJS.pdfBug && StepperManager.enabled) { 1758 stepper = StepperManager.create(this.pageNumber - 1); 1759 stepper.init(operatorList); 1760 stepper.nextBreakPoint = stepper.getNextBreakPoint(); 1761 } 1762 1763 var self = this; 1764 function next() { 1765 startIdx = 1766 gfx.executeOperatorList(operatorList, startIdx, next, stepper); 1767 if (startIdx == length) { 1768 gfx.endDrawing(); 1769 stats.timeEnd('Rendering'); 1770 stats.timeEnd('Overall'); 1771 if (callback) callback(); 1772 } 1773 } 1774 next(); 1775 }, 1776 /** 1777 * Stub for future feature. 1778 */ 1779 getTextContent: function PDFPageProxy_getTextContent() { 1780 var promise = new PDFJS.Promise(); 1781 var textContent = 'page text'; // not implemented 1782 promise.resolve(textContent); 1783 return promise; 1784 }, 1785 /** 1786 * Stub for future feature. 1787 */ 1788 getOperationList: function PDFPageProxy_getOperationList() { 1789 var promise = new PDFJS.Promise(); 1790 var operationList = { // not implemented 1791 dependencyFontsID: null, 1792 operatorList: null 1793 }; 1794 promise.resolve(operationList); 1795 return promise; 1796 }, 1797 /** 1798 * Destroys resources allocated by the page. 1799 */ 1800 destroy: function PDFPageProxy_destroy() { 1801 this.destroyed = true; 1802 1803 if (!this.renderInProgress) { 1804 delete this.operatorList; 1805 delete this.displayReadyPromise; 1806 } 1807 } 1808 }; 1809 return PDFPageProxy; 1810 })(); 1811 /** 1812 * For internal use only. 1813 */ 1814 var WorkerTransport = (function WorkerTransportClosure() { 1815 function WorkerTransport(promise) { 1816 this.workerReadyPromise = promise; 1817 this.objs = new PDFObjects(); 1818 1819 this.pageCache = []; 1820 this.pagePromises = []; 1821 this.fontsLoading = {}; 1822 1823 // If worker support isn't disabled explicit and the browser has worker 1824 // support, create a new web worker and test if it/the browser fullfills 1825 // all requirements to run parts of pdf.js in a web worker. 1826 // Right now, the requirement is, that an Uint8Array is still an Uint8Array 1827 // as it arrives on the worker. Chrome added this with version 15. 1828 if (!globalScope.PDFJS.disableWorker && typeof PdfJS_window.Worker !== 'undefined') { 1829 var workerSrc = PDFJS.workerSrc; 1830 if (typeof workerSrc === 'undefined') { 1831 error('No PDFJS.workerSrc specified'); 1832 } 1833 1834 try { 1835 var worker; 1836 if (PDFJS.isFirefoxExtension) { 1837 // The firefox extension can't load the worker from the resource:// 1838 // url so we have to inline the script and then use the blob loader. 1839 var bb = new MozBlobBuilder(); 1840 bb.append(PdfJS_window.document.querySelector('#PDFJS_SCRIPT_TAG').textContent); 1841 var blobUrl = PdfJS_window.window.URL.createObjectURL(bb.getBlob()); 1842 worker = new Worker(blobUrl); 1843 } else { 1844 // Some versions of FF can't create a worker on localhost, see: 1845 // https://bugzilla.mozilla.org/show_bug.cgi?id=683280 1846 worker = new Worker(workerSrc); 1847 } 1848 1849 var messageHandler = new MessageHandler('main', worker); 1850 this.messageHandler = messageHandler; 1851 1852 messageHandler.on('test', function transportTest(supportTypedArray) { 1853 if (supportTypedArray) { 1854 this.worker = worker; 1855 this.setupMessageHandler(messageHandler); 1856 } else { 1857 globalScope.PDFJS.disableWorker = true; 1858 this.setupFakeWorker(); 1859 } 1860 }.bind(this)); 1861 1862 var testObj = new Uint8Array(1); 1863 // Some versions of Opera throw a DATA_CLONE_ERR on 1864 // serializing the typed array. 1865 messageHandler.send('test', testObj); 1866 return; 1867 } catch (e) { 1868 warn('The worker has been disabled.'); 1869 } 1870 } 1871 // Either workers are disabled, not supported or have thrown an exception. 1872 // Thus, we fallback to a faked worker. 1873 globalScope.PDFJS.disableWorker = true; 1874 this.setupFakeWorker(); 1875 } 1876 WorkerTransport.prototype = { 1877 destroy: function WorkerTransport_destroy() { 1878 if (this.worker) 1879 this.worker.terminate(); 1880 1881 this.pageCache = []; 1882 this.pagePromises = []; 1883 }, 1884 setupFakeWorker: function WorkerTransport_setupFakeWorker() { 1885 // If we don't use a worker, just post/sendMessage to the main thread. 1886 var fakeWorker = { 1887 postMessage: function WorkerTransport_postMessage(obj) { 1888 fakeWorker.onmessage({data: obj}); 1889 }, 1890 terminate: function WorkerTransport_terminate() {} 1891 }; 1892 1893 var messageHandler = new MessageHandler('main', fakeWorker); 1894 this.setupMessageHandler(messageHandler); 1895 1896 // If the main thread is our worker, setup the handling for the messages 1897 // the main thread sends to it self. 1898 WorkerMessageHandler.setup(messageHandler); 1899 }, 1900 1901 setupMessageHandler: 1902 function WorkerTransport_setupMessageHandler(messageHandler) { 1903 this.messageHandler = messageHandler; 1904 1905 messageHandler.on('GetDoc', function transportDoc(data) { 1906 var pdfInfo = data.pdfInfo; 1907 var pdfDocument = new PDFDocumentProxy(pdfInfo, this); 1908 this.pdfDocument = pdfDocument; 1909 this.workerReadyPromise.resolve(pdfDocument); 1910 }, this); 1911 1912 messageHandler.on('GetPage', function transportPage(data) { 1913 var pageInfo = data.pageInfo; 1914 var page = new PDFPageProxy(pageInfo, this); 1915 this.pageCache[pageInfo.pageIndex] = page; 1916 var promise = this.pagePromises[pageInfo.pageIndex]; 1917 promise.resolve(page); 1918 }, this); 1919 1920 messageHandler.on('GetAnnotations', function transportAnnotations(data) { 1921 var annotations = data.annotations; 1922 var promise = this.pageCache[data.pageIndex].annotationsPromise; 1923 promise.resolve(annotations); 1924 }, this); 1925 1926 messageHandler.on('RenderPage', function transportRender(data) { 1927 var page = this.pageCache[data.pageIndex]; 1928 var depFonts = data.depFonts; 1929 1930 page.stats.timeEnd('Page Request'); 1931 page.startRenderingFromOperatorList(data.operatorList, depFonts); 1932 }, this); 1933 1934 messageHandler.on('obj', function transportObj(data) { 1935 var id = data[0]; 1936 var type = data[1]; 1937 if (this.objs.hasData(id)) 1938 return; 1939 1940 switch (type) { 1941 case 'JpegStream': 1942 var imageData = data[2]; 1943 loadJpegStream(id, imageData, this.objs); 1944 break; 1945 case 'Image': 1946 var imageData = data[2]; 1947 this.objs.resolve(id, imageData); 1948 break; 1949 case 'Font': 1950 var name = data[2]; 1951 var file = data[3]; 1952 var properties = data[4]; 1953 1954 if (file) { 1955 // Rewrap the ArrayBuffer in a stream. 1956 var fontFileDict = new Dict(); 1957 file = new Stream(file, 0, file.length, fontFileDict); 1958 } 1959 1960 // At this point, only the font object is created but the font is 1961 // not yet attached to the DOM. This is done in `FontLoader.bind`. 1962 var font = new Font(name, file, properties); 1963 this.objs.resolve(id, font); 1964 break; 1965 default: 1966 error('Got unkown object type ' + type); 1967 } 1968 }, this); 1969 1970 messageHandler.on('PageError', function transportError(data) { 1971 var page = this.pageCache[data.pageNum - 1]; 1972 if (page.displayReadyPromise) 1973 page.displayReadyPromise.reject(data.error); 1974 else 1975 error(data.error); 1976 }, this); 1977 1978 messageHandler.on('JpegDecode', function(data, promise) { 1979 var imageData = data[0]; 1980 var components = data[1]; 1981 if (components != 3 && components != 1) 1982 error('Only 3 component or 1 component can be returned'); 1983 1984 var img = new Image(); 1985 img.onload = (function messageHandler_onloadClosure() { 1986 var width = img.width; 1987 var height = img.height; 1988 var size = width * height; 1989 var rgbaLength = size * 4; 1990 var buf = new Uint8Array(size * components); 1991 var tmpCanvas = createScratchCanvas(width, height); 1992 var tmpCtx = tmpCanvas.getContext('2d'); 1993 tmpCtx.drawImage(img, 0, 0); 1994 var data = tmpCtx.getImageData(0, 0, width, height).data; 1995 1996 if (components == 3) { 1997 for (var i = 0, j = 0; i < rgbaLength; i += 4, j += 3) { 1998 buf[j] = data[i]; 1999 buf[j + 1] = data[i + 1]; 2000 buf[j + 2] = data[i + 2]; 2001 } 2002 } else if (components == 1) { 2003 for (var i = 0, j = 0; i < rgbaLength; i += 4, j++) { 2004 buf[j] = data[i]; 2005 } 2006 } 2007 promise.resolve({ data: buf, width: width, height: height}); 2008 }).bind(this); 2009 var src = 'data:image/jpeg;base64,' + PdfJS_window.window.btoa(imageData); 2010 img.src = src; 2011 }); 2012 }, 2013 2014 sendData: function WorkerTransport_sendData(data) { 2015 this.messageHandler.send('GetDocRequest', data); 2016 }, 2017 2018 getPage: function WorkerTransport_getPage(pageNumber, promise) { 2019 var pageIndex = pageNumber - 1; 2020 if (pageIndex in this.pagePromises) 2021 return this.pagePromises[pageIndex]; 2022 var promise = new PDFJS.Promise('Page ' + pageNumber); 2023 this.pagePromises[pageIndex] = promise; 2024 this.messageHandler.send('GetPageRequest', { pageIndex: pageIndex }); 2025 return promise; 2026 }, 2027 2028 getAnnotations: function WorkerTransport_getAnnotations(pageIndex) { 2029 this.messageHandler.send('GetAnnotationsRequest', 2030 { pageIndex: pageIndex }); 2031 } 2032 }; 2033 return WorkerTransport; 2034 2035 })(); 2036 2037 /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2038 /* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ 2039 2040 'use strict'; 2041 2042 // <canvas> contexts store most of the state we need natively. 2043 // However, PDF needs a bit more state, which we store here. 2044 2045 var TextRenderingMode = { 2046 FILL: 0, 2047 STROKE: 1, 2048 FILL_STROKE: 2, 2049 INVISIBLE: 3, 2050 FILL_ADD_TO_PATH: 4, 2051 STROKE_ADD_TO_PATH: 5, 2052 FILL_STROKE_ADD_TO_PATH: 6, 2053 ADD_TO_PATH: 7 2054 }; 2055 2056 // Minimal font size that would be used during canvas fillText operations. 2057 var MIN_FONT_SIZE = 1; 2058 2059 function createScratchCanvas(width, height) { 2060 var canvas = PdfJS_window.document.createElement('canvas'); 2061 canvas.width = width; 2062 canvas.height = height; 2063 return canvas; 2064 } 2065 2066 function addContextCurrentTransform(ctx) { 2067 // If the context doesn't expose a `mozCurrentTransform`, add a JS based on. 2068 if (!ctx.mozCurrentTransform) { 2069 // Store the original context 2070 ctx._originalSave = ctx.save; 2071 ctx._originalRestore = ctx.restore; 2072 ctx._originalRotate = ctx.rotate; 2073 ctx._originalScale = ctx.scale; 2074 ctx._originalTranslate = ctx.translate; 2075 ctx._originalTransform = ctx.transform; 2076 2077 ctx._transformMatrix = [1, 0, 0, 1, 0, 0]; 2078 ctx._transformStack = []; 2079 2080 Object.defineProperty(ctx, 'mozCurrentTransform', { 2081 get: function getCurrentTransform() { 2082 return this._transformMatrix; 2083 } 2084 }); 2085 2086 Object.defineProperty(ctx, 'mozCurrentTransformInverse', { 2087 get: function getCurrentTransformInverse() { 2088 // Calculation done using WolframAlpha: 2089 // http://www.wolframalpha.com/input/? 2090 // i=Inverse+{{a%2C+c%2C+e}%2C+{b%2C+d%2C+f}%2C+{0%2C+0%2C+1}} 2091 2092 var m = this._transformMatrix; 2093 var a = m[0], b = m[1], c = m[2], d = m[3], e = m[4], f = m[5]; 2094 2095 var ad_bc = a * d - b * c; 2096 var bc_ad = b * c - a * d; 2097 2098 return [ 2099 d / ad_bc, 2100 b / bc_ad, 2101 c / bc_ad, 2102 a / ad_bc, 2103 (d * e - c * f) / bc_ad, 2104 (b * e - a * f) / ad_bc 2105 ]; 2106 } 2107 }); 2108 2109 ctx.save = function ctxSave() { 2110 var old = this._transformMatrix; 2111 this._transformStack.push(old); 2112 this._transformMatrix = old.slice(0, 6); 2113 2114 this._originalSave(); 2115 }; 2116 2117 ctx.restore = function ctxRestore() { 2118 var prev = this._transformStack.pop(); 2119 if (prev) { 2120 this._transformMatrix = prev; 2121 this._originalRestore(); 2122 } 2123 }; 2124 2125 ctx.translate = function ctxTranslate(x, y) { 2126 var m = this._transformMatrix; 2127 m[4] = m[0] * x + m[2] * y + m[4]; 2128 m[5] = m[1] * x + m[3] * y + m[5]; 2129 2130 this._originalTranslate(x, y); 2131 }; 2132 2133 ctx.scale = function ctxScale(x, y) { 2134 var m = this._transformMatrix; 2135 m[0] = m[0] * x; 2136 m[1] = m[1] * x; 2137 m[2] = m[2] * y; 2138 m[3] = m[3] * y; 2139 2140 this._originalScale(x, y); 2141 }; 2142 2143 ctx.transform = function ctxTransform(a, b, c, d, e, f) { 2144 var m = this._transformMatrix; 2145 this._transformMatrix = [ 2146 m[0] * a + m[2] * b, 2147 m[1] * a + m[3] * b, 2148 m[0] * c + m[2] * d, 2149 m[1] * c + m[3] * d, 2150 m[0] * e + m[2] * f + m[4], 2151 m[1] * e + m[3] * f + m[5] 2152 ]; 2153 2154 ctx._originalTransform(a, b, c, d, e, f); 2155 }; 2156 2157 ctx.rotate = function ctxRotate(angle) { 2158 var cosValue = Math.cos(angle); 2159 var sinValue = Math.sin(angle); 2160 2161 var m = this._transformMatrix; 2162 this._transformMatrix = [ 2163 m[0] * cosValue + m[2] * sinValue, 2164 m[1] * cosValue + m[3] * sinValue, 2165 m[0] * (-sinValue) + m[2] * cosValue, 2166 m[1] * (-sinValue) + m[3] * cosValue, 2167 m[4], 2168 m[5] 2169 ]; 2170 2171 this._originalRotate(angle); 2172 }; 2173 } 2174 } 2175 2176 var CanvasExtraState = (function CanvasExtraStateClosure() { 2177 function CanvasExtraState(old) { 2178 // Are soft masks and alpha values shapes or opacities? 2179 this.alphaIsShape = false; 2180 this.fontSize = 0; 2181 this.fontSizeScale = 1; 2182 this.textMatrix = IDENTITY_MATRIX; 2183 this.fontMatrix = IDENTITY_MATRIX; 2184 this.leading = 0; 2185 // Current point (in user coordinates) 2186 this.x = 0; 2187 this.y = 0; 2188 // Start of text line (in text coordinates) 2189 this.lineX = 0; 2190 this.lineY = 0; 2191 // Character and word spacing 2192 this.charSpacing = 0; 2193 this.wordSpacing = 0; 2194 this.textHScale = 1; 2195 this.textRenderingMode = TextRenderingMode.FILL; 2196 // Color spaces 2197 this.fillColorSpace = new DeviceGrayCS(); 2198 this.fillColorSpaceObj = null; 2199 this.strokeColorSpace = new DeviceGrayCS(); 2200 this.strokeColorSpaceObj = null; 2201 this.fillColorObj = null; 2202 this.strokeColorObj = null; 2203 // Default fore and background colors 2204 this.fillColor = '#000000'; 2205 this.strokeColor = '#000000'; 2206 // Note: fill alpha applies to all non-stroking operations 2207 this.fillAlpha = 1; 2208 this.strokeAlpha = 1; 2209 this.lineWidth = 1; 2210 2211 this.old = old; 2212 } 2213 2214 CanvasExtraState.prototype = { 2215 clone: function CanvasExtraState_clone() { 2216 return Object.create(this); 2217 }, 2218 setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) { 2219 this.x = x; 2220 this.y = y; 2221 } 2222 }; 2223 return CanvasExtraState; 2224 })(); 2225 2226 var CanvasGraphics = (function CanvasGraphicsClosure() { 2227 // Defines the time the executeOperatorList is going to be executing 2228 // before it stops and shedules a continue of execution. 2229 var kExecutionTime = 15; 2230 2231 function CanvasGraphics(canvasCtx, objs, textLayer) { 2232 this.ctx = canvasCtx; 2233 this.current = new CanvasExtraState(); 2234 this.stateStack = []; 2235 this.pendingClip = null; 2236 this.res = null; 2237 this.xobjs = null; 2238 this.objs = objs; 2239 this.textLayer = textLayer; 2240 if (canvasCtx) { 2241 addContextCurrentTransform(canvasCtx); 2242 } 2243 } 2244 2245 var LINE_CAP_STYLES = ['butt', 'round', 'square']; 2246 var LINE_JOIN_STYLES = ['miter', 'round', 'bevel']; 2247 var NORMAL_CLIP = {}; 2248 var EO_CLIP = {}; 2249 2250 CanvasGraphics.prototype = { 2251 slowCommands: { 2252 'stroke': true, 2253 'closeStroke': true, 2254 'fill': true, 2255 'eoFill': true, 2256 'fillStroke': true, 2257 'eoFillStroke': true, 2258 'closeFillStroke': true, 2259 'closeEOFillStroke': true, 2260 'showText': true, 2261 'showSpacedText': true, 2262 'setStrokeColorSpace': true, 2263 'setFillColorSpace': true, 2264 'setStrokeColor': true, 2265 'setStrokeColorN': true, 2266 'setFillColor': true, 2267 'setFillColorN': true, 2268 'setStrokeGray': true, 2269 'setFillGray': true, 2270 'setStrokeRGBColor': true, 2271 'setFillRGBColor': true, 2272 'setStrokeCMYKColor': true, 2273 'setFillCMYKColor': true, 2274 'paintJpegXObject': true, 2275 'paintImageXObject': true, 2276 'paintImageMaskXObject': true, 2277 'shadingFill': true 2278 }, 2279 2280 beginDrawing: function CanvasGraphics_beginDrawing(viewport) { 2281 var transform = viewport.transform; 2282 this.ctx.save(); 2283 this.ctx.transform.apply(this.ctx, transform); 2284 2285 if (this.textLayer) 2286 this.textLayer.beginLayout(); 2287 }, 2288 2289 executeOperatorList: function CanvasGraphics_executeOperatorList( 2290 operatorList, 2291 executionStartIdx, continueCallback, 2292 stepper) { 2293 var argsArray = operatorList.argsArray; 2294 var fnArray = operatorList.fnArray; 2295 var i = executionStartIdx || 0; 2296 var argsArrayLen = argsArray.length; 2297 2298 // Sometimes the OperatorList to execute is empty. 2299 if (argsArrayLen == i) { 2300 return i; 2301 } 2302 2303 var executionEndIdx; 2304 var endTime = Date.now() + kExecutionTime; 2305 2306 var objs = this.objs; 2307 var fnName; 2308 var slowCommands = this.slowCommands; 2309 2310 while (true) { 2311 if (stepper && i === stepper.nextBreakPoint) { 2312 stepper.breakIt(i, continueCallback); 2313 return i; 2314 } 2315 2316 fnName = fnArray[i]; 2317 2318 if (fnName !== 'dependency') { 2319 this[fnName].apply(this, argsArray[i]); 2320 } else { 2321 var deps = argsArray[i]; 2322 for (var n = 0, nn = deps.length; n < nn; n++) { 2323 var depObjId = deps[n]; 2324 2325 // If the promise isn't resolved yet, add the continueCallback 2326 // to the promise and bail out. 2327 if (!objs.isResolved(depObjId)) { 2328 objs.get(depObjId, continueCallback); 2329 return i; 2330 } 2331 } 2332 } 2333 2334 i++; 2335 2336 // If the entire operatorList was executed, stop as were done. 2337 if (i == argsArrayLen) { 2338 return i; 2339 } 2340 2341 // If the execution took longer then a certain amount of time, shedule 2342 // to continue exeution after a short delay. 2343 // However, this is only possible if a 'continueCallback' is passed in. 2344 if (continueCallback && slowCommands[fnName] && Date.now() > endTime) { 2345 PdfJS_window.setTimeout(continueCallback, 0); 2346 return i; 2347 } 2348 2349 // If the operatorList isn't executed completely yet OR the execution 2350 // time was short enough, do another execution round. 2351 } 2352 }, 2353 2354 endDrawing: function CanvasGraphics_endDrawing() { 2355 this.ctx.restore(); 2356 2357 if (this.textLayer) 2358 this.textLayer.endLayout(); 2359 }, 2360 2361 // Graphics state 2362 setLineWidth: function CanvasGraphics_setLineWidth(width) { 2363 this.current.lineWidth = width; 2364 this.ctx.lineWidth = width; 2365 }, 2366 setLineCap: function CanvasGraphics_setLineCap(style) { 2367 this.ctx.lineCap = LINE_CAP_STYLES[style]; 2368 }, 2369 setLineJoin: function CanvasGraphics_setLineJoin(style) { 2370 this.ctx.lineJoin = LINE_JOIN_STYLES[style]; 2371 }, 2372 setMiterLimit: function CanvasGraphics_setMiterLimit(limit) { 2373 this.ctx.miterLimit = limit; 2374 }, 2375 setDash: function CanvasGraphics_setDash(dashArray, dashPhase) { 2376 this.ctx.mozDash = dashArray; 2377 this.ctx.mozDashOffset = dashPhase; 2378 this.ctx.webkitLineDash = dashArray; 2379 this.ctx.webkitLineDashOffset = dashPhase; 2380 }, 2381 setRenderingIntent: function CanvasGraphics_setRenderingIntent(intent) { 2382 TODO('set rendering intent: ' + intent); 2383 }, 2384 setFlatness: function CanvasGraphics_setFlatness(flatness) { 2385 TODO('set flatness: ' + flatness); 2386 }, 2387 setGState: function CanvasGraphics_setGState(states) { 2388 for (var i = 0, ii = states.length; i < ii; i++) { 2389 var state = states[i]; 2390 var key = state[0]; 2391 var value = state[1]; 2392 2393 switch (key) { 2394 case 'LW': 2395 this.setLineWidth(value); 2396 break; 2397 case 'LC': 2398 this.setLineCap(value); 2399 break; 2400 case 'LJ': 2401 this.setLineJoin(value); 2402 break; 2403 case 'ML': 2404 this.setMiterLimit(value); 2405 break; 2406 case 'D': 2407 this.setDash(value[0], value[1]); 2408 break; 2409 case 'RI': 2410 this.setRenderingIntent(value); 2411 break; 2412 case 'FL': 2413 this.setFlatness(value); 2414 break; 2415 case 'Font': 2416 this.setFont(state[1], state[2]); 2417 break; 2418 case 'CA': 2419 this.current.strokeAlpha = state[1]; 2420 break; 2421 case 'ca': 2422 this.current.fillAlpha = state[1]; 2423 this.ctx.globalAlpha = state[1]; 2424 break; 2425 } 2426 } 2427 }, 2428 save: function CanvasGraphics_save() { 2429 this.ctx.save(); 2430 var old = this.current; 2431 this.stateStack.push(old); 2432 this.current = old.clone(); 2433 }, 2434 restore: function CanvasGraphics_restore() { 2435 var prev = this.stateStack.pop(); 2436 if (prev) { 2437 this.current = prev; 2438 this.ctx.restore(); 2439 } 2440 }, 2441 transform: function CanvasGraphics_transform(a, b, c, d, e, f) { 2442 this.ctx.transform(a, b, c, d, e, f); 2443 }, 2444 2445 // Path 2446 moveTo: function CanvasGraphics_moveTo(x, y) { 2447 this.ctx.moveTo(x, y); 2448 this.current.setCurrentPoint(x, y); 2449 }, 2450 lineTo: function CanvasGraphics_lineTo(x, y) { 2451 this.ctx.lineTo(x, y); 2452 this.current.setCurrentPoint(x, y); 2453 }, 2454 curveTo: function CanvasGraphics_curveTo(x1, y1, x2, y2, x3, y3) { 2455 this.ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3); 2456 this.current.setCurrentPoint(x3, y3); 2457 }, 2458 curveTo2: function CanvasGraphics_curveTo2(x2, y2, x3, y3) { 2459 var current = this.current; 2460 this.ctx.bezierCurveTo(current.x, current.y, x2, y2, x3, y3); 2461 current.setCurrentPoint(x3, y3); 2462 }, 2463 curveTo3: function CanvasGraphics_curveTo3(x1, y1, x3, y3) { 2464 this.curveTo(x1, y1, x3, y3, x3, y3); 2465 this.current.setCurrentPoint(x3, y3); 2466 }, 2467 closePath: function CanvasGraphics_closePath() { 2468 this.ctx.closePath(); 2469 }, 2470 rectangle: function CanvasGraphics_rectangle(x, y, width, height) { 2471 this.ctx.rect(x, y, width, height); 2472 }, 2473 stroke: function CanvasGraphics_stroke(consumePath) { 2474 consumePath = typeof consumePath !== 'undefined' ? consumePath : true; 2475 var ctx = this.ctx; 2476 var strokeColor = this.current.strokeColor; 2477 if (this.current.lineWidth === 0) 2478 ctx.lineWidth = this.getSinglePixelWidth(); 2479 // For stroke we want to temporarily change the global alpha to the 2480 // stroking alpha. 2481 ctx.globalAlpha = this.current.strokeAlpha; 2482 if (strokeColor && strokeColor.hasOwnProperty('type') && 2483 strokeColor.type === 'Pattern') { 2484 // for patterns, we transform to pattern space, calculate 2485 // the pattern, call stroke, and restore to user space 2486 ctx.save(); 2487 ctx.strokeStyle = strokeColor.getPattern(ctx); 2488 ctx.stroke(); 2489 ctx.restore(); 2490 } else { 2491 ctx.stroke(); 2492 } 2493 if (consumePath) 2494 this.consumePath(); 2495 // Restore the global alpha to the fill alpha 2496 ctx.globalAlpha = this.current.fillAlpha; 2497 }, 2498 closeStroke: function CanvasGraphics_closeStroke() { 2499 this.closePath(); 2500 this.stroke(); 2501 }, 2502 fill: function CanvasGraphics_fill(consumePath) { 2503 consumePath = typeof consumePath !== 'undefined' ? consumePath : true; 2504 var ctx = this.ctx; 2505 var fillColor = this.current.fillColor; 2506 2507 if (fillColor && fillColor.hasOwnProperty('type') && 2508 fillColor.type === 'Pattern') { 2509 ctx.save(); 2510 ctx.fillStyle = fillColor.getPattern(ctx); 2511 ctx.fill(); 2512 ctx.restore(); 2513 } else { 2514 ctx.fill(); 2515 } 2516 if (consumePath) 2517 this.consumePath(); 2518 }, 2519 eoFill: function CanvasGraphics_eoFill() { 2520 var savedFillRule = this.setEOFillRule(); 2521 this.fill(); 2522 this.restoreFillRule(savedFillRule); 2523 }, 2524 fillStroke: function CanvasGraphics_fillStroke() { 2525 this.fill(false); 2526 this.stroke(false); 2527 2528 this.consumePath(); 2529 }, 2530 eoFillStroke: function CanvasGraphics_eoFillStroke() { 2531 var savedFillRule = this.setEOFillRule(); 2532 this.fillStroke(); 2533 this.restoreFillRule(savedFillRule); 2534 }, 2535 closeFillStroke: function CanvasGraphics_closeFillStroke() { 2536 this.closePath(); 2537 this.fillStroke(); 2538 }, 2539 closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() { 2540 var savedFillRule = this.setEOFillRule(); 2541 this.closePath(); 2542 this.fillStroke(); 2543 this.restoreFillRule(savedFillRule); 2544 }, 2545 endPath: function CanvasGraphics_endPath() { 2546 this.consumePath(); 2547 }, 2548 2549 // Clipping 2550 clip: function CanvasGraphics_clip() { 2551 this.pendingClip = NORMAL_CLIP; 2552 }, 2553 eoClip: function CanvasGraphics_eoClip() { 2554 this.pendingClip = EO_CLIP; 2555 }, 2556 2557 // Text 2558 beginText: function CanvasGraphics_beginText() { 2559 this.current.textMatrix = IDENTITY_MATRIX; 2560 this.current.x = this.current.lineX = 0; 2561 this.current.y = this.current.lineY = 0; 2562 }, 2563 endText: function CanvasGraphics_endText() { 2564 }, 2565 setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) { 2566 this.current.charSpacing = spacing; 2567 }, 2568 setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) { 2569 this.current.wordSpacing = spacing; 2570 }, 2571 setHScale: function CanvasGraphics_setHScale(scale) { 2572 this.current.textHScale = scale / 100; 2573 }, 2574 setLeading: function CanvasGraphics_setLeading(leading) { 2575 this.current.leading = -leading; 2576 }, 2577 setFont: function CanvasGraphics_setFont(fontRefName, size) { 2578 var fontObj = this.objs.get(fontRefName); 2579 var current = this.current; 2580 2581 if (!fontObj) 2582 error('Can\'t find font for ' + fontRefName); 2583 2584 // Slice-clone matrix so we can manipulate it without affecting original 2585 if (fontObj.fontMatrix) 2586 current.fontMatrix = fontObj.fontMatrix.slice(0); 2587 else 2588 current.fontMatrix = IDENTITY_MATRIX.slice(0); 2589 2590 // A valid matrix needs all main diagonal elements to be non-zero 2591 // This also ensures we bypass FF bugzilla bug #719844. 2592 if (current.fontMatrix[0] === 0 || 2593 current.fontMatrix[3] === 0) { 2594 warn('Invalid font matrix for font ' + fontRefName); 2595 } 2596 2597 // The spec for Tf (setFont) says that 'size' specifies the font 'scale', 2598 // and in some docs this can be negative (inverted x-y axes). 2599 // We implement this condition with fontMatrix. 2600 if (size < 0) { 2601 size = -size; 2602 current.fontMatrix[0] *= -1; 2603 current.fontMatrix[3] *= -1; 2604 } 2605 2606 this.current.font = fontObj; 2607 this.current.fontSize = size; 2608 2609 if (fontObj.coded) 2610 return; // we don't need ctx.font for Type3 fonts 2611 2612 var name = fontObj.loadedName || 'sans-serif'; 2613 var bold = fontObj.black ? (fontObj.bold ? 'bolder' : 'bold') : 2614 (fontObj.bold ? 'bold' : 'normal'); 2615 2616 var italic = fontObj.italic ? 'italic' : 'normal'; 2617 var serif = fontObj.isSerifFont ? 'serif' : 'sans-serif'; 2618 var typeface = '"' + name + '", ' + serif; 2619 2620 // Some font backends cannot handle fonts below certain size. 2621 // Keeping the font at minimal size and using the fontSizeScale to change 2622 // the current transformation matrix before the fillText/strokeText. 2623 // See https://bugzilla.mozilla.org/show_bug.cgi?id=726227 2624 var browserFontSize = size >= MIN_FONT_SIZE ? size : MIN_FONT_SIZE; 2625 this.current.fontSizeScale = browserFontSize != MIN_FONT_SIZE ? 1.0 : 2626 size / MIN_FONT_SIZE; 2627 2628 var rule = italic + ' ' + bold + ' ' + browserFontSize + 'px ' + typeface; 2629 this.ctx.font = rule; 2630 }, 2631 setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) { 2632 if (mode >= TextRenderingMode.FILL_ADD_TO_PATH) 2633 TODO('unsupported text rendering mode: ' + mode); 2634 this.current.textRenderingMode = mode; 2635 }, 2636 setTextRise: function CanvasGraphics_setTextRise(rise) { 2637 TODO('text rise: ' + rise); 2638 }, 2639 moveText: function CanvasGraphics_moveText(x, y) { 2640 this.current.x = this.current.lineX += x; 2641 this.current.y = this.current.lineY += y; 2642 }, 2643 setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) { 2644 this.setLeading(-y); 2645 this.moveText(x, y); 2646 }, 2647 setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) { 2648 this.current.textMatrix = [a, b, c, d, e, f]; 2649 2650 this.current.x = this.current.lineX = 0; 2651 this.current.y = this.current.lineY = 0; 2652 }, 2653 nextLine: function CanvasGraphics_nextLine() { 2654 this.moveText(0, this.current.leading); 2655 }, 2656 applyTextTransforms: function CanvasGraphics_applyTextTransforms() { 2657 var ctx = this.ctx; 2658 var current = this.current; 2659 var textHScale = current.textHScale; 2660 var fontMatrix = current.fontMatrix || IDENTITY_MATRIX; 2661 2662 ctx.transform.apply(ctx, current.textMatrix); 2663 ctx.scale(1, -1); 2664 ctx.translate(current.x, -1 * current.y); 2665 ctx.transform.apply(ctx, fontMatrix); 2666 ctx.scale(textHScale, 1); 2667 }, 2668 getTextGeometry: function CanvasGraphics_getTextGeometry() { 2669 var geometry = {}; 2670 var ctx = this.ctx; 2671 var font = this.current.font; 2672 var ctxMatrix = ctx.mozCurrentTransform; 2673 if (ctxMatrix) { 2674 var bl = Util.applyTransform([0, 0], ctxMatrix); 2675 var tr = Util.applyTransform([1, 1], ctxMatrix); 2676 geometry.x = bl[0]; 2677 geometry.y = bl[1]; 2678 geometry.hScale = tr[0] - bl[0]; 2679 geometry.vScale = tr[1] - bl[1]; 2680 } 2681 geometry.spaceWidth = font.spaceWidth; 2682 return geometry; 2683 }, 2684 2685 showText: function CanvasGraphics_showText(str, skipTextSelection) { 2686 var ctx = this.ctx; 2687 var current = this.current; 2688 var font = current.font; 2689 var glyphs = font.charsToGlyphs(str); 2690 var fontSize = current.fontSize; 2691 var fontSizeScale = current.fontSizeScale; 2692 var charSpacing = current.charSpacing; 2693 var wordSpacing = current.wordSpacing; 2694 var textHScale = current.textHScale; 2695 var fontMatrix = current.fontMatrix || IDENTITY_MATRIX; 2696 var textHScale2 = textHScale * fontMatrix[0]; 2697 var glyphsLength = glyphs.length; 2698 var textLayer = this.textLayer; 2699 var text = {str: '', length: 0, canvasWidth: 0, geom: {}}; 2700 var textSelection = textLayer && !skipTextSelection ? true : false; 2701 var textRenderingMode = current.textRenderingMode; 2702 2703 // Type3 fonts - each glyph is a "mini-PDF" 2704 if (font.coded) { 2705 ctx.save(); 2706 ctx.transform.apply(ctx, current.textMatrix); 2707 ctx.translate(current.x, current.y); 2708 2709 ctx.scale(textHScale, 1); 2710 2711 if (textSelection) { 2712 this.save(); 2713 ctx.scale(1, -1); 2714 text.geom = this.getTextGeometry(); 2715 this.restore(); 2716 } 2717 for (var i = 0; i < glyphsLength; ++i) { 2718 2719 var glyph = glyphs[i]; 2720 if (glyph === null) { 2721 // word break 2722 this.ctx.translate(wordSpacing, 0); 2723 continue; 2724 } 2725 2726 this.save(); 2727 ctx.scale(fontSize, fontSize); 2728 ctx.transform.apply(ctx, fontMatrix); 2729 this.executeOperatorList(glyph.operatorList); 2730 this.restore(); 2731 2732 var transformed = Util.applyTransform([glyph.width, 0], fontMatrix); 2733 var width = transformed[0] * fontSize + 2734 Util.sign(current.fontMatrix[0]) * charSpacing; 2735 2736 ctx.translate(width, 0); 2737 current.x += width * textHScale; 2738 2739 text.str += glyph.unicode; 2740 text.length++; 2741 text.canvasWidth += width; 2742 } 2743 ctx.restore(); 2744 } else { 2745 ctx.save(); 2746 this.applyTextTransforms(); 2747 2748 var lineWidth = current.lineWidth; 2749 var scale = Math.abs(current.textMatrix[0] * fontMatrix[0]); 2750 if (scale == 0 || lineWidth == 0) 2751 lineWidth = this.getSinglePixelWidth(); 2752 else 2753 lineWidth /= scale; 2754 2755 if (textSelection) 2756 text.geom = this.getTextGeometry(); 2757 2758 if (fontSizeScale != 1.0) { 2759 ctx.scale(fontSizeScale, fontSizeScale); 2760 lineWidth /= fontSizeScale; 2761 } 2762 2763 ctx.lineWidth = lineWidth; 2764 2765 var x = 0; 2766 for (var i = 0; i < glyphsLength; ++i) { 2767 var glyph = glyphs[i]; 2768 if (glyph === null) { 2769 // word break 2770 x += Util.sign(current.fontMatrix[0]) * wordSpacing; 2771 continue; 2772 } 2773 2774 var character = glyph.fontChar; 2775 var charWidth = glyph.width * fontSize * 0.001 + 2776 Util.sign(current.fontMatrix[0]) * charSpacing; 2777 2778 if (!glyph.disabled) { 2779 var scaledX = x / fontSizeScale; 2780 switch (textRenderingMode) { 2781 default: // other unsupported rendering modes 2782 case TextRenderingMode.FILL: 2783 case TextRenderingMode.FILL_ADD_TO_PATH: 2784 ctx.fillText(character, scaledX, 0); 2785 break; 2786 case TextRenderingMode.STROKE: 2787 case TextRenderingMode.STROKE_ADD_TO_PATH: 2788 ctx.strokeText(character, scaledX, 0); 2789 break; 2790 case TextRenderingMode.FILL_STROKE: 2791 case TextRenderingMode.FILL_STROKE_ADD_TO_PATH: 2792 ctx.fillText(character, scaledX, 0); 2793 ctx.strokeText(character, scaledX, 0); 2794 break; 2795 case TextRenderingMode.INVISIBLE: 2796 break; 2797 } 2798 } 2799 2800 x += charWidth; 2801 2802 var glyphUnicode = glyph.unicode === ' ' ? '\u00A0' : glyph.unicode; 2803 var glyphUnicodeLength = glyphUnicode.length; 2804 //reverse an arabic ligature 2805 if (glyphUnicodeLength > 1 && 2806 isRTLRangeFor(glyphUnicode.charCodeAt(0))) { 2807 for (var ii = glyphUnicodeLength - 1; ii >= 0; ii--) 2808 text.str += glyphUnicode[ii]; 2809 } else 2810 text.str += glyphUnicode; 2811 text.length += glyphUnicodeLength; 2812 text.canvasWidth += charWidth; 2813 } 2814 current.x += x * textHScale2; 2815 ctx.restore(); 2816 } 2817 2818 if (textSelection) 2819 this.textLayer.appendText(text, font.loadedName, fontSize); 2820 2821 return text; 2822 }, 2823 showSpacedText: function CanvasGraphics_showSpacedText(arr) { 2824 var ctx = this.ctx; 2825 var current = this.current; 2826 var font = current.font; 2827 var fontSize = current.fontSize; 2828 var textHScale = current.textHScale; 2829 if (!font.coded) 2830 textHScale *= (current.fontMatrix || IDENTITY_MATRIX)[0]; 2831 var arrLength = arr.length; 2832 var textLayer = this.textLayer; 2833 var text = {str: '', length: 0, canvasWidth: 0, geom: {}}; 2834 var textSelection = textLayer ? true : false; 2835 2836 if (textSelection) { 2837 ctx.save(); 2838 // Type3 fonts - each glyph is a "mini-PDF" (see also showText) 2839 if (font.coded) { 2840 ctx.transform.apply(ctx, current.textMatrix); 2841 ctx.scale(1, -1); 2842 ctx.translate(current.x, -1 * current.y); 2843 ctx.scale(textHScale, 1); 2844 } else 2845 this.applyTextTransforms(); 2846 text.geom = this.getTextGeometry(); 2847 ctx.restore(); 2848 } 2849 2850 for (var i = 0; i < arrLength; ++i) { 2851 var e = arr[i]; 2852 if (isNum(e)) { 2853 var spacingLength = -e * 0.001 * fontSize * textHScale; 2854 current.x += spacingLength; 2855 2856 if (textSelection) { 2857 // Emulate precise spacing via HTML spaces 2858 text.canvasWidth += spacingLength; 2859 if (e < 0 && text.geom.spaceWidth > 0) { // avoid div by zero 2860 var numFakeSpaces = Math.round(-e / text.geom.spaceWidth); 2861 if (numFakeSpaces > 0) { 2862 text.str += '\u00A0'; 2863 text.length++; 2864 } 2865 } 2866 } 2867 } else if (isString(e)) { 2868 var shownText = this.showText(e, true); 2869 2870 if (textSelection) { 2871 if (shownText.str === ' ') { 2872 text.str += '\u00A0'; 2873 } else { 2874 text.str += shownText.str; 2875 } 2876 text.canvasWidth += shownText.canvasWidth; 2877 text.length += shownText.length; 2878 } 2879 } else { 2880 malformed('TJ array element ' + e + ' is not string or num'); 2881 } 2882 } 2883 2884 if (textSelection) 2885 this.textLayer.appendText(text, font.loadedName, fontSize); 2886 }, 2887 nextLineShowText: function CanvasGraphics_nextLineShowText(text) { 2888 this.nextLine(); 2889 this.showText(text); 2890 }, 2891 nextLineSetSpacingShowText: 2892 function CanvasGraphics_nextLineSetSpacingShowText(wordSpacing, 2893 charSpacing, 2894 text) { 2895 this.setWordSpacing(wordSpacing); 2896 this.setCharSpacing(charSpacing); 2897 this.nextLineShowText(text); 2898 }, 2899 2900 // Type3 fonts 2901 setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) { 2902 // We can safely ignore this since the width should be the same 2903 // as the width in the Widths array. 2904 }, 2905 setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, 2906 yWidth, 2907 llx, 2908 lly, 2909 urx, 2910 ury) { 2911 // TODO According to the spec we're also suppose to ignore any operators 2912 // that set color or include images while processing this type3 font. 2913 this.rectangle(llx, lly, urx - llx, ury - lly); 2914 this.clip(); 2915 this.endPath(); 2916 }, 2917 2918 // Color 2919 setStrokeColorSpace: function CanvasGraphics_setStrokeColorSpace(raw) { 2920 this.current.strokeColorSpace = ColorSpace.fromIR(raw); 2921 }, 2922 setFillColorSpace: function CanvasGraphics_setFillColorSpace(raw) { 2923 this.current.fillColorSpace = ColorSpace.fromIR(raw); 2924 }, 2925 setStrokeColor: function CanvasGraphics_setStrokeColor(/*...*/) { 2926 var cs = this.current.strokeColorSpace; 2927 var rgbColor = cs.getRgb(arguments); 2928 var color = Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]); 2929 this.ctx.strokeStyle = color; 2930 this.current.strokeColor = color; 2931 }, 2932 getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR, cs) { 2933 if (IR[0] == 'TilingPattern') { 2934 var args = IR[1]; 2935 var base = cs.base; 2936 var color; 2937 if (base) { 2938 var baseComps = base.numComps; 2939 2940 color = []; 2941 for (var i = 0; i < baseComps; ++i) 2942 color.push(args[i]); 2943 2944 color = base.getRgb(color); 2945 } 2946 var pattern = new TilingPattern(IR, color, this.ctx, this.objs); 2947 } else if (IR[0] == 'RadialAxial' || IR[0] == 'Dummy') { 2948 var pattern = Pattern.shadingFromIR(IR); 2949 } else { 2950 error('Unkown IR type ' + IR[0]); 2951 } 2952 return pattern; 2953 }, 2954 setStrokeColorN: function CanvasGraphics_setStrokeColorN(/*...*/) { 2955 var cs = this.current.strokeColorSpace; 2956 2957 if (cs.name == 'Pattern') { 2958 this.current.strokeColor = this.getColorN_Pattern(arguments, cs); 2959 } else { 2960 this.setStrokeColor.apply(this, arguments); 2961 } 2962 }, 2963 setFillColor: function CanvasGraphics_setFillColor(/*...*/) { 2964 var cs = this.current.fillColorSpace; 2965 var rgbColor = cs.getRgb(arguments); 2966 var color = Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]); 2967 this.ctx.fillStyle = color; 2968 this.current.fillColor = color; 2969 }, 2970 setFillColorN: function CanvasGraphics_setFillColorN(/*...*/) { 2971 var cs = this.current.fillColorSpace; 2972 2973 if (cs.name == 'Pattern') { 2974 this.current.fillColor = this.getColorN_Pattern(arguments, cs); 2975 } else { 2976 this.setFillColor.apply(this, arguments); 2977 } 2978 }, 2979 setStrokeGray: function CanvasGraphics_setStrokeGray(gray) { 2980 if (!(this.current.strokeColorSpace instanceof DeviceGrayCS)) 2981 this.current.strokeColorSpace = new DeviceGrayCS(); 2982 2983 var color = Util.makeCssRgb(gray, gray, gray); 2984 this.ctx.strokeStyle = color; 2985 this.current.strokeColor = color; 2986 }, 2987 setFillGray: function CanvasGraphics_setFillGray(gray) { 2988 if (!(this.current.fillColorSpace instanceof DeviceGrayCS)) 2989 this.current.fillColorSpace = new DeviceGrayCS(); 2990 2991 var color = Util.makeCssRgb(gray, gray, gray); 2992 this.ctx.fillStyle = color; 2993 this.current.fillColor = color; 2994 }, 2995 setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) { 2996 if (!(this.current.strokeColorSpace instanceof DeviceRgbCS)) 2997 this.current.strokeColorSpace = new DeviceRgbCS(); 2998 2999 var color = Util.makeCssRgb(r, g, b); 3000 this.ctx.strokeStyle = color; 3001 this.current.strokeColor = color; 3002 }, 3003 setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) { 3004 if (!(this.current.fillColorSpace instanceof DeviceRgbCS)) 3005 this.current.fillColorSpace = new DeviceRgbCS(); 3006 3007 var color = Util.makeCssRgb(r, g, b); 3008 this.ctx.fillStyle = color; 3009 this.current.fillColor = color; 3010 }, 3011 setStrokeCMYKColor: function CanvasGraphics_setStrokeCMYKColor(c, m, y, k) { 3012 if (!(this.current.strokeColorSpace instanceof DeviceCmykCS)) 3013 this.current.strokeColorSpace = new DeviceCmykCS(); 3014 3015 var color = Util.makeCssCmyk(c, m, y, k); 3016 this.ctx.strokeStyle = color; 3017 this.current.strokeColor = color; 3018 }, 3019 setFillCMYKColor: function CanvasGraphics_setFillCMYKColor(c, m, y, k) { 3020 if (!(this.current.fillColorSpace instanceof DeviceCmykCS)) 3021 this.current.fillColorSpace = new DeviceCmykCS(); 3022 3023 var color = Util.makeCssCmyk(c, m, y, k); 3024 this.ctx.fillStyle = color; 3025 this.current.fillColor = color; 3026 }, 3027 3028 shadingFill: function CanvasGraphics_shadingFill(patternIR) { 3029 var ctx = this.ctx; 3030 3031 this.save(); 3032 var pattern = Pattern.shadingFromIR(patternIR); 3033 ctx.fillStyle = pattern.getPattern(ctx); 3034 3035 var inv = ctx.mozCurrentTransformInverse; 3036 if (inv) { 3037 var canvas = ctx.canvas; 3038 var width = canvas.width; 3039 var height = canvas.height; 3040 3041 var bl = Util.applyTransform([0, 0], inv); 3042 var br = Util.applyTransform([0, height], inv); 3043 var ul = Util.applyTransform([width, 0], inv); 3044 var ur = Util.applyTransform([width, height], inv); 3045 3046 var x0 = Math.min(bl[0], br[0], ul[0], ur[0]); 3047 var y0 = Math.min(bl[1], br[1], ul[1], ur[1]); 3048 var x1 = Math.max(bl[0], br[0], ul[0], ur[0]); 3049 var y1 = Math.max(bl[1], br[1], ul[1], ur[1]); 3050 3051 this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0); 3052 } else { 3053 // HACK to draw the gradient onto an infinite rectangle. 3054 // PDF gradients are drawn across the entire image while 3055 // Canvas only allows gradients to be drawn in a rectangle 3056 // The following bug should allow us to remove this. 3057 // https://bugzilla.mozilla.org/show_bug.cgi?id=664884 3058 3059 this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10); 3060 } 3061 3062 this.restore(); 3063 }, 3064 3065 // Images 3066 beginInlineImage: function CanvasGraphics_beginInlineImage() { 3067 error('Should not call beginInlineImage'); 3068 }, 3069 beginImageData: function CanvasGraphics_beginImageData() { 3070 error('Should not call beginImageData'); 3071 }, 3072 3073 paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, 3074 bbox) { 3075 this.save(); 3076 3077 if (matrix && isArray(matrix) && 6 == matrix.length) 3078 this.transform.apply(this, matrix); 3079 3080 if (bbox && isArray(bbox) && 4 == bbox.length) { 3081 var width = bbox[2] - bbox[0]; 3082 var height = bbox[3] - bbox[1]; 3083 this.rectangle(bbox[0], bbox[1], width, height); 3084 this.clip(); 3085 this.endPath(); 3086 } 3087 }, 3088 3089 paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() { 3090 this.restore(); 3091 }, 3092 3093 paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) { 3094 var domImage = this.objs.get(objId); 3095 if (!domImage) { 3096 error('Dependent image isn\'t ready yet'); 3097 } 3098 3099 this.save(); 3100 3101 var ctx = this.ctx; 3102 // scale the image to the unit square 3103 ctx.scale(1 / w, -1 / h); 3104 3105 ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height, 3106 0, -h, w, h); 3107 3108 this.restore(); 3109 }, 3110 3111 paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject( 3112 imgArray, inverseDecode, width, height) { 3113 function applyStencilMask(buffer, inverseDecode) { 3114 var imgArrayPos = 0; 3115 var i, j, mask, buf; 3116 // removing making non-masked pixels transparent 3117 var bufferPos = 3; // alpha component offset 3118 for (i = 0; i < height; i++) { 3119 mask = 0; 3120 for (j = 0; j < width; j++) { 3121 if (!mask) { 3122 buf = imgArray[imgArrayPos++]; 3123 mask = 128; 3124 } 3125 if (!(buf & mask) == inverseDecode) { 3126 buffer[bufferPos] = 0; 3127 } 3128 bufferPos += 4; 3129 mask >>= 1; 3130 } 3131 } 3132 } 3133 3134 this.save(); 3135 3136 var ctx = this.ctx; 3137 var w = width, h = height; 3138 // scale the image to the unit square 3139 ctx.scale(1 / w, -1 / h); 3140 3141 var tmpCanvas = createScratchCanvas(w, h); 3142 var tmpCtx = tmpCanvas.getContext('2d'); 3143 3144 var fillColor = this.current.fillColor; 3145 tmpCtx.fillStyle = (fillColor && fillColor.hasOwnProperty('type') && 3146 fillColor.type === 'Pattern') ? 3147 fillColor.getPattern(tmpCtx) : fillColor; 3148 tmpCtx.fillRect(0, 0, w, h); 3149 3150 var imgData = tmpCtx.getImageData(0, 0, w, h); 3151 var pixels = imgData.data; 3152 3153 applyStencilMask(pixels, inverseDecode); 3154 3155 tmpCtx.putImageData(imgData, 0, 0); 3156 ctx.drawImage(tmpCanvas, 0, -h); 3157 this.restore(); 3158 }, 3159 3160 paintImageXObject: function CanvasGraphics_paintImageXObject(objId) { 3161 var imgData = this.objs.get(objId); 3162 if (!imgData) 3163 error('Dependent image isn\'t ready yet'); 3164 3165 this.save(); 3166 var ctx = this.ctx; 3167 var w = imgData.width; 3168 var h = imgData.height; 3169 // scale the image to the unit square 3170 ctx.scale(1 / w, -1 / h); 3171 3172 var tmpCanvas = createScratchCanvas(w, h); 3173 var tmpCtx = tmpCanvas.getContext('2d'); 3174 this.putBinaryImageData(tmpCtx, imgData, w, h); 3175 3176 ctx.drawImage(tmpCanvas, 0, -h); 3177 this.restore(); 3178 }, 3179 3180 putBinaryImageData: function CanvasGraphics_putBinaryImageData() { 3181 // 3182 }, 3183 3184 // Marked content 3185 3186 markPoint: function CanvasGraphics_markPoint(tag) { 3187 TODO('Marked content'); 3188 }, 3189 markPointProps: function CanvasGraphics_markPointProps(tag, properties) { 3190 TODO('Marked content'); 3191 }, 3192 beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) { 3193 TODO('Marked content'); 3194 }, 3195 beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps( 3196 tag, properties) { 3197 TODO('Marked content'); 3198 }, 3199 endMarkedContent: function CanvasGraphics_endMarkedContent() { 3200 TODO('Marked content'); 3201 }, 3202 3203 // Compatibility 3204 3205 beginCompat: function CanvasGraphics_beginCompat() { 3206 TODO('ignore undefined operators (should we do that anyway?)'); 3207 }, 3208 endCompat: function CanvasGraphics_endCompat() { 3209 TODO('stop ignoring undefined operators'); 3210 }, 3211 3212 // Helper functions 3213 3214 consumePath: function CanvasGraphics_consumePath() { 3215 if (this.pendingClip) { 3216 var savedFillRule = null; 3217 if (this.pendingClip == EO_CLIP) 3218 savedFillRule = this.setEOFillRule(); 3219 3220 this.ctx.clip(); 3221 3222 this.pendingClip = null; 3223 if (savedFillRule !== null) 3224 this.restoreFillRule(savedFillRule); 3225 } 3226 this.ctx.beginPath(); 3227 }, 3228 // We generally keep the canvas context set for 3229 // nonzero-winding, and just set evenodd for the operations 3230 // that need them. 3231 setEOFillRule: function CanvasGraphics_setEOFillRule() { 3232 var savedFillRule = this.ctx.mozFillRule; 3233 this.ctx.mozFillRule = 'evenodd'; 3234 return savedFillRule; 3235 }, 3236 restoreFillRule: function CanvasGraphics_restoreFillRule(rule) { 3237 this.ctx.mozFillRule = rule; 3238 }, 3239 getSinglePixelWidth: function CanvasGraphics_getSinglePixelWidth(scale) { 3240 var inverse = this.ctx.mozCurrentTransformInverse; 3241 return Math.abs(inverse[0] + inverse[2]); 3242 } 3243 }; 3244 3245 return CanvasGraphics; 3246 })(); 3247 3248 if (!isWorker) { 3249 // Feature detection if the browser can use an Uint8Array directly as imgData. 3250 var canvas = PdfJS_window.document.createElement('canvas'); 3251 canvas.width = 1; 3252 canvas.height = 1; 3253 var ctx = canvas.getContext('2d'); 3254 3255 try { 3256 ctx.putImageData({ 3257 width: 1, 3258 height: 1, 3259 data: new Uint8Array(4) 3260 }, 0, 0); 3261 3262 CanvasGraphics.prototype.putBinaryImageData = 3263 function CanvasGraphicsPutBinaryImageDataNative(ctx, imgData) { 3264 ctx.putImageData(imgData, 0, 0); 3265 }; 3266 } catch (e) { 3267 CanvasGraphics.prototype.putBinaryImageData = 3268 function CanvasGraphicsPutBinaryImageDataShim(ctx, imgData, w, h) { 3269 var tmpImgData = ctx.getImageData(0, 0, w, h); 3270 3271 // Copy over the imageData pixel by pixel. 3272 var tmpImgDataPixels = tmpImgData.data; 3273 var len = tmpImgDataPixels.length; 3274 3275 while (len--) { 3276 tmpImgDataPixels[len] = imgData.data[len]; 3277 } 3278 3279 ctx.putImageData(tmpImgData, 0, 0); 3280 }; 3281 } 3282 } 3283 3284 /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 3285 /* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ 3286 3287 'use strict'; 3288 3289 var Name = (function NameClosure() { 3290 function Name(name) { 3291 this.name = name; 3292 } 3293 3294 Name.prototype = {}; 3295 3296 return Name; 3297 })(); 3298 3299 var Cmd = (function CmdClosure() { 3300 function Cmd(cmd) { 3301 this.cmd = cmd; 3302 } 3303 3304 Cmd.prototype = {}; 3305 3306 var cmdCache = {}; 3307 3308 Cmd.get = function Cmd_get(cmd) { 3309 var cmdValue = cmdCache[cmd]; 3310 if (cmdValue) 3311 return cmdValue; 3312 3313 return cmdCache[cmd] = new Cmd(cmd); 3314 }; 3315 3316 return Cmd; 3317 })(); 3318 3319 var Dict = (function DictClosure() { 3320 // xref is optional 3321 function Dict(xref) { 3322 // Map should only be used internally, use functions below to access. 3323 var map = Object.create(null); 3324 3325 this.assignXref = function Dict_assignXref(newXref) { 3326 xref = newXref; 3327 }; 3328 3329 // automatically dereferences Ref objects 3330 this.get = function Dict_get(key1, key2, key3) { 3331 var value; 3332 if (typeof (value = map[key1]) != 'undefined' || key1 in map || 3333 typeof key2 == 'undefined') { 3334 return xref ? xref.fetchIfRef(value) : value; 3335 } 3336 if (typeof (value = map[key2]) != 'undefined' || key2 in map || 3337 typeof key3 == 'undefined') { 3338 return xref ? xref.fetchIfRef(value) : value; 3339 } 3340 value = map[key3] || null; 3341 return xref ? xref.fetchIfRef(value) : value; 3342 }; 3343 3344 // no dereferencing 3345 this.getRaw = function Dict_getRaw(key) { 3346 return map[key]; 3347 }; 3348 3349 // creates new map and dereferences all Refs 3350 this.getAll = function Dict_getAll() { 3351 var all = {}; 3352 for (var key in map) { 3353 var obj = this.get(key); 3354 all[key] = obj instanceof Dict ? obj.getAll() : obj; 3355 } 3356 return all; 3357 }; 3358 3359 this.set = function Dict_set(key, value) { 3360 map[key] = value; 3361 }; 3362 3363 this.has = function Dict_has(key) { 3364 return key in map; 3365 }; 3366 3367 this.forEach = function Dict_forEach(callback) { 3368 for (var key in map) { 3369 callback(key, this.get(key)); 3370 } 3371 }; 3372 }; 3373 3374 return Dict; 3375 })(); 3376 3377 var Ref = (function RefClosure() { 3378 function Ref(num, gen) { 3379 this.num = num; 3380 this.gen = gen; 3381 } 3382 3383 Ref.prototype = {}; 3384 3385 return Ref; 3386 })(); 3387 3388 // The reference is identified by number and generation, 3389 // this structure stores only one instance of the reference. 3390 var RefSet = (function RefSetClosure() { 3391 function RefSet() { 3392 this.dict = {}; 3393 } 3394 3395 RefSet.prototype = { 3396 has: function RefSet_has(ref) { 3397 return !!this.dict['R' + ref.num + '.' + ref.gen]; 3398 }, 3399 3400 put: function RefSet_put(ref) { 3401 this.dict['R' + ref.num + '.' + ref.gen] = ref; 3402 } 3403 }; 3404 3405 return RefSet; 3406 })(); 3407 3408 var Catalog = (function CatalogClosure() { 3409 function Catalog(xref) { 3410 this.xref = xref; 3411 var obj = xref.getCatalogObj(); 3412 assertWellFormed(isDict(obj), 'catalog object is not a dictionary'); 3413 this.catDict = obj; 3414 } 3415 3416 Catalog.prototype = { 3417 get metadata() { 3418 var stream = this.catDict.get('Metadata'); 3419 var metadata; 3420 if (stream && isDict(stream.dict)) { 3421 var type = stream.dict.get('Type'); 3422 var subtype = stream.dict.get('Subtype'); 3423 3424 if (isName(type) && isName(subtype) && 3425 type.name === 'Metadata' && subtype.name === 'XML') { 3426 metadata = stringToPDFString(bytesToString(stream.getBytes())); 3427 } 3428 } 3429 3430 return shadow(this, 'metadata', metadata); 3431 }, 3432 get toplevelPagesDict() { 3433 var pagesObj = this.catDict.get('Pages'); 3434 assertWellFormed(isDict(pagesObj), 'invalid top-level pages dictionary'); 3435 // shadow the prototype getter 3436 return shadow(this, 'toplevelPagesDict', pagesObj); 3437 }, 3438 get documentOutline() { 3439 var xref = this.xref; 3440 var obj = this.catDict.get('Outlines'); 3441 var root = { items: [] }; 3442 if (isDict(obj)) { 3443 obj = obj.getRaw('First'); 3444 var processed = new RefSet(); 3445 if (isRef(obj)) { 3446 var queue = [{obj: obj, parent: root}]; 3447 // to avoid recursion keeping track of the items 3448 // in the processed dictionary 3449 processed.put(obj); 3450 while (queue.length > 0) { 3451 var i = queue.shift(); 3452 var outlineDict = xref.fetchIfRef(i.obj); 3453 if (outlineDict === null) 3454 continue; 3455 if (!outlineDict.has('Title')) 3456 error('Invalid outline item'); 3457 var dest = outlineDict.get('A'); 3458 if (dest) 3459 dest = dest.get('D'); 3460 else if (outlineDict.has('Dest')) { 3461 dest = outlineDict.getRaw('Dest'); 3462 if (isName(dest)) 3463 dest = dest.name; 3464 } 3465 var title = outlineDict.get('Title'); 3466 var outlineItem = { 3467 dest: dest, 3468 title: stringToPDFString(title), 3469 color: outlineDict.get('C') || [0, 0, 0], 3470 count: outlineDict.get('Count'), 3471 bold: !!(outlineDict.get('F') & 2), 3472 italic: !!(outlineDict.get('F') & 1), 3473 items: [] 3474 }; 3475 i.parent.items.push(outlineItem); 3476 obj = outlineDict.getRaw('First'); 3477 if (isRef(obj) && !processed.has(obj)) { 3478 queue.push({obj: obj, parent: outlineItem}); 3479 processed.put(obj); 3480 } 3481 obj = outlineDict.getRaw('Next'); 3482 if (isRef(obj) && !processed.has(obj)) { 3483 queue.push({obj: obj, parent: i.parent}); 3484 processed.put(obj); 3485 } 3486 } 3487 } 3488 } 3489 obj = root.items.length > 0 ? root.items : null; 3490 return shadow(this, 'documentOutline', obj); 3491 }, 3492 get numPages() { 3493 var obj = this.toplevelPagesDict.get('Count'); 3494 assertWellFormed( 3495 isInt(obj), 3496 'page count in top level pages object is not an integer' 3497 ); 3498 // shadow the prototype getter 3499 return shadow(this, 'num', obj); 3500 }, 3501 traverseKids: function Catalog_traverseKids(pagesDict) { 3502 var pageCache = this.pageCache; 3503 var kids = pagesDict.get('Kids'); 3504 assertWellFormed(isArray(kids), 3505 'page dictionary kids object is not an array'); 3506 for (var i = 0, ii = kids.length; i < ii; ++i) { 3507 var kid = kids[i]; 3508 assertWellFormed(isRef(kid), 3509 'page dictionary kid is not a reference'); 3510 var obj = this.xref.fetch(kid); 3511 if (isDict(obj, 'Page') || (isDict(obj) && !obj.has('Kids'))) { 3512 pageCache.push(new Page(this.xref, pageCache.length, obj, kid)); 3513 } else { // must be a child page dictionary 3514 assertWellFormed( 3515 isDict(obj), 3516 'page dictionary kid reference points to wrong type of object' 3517 ); 3518 this.traverseKids(obj); 3519 } 3520 } 3521 }, 3522 get destinations() { 3523 function fetchDestination(dest) { 3524 return isDict(dest) ? dest.get('D') : dest; 3525 } 3526 3527 var xref = this.xref; 3528 var dests = {}, nameTreeRef, nameDictionaryRef; 3529 var obj = this.catDict.get('Names'); 3530 if (obj) 3531 nameTreeRef = obj.getRaw('Dests'); 3532 else if (this.catDict.has('Dests')) 3533 nameDictionaryRef = this.catDict.get('Dests'); 3534 3535 if (nameDictionaryRef) { 3536 // reading simple destination dictionary 3537 obj = nameDictionaryRef; 3538 obj.forEach(function catalogForEach(key, value) { 3539 if (!value) return; 3540 dests[key] = fetchDestination(value); 3541 }); 3542 } 3543 if (nameTreeRef) { 3544 // reading name tree 3545 var processed = new RefSet(); 3546 processed.put(nameTreeRef); 3547 var queue = [nameTreeRef]; 3548 while (queue.length > 0) { 3549 var i, n; 3550 obj = xref.fetch(queue.shift()); 3551 if (obj.has('Kids')) { 3552 var kids = obj.get('Kids'); 3553 for (i = 0, n = kids.length; i < n; i++) { 3554 var kid = kids[i]; 3555 if (processed.has(kid)) 3556 error('invalid destinations'); 3557 queue.push(kid); 3558 processed.put(kid); 3559 } 3560 continue; 3561 } 3562 var names = obj.get('Names'); 3563 for (i = 0, n = names.length; i < n; i += 2) { 3564 dests[names[i]] = fetchDestination(xref.fetchIfRef(names[i + 1])); 3565 } 3566 } 3567 } 3568 return shadow(this, 'destinations', dests); 3569 }, 3570 getPage: function Catalog_getPage(n) { 3571 var pageCache = this.pageCache; 3572 if (!pageCache) { 3573 pageCache = this.pageCache = []; 3574 this.traverseKids(this.toplevelPagesDict); 3575 } 3576 return this.pageCache[n - 1]; 3577 } 3578 }; 3579 3580 return Catalog; 3581 })(); 3582 3583 var XRef = (function XRefClosure() { 3584 function XRef(stream, startXRef, mainXRefEntriesOffset) { 3585 this.stream = stream; 3586 this.entries = []; 3587 this.xrefstms = {}; 3588 var trailerDict = this.readXRef(startXRef); 3589 trailerDict.assignXref(this); 3590 this.trailer = trailerDict; 3591 // prepare the XRef cache 3592 this.cache = []; 3593 3594 var encrypt = trailerDict.get('Encrypt'); 3595 if (encrypt) { 3596 var fileId = trailerDict.get('ID'); 3597 this.encrypt = new CipherTransformFactory(encrypt, 3598 fileId[0] /*, password */); 3599 } 3600 3601 // get the root dictionary (catalog) object 3602 if (!(this.root = trailerDict.get('Root'))) 3603 error('Invalid root reference'); 3604 } 3605 3606 XRef.prototype = { 3607 readXRefTable: function XRef_readXRefTable(parser) { 3608 // Example of cross-reference table: 3609 // xref 3610 // 0 1 <-- subsection header (first obj #, obj count) 3611 // 0000000000 65535 f <-- actual object (offset, generation #, f/n) 3612 // 23 2 <-- subsection header ... and so on ... 3613 // 0000025518 00002 n 3614 // 0000025635 00000 n 3615 // trailer 3616 // ... 3617 3618 // Outer loop is over subsection headers 3619 var obj; 3620 while (!isCmd(obj = parser.getObj(), 'trailer')) { 3621 var first = obj, 3622 count = parser.getObj(); 3623 3624 if (!isInt(first) || !isInt(count)) 3625 error('Invalid XRef table: wrong types in subsection header'); 3626 3627 // Inner loop is over objects themselves 3628 for (var i = 0; i < count; i++) { 3629 var entry = {}; 3630 entry.offset = parser.getObj(); 3631 entry.gen = parser.getObj(); 3632 var type = parser.getObj(); 3633 3634 if (isCmd(type, 'f')) 3635 entry.free = true; 3636 else if (isCmd(type, 'n')) 3637 entry.uncompressed = true; 3638 3639 // Validate entry obj 3640 if (!isInt(entry.offset) || !isInt(entry.gen) || 3641 !(entry.free || entry.uncompressed)) { 3642 error('Invalid entry in XRef subsection: ' + first + ', ' + count); 3643 } 3644 3645 if (!this.entries[i + first]) 3646 this.entries[i + first] = entry; 3647 } 3648 } 3649 3650 // Sanity check: as per spec, first object must be free 3651 if (this.entries[0] && !this.entries[0].free) 3652 error('Invalid XRef table: unexpected first object'); 3653 3654 // Sanity check 3655 if (!isCmd(obj, 'trailer')) 3656 error('Invalid XRef table: could not find trailer dictionary'); 3657 3658 // Read trailer dictionary, e.g. 3659 // trailer 3660 // << /Size 22 3661 // /Root 20R 3662 // /Info 10R 3663 // /ID [ <81b14aafa313db63dbd6f981e49f94f4> ] 3664 // >> 3665 // The parser goes through the entire stream << ... >> and provides 3666 // a getter interface for the key-value table 3667 var dict = parser.getObj(); 3668 if (!isDict(dict)) 3669 error('Invalid XRef table: could not parse trailer dictionary'); 3670 3671 return dict; 3672 }, 3673 readXRefStream: function XRef_readXRefStream(stream) { 3674 var streamParameters = stream.parameters; 3675 var byteWidths = streamParameters.get('W'); 3676 var range = streamParameters.get('Index'); 3677 if (!range) 3678 range = [0, streamParameters.get('Size')]; 3679 var i, j; 3680 while (range.length > 0) { 3681 var first = range[0], n = range[1]; 3682 if (!isInt(first) || !isInt(n)) 3683 error('Invalid XRef range fields: ' + first + ', ' + n); 3684 var typeFieldWidth = byteWidths[0]; 3685 var offsetFieldWidth = byteWidths[1]; 3686 var generationFieldWidth = byteWidths[2]; 3687 if (!isInt(typeFieldWidth) || !isInt(offsetFieldWidth) || 3688 !isInt(generationFieldWidth)) { 3689 error('Invalid XRef entry fields length: ' + first + ', ' + n); 3690 } 3691 for (i = 0; i < n; ++i) { 3692 var type = 0, offset = 0, generation = 0; 3693 for (j = 0; j < typeFieldWidth; ++j) 3694 type = (type << 8) | stream.getByte(); 3695 // if type field is absent, its default value = 1 3696 if (typeFieldWidth == 0) 3697 type = 1; 3698 for (j = 0; j < offsetFieldWidth; ++j) 3699 offset = (offset << 8) | stream.getByte(); 3700 for (j = 0; j < generationFieldWidth; ++j) 3701 generation = (generation << 8) | stream.getByte(); 3702 var entry = {}; 3703 entry.offset = offset; 3704 entry.gen = generation; 3705 switch (type) { 3706 case 0: 3707 entry.free = true; 3708 break; 3709 case 1: 3710 entry.uncompressed = true; 3711 break; 3712 case 2: 3713 break; 3714 default: 3715 error('Invalid XRef entry type: ' + type); 3716 } 3717 if (!this.entries[first + i]) 3718 this.entries[first + i] = entry; 3719 } 3720 range.splice(0, 2); 3721 } 3722 return streamParameters; 3723 }, 3724 indexObjects: function XRef_indexObjects() { 3725 // Simple scan through the PDF content to find objects, 3726 // trailers and XRef streams. 3727 function readToken(data, offset) { 3728 var token = '', ch = data[offset]; 3729 while (ch !== 13 && ch !== 10) { 3730 if (++offset >= data.length) 3731 break; 3732 token += String.fromCharCode(ch); 3733 ch = data[offset]; 3734 } 3735 return token; 3736 } 3737 function skipUntil(data, offset, what) { 3738 var length = what.length, dataLength = data.length; 3739 var skipped = 0; 3740 // finding byte sequence 3741 while (offset < dataLength) { 3742 var i = 0; 3743 while (i < length && data[offset + i] == what[i]) 3744 ++i; 3745 if (i >= length) 3746 break; // sequence found 3747 3748 offset++; 3749 skipped++; 3750 } 3751 return skipped; 3752 } 3753 var trailerBytes = new Uint8Array([116, 114, 97, 105, 108, 101, 114]); 3754 var startxrefBytes = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 3755 101, 102]); 3756 var endobjBytes = new Uint8Array([101, 110, 100, 111, 98, 106]); 3757 var xrefBytes = new Uint8Array([47, 88, 82, 101, 102]); 3758 3759 var stream = this.stream; 3760 stream.pos = 0; 3761 var buffer = stream.getBytes(); 3762 var position = stream.start, length = buffer.length; 3763 var trailers = [], xrefStms = []; 3764 var state = 0; 3765 var currentToken; 3766 while (position < length) { 3767 var ch = buffer[position]; 3768 if (ch === 32 || ch === 9 || ch === 13 || ch === 10) { 3769 ++position; 3770 continue; 3771 } 3772 if (ch === 37) { // %-comment 3773 do { 3774 ++position; 3775 ch = buffer[position]; 3776 } while (ch !== 13 && ch !== 10); 3777 continue; 3778 } 3779 var token = readToken(buffer, position); 3780 var m; 3781 if (token === 'xref') { 3782 position += skipUntil(buffer, position, trailerBytes); 3783 trailers.push(position); 3784 position += skipUntil(buffer, position, startxrefBytes); 3785 } else if ((m = /^(\d+)\s+(\d+)\s+obj\b/.exec(token))) { 3786 this.entries[m[1]] = { 3787 offset: position, 3788 gen: m[2] | 0, 3789 uncompressed: true 3790 }; 3791 3792 var contentLength = skipUntil(buffer, position, endobjBytes) + 7; 3793 var content = buffer.subarray(position, position + contentLength); 3794 3795 // checking XRef stream suspect 3796 // (it shall have '/XRef' and next char is not a letter) 3797 var xrefTagOffset = skipUntil(content, 0, xrefBytes); 3798 if (xrefTagOffset < contentLength && 3799 content[xrefTagOffset + 5] < 64) { 3800 xrefStms.push(position); 3801 this.xrefstms[position] = 1; // don't read it recursively 3802 } 3803 3804 position += contentLength; 3805 } else 3806 position += token.length + 1; 3807 } 3808 // reading XRef streams 3809 for (var i = 0, ii = xrefStms.length; i < ii; ++i) { 3810 this.readXRef(xrefStms[i], true); 3811 } 3812 // finding main trailer 3813 var dict; 3814 for (var i = 0, ii = trailers.length; i < ii; ++i) { 3815 stream.pos = trailers[i]; 3816 var parser = new Parser(new Lexer(stream), true, null); 3817 var obj = parser.getObj(); 3818 if (!isCmd(obj, 'trailer')) 3819 continue; 3820 // read the trailer dictionary 3821 if (!isDict(dict = parser.getObj())) 3822 continue; 3823 // taking the first one with 'ID' 3824 if (dict.has('ID')) 3825 return dict; 3826 } 3827 // no tailer with 'ID', taking last one (if exists) 3828 if (dict) 3829 return dict; 3830 // nothing helps 3831 error('Invalid PDF structure'); 3832 }, 3833 readXRef: function XRef_readXRef(startXRef, recoveryMode) { 3834 var stream = this.stream; 3835 stream.pos = startXRef; 3836 3837 try { 3838 var parser = new Parser(new Lexer(stream), true, null); 3839 var obj = parser.getObj(); 3840 var dict; 3841 3842 // Get dictionary 3843 if (isCmd(obj, 'xref')) { 3844 // Parse end-of-file XRef 3845 dict = this.readXRefTable(parser); 3846 3847 // Recursively get other XRefs 'XRefStm', if any 3848 obj = dict.get('XRefStm'); 3849 if (isInt(obj)) { 3850 var pos = obj; 3851 // ignore previously loaded xref streams 3852 // (possible infinite recursion) 3853 if (!(pos in this.xrefstms)) { 3854 this.xrefstms[pos] = 1; 3855 this.readXRef(pos); 3856 } 3857 } 3858 } else if (isInt(obj)) { 3859 // Parse in-stream XRef 3860 if (!isInt(parser.getObj()) || 3861 !isCmd(parser.getObj(), 'obj') || 3862 !isStream(obj = parser.getObj())) { 3863 error('Invalid XRef stream'); 3864 } 3865 dict = this.readXRefStream(obj); 3866 if (!dict) 3867 error('Failed to read XRef stream'); 3868 } 3869 3870 // Recursively get previous dictionary, if any 3871 obj = dict.get('Prev'); 3872 if (isInt(obj)) 3873 this.readXRef(obj, recoveryMode); 3874 else if (isRef(obj)) { 3875 // The spec says Prev must not be a reference, i.e. "/Prev NNN" 3876 // This is a fallback for non-compliant PDFs, i.e. "/Prev NNN 0 R" 3877 this.readXRef(obj.num, recoveryMode); 3878 } 3879 3880 return dict; 3881 } catch (e) { 3882 log('(while reading XRef): ' + e); 3883 } 3884 3885 if (recoveryMode) 3886 return; 3887 3888 warn('Indexing all PDF objects'); 3889 return this.indexObjects(); 3890 }, 3891 getEntry: function XRef_getEntry(i) { 3892 var e = this.entries[i]; 3893 if (e === null) 3894 return null; 3895 return e.free ? null : e; // returns null is the entry is free 3896 }, 3897 fetchIfRef: function XRef_fetchIfRef(obj) { 3898 if (!isRef(obj)) 3899 return obj; 3900 return this.fetch(obj); 3901 }, 3902 fetch: function XRef_fetch(ref, suppressEncryption) { 3903 assertWellFormed(isRef(ref), 'ref object is not a reference'); 3904 var num = ref.num; 3905 if (num in this.cache) 3906 return this.cache[num]; 3907 3908 var e = this.getEntry(num); 3909 3910 // the referenced entry can be free 3911 if (e === null) 3912 return (this.cache[num] = e); 3913 3914 var gen = ref.gen; 3915 var stream, parser; 3916 if (e.uncompressed) { 3917 if (e.gen != gen) 3918 error('inconsistent generation in XRef'); 3919 stream = this.stream.makeSubStream(e.offset); 3920 parser = new Parser(new Lexer(stream), true, this); 3921 var obj1 = parser.getObj(); 3922 var obj2 = parser.getObj(); 3923 var obj3 = parser.getObj(); 3924 if (!isInt(obj1) || obj1 != num || 3925 !isInt(obj2) || obj2 != gen || 3926 !isCmd(obj3)) { 3927 error('bad XRef entry'); 3928 } 3929 if (!isCmd(obj3, 'obj')) { 3930 // some bad pdfs use "obj1234" and really mean 1234 3931 if (obj3.cmd.indexOf('obj') == 0) { 3932 num = parseInt(obj3.cmd.substring(3), 10); 3933 if (!isNaN(num)) 3934 return num; 3935 } 3936 error('bad XRef entry'); 3937 } 3938 if (this.encrypt && !suppressEncryption) { 3939 try { 3940 e = parser.getObj(this.encrypt.createCipherTransform(num, gen)); 3941 } catch (ex) { 3942 // almost all streams must be encrypted, but sometimes 3943 // they are not probably due to some broken generators 3944 // re-trying without encryption 3945 return this.fetch(ref, true); 3946 } 3947 } else { 3948 e = parser.getObj(); 3949 } 3950 // Don't cache streams since they are mutable (except images). 3951 if (!isStream(e) || e instanceof JpegStream) 3952 this.cache[num] = e; 3953 return e; 3954 } 3955 3956 // compressed entry 3957 stream = this.fetch(new Ref(e.offset, 0)); 3958 if (!isStream(stream)) 3959 error('bad ObjStm stream'); 3960 var first = stream.parameters.get('First'); 3961 var n = stream.parameters.get('N'); 3962 if (!isInt(first) || !isInt(n)) { 3963 error('invalid first and n parameters for ObjStm stream'); 3964 } 3965 parser = new Parser(new Lexer(stream), false, this); 3966 var i, entries = [], nums = []; 3967 // read the object numbers to populate cache 3968 for (i = 0; i < n; ++i) { 3969 num = parser.getObj(); 3970 if (!isInt(num)) { 3971 error('invalid object number in the ObjStm stream: ' + num); 3972 } 3973 nums.push(num); 3974 var offset = parser.getObj(); 3975 if (!isInt(offset)) { 3976 error('invalid object offset in the ObjStm stream: ' + offset); 3977 } 3978 } 3979 // read stream objects for cache 3980 for (i = 0; i < n; ++i) { 3981 entries.push(parser.getObj()); 3982 this.cache[nums[i]] = entries[i]; 3983 } 3984 e = entries[e.gen]; 3985 if (!e) { 3986 error('bad XRef entry for compressed object'); 3987 } 3988 return e; 3989 }, 3990 getCatalogObj: function XRef_getCatalogObj() { 3991 return this.root; 3992 } 3993 }; 3994 3995 return XRef; 3996 })(); 3997 3998 /** 3999 * A PDF document and page is built of many objects. E.g. there are objects 4000 * for fonts, images, rendering code and such. These objects might get processed 4001 * inside of a worker. The `PDFObjects` implements some basic functions to 4002 * manage these objects. 4003 */ 4004 var PDFObjects = (function PDFObjectsClosure() { 4005 function PDFObjects() { 4006 this.objs = {}; 4007 } 4008 4009 PDFObjects.prototype = { 4010 objs: null, 4011 4012 /** 4013 * Internal function. 4014 * Ensures there is an object defined for `objId`. Stores `data` on the 4015 * object *if* it is created. 4016 */ 4017 ensureObj: function PDFObjects_ensureObj(objId, data) { 4018 if (this.objs[objId]) 4019 return this.objs[objId]; 4020 return this.objs[objId] = new Promise(objId, data); 4021 }, 4022 4023 /** 4024 * If called *without* callback, this returns the data of `objId` but the 4025 * object needs to be resolved. If it isn't, this function throws. 4026 * 4027 * If called *with* a callback, the callback is called with the data of the 4028 * object once the object is resolved. That means, if you call this 4029 * function and the object is already resolved, the callback gets called 4030 * right away. 4031 */ 4032 get: function PDFObjects_get(objId, callback) { 4033 // If there is a callback, then the get can be async and the object is 4034 // not required to be resolved right now 4035 if (callback) { 4036 this.ensureObj(objId).then(callback); 4037 return null; 4038 } 4039 4040 // If there isn't a callback, the user expects to get the resolved data 4041 // directly. 4042 var obj = this.objs[objId]; 4043 4044 // If there isn't an object yet or the object isn't resolved, then the 4045 // data isn't ready yet! 4046 if (!obj || !obj.isResolved) 4047 error('Requesting object that isn\'t resolved yet ' + objId); 4048 4049 return obj.data; 4050 }, 4051 4052 /** 4053 * Resolves the object `objId` with optional `data`. 4054 */ 4055 resolve: function PDFObjects_resolve(objId, data) { 4056 var objs = this.objs; 4057 4058 // In case there is a promise already on this object, just resolve it. 4059 if (objs[objId]) { 4060 objs[objId].resolve(data); 4061 } else { 4062 this.ensureObj(objId, data); 4063 } 4064 }, 4065 4066 onData: function PDFObjects_onData(objId, callback) { 4067 this.ensureObj(objId).onData(callback); 4068 }, 4069 4070 isResolved: function PDFObjects_isResolved(objId) { 4071 var objs = this.objs; 4072 if (!objs[objId]) { 4073 return false; 4074 } else { 4075 return objs[objId].isResolved; 4076 } 4077 }, 4078 4079 hasData: function PDFObjects_hasData(objId) { 4080 var objs = this.objs; 4081 if (!objs[objId]) { 4082 return false; 4083 } else { 4084 return objs[objId].hasData; 4085 } 4086 }, 4087 4088 /** 4089 * Sets the data of an object but *doesn't* resolve it. 4090 */ 4091 setData: function PDFObjects_setData(objId, data) { 4092 // Watchout! If you call `this.ensureObj(objId, data)` you're going to 4093 // create a *resolved* promise which shouldn't be the case! 4094 this.ensureObj(objId).data = data; 4095 } 4096 }; 4097 return PDFObjects; 4098 })(); 4099 4100 4101 /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 4102 /* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ 4103 4104 'use strict'; 4105 4106 var PDFFunction = (function PDFFunctionClosure() { 4107 var CONSTRUCT_SAMPLED = 0; 4108 var CONSTRUCT_INTERPOLATED = 2; 4109 var CONSTRUCT_STICHED = 3; 4110 var CONSTRUCT_POSTSCRIPT = 4; 4111 4112 return { 4113 getSampleArray: function PDFFunction_getSampleArray(size, outputSize, bps, 4114 str) { 4115 var length = 1; 4116 for (var i = 0, ii = size.length; i < ii; i++) 4117 length *= size[i]; 4118 length *= outputSize; 4119 4120 var array = []; 4121 var codeSize = 0; 4122 var codeBuf = 0; 4123 // 32 is a valid bps so shifting won't work 4124 var sampleMul = 1.0 / (Math.pow(2.0, bps) - 1); 4125 4126 var strBytes = str.getBytes((length * bps + 7) / 8); 4127 var strIdx = 0; 4128 for (var i = 0; i < length; i++) { 4129 while (codeSize < bps) { 4130 codeBuf <<= 8; 4131 codeBuf |= strBytes[strIdx++]; 4132 codeSize += 8; 4133 } 4134 codeSize -= bps; 4135 array.push((codeBuf >> codeSize) * sampleMul); 4136 codeBuf &= (1 << codeSize) - 1; 4137 } 4138 return array; 4139 }, 4140 4141 getIR: function PDFFunction_getIR(xref, fn) { 4142 var dict = fn.dict; 4143 if (!dict) 4144 dict = fn; 4145 4146 var types = [this.constructSampled, 4147 null, 4148 this.constructInterpolated, 4149 this.constructStiched, 4150 this.constructPostScript]; 4151 4152 var typeNum = dict.get('FunctionType'); 4153 var typeFn = types[typeNum]; 4154 if (!typeFn) 4155 error('Unknown type of function'); 4156 4157 return typeFn.call(this, fn, dict, xref); 4158 }, 4159 4160 fromIR: function PDFFunction_fromIR(IR) { 4161 var type = IR[0]; 4162 switch (type) { 4163 case CONSTRUCT_SAMPLED: 4164 return this.constructSampledFromIR(IR); 4165 case CONSTRUCT_INTERPOLATED: 4166 return this.constructInterpolatedFromIR(IR); 4167 case CONSTRUCT_STICHED: 4168 return this.constructStichedFromIR(IR); 4169 case CONSTRUCT_POSTSCRIPT: 4170 default: 4171 return this.constructPostScriptFromIR(IR); 4172 } 4173 }, 4174 4175 parse: function PDFFunction_parse(xref, fn) { 4176 var IR = this.getIR(xref, fn); 4177 return this.fromIR(IR); 4178 }, 4179 4180 constructSampled: function PDFFunction_constructSampled(str, dict) { 4181 function toMultiArray(arr) { 4182 var inputLength = arr.length; 4183 var outputLength = arr.length / 2; 4184 var out = []; 4185 var index = 0; 4186 for (var i = 0; i < inputLength; i += 2) { 4187 out[index] = [arr[i], arr[i + 1]]; 4188 ++index; 4189 } 4190 return out; 4191 } 4192 var domain = dict.get('Domain'); 4193 var range = dict.get('Range'); 4194 4195 if (!domain || !range) 4196 error('No domain or range'); 4197 4198 var inputSize = domain.length / 2; 4199 var outputSize = range.length / 2; 4200 4201 domain = toMultiArray(domain); 4202 range = toMultiArray(range); 4203 4204 var size = dict.get('Size'); 4205 var bps = dict.get('BitsPerSample'); 4206 var order = dict.get('Order'); 4207 if (!order) 4208 order = 1; 4209 if (order !== 1) 4210 error('No support for cubic spline interpolation: ' + order); 4211 4212 var encode = dict.get('Encode'); 4213 if (!encode) { 4214 encode = []; 4215 for (var i = 0; i < inputSize; ++i) { 4216 encode.push(0); 4217 encode.push(size[i] - 1); 4218 } 4219 } 4220 encode = toMultiArray(encode); 4221 4222 var decode = dict.get('Decode'); 4223 if (!decode) 4224 decode = range; 4225 else 4226 decode = toMultiArray(decode); 4227 4228 var samples = this.getSampleArray(size, outputSize, bps, str); 4229 4230 return [ 4231 CONSTRUCT_SAMPLED, inputSize, domain, encode, decode, samples, size, 4232 outputSize, Math.pow(2, bps) - 1, range 4233 ]; 4234 }, 4235 4236 constructSampledFromIR: function PDFFunction_constructSampledFromIR(IR) { 4237 // See chapter 3, page 109 of the PDF reference 4238 function interpolate(x, xmin, xmax, ymin, ymax) { 4239 return ymin + ((x - xmin) * ((ymax - ymin) / (xmax - xmin))); 4240 } 4241 4242 return function constructSampledFromIRResult(args) { 4243 // See chapter 3, page 110 of the PDF reference. 4244 var m = IR[1]; 4245 var domain = IR[2]; 4246 var encode = IR[3]; 4247 var decode = IR[4]; 4248 var samples = IR[5]; 4249 var size = IR[6]; 4250 var n = IR[7]; 4251 var mask = IR[8]; 4252 var range = IR[9]; 4253 4254 if (m != args.length) 4255 error('Incorrect number of arguments: ' + inputSize + ' != ' + 4256 args.length); 4257 4258 var x = args; 4259 4260 // Building the cube vertices: its part and sample index 4261 // http://rjwagner49.com/Mathematics/Interpolation.pdf 4262 var cubeVertices = 1 << m; 4263 var cubeN = new Float64Array(cubeVertices); 4264 var cubeVertex = new Uint32Array(cubeVertices); 4265 for (var j = 0; j < cubeVertices; j++) 4266 cubeN[j] = 1; 4267 4268 var k = n, pos = 1; 4269 // Map x_i to y_j for 0 <= i < m using the sampled function. 4270 for (var i = 0; i < m; ++i) { 4271 // x_i' = min(max(x_i, Domain_2i), Domain_2i+1) 4272 var domain_2i = domain[i][0]; 4273 var domain_2i_1 = domain[i][1]; 4274 var xi = Math.min(Math.max(x[i], domain_2i), domain_2i_1); 4275 4276 // e_i = Interpolate(x_i', Domain_2i, Domain_2i+1, 4277 // Encode_2i, Encode_2i+1) 4278 var e = interpolate(xi, domain_2i, domain_2i_1, 4279 encode[i][0], encode[i][1]); 4280 4281 // e_i' = min(max(e_i, 0), Size_i - 1) 4282 var size_i = size[i]; 4283 e = Math.min(Math.max(e, 0), size_i - 1); 4284 4285 // Adjusting the cube: N and vertex sample index 4286 var e0 = e < size_i - 1 ? Math.floor(e) : e - 1; // e1 = e0 + 1; 4287 var n0 = e0 + 1 - e; // (e1 - e) / (e1 - e0); 4288 var n1 = e - e0; // (e - e0) / (e1 - e0); 4289 var offset0 = e0 * k; 4290 var offset1 = offset0 + k; // e1 * k 4291 for (var j = 0; j < cubeVertices; j++) { 4292 if (j & pos) { 4293 cubeN[j] *= n1; 4294 cubeVertex[j] += offset1; 4295 } else { 4296 cubeN[j] *= n0; 4297 cubeVertex[j] += offset0; 4298 } 4299 } 4300 4301 k *= size_i; 4302 pos <<= 1; 4303 } 4304 4305 var y = new Float64Array(n); 4306 for (var j = 0; j < n; ++j) { 4307 // Sum all cube vertices' samples portions 4308 var rj = 0; 4309 for (var i = 0; i < cubeVertices; i++) 4310 rj += samples[cubeVertex[i] + j] * cubeN[i]; 4311 4312 // r_j' = Interpolate(r_j, 0, 2^BitsPerSample - 1, 4313 // Decode_2j, Decode_2j+1) 4314 rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]); 4315 4316 // y_j = min(max(r_j, range_2j), range_2j+1) 4317 y[j] = Math.min(Math.max(rj, range[j][0]), range[j][1]); 4318 } 4319 4320 return y; 4321 } 4322 }, 4323 4324 constructInterpolated: function PDFFunction_constructInterpolated(str, 4325 dict) { 4326 var c0 = dict.get('C0') || [0]; 4327 var c1 = dict.get('C1') || [1]; 4328 var n = dict.get('N'); 4329 4330 if (!isArray(c0) || !isArray(c1)) 4331 error('Illegal dictionary for interpolated function'); 4332 4333 var length = c0.length; 4334 var diff = []; 4335 for (var i = 0; i < length; ++i) 4336 diff.push(c1[i] - c0[i]); 4337 4338 return [CONSTRUCT_INTERPOLATED, c0, diff, n]; 4339 }, 4340 4341 constructInterpolatedFromIR: 4342 function PDFFunction_constructInterpolatedFromIR(IR) { 4343 var c0 = IR[1]; 4344 var diff = IR[2]; 4345 var n = IR[3]; 4346 4347 var length = diff.length; 4348 4349 return function constructInterpolatedFromIRResult(args) { 4350 var x = n == 1 ? args[0] : Math.pow(args[0], n); 4351 4352 var out = []; 4353 for (var j = 0; j < length; ++j) 4354 out.push(c0[j] + (x * diff[j])); 4355 4356 return out; 4357 4358 } 4359 }, 4360 4361 constructStiched: function PDFFunction_constructStiched(fn, dict, xref) { 4362 var domain = dict.get('Domain'); 4363 4364 if (!domain) 4365 error('No domain'); 4366 4367 var inputSize = domain.length / 2; 4368 if (inputSize != 1) 4369 error('Bad domain for stiched function'); 4370 4371 var fnRefs = dict.get('Functions'); 4372 var fns = []; 4373 for (var i = 0, ii = fnRefs.length; i < ii; ++i) 4374 fns.push(PDFFunction.getIR(xref, xref.fetchIfRef(fnRefs[i]))); 4375 4376 var bounds = dict.get('Bounds'); 4377 var encode = dict.get('Encode'); 4378 4379 return [CONSTRUCT_STICHED, domain, bounds, encode, fns]; 4380 }, 4381 4382 constructStichedFromIR: function PDFFunction_constructStichedFromIR(IR) { 4383 var domain = IR[1]; 4384 var bounds = IR[2]; 4385 var encode = IR[3]; 4386 var fnsIR = IR[4]; 4387 var fns = []; 4388 4389 for (var i = 0, ii = fnsIR.length; i < ii; i++) { 4390 fns.push(PDFFunction.fromIR(fnsIR[i])); 4391 } 4392 4393 return function constructStichedFromIRResult(args) { 4394 var clip = function constructStichedFromIRClip(v, min, max) { 4395 if (v > max) 4396 v = max; 4397 else if (v < min) 4398 v = min; 4399 return v; 4400 }; 4401 4402 // clip to domain 4403 var v = clip(args[0], domain[0], domain[1]); 4404 // calulate which bound the value is in 4405 for (var i = 0, ii = bounds.length; i < ii; ++i) { 4406 if (v < bounds[i]) 4407 break; 4408 } 4409 4410 // encode value into domain of function 4411 var dmin = domain[0]; 4412 if (i > 0) 4413 dmin = bounds[i - 1]; 4414 var dmax = domain[1]; 4415 if (i < bounds.length) 4416 dmax = bounds[i]; 4417 4418 var rmin = encode[2 * i]; 4419 var rmax = encode[2 * i + 1]; 4420 4421 var v2 = rmin + (v - dmin) * (rmax - rmin) / (dmax - dmin); 4422 4423 // call the appropropriate function 4424 return fns[i]([v2]); 4425 }; 4426 }, 4427 4428 constructPostScript: function PDFFunction_constructPostScript(fn, dict, 4429 xref) { 4430 var domain = dict.get('Domain'); 4431 var range = dict.get('Range'); 4432 4433 if (!domain) 4434 error('No domain.'); 4435 4436 if (!range) 4437 error('No range.'); 4438 4439 var lexer = new PostScriptLexer(fn); 4440 var parser = new PostScriptParser(lexer); 4441 var code = parser.parse(); 4442 4443 return [CONSTRUCT_POSTSCRIPT, domain, range, code]; 4444 }, 4445 4446 constructPostScriptFromIR: function PDFFunction_constructPostScriptFromIR( 4447 IR) { 4448 var domain = IR[1]; 4449 var range = IR[2]; 4450 var code = IR[3]; 4451 var numOutputs = range.length / 2; 4452 var evaluator = new PostScriptEvaluator(code); 4453 // Cache the values for a big speed up, the cache size is limited though 4454 // since the number of possible values can be huge from a PS function. 4455 var cache = new FunctionCache(); 4456 return function constructPostScriptFromIRResult(args) { 4457 var initialStack = []; 4458 for (var i = 0, ii = (domain.length / 2); i < ii; ++i) { 4459 initialStack.push(args[i]); 4460 } 4461 4462 var key = initialStack.join('_'); 4463 if (cache.has(key)) 4464 return cache.get(key); 4465 4466 var stack = evaluator.execute(initialStack); 4467 var transformed = []; 4468 for (i = numOutputs - 1; i >= 0; --i) { 4469 var out = stack.pop(); 4470 var rangeIndex = 2 * i; 4471 if (out < range[rangeIndex]) 4472 out = range[rangeIndex]; 4473 else if (out > range[rangeIndex + 1]) 4474 out = range[rangeIndex + 1]; 4475 transformed[i] = out; 4476 } 4477 cache.set(key, transformed); 4478 return transformed; 4479 }; 4480 } 4481 }; 4482 })(); 4483 4484 var FunctionCache = (function FunctionCacheClosure() { 4485 // Of 10 PDF's with type4 functions the maxium number of distinct values seen 4486 // was 256. This still may need some tweaking in the future though. 4487 var MAX_CACHE_SIZE = 1024; 4488 function FunctionCache() { 4489 this.cache = {}; 4490 this.total = 0; 4491 } 4492 FunctionCache.prototype = { 4493 has: function FunctionCache_has(key) { 4494 return key in this.cache; 4495 }, 4496 get: function FunctionCache_get(key) { 4497 return this.cache[key]; 4498 }, 4499 set: function FunctionCache_set(key, value) { 4500 if (this.total < MAX_CACHE_SIZE) { 4501 this.cache[key] = value; 4502 this.total++; 4503 } 4504 } 4505 }; 4506 return FunctionCache; 4507 })(); 4508 4509 var PostScriptStack = (function PostScriptStackClosure() { 4510 var MAX_STACK_SIZE = 100; 4511 function PostScriptStack(initialStack) { 4512 this.stack = initialStack || []; 4513 } 4514 4515 PostScriptStack.prototype = { 4516 push: function PostScriptStack_push(value) { 4517 if (this.stack.length >= MAX_STACK_SIZE) 4518 error('PostScript function stack overflow.'); 4519 this.stack.push(value); 4520 }, 4521 pop: function PostScriptStack_pop() { 4522 if (this.stack.length <= 0) 4523 error('PostScript function stack underflow.'); 4524 return this.stack.pop(); 4525 }, 4526 copy: function PostScriptStack_copy(n) { 4527 if (this.stack.length + n >= MAX_STACK_SIZE) 4528 error('PostScript function stack overflow.'); 4529 var stack = this.stack; 4530 for (var i = stack.length - n, j = n - 1; j >= 0; j--, i++) 4531 stack.push(stack[i]); 4532 }, 4533 index: function PostScriptStack_index(n) { 4534 this.push(this.stack[this.stack.length - n - 1]); 4535 }, 4536 // rotate the last n stack elements p times 4537 roll: function PostScriptStack_roll(n, p) { 4538 var stack = this.stack; 4539 var l = stack.length - n; 4540 var r = stack.length - 1, c = l + (p - Math.floor(p / n) * n), i, j, t; 4541 for (i = l, j = r; i < j; i++, j--) { 4542 t = stack[i]; stack[i] = stack[j]; stack[j] = t; 4543 } 4544 for (i = l, j = c - 1; i < j; i++, j--) { 4545 t = stack[i]; stack[i] = stack[j]; stack[j] = t; 4546 } 4547 for (i = c, j = r; i < j; i++, j--) { 4548 t = stack[i]; stack[i] = stack[j]; stack[j] = t; 4549 } 4550 } 4551 }; 4552 return PostScriptStack; 4553 })(); 4554 var PostScriptEvaluator = (function PostScriptEvaluatorClosure() { 4555 function PostScriptEvaluator(operators, operands) { 4556 this.operators = operators; 4557 this.operands = operands; 4558 } 4559 PostScriptEvaluator.prototype = { 4560 execute: function PostScriptEvaluator_execute(initialStack) { 4561 var stack = new PostScriptStack(initialStack); 4562 var counter = 0; 4563 var operators = this.operators; 4564 var length = operators.length; 4565 var operator, a, b; 4566 while (counter < length) { 4567 operator = operators[counter++]; 4568 if (typeof operator == 'number') { 4569 // Operator is really an operand and should be pushed to the stack. 4570 stack.push(operator); 4571 continue; 4572 } 4573 switch (operator) { 4574 // non standard ps operators 4575 case 'jz': // jump if false 4576 b = stack.pop(); 4577 a = stack.pop(); 4578 if (!a) 4579 counter = b; 4580 break; 4581 case 'j': // jump 4582 a = stack.pop(); 4583 counter = a; 4584 break; 4585 4586 // all ps operators in alphabetical order (excluding if/ifelse) 4587 case 'abs': 4588 a = stack.pop(); 4589 stack.push(Math.abs(a)); 4590 break; 4591 case 'add': 4592 b = stack.pop(); 4593 a = stack.pop(); 4594 stack.push(a + b); 4595 break; 4596 case 'and': 4597 b = stack.pop(); 4598 a = stack.pop(); 4599 if (isBool(a) && isBool(b)) 4600 stack.push(a && b); 4601 else 4602 stack.push(a & b); 4603 break; 4604 case 'atan': 4605 a = stack.pop(); 4606 stack.push(Math.atan(a)); 4607 break; 4608 case 'bitshift': 4609 b = stack.pop(); 4610 a = stack.pop(); 4611 if (a > 0) 4612 stack.push(a << b); 4613 else 4614 stack.push(a >> b); 4615 break; 4616 case 'ceiling': 4617 a = stack.pop(); 4618 stack.push(Math.ceil(a)); 4619 break; 4620 case 'copy': 4621 a = stack.pop(); 4622 stack.copy(a); 4623 break; 4624 case 'cos': 4625 a = stack.pop(); 4626 stack.push(Math.cos(a)); 4627 break; 4628 case 'cvi': 4629 a = stack.pop() | 0; 4630 stack.push(a); 4631 break; 4632 case 'cvr': 4633 // noop 4634 break; 4635 case 'div': 4636 b = stack.pop(); 4637 a = stack.pop(); 4638 stack.push(a / b); 4639 break; 4640 case 'dup': 4641 stack.copy(1); 4642 break; 4643 case 'eq': 4644 b = stack.pop(); 4645 a = stack.pop(); 4646 stack.push(a == b); 4647 break; 4648 case 'exch': 4649 stack.roll(2, 1); 4650 break; 4651 case 'exp': 4652 b = stack.pop(); 4653 a = stack.pop(); 4654 stack.push(Math.pow(a, b)); 4655 break; 4656 case 'false': 4657 stack.push(false); 4658 break; 4659 case 'floor': 4660 a = stack.pop(); 4661 stack.push(Math.floor(a)); 4662 break; 4663 case 'ge': 4664 b = stack.pop(); 4665 a = stack.pop(); 4666 stack.push(a >= b); 4667 break; 4668 case 'gt': 4669 b = stack.pop(); 4670 a = stack.pop(); 4671 stack.push(a > b); 4672 break; 4673 case 'idiv': 4674 b = stack.pop(); 4675 a = stack.pop(); 4676 stack.push((a / b) | 0); 4677 break; 4678 case 'index': 4679 a = stack.pop(); 4680 stack.index(a); 4681 break; 4682 case 'le': 4683 b = stack.pop(); 4684 a = stack.pop(); 4685 stack.push(a <= b); 4686 break; 4687 case 'ln': 4688 a = stack.pop(); 4689 stack.push(Math.log(a)); 4690 break; 4691 case 'log': 4692 a = stack.pop(); 4693 stack.push(Math.log(a) / Math.LN10); 4694 break; 4695 case 'lt': 4696 b = stack.pop(); 4697 a = stack.pop(); 4698 stack.push(a < b); 4699 break; 4700 case 'mod': 4701 b = stack.pop(); 4702 a = stack.pop(); 4703 stack.push(a % b); 4704 break; 4705 case 'mul': 4706 b = stack.pop(); 4707 a = stack.pop(); 4708 stack.push(a * b); 4709 break; 4710 case 'ne': 4711 b = stack.pop(); 4712 a = stack.pop(); 4713 stack.push(a != b); 4714 break; 4715 case 'neg': 4716 a = stack.pop(); 4717 stack.push(-b); 4718 break; 4719 case 'not': 4720 a = stack.pop(); 4721 if (isBool(a) && isBool(b)) 4722 stack.push(a && b); 4723 else 4724 stack.push(a & b); 4725 break; 4726 case 'or': 4727 b = stack.pop(); 4728 a = stack.pop(); 4729 if (isBool(a) && isBool(b)) 4730 stack.push(a || b); 4731 else 4732 stack.push(a | b); 4733 break; 4734 case 'pop': 4735 stack.pop(); 4736 break; 4737 case 'roll': 4738 b = stack.pop(); 4739 a = stack.pop(); 4740 stack.roll(a, b); 4741 break; 4742 case 'round': 4743 a = stack.pop(); 4744 stack.push(Math.round(a)); 4745 break; 4746 case 'sin': 4747 a = stack.pop(); 4748 stack.push(Math.sin(a)); 4749 break; 4750 case 'sqrt': 4751 a = stack.pop(); 4752 stack.push(Math.sqrt(a)); 4753 break; 4754 case 'sub': 4755 b = stack.pop(); 4756 a = stack.pop(); 4757 stack.push(a - b); 4758 break; 4759 case 'true': 4760 stack.push(true); 4761 break; 4762 case 'truncate': 4763 a = stack.pop(); 4764 a = a < 0 ? Math.ceil(a) : Math.floor(a); 4765 stack.push(a); 4766 break; 4767 case 'xor': 4768 b = stack.pop(); 4769 a = stack.pop(); 4770 if (isBool(a) && isBool(b)) 4771 stack.push(a != b); 4772 else 4773 stack.push(a ^ b); 4774 break; 4775 default: 4776 error('Unknown operator ' + operator); 4777 break; 4778 } 4779 } 4780 return stack.stack; 4781 } 4782 }; 4783 return PostScriptEvaluator; 4784 })(); 4785 4786 var PostScriptParser = (function PostScriptParserClosure() { 4787 function PostScriptParser(lexer) { 4788 this.lexer = lexer; 4789 this.operators = []; 4790 this.token; 4791 this.prev; 4792 } 4793 PostScriptParser.prototype = { 4794 nextToken: function PostScriptParser_nextToken() { 4795 this.prev = this.token; 4796 this.token = this.lexer.getToken(); 4797 }, 4798 accept: function PostScriptParser_accept(type) { 4799 if (this.token.type == type) { 4800 this.nextToken(); 4801 return true; 4802 } 4803 return false; 4804 }, 4805 expect: function PostScriptParser_expect(type) { 4806 if (this.accept(type)) 4807 return true; 4808 error('Unexpected symbol: found ' + this.token.type + ' expected ' + 4809 type + '.'); 4810 }, 4811 parse: function PostScriptParser_parse() { 4812 this.nextToken(); 4813 this.expect(PostScriptTokenTypes.LBRACE); 4814 this.parseBlock(); 4815 this.expect(PostScriptTokenTypes.RBRACE); 4816 return this.operators; 4817 }, 4818 parseBlock: function PostScriptParser_parseBlock() { 4819 while (true) { 4820 if (this.accept(PostScriptTokenTypes.NUMBER)) { 4821 this.operators.push(this.prev.value); 4822 } else if (this.accept(PostScriptTokenTypes.OPERATOR)) { 4823 this.operators.push(this.prev.value); 4824 } else if (this.accept(PostScriptTokenTypes.LBRACE)) { 4825 this.parseCondition(); 4826 } else { 4827 return; 4828 } 4829 } 4830 }, 4831 parseCondition: function PostScriptParser_parseCondition() { 4832 // Add two place holders that will be updated later 4833 var conditionLocation = this.operators.length; 4834 this.operators.push(null, null); 4835 4836 this.parseBlock(); 4837 this.expect(PostScriptTokenTypes.RBRACE); 4838 if (this.accept(PostScriptTokenTypes.IF)) { 4839 // The true block is right after the 'if' so it just falls through on 4840 // true else it jumps and skips the true block. 4841 this.operators[conditionLocation] = this.operators.length; 4842 this.operators[conditionLocation + 1] = 'jz'; 4843 } else if (this.accept(PostScriptTokenTypes.LBRACE)) { 4844 var jumpLocation = this.operators.length; 4845 this.operators.push(null, null); 4846 var endOfTrue = this.operators.length; 4847 this.parseBlock(); 4848 this.expect(PostScriptTokenTypes.RBRACE); 4849 this.expect(PostScriptTokenTypes.IFELSE); 4850 // The jump is added at the end of the true block to skip the false 4851 // block. 4852 this.operators[jumpLocation] = this.operators.length; 4853 this.operators[jumpLocation + 1] = 'j'; 4854 4855 this.operators[conditionLocation] = endOfTrue; 4856 this.operators[conditionLocation + 1] = 'jz'; 4857 } else { 4858 error('PS Function: error parsing conditional.'); 4859 } 4860 } 4861 }; 4862 return PostScriptParser; 4863 })(); 4864 4865 var PostScriptTokenTypes = { 4866 LBRACE: 0, 4867 RBRACE: 1, 4868 NUMBER: 2, 4869 OPERATOR: 3, 4870 IF: 4, 4871 IFELSE: 5 4872 }; 4873 4874 var PostScriptToken = (function PostScriptTokenClosure() { 4875 function PostScriptToken(type, value) { 4876 this.type = type; 4877 this.value = value; 4878 } 4879 4880 var opCache = {}; 4881 4882 PostScriptToken.getOperator = function PostScriptToken_getOperator(op) { 4883 var opValue = opCache[op]; 4884 if (opValue) 4885 return opValue; 4886 4887 return opCache[op] = new PostScriptToken(PostScriptTokenTypes.OPERATOR, op); 4888 }; 4889 4890 PostScriptToken.LBRACE = new PostScriptToken(PostScriptTokenTypes.LBRACE, 4891 '{'); 4892 PostScriptToken.RBRACE = new PostScriptToken(PostScriptTokenTypes.RBRACE, 4893 '}'); 4894 PostScriptToken.IF = new PostScriptToken(PostScriptTokenTypes.IF, 'IF'); 4895 PostScriptToken.IFELSE = new PostScriptToken(PostScriptTokenTypes.IFELSE, 4896 'IFELSE'); 4897 return PostScriptToken; 4898 })(); 4899 4900 var PostScriptLexer = (function PostScriptLexerClosure() { 4901 function PostScriptLexer(stream) { 4902 this.stream = stream; 4903 } 4904 PostScriptLexer.prototype = { 4905 getToken: function PostScriptLexer_getToken() { 4906 var s = ''; 4907 var ch; 4908 var comment = false; 4909 var stream = this.stream; 4910 4911 // skip comments 4912 while (true) { 4913 if (!(ch = stream.getChar())) 4914 return EOF; 4915 4916 if (comment) { 4917 if (ch == '\x0a' || ch == '\x0d') 4918 comment = false; 4919 } else if (ch == '%') { 4920 comment = true; 4921 } else if (!Lexer.isSpace(ch)) { 4922 break; 4923 } 4924 } 4925 switch (ch) { 4926 case '0': case '1': case '2': case '3': case '4': 4927 case '5': case '6': case '7': case '8': case '9': 4928 case '+': case '-': case '.': 4929 return new PostScriptToken(PostScriptTokenTypes.NUMBER, 4930 this.getNumber(ch)); 4931 case '{': 4932 return PostScriptToken.LBRACE; 4933 case '}': 4934 return PostScriptToken.RBRACE; 4935 } 4936 // operator 4937 var str = ch.toLowerCase(); 4938 while (true) { 4939 ch = stream.lookChar(); 4940 if (ch === null) 4941 break; 4942 ch = ch.toLowerCase(); 4943 if (ch >= 'a' && ch <= 'z') 4944 str += ch; 4945 else 4946 break; 4947 stream.skip(); 4948 } 4949 switch (str) { 4950 case 'if': 4951 return PostScriptToken.IF; 4952 case 'ifelse': 4953 return PostScriptToken.IFELSE; 4954 default: 4955 return PostScriptToken.getOperator(str); 4956 } 4957 }, 4958 getNumber: function PostScriptLexer_getNumber(ch) { 4959 var str = ch; 4960 var stream = this.stream; 4961 while (true) { 4962 ch = stream.lookChar(); 4963 if ((ch >= '0' && ch <= '9') || ch == '-' || ch == '.') 4964 str += ch; 4965 else 4966 break; 4967 stream.skip(); 4968 } 4969 var value = parseFloat(str); 4970 if (isNaN(value)) 4971 error('Invalid floating point number: ' + value); 4972 return value; 4973 } 4974 }; 4975 return PostScriptLexer; 4976 })(); 4977 4978 4979 /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 4980 /* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ 4981 4982 'use strict'; 4983 4984 var ISOAdobeCharset = [ 4985 '.notdef', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 4986 'percent', 'ampersand', 'quoteright', 'parenleft', 'parenright', 4987 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 4988 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 4989 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 4990 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 4991 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 4992 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 4993 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 4994 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 4995 'braceleft', 'bar', 'braceright', 'asciitilde', 'exclamdown', 'cent', 4996 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', 4997 'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft', 4998 'guilsinglright', 'fi', 'fl', 'endash', 'dagger', 'daggerdbl', 4999 'periodcentered', 'paragraph', 'bullet', 'quotesinglbase', 5000 'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis', 5001 'perthousand', 'questiondown', 'grave', 'acute', 'circumflex', 'tilde', 5002 'macron', 'breve', 'dotaccent', 'dieresis', 'ring', 'cedilla', 5003 'hungarumlaut', 'ogonek', 'caron', 'emdash', 'AE', 'ordfeminine', 5004 'Lslash', 'Oslash', 'OE', 'ordmasculine', 'ae', 'dotlessi', 'lslash', 5005 'oslash', 'oe', 'germandbls', 'onesuperior', 'logicalnot', 'mu', 5006 'trademark', 'Eth', 'onehalf', 'plusminus', 'Thorn', 'onequarter', 5007 'divide', 'brokenbar', 'degree', 'thorn', 'threequarters', 'twosuperior', 5008 'registered', 'minus', 'eth', 'multiply', 'threesuperior', 'copyright', 5009 'Aacute', 'Acircumflex', 'Adieresis', 'Agrave', 'Aring', 'Atilde', 5010 'Ccedilla', 'Eacute', 'Ecircumflex', 'Edieresis', 'Egrave', 'Iacute', 5011 'Icircumflex', 'Idieresis', 'Igrave', 'Ntilde', 'Oacute', 'Ocircumflex', 5012 'Odieresis', 'Ograve', 'Otilde', 'Scaron', 'Uacute', 'Ucircumflex', 5013 'Udieresis', 'Ugrave', 'Yacute', 'Ydieresis', 'Zcaron', 'aacute', 5014 'acircumflex', 'adieresis', 'agrave', 'aring', 'atilde', 'ccedilla', 5015 'eacute', 'ecircumflex', 'edieresis', 'egrave', 'iacute', 'icircumflex', 5016 'idieresis', 'igrave', 'ntilde', 'oacute', 'ocircumflex', 'odieresis', 5017 'ograve', 'otilde', 'scaron', 'uacute', 'ucircumflex', 'udieresis', 5018 'ugrave', 'yacute', 'ydieresis', 'zcaron' 5019 ]; 5020 5021 var ExpertCharset = [ 5022 '.notdef', 'space', 'exclamsmall', 'Hungarumlautsmall', 'dollaroldstyle', 5023 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', 5024 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma', 5025 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', 5026 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 5027 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 5028 'colon', 'semicolon', 'commasuperior', 'threequartersemdash', 5029 'periodsuperior', 'questionsmall', 'asuperior', 'bsuperior', 5030 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior', 5031 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', 5032 'tsuperior', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', 5033 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', 5034 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 5035 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 5036 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 5037 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 5038 'onefitted', 'rupiah', 'Tildesmall', 'exclamdownsmall', 'centoldstyle', 5039 'Lslashsmall', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 5040 'Brevesmall', 'Caronsmall', 'Dotaccentsmall', 'Macronsmall', 5041 'figuredash', 'hypheninferior', 'Ogoneksmall', 'Ringsmall', 5042 'Cedillasmall', 'onequarter', 'onehalf', 'threequarters', 5043 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths', 5044 'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'onesuperior', 5045 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior', 5046 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 5047 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', 5048 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 5049 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', 5050 'periodinferior', 'commainferior', 'Agravesmall', 'Aacutesmall', 5051 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', 'Aringsmall', 5052 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall', 5053 'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall', 5054 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall', 5055 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall', 5056 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall', 5057 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall', 5058 'Ydieresissmall' 5059 ]; 5060 5061 var ExpertSubsetCharset = [ 5062 '.notdef', 'space', 'dollaroldstyle', 'dollarsuperior', 5063 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 5064 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', 5065 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 5066 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 5067 'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon', 'commasuperior', 5068 'threequartersemdash', 'periodsuperior', 'asuperior', 'bsuperior', 5069 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior', 5070 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', 5071 'tsuperior', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', 5072 'parenrightinferior', 'hyphensuperior', 'colonmonetary', 'onefitted', 5073 'rupiah', 'centoldstyle', 'figuredash', 'hypheninferior', 'onequarter', 5074 'onehalf', 'threequarters', 'oneeighth', 'threeeighths', 'fiveeighths', 5075 'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'onesuperior', 5076 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior', 5077 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 5078 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', 5079 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 5080 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', 5081 'periodinferior', 'commainferior' 5082 ]; 5083 5084 5085 /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 5086 /* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ 5087 5088 'use strict'; 5089 5090 var CIDToUnicodeMaps = { 5091 'Adobe-Japan1': [[32, 160], {f: 12, c: 33}, [45, 8209], {f: 46, c: 46}, 165, 5092 {f: 2, c: 93}, [95, 818], [96, 768], {f: 27, c: 97}, 166, 125, [732, 771], 5093 [700, 8217], 92, [699, 8216], 124, [126, 8764], {f: 3, c: 161}, 8260, 402, 5094 0, 164, 8220, 171, {f: 2, c: 8249}, {f: 2, c: 64257}, [8210, 8211], 0, 0, 5095 [183, 8729], 0, 8226, 8218, 8222, 8221, 187, 0, 0, 191, {f: 2, c: 769}, 5096 [175, 772], {f: 3, c: 774}, 778, [184, 807], 779, 808, 780, [822, 8212], 5097 198, 170, 321, 216, 338, 186, 230, 305, 322, 248, 339, 223, 173, 169, 172, 5098 174, 0, 0, {f: 2, c: 178}, 181, 185, {f: 3, c: 188}, {f: 6, c: 192}, 5099 {f: 16, c: 199}, 0, {f: 6, c: 217}, {f: 6, c: 224}, {f: 16, c: 231}, 0, 5100 {f: 7, c: 249}, 352, 376, 381, [773, 8254], 353, 8482, 382, 0, 8194, 5101 {s: 91}, 65512, {s: 3}, {f: 63, c: 65377}, {s: 243}, [8195, 12288], 5102 {f: 2, c: 12289}, 65292, 65294, 12539, {f: 2, c: 65306}, 65311, 65281, 5103 {f: 2, c: 12443}, 180, 65344, 168, 65342, 65507, 65343, {f: 2, c: 12541}, 5104 {f: 2, c: 12445}, 12291, 20189, {f: 3, c: 12293}, 12540, 8213, 8208, 65295, 5105 65340, [12316, 65374], 8214, 65372, 8230, 8229, {s: 4}, {f: 2, c: 65288}, 5106 {f: 2, c: 12308}, 65339, 65341, 65371, 65373, {f: 10, c: 12296}, 65291, 5107 [8722, 65293], 177, 215, 247, 65309, 8800, 65308, 65310, {f: 2, c: 8806}, 5108 8734, 8756, 9794, 9792, 176, {f: 2, c: 8242}, 8451, 65509, 65284, 5109 {f: 2, c: 65504}, 65285, 65283, 65286, 65290, 65312, 167, 9734, 9733, 9675, 5110 9679, 9678, 9671, 9670, 9633, 9632, 9651, 9650, 9661, 9660, 8251, 12306, 5111 8594, {f: 2, c: 8592}, 8595, 12307, 8712, 8715, {f: 2, c: 8838}, 5112 {f: 2, c: 8834}, 8746, 8745, {f: 2, c: 8743}, 65506, 8658, 8660, 8704, 5113 8707, 8736, 8869, 8978, 8706, 8711, 8801, 8786, {f: 2, c: 8810}, 8730, 5114 8765, 8733, 8757, {f: 2, c: 8747}, 8491, 8240, 9839, 9837, 9834, 5115 {f: 2, c: 8224}, 182, 9711, {f: 10, c: 65296}, {f: 26, c: 65313}, 5116 {f: 26, c: 65345}, {f: 83, c: 12353}, {f: 86, c: 12449}, {f: 17, c: 913}, 5117 {f: 7, c: 931}, {f: 17, c: 945}, {f: 7, c: 963}, {f: 6, c: 1040}, 1025, 5118 {f: 32, c: 1046}, 1105, {f: 26, c: 1078}, 20124, 21782, 23043, 38463, 5119 21696, 24859, 25384, 23030, 36898, 33909, 33564, 31312, 24746, 25569, 5120 28197, 26093, 33894, 33446, 39925, 26771, 22311, 26017, 25201, 23451, 5121 22992, 34427, 39156, 32098, 32190, 39822, 25110, 31903, 34999, 23433, 5122 24245, 25353, 26263, 26696, 38343, 38797, 26447, 20197, 20234, 20301, 5123 20381, 20553, 22258, 22839, 22996, 23041, 23561, 24799, 24847, 24944, 5124 26131, 26885, 28858, 30031, 30064, 31227, 32173, 32239, 32963, 33806, 5125 [12176, 34915], 35586, 36949, 36986, 21307, 20117, 20133, 22495, 32946, 5126 37057, 30959, [12032, 19968], 22769, 28322, 36920, 31282, 33576, 33419, 5127 39983, 20801, 21360, 21693, 21729, 22240, 23035, 24341, 39154, 28139, 5128 32996, 34093, 38498, 38512, 38560, 38907, 21515, 21491, 23431, 28879, 5129 [12155, 32701], 36802, [12204, 38632], 21359, 40284, 31418, 19985, 30867, 5130 [12165, 33276], 28198, 22040, 21764, 27421, 34074, 39995, 23013, 21417, 5131 28006, [12128, 29916], 38287, 22082, 20113, 36939, 38642, 33615, 39180, 5132 21473, 21942, 23344, 24433, 26144, 26355, 26628, 27704, 27891, 27945, 5133 29787, 30408, 31310, 38964, 33521, 34907, 35424, 37613, 28082, 30123, 5134 30410, 39365, 24742, 35585, 36234, 38322, 27022, 21421, 20870, 22290, 5135 22576, 22852, 23476, 24310, 24616, 25513, 25588, 27839, 28436, 28814, 5136 28948, 29017, 29141, 29503, 32257, 33398, 33489, 34199, 36960, 37467, 5137 40219, 22633, 26044, 27738, 29989, 20985, 22830, 22885, 24448, 24540, 5138 25276, 26106, 27178, 27431, 27572, 29579, 32705, 35158, 40236, 40206, 5139 [12009, 40644], 23713, 27798, 33659, 20740, 23627, 25014, 33222, 26742, 5140 29281, [12036, 20057], 20474, 21368, 24681, 28201, 31311, [12211, 38899], 5141 19979, 21270, 20206, 20309, 20285, 20385, 20339, 21152, 21487, 22025, 5142 22799, 23233, 23478, 23521, 31185, 26247, 26524, 26550, 27468, 27827, 5143 [12117, 28779], 29634, 31117, [12146, 31166], 31292, 31623, 33457, 33499, 5144 33540, 33655, 33775, 33747, 34662, 35506, 22057, 36008, 36838, 36942, 5145 38686, 34442, 20420, 23784, 25105, [12123, 29273], 30011, 33253, 33469, 5146 34558, 36032, 38597, 39187, 39381, 20171, 20250, 35299, 22238, 22602, 5147 22730, 24315, 24555, 24618, 24724, 24674, 25040, 25106, 25296, 25913, 5148 39745, 26214, 26800, 28023, 28784, 30028, 30342, 32117, 33445, 34809, 5149 38283, 38542, [12185, 35997], 20977, 21182, 22806, 21683, 23475, 23830, 5150 24936, 27010, 28079, 30861, 33995, 34903, 35442, 37799, 39608, 28012, 5151 39336, 34521, 22435, 26623, 34510, 37390, 21123, 22151, 21508, 24275, 5152 25313, 25785, 26684, 26680, 27579, 29554, 30906, 31339, 35226, 5153 [12179, 35282], 36203, 36611, 37101, 38307, 38548, [12208, 38761], 23398, 5154 23731, 27005, {f: 2, c: 38989}, 25499, 31520, 27179, 27263, 26806, 39949, 5155 28511, 21106, 21917, 24688, 25324, 27963, 28167, 28369, 33883, 35088, 5156 36676, 19988, 39993, 21494, 26907, 27194, 38788, 26666, 20828, 31427, 5157 33970, 37340, 37772, 22107, 40232, 26658, 33541, 33841, 31909, 21000, 5158 33477, [12129, 29926], 20094, 20355, 20896, 23506, 21002, 21208, 21223, 5159 24059, 21914, 22570, 23014, 23436, 23448, 23515, [12082, 24178], 24185, 5160 24739, 24863, 24931, 25022, 25563, 25954, 26577, 26707, 26874, 27454, 5161 27475, 27735, 28450, 28567, 28485, 29872, [12130, 29976], 30435, 30475, 5162 31487, 31649, 31777, 32233, [12152, 32566], 32752, 32925, 33382, 33694, 5163 35251, 35532, 36011, 36996, 37969, 38291, 38289, 38306, 38501, 38867, 5164 39208, 33304, 20024, 21547, 23736, 24012, 29609, 30284, 30524, 23721, 5165 32747, 36107, 38593, 38929, 38996, 39000, 20225, 20238, 21361, 21916, 5166 22120, 22522, 22855, 23305, 23492, 23696, 24076, 24190, 24524, 25582, 5167 26426, 26071, 26082, 26399, 26827, 26820, 27231, 24112, 27589, 27671, 5168 27773, 30079, 31048, 23395, 31232, 32000, 24509, 35215, 35352, 36020, 5169 36215, 36556, 36637, 39138, 39438, [12004, 12225, 39740], [12018, 20096], 5170 20605, 20736, 22931, 23452, 25135, 25216, 25836, 27450, 29344, 30097, 5171 31047, 32681, 34811, 35516, 35696, 25516, 33738, 38816, 21513, 21507, 5172 21931, 26708, 27224, 35440, 30759, 26485, [12233, 40653], 21364, 23458, 5173 33050, 34384, 36870, 19992, 20037, 20167, 20241, 21450, 21560, 23470, 5174 [12088, 24339], 24613, 25937, 26429, 27714, 27762, 27875, 28792, 29699, 5175 31350, 31406, 31496, 32026, 31998, 32102, 26087, [12124, 29275], 21435, 5176 23621, 24040, 25298, 25312, 25369, 28192, 34394, 35377, 36317, 37624, 5177 28417, 31142, [12226, 39770], 20136, {f: 2, c: 20139}, 20379, 20384, 20689, 5178 20807, 31478, 20849, 20982, 21332, 21281, 21375, 21483, 21932, 22659, 5179 23777, 24375, 24394, 24623, 24656, 24685, 25375, 25945, 27211, 27841, 5180 29378, 29421, 30703, 33016, 33029, 33288, 34126, 37111, 37857, 38911, 5181 39255, 39514, 20208, 20957, 23597, 26241, 26989, 23616, 26354, 26997, 5182 [12127, 29577], 26704, 31873, 20677, 21220, 22343, [12081, 24062], 37670, 5183 [12100, 26020], 27427, 27453, 29748, 31105, 31165, 31563, 32202, 33465, 5184 33740, 34943, 35167, 35641, 36817, [12198, 37329], 21535, 37504, 20061, 5185 20534, 21477, 21306, 29399, 29590, 30697, 33510, 36527, 39366, 39368, 5186 39378, 20855, 24858, 34398, 21936, 31354, 20598, 23507, 36935, 38533, 5187 20018, 27355, 37351, 23633, 23624, 25496, 31391, 27795, 38772, 36705, 5188 31402, 29066, 38536, 31874, 26647, 32368, 26705, 37740, 21234, 21531, 5189 34219, 35347, 32676, 36557, 37089, 21350, 34952, 31041, 20418, 20670, 5190 21009, 20804, 21843, 22317, 29674, 22411, 22865, 24418, 24452, 24693, 5191 24950, 24935, 25001, 25522, 25658, 25964, 26223, 26690, 28179, 30054, 5192 31293, 31995, 32076, 32153, 32331, 32619, 33550, 33610, 34509, 35336, 5193 35427, 35686, 36605, 38938, 40335, 33464, 36814, 39912, 21127, 25119, 5194 25731, 28608, 38553, 26689, 20625, [12107, 27424], 27770, 28500, 5195 [12147, 31348], 32080, [12174, 34880], 35363, [12105, 26376], 20214, 20537, 5196 20518, 20581, 20860, 21048, 21091, 21927, 22287, 22533, 23244, 24314, 5197 25010, 25080, 25331, 25458, 26908, 27177, 29309, [12125, 29356], 29486, 5198 30740, 30831, 32121, 30476, 32937, [12178, 35211], 35609, 36066, 36562, 5199 36963, 37749, 38522, 38997, 39443, 40568, 20803, 21407, 21427, 24187, 5200 24358, 28187, 28304, [12126, 29572], 29694, 32067, 33335, [12180, 35328], 5201 35578, 38480, 20046, 20491, 21476, 21628, 22266, 22993, 23396, 5202 [12080, 24049], 24235, 24359, [12094, 25144], 25925, 26543, 28246, 29392, 5203 31946, 34996, 32929, 32993, 33776, [11969, 34382], 35463, 36328, 37431, 5204 38599, 39015, [12238, 40723], 20116, 20114, 20237, 21320, 21577, 21566, 5205 23087, 24460, 24481, 24735, 26791, 27278, 29786, 30849, 35486, 35492, 5206 35703, 37264, 20062, 39881, 20132, 20348, 20399, 20505, 20502, 20809, 5207 20844, 21151, 21177, 21246, 21402, [12061, 21475], 21521, 21518, 21897, 5208 22353, 22434, 22909, 23380, 23389, 23439, [12079, 24037], 24039, 24055, 5209 24184, 24195, 24218, 24247, 24344, 24658, 24908, 25239, 25304, 25511, 5210 25915, 26114, 26179, 26356, 26477, 26657, 26775, 27083, 27743, 27946, 5211 28009, 28207, 28317, 30002, 30343, 30828, 31295, 31968, 32005, 32024, 5212 32094, 32177, 32789, 32771, 32943, 32945, 33108, 33167, 33322, 33618, 5213 [12175, 34892], 34913, 35611, 36002, 36092, 37066, 37237, 37489, 30783, 5214 37628, 38308, 38477, 38917, [12217, 39321], [12220, 39640], 40251, 21083, 5215 21163, 21495, 21512, 22741, 25335, 28640, 35946, 36703, 40633, 20811, 5216 21051, 21578, 22269, 31296, 37239, 40288, [12234, 40658], 29508, 28425, 5217 33136, 29969, 24573, 24794, [12219, 39592], 29403, 36796, 27492, 38915, 5218 20170, 22256, 22372, 22718, 23130, 24680, 25031, 26127, 26118, 26681, 5219 26801, 28151, 30165, 32058, [12169, 33390], 39746, 20123, 20304, 21449, 5220 21766, 23919, 24038, 24046, 26619, 27801, 29811, 30722, 35408, 37782, 5221 35039, 22352, 24231, 25387, 20661, 20652, 20877, 26368, 21705, 22622, 5222 22971, 23472, 24425, 25165, 25505, 26685, 27507, 28168, 28797, 37319, 5223 29312, 30741, 30758, 31085, 25998, 32048, 33756, 35009, 36617, 38555, 5224 21092, 22312, 26448, 32618, 36001, 20916, 22338, 38442, 22586, 27018, 5225 32948, 21682, 23822, 22524, 30869, 40442, 20316, 21066, 21643, 25662, 5226 26152, 26388, 26613, 31364, 31574, 32034, 37679, 26716, 39853, 31545, 5227 21273, 20874, 21047, 23519, 25334, 25774, 25830, 26413, 27578, 34217, 5228 38609, 30352, 39894, 25420, 37638, 39851, [12139, 30399], 26194, 19977, 5229 20632, 21442, [12077, 23665], 24808, 25746, 25955, 26719, 29158, 29642, 5230 29987, 31639, 32386, 34453, 35715, 36059, 37240, 39184, 26028, 26283, 5231 27531, 20181, 20180, 20282, 20351, 21050, 21496, 21490, 21987, 22235, 5232 [12064, 22763], 22987, 22985, 23039, [12070, 23376], 23629, 24066, 24107, 5233 24535, 24605, 25351, [12096, 25903], 23388, 26031, 26045, 26088, 26525, 5234 [12108, 27490], 27515, [12114, 27663], 29509, 31049, 31169, [12151, 31992], 5235 32025, 32043, 32930, 33026, [12164, 33267], 35222, 35422, 35433, 35430, 5236 35468, 35566, 36039, 36060, 38604, 39164, [12013, 27503], 20107, 20284, 5237 20365, 20816, 23383, 23546, 24904, 25345, 26178, 27425, 28363, 27835, 5238 29246, 29885, 30164, 30913, [12144, 31034], [12157, 32780], [12159, 32819], 5239 [12163, 33258], 33940, 36766, 27728, [12229, 40575], 24335, 35672, 40235, 5240 31482, 36600, 23437, 38635, 19971, 21489, 22519, 22833, 23241, 23460, 5241 24713, 28287, 28422, 30142, 36074, 23455, 34048, 31712, 20594, 26612, 5242 33437, 23649, 34122, 32286, 33294, 20889, 23556, 25448, 36198, 26012, 5243 29038, 31038, 32023, 32773, 35613, [12190, 36554], 36974, 34503, 37034, 5244 20511, 21242, 23610, 26451, 28796, 29237, 37196, 37320, 37675, 33509, 5245 23490, 24369, 24825, 20027, 21462, 23432, [12095, 25163], 26417, 27530, 5246 29417, 29664, 31278, 33131, 36259, 37202, [12216, 39318], 20754, 21463, 5247 21610, 23551, 25480, 27193, 32172, 38656, 22234, 21454, 21608, 23447, 5248 23601, 24030, 20462, 24833, 25342, 27954, 31168, 31179, 32066, 32333, 5249 32722, 33261, [12168, 33311], 33936, 34886, 35186, 35728, 36468, 36655, 5250 36913, 37195, 37228, 38598, 37276, 20160, 20303, 20805, [12055, 21313], 5251 24467, 25102, 26580, 27713, 28171, 29539, 32294, 37325, 37507, 21460, 5252 22809, 23487, 28113, 31069, 32302, 31899, 22654, 29087, 20986, 34899, 5253 36848, 20426, 23803, 26149, 30636, 31459, 33308, 39423, 20934, 24490, 5254 26092, 26991, 27529, 28147, 28310, 28516, 30462, 32020, 24033, 36981, 5255 37255, 38918, 20966, 21021, 25152, 26257, 26329, 28186, 24246, 32210, 5256 32626, 26360, 34223, 34295, 35576, 21161, 21465, [12069, 22899], 24207, 5257 24464, 24661, 37604, 38500, 20663, 20767, 21213, 21280, 21319, 21484, 5258 21736, 21830, 21809, 22039, 22888, 22974, 23100, 23477, 23558, 5259 [12073, 23567], 23569, 23578, 24196, 24202, 24288, 24432, 25215, 25220, 5260 25307, 25484, 25463, 26119, 26124, 26157, 26230, 26494, 26786, 27167, 5261 27189, 27836, 28040, 28169, 28248, 28988, 28966, 29031, 30151, 30465, 5262 30813, 30977, 31077, 31216, 31456, 31505, 31911, 32057, 32918, 33750, 5263 33931, 34121, 34909, 35059, 35359, 35388, 35412, 35443, 35937, 36062, 5264 37284, 37478, 37758, 37912, 38556, 38808, 19978, 19976, 19998, 20055, 5265 20887, 21104, 22478, 22580, 22732, 23330, 24120, 24773, 25854, 26465, 5266 26454, 27972, 29366, 30067, 31331, 33976, 35698, 37304, 37664, 22065, 5267 22516, 39166, 25325, 26893, 27542, 29165, 32340, 32887, [12170, 33394], 5268 35302, [12215, 39135], 34645, 36785, 23611, 20280, 20449, 20405, 21767, 5269 23072, 23517, 23529, [12092, 24515], 24910, 25391, 26032, 26187, 26862, 5270 27035, 28024, 28145, 30003, 30137, 30495, 31070, 31206, 32051, 5271 [12162, 33251], 33455, 34218, 35242, 35386, [12189, 36523], [12191, 36763], 5272 36914, 37341, 38663, [12040, 20154], 20161, 20995, 22645, 22764, 23563, 5273 29978, 23613, 33102, 35338, 36805, 38499, 38765, 31525, 35535, 38920, 5274 37218, 22259, 21416, 36887, 21561, 22402, 24101, 25512, [12116, 27700], 5275 28810, 30561, 31883, 32736, 34928, 36930, 37204, 37648, 37656, 38543, 5276 29790, 39620, 23815, 23913, 25968, 26530, 36264, 38619, 25454, 26441, 5277 26905, 33733, 38935, 38592, 35070, 28548, 25722, [12072, 23544], 19990, 5278 28716, 30045, 26159, 20932, 21046, 21218, 22995, 24449, 24615, 25104, 5279 25919, 25972, 26143, 26228, 26866, 26646, 27491, 28165, 29298, 5280 [12131, 29983], 30427, 31934, 32854, 22768, 35069, [11972, 35199], 35488, 5281 35475, 35531, 36893, 37266, [11992, 38738], 38745, [12011, 25993], 31246, 5282 33030, 38587, 24109, 24796, 25114, 26021, 26132, 26512, [12143, 30707], 5283 31309, 31821, 32318, 33034, 36012, [12186, 36196], 36321, 36447, 30889, 5284 20999, 25305, 25509, 25666, 25240, 35373, 31363, 31680, 35500, 38634, 5285 32118, [12166, 33292], 34633, 20185, 20808, 21315, 21344, 23459, 23554, 5286 23574, 24029, 25126, 25159, 25776, 26643, 26676, 27849, 27973, 27927, 5287 26579, 28508, 29006, 29053, 26059, 31359, 31661, 32218, 32330, 32680, 5288 33146, [12167, 33307], 33337, 34214, 35438, 36046, 36341, 36984, 36983, 5289 37549, 37521, 38275, 39854, 21069, 21892, 28472, 28982, 20840, 31109, 5290 32341, 33203, 31950, 22092, 22609, 23720, 25514, 26366, 26365, 26970, 5291 29401, 30095, 30094, 30990, 31062, 31199, 31895, 32032, 32068, 34311, 5292 35380, 38459, 36961, [12239, 40736], 20711, 21109, 21452, 21474, 20489, 5293 21930, 22766, 22863, 29245, 23435, 23652, 21277, 24803, 24819, 25436, 5294 25475, 25407, 25531, 25805, 26089, 26361, 24035, 27085, 27133, 28437, 5295 29157, 20105, 30185, 30456, 31379, 31967, 32207, 32156, 32865, 33609, 5296 33624, 33900, 33980, 34299, 35013, [12187, 36208], 36865, 36973, 37783, 5297 38684, 39442, 20687, 22679, 24974, 33235, 34101, 36104, 36896, 20419, 5298 20596, 21063, 21363, 24687, 25417, 26463, 28204, [12188, 36275], 36895, 5299 20439, 23646, 36042, 26063, 32154, 21330, 34966, 20854, 25539, 23384, 5300 23403, 23562, 25613, 26449, 36956, 20182, 22810, 22826, 27760, 35409, 5301 21822, 22549, 22949, 24816, 25171, 26561, 33333, 26965, 38464, 39364, 5302 39464, 20307, 22534, 23550, 32784, 23729, 24111, 24453, 24608, 24907, 5303 25140, 26367, 27888, 28382, 32974, 33151, 33492, 34955, 36024, 36864, 5304 36910, 38538, 40667, 39899, 20195, 21488, [12068, 22823], 31532, 37261, 5305 38988, 40441, 28381, 28711, 21331, 21828, 23429, 25176, 25246, 25299, 5306 27810, 28655, 29730, 35351, 37944, 28609, 35582, 33592, 20967, 34552, 5307 21482, 21481, 20294, 36948, [12192, 36784], 22890, 33073, 24061, 31466, 5308 36799, 26842, [12181, 35895], 29432, 40008, 27197, 35504, 20025, 21336, 5309 22022, 22374, 25285, 25506, 26086, 27470, 28129, 28251, 28845, 30701, 5310 31471, 31658, 32187, 32829, 32966, 34507, 35477, 37723, 22243, 22727, 5311 24382, 26029, 26262, 27264, 27573, 30007, 35527, 20516, 30693, 22320, 5312 24347, 24677, 26234, 27744, 30196, 31258, 32622, 33268, 34584, 36933, 5313 39347, 31689, 30044, [12149, 31481], 31569, 33988, 36880, 31209, 31378, 5314 33590, 23265, 30528, 20013, 20210, 23449, 24544, 25277, 26172, 26609, 5315 27880, [12173, 34411], 34935, 35387, 37198, 37619, 39376, 27159, 28710, 5316 29482, 33511, 33879, 36015, 19969, 20806, 20939, 21899, 23541, 24086, 5317 24115, 24193, 24340, 24373, 24427, 24500, 25074, 25361, 26274, 26397, 5318 28526, 29266, 30010, 30522, 32884, 33081, 33144, 34678, 35519, 35548, 5319 36229, 36339, 37530, [11985, 12199, 38263], 38914, [12227, 40165], 21189, 5320 25431, 30452, 26389, 27784, 29645, 36035, 37806, 38515, 27941, 22684, 5321 26894, 27084, 36861, 37786, 30171, 36890, 22618, 26626, 25524, 27131, 5322 20291, 28460, 26584, 36795, 34086, 32180, 37716, 26943, 28528, 22378, 5323 22775, 23340, 32044, [12118, 29226], 21514, 37347, 40372, 20141, 20302, 5324 20572, 20597, 21059, 35998, 21576, 22564, 23450, 24093, 24213, 24237, 5325 24311, 24351, 24716, 25269, 25402, 25552, 26799, 27712, 30855, 31118, 5326 31243, 32224, 33351, 35330, 35558, 36420, 36883, 37048, 37165, 37336, 5327 [12237, 40718], 27877, 25688, 25826, 25973, 28404, 30340, 31515, 36969, 5328 37841, 28346, 21746, 24505, 25764, 36685, 36845, 37444, 20856, 22635, 5329 22825, 23637, 24215, 28155, 32399, 29980, 36028, 36578, 39003, 28857, 5330 20253, 27583, 28593, [12133, 30000], 38651, 20814, 21520, 22581, 22615, 5331 22956, 23648, 24466, [12099, 26007], 26460, 28193, 30331, 33759, 36077, 5332 36884, 37117, 37709, 30757, 30778, 21162, 24230, [12063, 22303], 22900, 5333 24594, 20498, 20826, 20908, 20941, [12049, 20992], 21776, 22612, 22616, 5334 22871, 23445, 23798, 23947, 24764, 25237, 25645, 26481, 26691, 26812, 5335 26847, 30423, 28120, 28271, 28059, 28783, 29128, 24403, 30168, 31095, 5336 31561, 31572, 31570, 31958, 32113, 21040, 33891, 34153, 34276, 35342, 5337 35588, [12182, 35910], 36367, 36867, 36879, 37913, 38518, 38957, 39472, 5338 38360, 20685, 21205, 21516, 22530, 23566, 24999, 25758, 27934, 30643, 5339 31461, 33012, 33796, 36947, 37509, 23776, 40199, 21311, 24471, 24499, 5340 28060, 29305, 30563, 31167, 31716, 27602, 29420, 35501, 26627, 27233, 5341 20984, 31361, 26932, 23626, 40182, 33515, 23493, [12195, 37193], 28702, 5342 22136, 23663, 24775, 25958, 27788, 35930, 36929, 38931, 21585, 26311, 5343 37389, 22856, 37027, 20869, 20045, 20970, 34201, 35598, 28760, 25466, 5344 37707, 26978, 39348, 32260, 30071, 21335, 26976, 36575, 38627, 27741, 5345 [12038, 20108], 23612, 24336, 36841, 21250, 36049, [12161, 32905], 34425, 5346 24319, [12103, 26085], 20083, [12042, 20837], 22914, 23615, 38894, 20219, 5347 22922, 24525, 35469, 28641, 31152, 31074, 23527, 33905, 29483, 29105, 5348 24180, 24565, 25467, 25754, 29123, 31896, 20035, 24316, 20043, 22492, 5349 22178, 24745, 28611, 32013, 33021, 33075, 33215, 36786, 35223, 34468, 5350 24052, 25226, 25773, 35207, 26487, 27874, 27966, 29750, 30772, 23110, 5351 32629, 33453, [12218, 39340], 20467, 24259, 25309, 25490, 25943, 26479, 5352 30403, 29260, 32972, 32954, 36649, 37197, 20493, 22521, 23186, 26757, 5353 26995, 29028, 29437, 36023, 22770, 36064, 38506, 36889, 34687, 31204, 5354 30695, 33833, 20271, 21093, 21338, 25293, 26575, 27850, [12137, 30333], 5355 31636, 31893, 33334, 34180, 36843, 26333, 28448, 29190, 32283, 33707, 5356 39361, [12008, 40614], 20989, 31665, 30834, 31672, 32903, 31560, 27368, 5357 24161, 32908, 30033, 30048, [12043, 20843], 37474, 28300, 30330, 37271, 5358 39658, 20240, 32624, 25244, 31567, 38309, 40169, 22138, 22617, 34532, 5359 38588, 20276, 21028, 21322, 21453, 21467, 24070, 25644, 26001, 26495, 5360 27710, 27726, 29256, 29359, 29677, 30036, 32321, 33324, 34281, 36009, 5361 31684, [12196, 37318], 29033, 38930, 39151, 25405, 26217, 30058, 30436, 5362 30928, 34115, 34542, 21290, 21329, 21542, 22915, 24199, 24444, 24754, 5363 25161, 25209, 25259, 26000, [12112, 27604], 27852, 30130, [12138, 30382], 5364 30865, 31192, 32203, 32631, 32933, 34987, 35513, 36027, 36991, 5365 [12206, 38750], [12214, 39131], 27147, 31800, 20633, 23614, 24494, 26503, 5366 27608, 29749, 30473, 32654, [12240, 40763], 26570, 31255, 21305, 5367 [12134, 30091], 39661, 24422, 33181, 33777, 32920, 24380, 24517, 30050, 5368 31558, 36924, 26727, 23019, 23195, 32016, 30334, 35628, 20469, 24426, 5369 27161, 27703, 28418, 29922, 31080, 34920, 35413, 35961, 24287, 25551, 5370 30149, 31186, 33495, 37672, 37618, 33948, 34541, 39981, 21697, 24428, 5371 25996, 27996, 28693, 36007, 36051, 38971, 25935, 29942, 19981, 20184, 5372 22496, 22827, 23142, 23500, 20904, 24067, 24220, 24598, 25206, 25975, 5373 26023, 26222, 28014, [12119, 29238], 31526, 33104, 33178, 33433, 35676, 5374 36000, 36070, 36212, [12201, 38428], 38468, 20398, 25771, 27494, 33310, 5375 33889, 34154, 37096, 23553, 26963, [12213, 39080], 33914, 34135, 20239, 5376 21103, 24489, 24133, 26381, 31119, 33145, 35079, 35206, 28149, 24343, 5377 25173, 27832, 20175, 29289, 39826, 20998, 21563, 22132, 22707, 24996, 5378 25198, 28954, 22894, 31881, 31966, 32027, 38640, [12098, 25991], 32862, 5379 19993, 20341, 20853, 22592, 24163, 24179, 24330, 26564, 20006, 34109, 5380 38281, 38491, [12150, 31859], [12212, 38913], 20731, 22721, 30294, 30887, 5381 21029, 30629, 34065, 31622, 20559, 22793, [12122, 29255], 31687, 32232, 5382 36794, 36820, 36941, 20415, 21193, 23081, 24321, 38829, 20445, 33303, 5383 37610, 22275, 25429, 27497, 29995, 35036, 36628, 31298, 21215, 22675, 5384 24917, 25098, 26286, [11935, 27597], 31807, 33769, 20515, 20472, 21253, 5385 21574, 22577, 22857, 23453, 23792, 23791, 23849, 24214, 25265, 25447, 5386 25918, [12101, 26041], 26379, 27861, 27873, 28921, 30770, 32299, 32990, 5387 33459, 33804, 34028, 34562, 35090, 35370, 35914, 37030, 37586, 39165, 5388 40179, 40300, 20047, 20129, 20621, 21078, 22346, 22952, 24125, 5389 {f: 2, c: 24536}, 25151, 26292, 26395, 26576, 26834, 20882, 32033, 32938, 5390 33192, 35584, 35980, 36031, 37502, 38450, 21536, 38956, 21271, 20693, 5391 [12056, 21340], 22696, 25778, 26420, 29287, 30566, 31302, 37350, 21187, 5392 27809, 27526, 22528, 24140, 22868, 26412, 32763, 20961, 30406, 25705, 5393 30952, 39764, [12231, 40635], 22475, 22969, 26151, 26522, 27598, 21737, 5394 27097, 24149, 33180, 26517, 39850, 26622, 40018, 26717, 20134, 20451, 5395 [12060, 21448], 25273, 26411, 27819, 36804, 20397, 32365, 40639, 19975, 5396 24930, 28288, 28459, 34067, 21619, 26410, 39749, [11922, 24051], 31637, 5397 23724, 23494, 34588, 28234, 34001, 31252, 33032, 22937, 31885, 5398 [11936, 27665], 30496, 21209, 22818, 28961, 29279, [12141, 30683], 38695, 5399 40289, 26891, 23167, 23064, 20901, 21517, 21629, 26126, 30431, 36855, 5400 37528, 40180, 23018, 29277, 28357, 20813, 26825, 32191, 32236, 5401 [12207, 38754], 40634, 25720, 27169, 33538, 22916, 23391, [12113, 27611], 5402 29467, 30450, 32178, 32791, 33945, 20786, [12106, 26408], 40665, 5403 [12140, 30446], 26466, 21247, 39173, 23588, 25147, 31870, 36016, 21839, 5404 24758, 32011, [12200, 38272], 21249, 20063, 20918, 22812, 29242, 32822, 5405 37326, 24357, [12142, 30690], 21380, 24441, 32004, 34220, 35379, 36493, 5406 38742, 26611, 34222, 37971, 24841, 24840, 27833, 30290, 35565, 36664, 5407 21807, 20305, 20778, 21191, 21451, 23461, 24189, 24736, 24962, 25558, 5408 26377, 26586, 28263, 28044, {f: 2, c: 29494}, 30001, 31056, 35029, 35480, 5409 36938, [12194, 37009], 37109, 38596, 34701, [12067, 22805], 20104, 20313, 5410 19982, 35465, 36671, 38928, 20653, 24188, 22934, 23481, 24248, 25562, 5411 25594, 25793, 26332, 26954, 27096, 27915, 28342, 29076, [12132, 29992], 5412 31407, [12154, 32650], 32768, 33865, 33993, 35201, 35617, 36362, 36965, 5413 38525, 39178, 24958, 25233, 27442, 27779, 28020, 32716, 32764, 28096, 5414 32645, 34746, 35064, 26469, 33713, 38972, 38647, 27931, 32097, 33853, 5415 37226, 20081, 21365, 23888, 27396, 28651, 34253, 34349, 35239, 21033, 5416 21519, 23653, 26446, 26792, 29702, 29827, 30178, 35023, 35041, 5417 [12197, 37324], 38626, 38520, 24459, 29575, [12148, 31435], 33870, 25504, 5418 30053, 21129, 27969, 28316, 29705, 30041, 30827, 31890, 38534, 5419 [12015, 31452], [12243, 40845], 20406, 24942, 26053, 34396, 20102, 20142, 5420 20698, 20001, 20940, 23534, 26009, 26753, 28092, 29471, 30274, 30637, 5421 31260, 31975, 33391, 35538, 36988, 37327, 38517, 38936, [12050, 21147], 5422 32209, 20523, 21400, 26519, 28107, 29136, 29747, 33256, 36650, 38563, 5423 40023, 40607, 29792, 22593, 28057, 32047, 39006, 20196, 20278, 20363, 5424 20919, 21169, 23994, 24604, 29618, 31036, 33491, 37428, 38583, 38646, 5425 38666, 40599, 40802, 26278, 27508, 21015, 21155, 28872, 35010, 24265, 5426 24651, 24976, 28451, 29001, 31806, 32244, 32879, 34030, 36899, 37676, 5427 21570, 39791, 27347, 28809, 36034, 36335, 38706, 21172, 23105, 24266, 5428 24324, 26391, 27004, 27028, 28010, 28431, 29282, 29436, 31725, 5429 [12156, 32769], 32894, 34635, 37070, 20845, 40595, 31108, 32907, 37682, 5430 35542, 20525, 21644, 35441, 27498, 36036, 33031, 24785, 26528, 40434, 5431 20121, 20120, 39952, 35435, 34241, 34152, 26880, 28286, 30871, 33109, 5432 24332, 19984, 19989, 20010, 20017, [12034, 20022], 20028, [12035, 20031], 5433 20034, 20054, 20056, 20098, [12037, 20101], 35947, 20106, 33298, 24333, 5434 20110, {f: 2, c: 20126}, [12039, 20128], 20130, 20144, 20147, 20150, 20174, 5435 20173, 20164, 20166, 20162, 20183, 20190, 20205, 20191, 20215, 20233, 5436 20314, 20272, 20315, 20317, 20311, 20295, 20342, 20360, 20367, 20376, 5437 20347, 20329, 20336, 20369, 20335, 20358, 20374, 20760, 20436, 20447, 5438 20430, 20440, 20443, 20433, 20442, 20432, {f: 2, c: 20452}, 20506, 20520, 5439 20500, 20522, 20517, 20485, 20252, 20470, 20513, 20521, 20524, 20478, 5440 20463, 20497, 20486, 20547, 20551, 26371, 20565, 20560, 20552, 20570, 5441 20566, 20588, 20600, 20608, 20634, 20613, 20660, 20658, {f: 2, c: 20681}, 5442 20659, 20674, 20694, 20702, 20709, 20717, 20707, 20718, 20729, 20725, 5443 20745, {f: 2, c: 20737}, 20758, 20757, 20756, 20762, 20769, 20794, 20791, 5444 20796, 20795, [12041, 20799], [11918, 20800], 20818, 20812, 20820, 20834, 5445 31480, {f: 2, c: 20841}, 20846, 20864, [12044, 20866], 22232, 20876, 20873, 5446 20879, 20881, 20883, 20885, [12045, 20886], 20900, 20902, 20898, 5447 {f: 2, c: 20905}, [12046, 20907], 20915, {f: 2, c: 20913}, 20912, 20917, 5448 20925, 20933, 20937, 20955, [12047, 20960], 34389, 20969, 20973, 20976, 5449 [12048, 20981], 20990, 20996, 21003, 21012, 21006, 21031, 21034, 21038, 5450 21043, 21049, 21071, 21060, {f: 2, c: 21067}, 21086, 21076, 21098, 21108, 5451 21097, 21107, 21119, 21117, 21133, 21140, 21138, 21105, 21128, 21137, 5452 36776, 36775, {f: 2, c: 21164}, 21180, 21173, 21185, 21197, 21207, 21214, 5453 21219, 21222, 39149, 21216, 21235, 21237, 21240, [12051, 21241], 21254, 5454 21256, 30008, 21261, 21264, 21263, [12052, 21269], [12053, 21274], 21283, 5455 21295, 21297, 21299, [12054, 21304], 21312, 21318, 21317, 19991, 21321, 5456 21325, 20950, 21342, [12057, 21353], 21358, 22808, 21371, 21367, 5457 [12058, 21378], 21398, 21408, 21414, 21413, 21422, 21424, [12059, 21430], 5458 21443, 31762, 38617, 21471, 26364, 29166, 21486, 21480, 21485, 21498, 5459 21505, 21565, 21568, {f: 2, c: 21548}, 21564, 21550, 21558, 21545, 21533, 5460 21582, 21647, 21621, 21646, 21599, 21617, 21623, 21616, 21650, 21627, 5461 21632, 21622, 21636, 21648, 21638, 21703, 21666, 21688, 21669, 21676, 5462 21700, 21704, 21672, 21675, 21698, 21668, 21694, 21692, 21720, 5463 {f: 2, c: 21733}, 21775, 21780, 21757, 21742, 21741, 21754, 21730, 21817, 5464 21824, 21859, 21836, 21806, 21852, 21829, {f: 2, c: 21846}, 21816, 21811, 5465 21853, 21913, 21888, 21679, 21898, 21919, 21883, 21886, 21912, 21918, 5466 21934, 21884, 21891, 21929, 21895, 21928, 21978, 21957, 21983, 21956, 5467 21980, 21988, 21972, 22036, 22007, 22038, 22014, 22013, 22043, 22009, 5468 22094, 22096, 29151, 22068, 22070, 22066, 22072, 22123, 22116, 22063, 5469 22124, 22122, 22150, 22144, 22154, 22176, 22164, 22159, 22181, 22190, 5470 22198, 22196, 22210, 22204, 22209, 22211, 22208, 22216, 22222, 22225, 5471 22227, [12062, 22231], 22254, 22265, 22272, 22271, 22276, 22281, 22280, 5472 22283, 22285, 22291, 22296, 22294, 21959, 22300, 22310, {f: 2, c: 22327}, 5473 22350, 22331, 22336, 22351, 22377, 22464, 22408, 22369, 22399, 22409, 5474 22419, 22432, 22451, 22436, 22442, 22448, 22467, 22470, 22484, 5475 {f: 2, c: 22482}, 22538, 22486, 22499, 22539, 22553, 22557, 22642, 22561, 5476 22626, 22603, 22640, 27584, 22610, 22589, 22649, 22661, 22713, 22687, 5477 22699, 22714, 22750, 22715, 22712, 22702, 22725, 22739, 22737, 22743, 5478 22745, 22744, 22757, 22748, 22756, 22751, 22767, 22778, 22777, 5479 {f: 3, c: 22779}, [12065, 22786], [12066, 22794], 22800, 22811, 26790, 5480 22821, {f: 2, c: 22828}, 22834, 22840, 22846, 31442, 22869, 22864, 22862, 5481 22874, 22872, 22882, 22880, 22887, 22892, 22889, 22904, 22913, 22941, 5482 20318, 20395, 22947, 22962, 22982, 23016, 23004, 22925, {f: 2, c: 23001}, 5483 23077, 23071, 23057, 23068, 23049, 23066, 23104, 23148, 23113, 5484 {f: 2, c: 23093}, 23138, 23146, 23194, 23228, 23230, 23243, 23234, 23229, 5485 23267, 23255, 23270, 23273, 23254, {f: 2, c: 23290}, 23308, 23307, 23318, 5486 23346, 23248, 23338, 23350, 23358, 23363, 23365, 23360, 23377, 23381, 5487 {f: 2, c: 23386}, 23397, 23401, 23408, 23411, 23413, 23416, 25992, 23418, 5488 [12071, 23424], 23427, 23462, 23480, 23491, 23495, 23497, 23508, 23504, 5489 23524, 23526, 23522, 23518, 23525, 23531, 23536, 23542, 23539, 23557, 5490 {f: 2, c: 23559}, 23565, 23571, 23584, [11920, 12074, 23586], 23592, 5491 [12075, 23608], 23609, 23617, 23622, 23630, 23635, 23632, 23631, 23409, 5492 23660, [12076, 23662], 20066, 23670, 23673, 23692, 23697, 23700, 22939, 5493 23723, 23739, 23734, 23740, 23735, 23749, 23742, 23751, 23769, 23785, 5494 23805, 23802, 23789, 23948, 23786, 23819, 23829, 23831, 23900, 23839, 5495 23835, 23825, 23828, 23842, 23834, 23833, 23832, 23884, 23890, 23886, 5496 23883, 23916, 23923, 23926, 23943, 23940, 23938, 23970, 23965, 23980, 5497 23982, 23997, 23952, 23991, 23996, 24009, 24013, 24019, 24018, 24022, 5498 [12078, 24027], 24043, 24050, 24053, 24075, 24090, 24089, 24081, 24091, 5499 {f: 2, c: 24118}, 24132, 24131, 24128, 24142, 24151, 24148, 24159, 24162, 5500 24164, 24135, {f: 2, c: 24181}, [11923, 12083, 24186], 40636, 5501 [12084, 24191], 24224, {f: 2, c: 24257}, 24264, 24272, 24271, 24278, 24291, 5502 24285, {f: 2, c: 24282}, 24290, 24289, {f: 2, c: 24296}, 24300, 24305, 5503 24307, 24304, [12085, 24308], 24312, [12086, 24318], 24323, 24329, 24413, 5504 24412, [12087, 24331], 24337, 24342, 24361, 24365, 24376, 24385, 24392, 5505 24396, 24398, 24367, [11924, 24401], {f: 2, c: 24406}, 24409, 5506 [12090, 24417], 24429, [12091, 24435], 24439, 24451, 24450, 24447, 24458, 5507 24456, 24465, 24455, 24478, 24473, 24472, 24480, 24488, 24493, 24508, 5508 24534, 24571, 24548, 24568, 24561, 24541, 24755, 24575, 24609, 24672, 5509 24601, 24592, 24617, 24590, 24625, 24603, 24597, 24619, 24614, 24591, 5510 24634, 24666, 24641, 24682, 24695, 24671, 24650, 24646, 24653, 24675, 5511 24643, 24676, 24642, 24684, 24683, 24665, 24705, 24717, 24807, 24707, 5512 24730, 24708, 24731, {f: 2, c: 24726}, 24722, 24743, 24715, 24801, 24760, 5513 24800, 24787, 24756, 24560, 24765, 24774, 24757, 24792, 24909, 24853, 5514 24838, {f: 2, c: 24822}, 24832, 24820, 24826, 24835, 24865, 24827, 24817, 5515 {f: 2, c: 24845}, 24903, 24894, 24872, 24871, 24906, 24895, 24892, 24876, 5516 24884, 24893, 24898, 24900, 24947, 24951, {f: 3, c: 24920}, 24939, 24948, 5517 24943, 24933, 24945, 24927, 24925, 24915, 24949, 24985, 24982, 24967, 5518 25004, 24980, 24986, 24970, 24977, 25003, 25006, 25036, 25034, 25033, 5519 25079, 25032, 25027, 25030, 25018, 25035, 32633, 25037, 25062, 25059, 5520 25078, 25082, 25076, 25087, 25085, 25084, 25086, 25088, [12093, 25096], 5521 25097, 25101, 25100, 25108, 25115, 25118, 25121, 25130, 25134, 25136, 5522 {f: 2, c: 25138}, 25153, 25166, 25182, 25187, 25179, 25184, 25192, 25212, 5523 25218, 25225, 25214, {f: 2, c: 25234}, 25238, 25300, 25219, 25236, 25303, 5524 25297, 25275, 25295, 25343, 25286, 25812, 25288, 25308, 25292, 25290, 5525 25282, 25287, 25243, 25289, 25356, 25326, 25329, 25383, 25346, 25352, 5526 25327, 25333, 25424, 25406, 25421, 25628, 25423, 25494, 25486, 25472, 5527 25515, 25462, 25507, 25487, 25481, 25503, 25525, 25451, 25449, 25534, 5528 25577, 25536, 25542, 25571, 25545, 25554, 25590, 25540, 25622, 25652, 5529 25606, 25619, 25638, 25654, 25885, 25623, 25640, 25615, 25703, 25711, 5530 25718, 25678, 25898, 25749, 25747, 25765, 25769, 25736, 25788, 25818, 5531 25810, 25797, 25799, 25787, 25816, 25794, 25841, 25831, 33289, 5532 {f: 2, c: 25824}, 25260, 25827, 25839, 25900, 25846, 25844, 25842, 25850, 5533 25856, 25853, 25880, 25884, 25861, 25892, 25891, 25899, [12097, 25908], 5534 [11929, 25909], 25911, 25910, 25912, 30027, 25928, 25942, 25941, 25933, 5535 25944, 25950, 25949, 25970, 25976, {f: 2, c: 25986}, 35722, 26011, 26015, 5536 26027, 26039, 26051, 26054, 26049, 26052, 26060, 26066, 26075, 26073, 5537 [12102, 26080], [11931, 26081], 26097, 26482, 26122, 26115, 26107, 26483, 5538 {f: 2, c: 26165}, 26164, 26140, 26191, 26180, 26185, 26177, 26206, 26205, 5539 26212, {f: 2, c: 26215}, 26207, 26210, 26224, 26243, 26248, 26254, 26249, 5540 26244, 26264, 26269, 26305, 26297, 26313, 26302, 26300, 26308, 26296, 5541 26326, 26330, 26336, 26175, 26342, 26345, [12104, 26352], 26357, 26359, 5542 26383, 26390, 26398, {f: 2, c: 26406}, 38712, 26414, 26431, 26422, 26433, 5543 26424, 26423, 26438, 26462, 26464, 26457, {f: 2, c: 26467}, 26505, 26480, 5544 26537, 26492, 26474, 26508, 26507, 26534, 26529, 26501, 26551, 26607, 5545 26548, 26604, 26547, 26601, 26552, 26596, 26590, 26589, 26594, 26606, 5546 26553, 26574, 26566, 26599, 27292, 26654, 26694, 26665, 26688, 26701, 5547 26674, 26702, 26803, 26667, 26713, 26723, 26743, 26751, 26783, 26767, 5548 26797, 26772, 26781, 26779, 26755, 27310, 26809, 26740, 26805, 26784, 5549 26810, 26895, 26765, 26750, 26881, 26826, 26888, 26840, 26914, 26918, 5550 26849, 26892, 26829, 26836, 26855, 26837, 26934, 26898, 26884, 26839, 5551 26851, 26917, 26873, 26848, 26863, 26920, 26922, 26906, 26915, 26913, 5552 26822, 27001, 26999, 26972, 27000, 26987, 26964, 27006, 26990, 26937, 5553 26996, 26941, 26969, 26928, 26977, 26974, 26973, 27009, 26986, 27058, 5554 27054, 27088, 27071, 27073, 27091, 27070, 27086, 23528, 27082, 27101, 5555 27067, 27075, 27047, 27182, 27025, 27040, 27036, 27029, 27060, 27102, 5556 27112, 27138, 27163, 27135, 27402, 27129, 27122, 27111, 27141, 27057, 5557 27166, 27117, 27156, 27115, 27146, 27154, 27329, 27171, 27155, 27204, 5558 27148, 27250, 27190, 27256, 27207, 27234, 27225, 27238, 27208, 27192, 5559 27170, 27280, 27277, 27296, 27268, {f: 2, c: 27298}, 27287, 34327, 27323, 5560 27331, 27330, 27320, 27315, 27308, 27358, 27345, 27359, 27306, 27354, 5561 27370, 27387, 27397, 34326, 27386, 27410, 27414, 39729, 27423, 27448, 5562 27447, 30428, 27449, 39150, 27463, 27459, 27465, 27472, 27481, 27476, 5563 27483, 27487, 27489, 27512, [12109, 27513], {f: 2, c: 27519}, 27524, 27523, 5564 27533, 27544, 27541, 27550, 27556, {f: 2, c: 27562}, 27567, 27570, 27569, 5565 [12110, 27571], 27575, 27580, 27590, [12111, 27595], 27603, 27615, 27628, 5566 27627, 27635, 27631, 40638, 27656, 27667, [12115, 27668], 27675, 27684, 5567 27683, 27742, 27733, 27746, 27754, 27778, 27789, 27802, 27777, 27803, 5568 27774, 27752, 27763, 27794, 27792, 27844, 27889, 27859, 27837, 27863, 5569 27845, 27869, 27822, 27825, 27838, 27834, 27867, 27887, 27865, 27882, 5570 27935, 34893, 27958, 27947, 27965, 27960, 27929, 27957, 27955, 27922, 5571 27916, 28003, 28051, 28004, 27994, 28025, 27993, 28046, 28053, 28644, 5572 28037, 28153, 28181, 28170, 28085, 28103, 28134, 28088, 28102, 28140, 5573 28126, 28108, 28136, 28114, 28101, 28154, 28121, 28132, 28117, 28138, 5574 28142, 28205, 28270, 28206, 28185, 28274, 28255, 28222, 28195, 28267, 5575 28203, 28278, 28237, 28191, 28227, 28218, 28238, 28196, 28415, 28189, 5576 28216, 28290, 28330, 28312, 28361, 28343, 28371, 28349, 28335, 28356, 5577 28338, {f: 2, c: 28372}, 28303, 28325, 28354, 28319, 28481, 28433, 28748, 5578 28396, 28408, 28414, 28479, 28402, 28465, 28399, 28466, 28364, 28478, 5579 28435, 28407, 28550, 28538, 28536, 28545, 28544, 28527, 28507, 28659, 5580 28525, 28546, 28540, 28504, 28558, 28561, 28610, 28518, 28595, 28579, 5581 28577, 28580, 28601, 28614, 28586, 28639, 28629, 28652, 28628, 28632, 5582 28657, 28654, 28635, 28681, 28683, 28666, 28689, 28673, 28687, 28670, 5583 28699, 28698, 28532, 28701, 28696, 28703, 28720, 28734, 28722, 28753, 5584 28771, 28825, 28818, 28847, 28913, 28844, 28856, 28851, 28846, 28895, 5585 28875, 28893, 28889, 28937, 28925, 28956, 28953, 29029, 29013, 29064, 5586 29030, 29026, 29004, 29014, 29036, 29071, 29179, 29060, 29077, 29096, 5587 29100, 29143, 29113, 29118, 29138, 29129, 29140, 29134, 29152, 29164, 5588 29159, 29173, 29180, 29177, 29183, 29197, 29200, 29211, 29224, 29229, 5589 29228, 29232, 29234, [12120, 29243], 29244, [12121, 29247], 29248, 29254, 5590 29259, 29272, 29300, 29310, 29314, 29313, 29319, 29330, 29334, 29346, 5591 29351, 29369, 29362, 29379, 29382, 29380, 29390, 29394, 29410, 5592 {f: 2, c: 29408}, 29433, 29431, 20495, 29463, 29450, 29468, 29462, 29469, 5593 29492, 29487, 29481, 29477, 29502, {f: 2, c: 29518}, 40664, 29527, 29546, 5594 29544, 29552, 29560, 29557, 29563, 29562, 29640, 29619, 29646, 29627, 5595 29632, 29669, 29678, 29662, 29858, 29701, 29807, 29733, 29688, 29746, 5596 29754, 29781, 29759, 29791, 29785, 29761, 29788, 29801, 29808, 29795, 5597 29802, 29814, 29822, 29835, 29854, 29863, 29898, 29903, 29908, 29681, 5598 29920, 29923, 29927, 29929, 29934, 29938, {f: 2, c: 29936}, 29944, 29943, 5599 29956, 29955, 29957, 29964, 29966, 29965, 29973, 29971, 29982, 29990, 5600 29996, 30012, 30020, 30029, 30026, 30025, 30043, 30022, 30042, 30057, 5601 30052, 30055, 30059, 30061, 30072, 30070, {f: 2, c: 30086}, 30068, 30090, 5602 30089, 30082, 30100, 30106, 30109, 30117, 30115, 30146, 30131, 30147, 5603 30133, 30141, 30136, 30140, 30129, 30157, 30154, 30162, 30169, 30179, 5604 30174, {f: 2, c: 30206}, 30204, 30209, 30192, 30202, {f: 2, c: 30194}, 5605 30219, 30221, 30217, 30239, 30247, {f: 3, c: 30240}, 30244, 30260, 30256, 5606 30267, {f: 2, c: 30279}, 30278, 30300, 30296, {f: 2, c: 30305}, 5607 {f: 3, c: 30312}, 30311, 30316, 30320, 30322, [12136, 30326], 30328, 30332, 5608 30336, 30339, 30344, 30347, 30350, 30358, 30355, {f: 2, c: 30361}, 30384, 5609 30388, {f: 3, c: 30392}, 30402, 30413, 30422, 30418, 30430, 30433, 30437, 5610 30439, 30442, 34351, 30459, 30472, 30471, 30468, 30505, 30500, 30494, 5611 {f: 2, c: 30501}, 30491, {f: 2, c: 30519}, 30535, 30554, 30568, 30571, 5612 30555, 30565, 30591, 30590, 30585, 30606, 30603, 30609, 30624, 30622, 5613 30640, 30646, 30649, 30655, {f: 2, c: 30652}, 30651, 30663, 30669, 30679, 5614 30682, 30684, 30691, 30702, 30716, 30732, 30738, 31014, 30752, 31018, 5615 30789, 30862, 30836, 30854, 30844, 30874, 30860, 30883, 30901, 30890, 5616 30895, 30929, 30918, 30923, 30932, 30910, 30908, 30917, 30922, 30956, 5617 30951, 30938, 30973, 30964, 30983, 30994, 30993, 31001, 31020, 31019, 5618 31040, 31072, 31063, 31071, 31066, 31061, 31059, 31098, 31103, 31114, 5619 31133, 31143, 40779, 31146, 31150, 31155, {f: 2, c: 31161}, 31177, 31189, 5620 31207, 31212, 31201, 31203, 31240, 31245, {f: 2, c: 31256}, 31264, 31263, 5621 31104, 31281, 31291, 31294, 31287, 31299, 31319, 31305, {f: 2, c: 31329}, 5622 31337, 40861, 31344, 31353, 31357, 31368, 31383, 31381, 31384, 31382, 5623 31401, 31432, 31408, 31414, 31429, 31428, 31423, 36995, 31431, 31434, 5624 31437, 31439, 31445, 31443, {f: 2, c: 31449}, 31453, {f: 2, c: 31457}, 5625 31462, 31469, 31472, 31490, 31503, 31498, 31494, 31539, {f: 2, c: 31512}, 5626 31518, 31541, 31528, 31542, 31568, 31610, 31492, 31565, 31499, 31564, 5627 31557, 31605, 31589, 31604, 31591, {f: 2, c: 31600}, 31596, 31598, 31645, 5628 31640, 31647, 31629, 31644, 31642, 31627, 31634, 31631, 31581, 31641, 5629 31691, 31681, 31692, 31695, 31668, 31686, 31709, 31721, 31761, 31764, 5630 31718, 31717, 31840, 31744, 31751, 31763, 31731, 31735, 31767, 31757, 5631 31734, 31779, 31783, 31786, 31775, 31799, 31787, 31805, 31820, 31811, 5632 31828, 31823, 31808, 31824, 31832, 31839, 31844, 31830, 31845, 31852, 5633 31861, 31875, 31888, 31908, 31917, 31906, 31915, 31905, 31912, 31923, 5634 31922, 31921, 31918, 31929, 31933, 31936, 31941, 31938, 31960, 31954, 5635 31964, 31970, 39739, 31983, 31986, 31988, 31990, 31994, 32006, 32002, 5636 32028, 32021, 32010, 32069, 32075, 32046, 32050, 32063, 32053, 32070, 5637 32115, 32086, 32078, 32114, 32104, 32110, 32079, 32099, 32147, 32137, 5638 32091, 32143, 32125, 32155, 32186, 32174, 32163, 32181, 32199, 32189, 5639 32171, 32317, 32162, 32175, 32220, 32184, 32159, 32176, 32216, 32221, 5640 32228, 32222, 32251, 32242, 32225, 32261, 32266, 32291, 32289, 32274, 5641 32305, 32287, 32265, 32267, 32290, 32326, 32358, 32315, 32309, 32313, 5642 32323, 32311, 32306, 32314, 32359, 32349, 32342, 32350, {f: 2, c: 32345}, 5643 32377, 32362, 32361, 32380, 32379, 32387, 32213, 32381, 36782, 32383, 5644 {f: 2, c: 32392}, 32396, 32402, 32400, {f: 2, c: 32403}, 32406, 32398, 5645 {f: 2, c: 32411}, 32568, 32570, 32581, {f: 3, c: 32588}, 32592, 5646 [12153, 32593], 32597, 32596, 32600, {f: 2, c: 32607}, {f: 2, c: 32616}, 5647 32615, 32632, 32642, 32646, 32643, 32648, 32647, 32652, 32660, 32670, 5648 32669, 32666, 32675, 32687, 32690, 32697, 32686, 32694, 32696, 35697, 5649 {f: 2, c: 32709}, 32714, 32725, 32724, 32737, 32742, 32745, 32755, 32761, 5650 39132, 32774, 32772, 32779, [12158, 32786], {f: 2, c: 32792}, 32796, 32801, 5651 32808, 32831, 32827, 32842, 32838, 32850, 32856, 32858, 32863, 32866, 5652 32872, 32883, 32882, 32880, 32886, 32889, 32893, [12160, 32895], 32900, 5653 32902, 32901, 32923, 32915, 32922, 32941, 20880, 32940, 32987, 32997, 5654 32985, 32989, 32964, 32986, 32982, 33033, 33007, 33009, 33051, 33065, 5655 33059, 33071, 33099, 38539, 33094, 33086, 33107, 33105, 33020, 33137, 5656 33134, {f: 2, c: 33125}, 33140, 33155, 33160, 33162, 33152, 33154, 33184, 5657 33173, 33188, 33187, 33119, 33171, 33193, 33200, 33205, 33214, 33208, 5658 33213, 33216, 33218, 33210, 33225, 33229, 33233, 33241, 33240, 33224, 5659 33242, {f: 2, c: 33247}, 33255, {f: 2, c: 33274}, 33278, {f: 2, c: 33281}, 5660 33285, 33287, 33290, 33293, 33296, 33302, 33321, 33323, 33336, 33331, 5661 33344, 33369, 33368, 33373, 33370, 33375, 33380, 33378, 33384, 5662 {f: 2, c: 33386}, 33326, 33393, 33399, [12171, 33400], 33406, 33421, 33426, 5663 33451, 33439, 33467, 33452, 33505, 33507, 33503, 33490, 33524, 33523, 5664 33530, 33683, 33539, 33531, 33529, 33502, 33542, 33500, 33545, 33497, 5665 33589, 33588, 33558, 33586, 33585, 33600, 33593, 33616, 33605, 33583, 5666 33579, {f: 2, c: 33559}, 33669, 33690, 33706, 33695, 33698, 33686, 33571, 5667 33678, 33671, 33674, 33660, 33717, 33651, 33653, 33696, 33673, 33704, 5668 33780, 33811, 33771, 33742, 33789, 33795, 33752, 33803, 33729, 33783, 5669 33799, 33760, 33778, 33805, 33826, 33824, 33725, 33848, 34054, 33787, 5670 33901, 33834, 33852, 34138, 33924, 33911, 33899, 33965, 33902, 33922, 5671 33897, 33862, 33836, 33903, 33913, 33845, 33994, 33890, 33977, 33983, 5672 33951, 34009, 33997, 33979, 34010, 34000, 33985, 33990, 34006, 33953, 5673 34081, 34047, 34036, {f: 2, c: 34071}, 34092, 34079, 34069, 34068, 34044, 5674 34112, 34147, 34136, 34120, 34113, 34306, 34123, 34133, 34176, 34212, 5675 34184, 34193, 34186, 34216, 34157, 34196, 34203, 34282, 34183, 34204, 5676 34167, 34174, 34192, 34249, 34234, 34255, 34233, 34256, 34261, 34269, 5677 34277, 34268, 34297, 34314, 34323, 34315, 34302, 34298, 34310, 34338, 5678 34330, 34352, 34367, [12172, 34381], 20053, 34388, 34399, 34407, 34417, 5679 34451, 34467, {f: 2, c: 34473}, {f: 2, c: 34443}, 34486, 34479, 34500, 5680 34502, 34480, 34505, 34851, 34475, 34516, 34526, 34537, 34540, 34527, 5681 34523, 34543, 34578, 34566, 34568, 34560, 34563, 34555, 34577, 34569, 5682 34573, 34553, 34570, 34612, 34623, 34615, 34619, 34597, 34601, 34586, 5683 34656, 34655, 34680, 34636, 34638, 34676, 34647, 34664, 34670, 34649, 5684 34643, 34659, 34666, 34821, 34722, 34719, 34690, 34735, 34763, 34749, 5685 34752, 34768, 38614, 34731, 34756, 34739, 34759, 34758, 34747, 34799, 5686 34802, 34784, 34831, 34829, 34814, {f: 2, c: 34806}, 34830, 34770, 34833, 5687 34838, 34837, 34850, 34849, 34865, 34870, 34873, 34855, 34875, 34884, 5688 34882, 34898, 34905, 34910, 34914, 34923, 34945, 34942, 34974, 34933, 5689 34941, 34997, 34930, 34946, 34967, 34962, 34990, 34969, 34978, 34957, 5690 34980, 34992, 35007, 34993, {f: 2, c: 35011}, 35028, {f: 2, c: 35032}, 5691 35037, 35065, 35074, 35068, 35060, 35048, 35058, 35076, 35084, 35082, 5692 35091, 35139, 35102, 35109, {f: 2, c: 35114}, 35137, 35140, 35131, 35126, 5693 35128, 35148, 35101, 35168, 35166, 35174, 35172, 35181, 35178, 35183, 5694 35188, 35191, [12177, 35198], 35203, 35208, 35210, 35219, 35224, 35233, 5695 35241, 35238, 35244, 35247, 35250, 35258, 35261, {f: 2, c: 35263}, 35290, 5696 {f: 2, c: 35292}, 35303, 35316, 35320, 35331, 35350, 35344, 35340, 35355, 5697 35357, 35365, 35382, 35393, 35419, 35410, 35398, 35400, 35452, 35437, 5698 35436, 35426, 35461, 35458, 35460, 35496, 35489, 35473, {f: 2, c: 35493}, 5699 35482, 35491, 35524, 35533, 35522, 35546, 35563, 35571, 35559, 35556, 5700 35569, 35604, 35552, 35554, 35575, 35550, 35547, 35596, 35591, 35610, 5701 35553, 35606, 35600, 35607, 35616, 35635, 38827, 35622, 35627, 35646, 5702 35624, 35649, 35660, 35663, 35662, 35657, 35670, 35675, 35674, 35691, 5703 35679, 35692, 35695, 35700, 35709, 35712, 35724, 35726, {f: 2, c: 35730}, 5704 35734, {f: 2, c: 35737}, 35898, 35905, 35903, 35912, 35916, 35918, 35920, 5705 [12183, 35925], 35938, 35948, [12184, 35960], 35962, 35970, 35977, 35973, 5706 35978, {f: 2, c: 35981}, 35988, 35964, 35992, 25117, 36013, 36010, 36029, 5707 {f: 2, c: 36018}, 36014, 36022, 36040, 36033, 36068, 36067, 36058, 36093, 5708 {f: 2, c: 36090}, {f: 2, c: 36100}, 36106, 36103, 36111, 36109, 36112, 5709 40782, 36115, 36045, 36116, 36118, 36199, 36205, 36209, 36211, 36225, 5710 36249, 36290, 36286, 36282, 36303, 36314, 36310, 36300, 36315, 36299, 5711 {f: 2, c: 36330}, 36319, 36323, 36348, {f: 2, c: 36360}, 36351, 5712 {f: 2, c: 36381}, 36368, 36383, 36418, 36405, 36400, 36404, 36426, 36423, 5713 36425, 36428, 36432, 36424, 36441, 36452, 36448, 36394, 36451, 36437, 5714 36470, 36466, 36476, 36481, 36487, 36485, 36484, 36491, 36490, 36499, 5715 36497, 36500, 36505, 36522, 36513, 36524, 36528, 36550, 36529, 36542, 5716 36549, 36552, 36555, 36571, 36579, 36604, 36603, 36587, 36606, 36618, 5717 36613, 36629, 36626, 36633, 36627, 36636, 36639, 36635, 36620, 36646, 5718 36659, 36667, 36665, 36677, 36674, 36670, 36684, 36681, 36678, 36686, 5719 36695, 36700, {f: 3, c: 36706}, 36764, 36767, 36771, 36781, 36783, 36791, 5720 36826, 36837, 36834, 36842, 36847, 36999, 36852, 36869, {f: 2, c: 36857}, 5721 36881, 36885, 36897, 36877, 36894, 36886, 36875, 36903, 36918, 36917, 5722 36921, 36856, {f: 4, c: 36943}, 36878, 36937, 36926, 36950, 36952, 36958, 5723 36968, 36975, 36982, 38568, 36978, 36994, 36989, 36993, 36992, 37002, 5724 37001, 37007, 37032, 37039, 37041, 37045, 37090, 37092, 25160, 37083, 5725 37122, 37138, 37145, 37170, 37168, 37194, 37206, 37208, 37219, 37221, 5726 37225, 37235, 37234, 37259, 37257, 37250, 37282, 37291, 37295, 37290, 5727 37301, 37300, 37306, {f: 2, c: 37312}, 37321, 37323, 37328, 37334, 37343, 5728 37345, 37339, 37372, {f: 2, c: 37365}, 37406, 37375, 37396, 37420, 37397, 5729 37393, 37470, 37463, 37445, 37449, 37476, 37448, 37525, 37439, 37451, 5730 37456, 37532, 37526, 37523, 37531, 37466, 37583, 37561, 37559, 37609, 5731 37647, 37626, 37700, 37678, 37657, 37666, 37658, 37667, 37690, 37685, 5732 37691, 37724, 37728, 37756, 37742, 37718, 37808, {f: 2, c: 37804}, 37780, 5733 37817, {f: 2, c: 37846}, 37864, 37861, 37848, 37827, 37853, 37840, 37832, 5734 37860, 37914, 37908, 37907, 37891, 37895, 37904, 37942, 37931, 37941, 5735 37921, 37946, 37953, 37970, 37956, 37979, 37984, 37986, 37982, 37994, 5736 37417, 38000, 38005, 38007, 38013, 37978, 38012, 38014, 38017, 38015, 5737 38274, 38279, 38282, 38292, 38294, {f: 2, c: 38296}, 38304, 38312, 38311, 5738 38317, 38332, 38331, 38329, 38334, 38346, 28662, 38339, 38349, 38348, 5739 38357, 38356, 38358, 38364, 38369, 38373, 38370, 38433, 38440, 5740 {f: 2, c: 38446}, 38466, 38476, 38479, 38475, 38519, 38492, 38494, 38493, 5741 38495, 38502, 38514, 38508, 38541, 38552, 38549, 38551, 38570, 38567, 5742 {f: 2, c: 38577}, 38576, 38580, [12202, 38582], 38584, [12203, 38585], 5743 38606, 38603, 38601, 38605, 35149, 38620, 38669, 38613, 38649, 38660, 5744 38662, 38664, 38675, 38670, 38673, 38671, 38678, 38681, 38692, 38698, 5745 38704, 38713, {f: 2, c: 38717}, 38724, 38726, 38728, 38722, 38729, 38748, 5746 38752, 38756, 38758, 38760, 21202, 38763, 38769, 38777, 38789, 38780, 5747 38785, 38778, 38790, 38795, {f: 2, c: 38799}, 38812, 38824, 38822, 38819, 5748 {f: 2, c: 38835}, 38851, 38854, 38856, [12209, 38859], 38876, 5749 [12210, 38893], 40783, 38898, 31455, 38902, 38901, 38927, 38924, 38968, 5750 38948, 38945, 38967, 38973, 38982, 38991, 38987, 39019, {f: 3, c: 39023}, 5751 39028, 39027, 39082, 39087, 39089, 39094, 39108, 39107, 39110, 39145, 5752 39147, 39171, 39177, 39186, 39188, 39192, 39201, {f: 2, c: 39197}, 39204, 5753 39200, 39212, 39214, {f: 2, c: 39229}, 39234, 39241, 39237, 39248, 39243, 5754 {f: 2, c: 39249}, 39244, 39253, {f: 2, c: 39319}, 39333, {f: 2, c: 39341}, 5755 39356, 39391, 39387, 39389, 39384, 39377, {f: 2, c: 39405}, 5756 {f: 2, c: 39409}, 39419, 39416, 39425, 39439, 39429, 39394, 39449, 39467, 5757 39479, 39493, 39490, 39488, 39491, 39486, 39509, 39501, 39515, 39511, 5758 39519, 39522, 39525, 39524, 39529, 39531, 39530, 39597, 39600, 39612, 5759 39616, 39631, 39633, {f: 2, c: 39635}, 39646, [12221, 39647], 5760 {f: 2, c: 39650}, 39654, 39663, 39659, 39662, 39668, 39665, 39671, 39675, 5761 39686, 39704, 39706, 39711, {f: 2, c: 39714}, [12222, 39717], 5762 {f: 4, c: 39719}, 39726, [12223, 39727], [12224, 39730], 39748, 39747, 5763 39759, {f: 2, c: 39757}, 39761, 39768, 39796, 39827, 39811, 39825, 5764 {f: 2, c: 39830}, {f: 2, c: 39839}, 39848, 39860, 39872, 39882, 39865, 5765 39878, 39887, {f: 2, c: 39889}, 39907, 39906, 39908, 39892, 39905, 39994, 5766 39922, 39921, 39920, 39957, 39956, 39945, 39955, 39948, 39942, 39944, 5767 39954, 39946, 39940, 39982, 39963, 39973, 39972, 39969, 39984, 40007, 5768 39986, 40006, 39998, 40026, 40032, 40039, 40054, 40056, 40167, 40172, 5769 40176, 40201, 40200, 40171, 40195, 40198, 40234, 40230, 40367, 40227, 5770 40223, 40260, 40213, 40210, 40257, 40255, 40254, 40262, 40264, 5771 {f: 2, c: 40285}, 40292, 40273, 40272, 40281, 40306, 40329, 40327, 40363, 5772 40303, 40314, 40346, 40356, 40361, 40370, 40388, 40385, 40379, 40376, 5773 40378, 40390, 40399, 40386, 40409, 40403, 40440, 40422, 40429, 40431, 5774 40445, {f: 2, c: 40474}, 40478, [12228, 40565], 40569, 40573, 40577, 40584, 5775 {f: 2, c: 40587}, 40594, 40597, 40593, 40605, [12230, 40613], 40617, 40632, 5776 40618, 40621, 38753, 40652, {f: 3, c: 40654}, 40660, 40668, 40670, 40669, 5777 40672, 40677, 40680, 40687, 40692, {f: 2, c: 40694}, [12235, 40697], 5778 {f: 2, c: 40699}, [12236, 40701], {f: 2, c: 40711}, 30391, 40725, 40737, 5779 40748, 40766, [12241, 40778], [12242, 40786], 40788, 40803, 5780 {f: 3, c: 40799}, {f: 2, c: 40806}, 40812, 40810, 40823, 40818, 40822, 5781 40853, [12244, 40860], [12245, 40864], 22575, 27079, 36953, 29796, 0, 5782 {f: 76, c: 9472}, {f: 20, c: 9312}, {f: 10, c: 8544}, 13129, 13076, 0, 5783 13133, 0, 13095, 0, 13110, 13137, 0, 13069, 13094, 0, 13099, 13130, 0, 5784 {f: 3, c: 13212}, {f: 2, c: 13198}, 13252, 13217, 12317, 12319, 8470, 5785 13261, 0, {f: 5, c: 12964}, {f: 2, c: 12849}, 12857, 13182, 13181, 13180, 5786 8750, 8721, {s: 3}, 8735, 8895, 0, 0, 21854, {s: 7}, 167133, 0, 0, 28976, 5787 0, 40407, {s: 4}, 64054, 0, 0, 22169, 15694, {s: 4}, 20448, 0, 0, 36544, 0, 5788 194797, {s: 4}, 153716, 32363, 33606, 167670, {s: 3}, 40572, 0, 0, 26171, 5789 0, 40628, {s: 4}, 26629, {s: 5}, 23650, 0, 194780, 0, 32353, 0, 0, 64070, 5790 {s: 5}, 34083, 37292, {s: 7}, 34796, {s: 8}, 25620, 0, 0, 39506, {s: 4}, 5791 64074, 0, 194692, {s: 4}, 31774, {s: 6}, 64016, 25681, 0, 0, 63980, 22625, 5792 39002, 0, 194679, {s: 3}, 31153, 0, 28678, {s: 9}, 22218, {s: 3}, 21085, 0, 5793 28497, 37297, {s: 10}, 64106, {s: 6}, 38960, 0, 40629, {s: 9}, 33802, 5794 63939, {f: 2, c: 63890}, 63897, 0, 34847, 194575, 0, 194771, 194584, 5795 {s: 7}, 137754, 23643, {s: 4}, 25890, 0, 0, 26618, 0, 26766, 0, 148432, 5796 194848, {s: 21}, 34110, {s: 15}, 30562, {s: 12}, 65075, 0, 5797 {f: 2, c: 65073}, {s: 4}, 65072, {f: 2, c: 65077}, {f: 2, c: 65081}, 0, 0, 5798 {f: 2, c: 65079}, {f: 2, c: 65087}, {f: 2, c: 65085}, {f: 4, c: 65089}, 5799 {f: 2, c: 65083}, {s: 41}, {f: 3, c: 12436}, 0, 0, 22099, {s: 41}, 65508, 5800 65287, 65282, 0, 9665, 9655, 8681, 8679, 8678, 8680, 9634, 9831, 9825, 5801 9828, 9826, 13216, 13218, {f: 2, c: 13220}, 13207, 8467, 13208, 13235, 5802 13234, 13233, 13232, {f: 3, c: 13189}, 13259, 13200, 13268, 13206, 13090, 5803 13078, 13080, 13077, 13059, 13091, 13143, 13122, 13113, 13115, 13056, 5804 13105, 13127, 13086, 13098, 0, 13183, 8481, 9742, 12342, 12320, {s: 3}, 5805 {f: 9, c: 9352}, {f: 20, c: 9332}, 12881, {f: 10, c: 8560}, 5806 {f: 10, c: 12882}, {f: 26, c: 9372}, 12867, 12861, 12863, 12852, 12856, 5807 12851, 12860, 12866, 12862, 12854, 12853, 12859, 12864, 12858, 12976, 5808 12973, 12969, 12975, 12948, 12970, 12952, 12971, 12946, 12945, 12947, 5809 12972, 12974, 12950, {s: 8}, {f: 3, c: 9131}, 0, {f: 3, c: 9127}, 0, 13260, 5810 13061, 0, 0, 13215, 13219, 13222, 0, 0, 12958, {f: 2, c: 13192}, 13256, 5811 8749, 0, 12848, {f: 6, c: 12842}, 12855, 12865, 10145, {s: 3}, 9673, 9824, 5812 9829, 9827, 9830, {f: 4, c: 9728}, 9758, {f: 2, c: 9756}, 9759, 12953, 5813 9450, {f: 2, c: 8554}, {s: 3}, {f: 8, c: 9601}, 9615, 9614, 9613, 9612, 5814 9611, 9610, 9609, {f: 2, c: 9620}, {f: 2, c: 9581}, 9584, 9583, 9552, 9566, 5815 9578, 9569, {f: 2, c: 9698}, 9701, 9700, 0, 0, {f: 3, c: 9585}, {s: 20}, 5816 20956, 29081, {f: 9, c: 10102}, {s: 3}, {f: 2, c: 8570}, {s: 3}, 8575, 5817 8458, 8457, 0, 0, 12292, 8646, {f: 2, c: 8644}, 0, {f: 4, c: 12535}, 0, 0, 5818 12957, {s: 3}, 13179, {s: 3}, 13107, 13134, {s: 30}, 32394, 35100, 37704, 5819 37512, 34012, 20425, 28859, 26161, 26824, 37625, 26363, 24389, 5820 [12033, 20008], 20193, 20220, 20224, 20227, 20281, 20310, 20370, 20362, 5821 20378, 20372, 20429, 20544, 20514, 20479, 20510, 20550, 20592, 20546, 5822 20628, 20724, 20696, 20810, 20836, 20893, 20926, 20972, 21013, 21148, 5823 21158, 21184, 21211, 21248, 0, 21284, 21362, 21395, 21426, 21469, 64014, 5824 21660, 21642, 21673, 21759, 21894, 22361, 22373, 22444, 22472, 22471, 5825 64015, 0, 22686, 22706, 22795, 22867, 22875, 22877, 22883, 22948, 22970, 5826 23382, 23488, 29999, 23512, 0, 23582, 23718, 23738, 23797, 23847, 23891, 0, 5827 23874, 23917, {f: 2, c: 23992}, 24016, 24353, 24372, 24423, 24503, 24542, 5828 24669, 24709, 24714, 24798, 24789, 24864, 24818, 24849, 24887, 24880, 5829 24984, 25107, 25254, 25589, 25696, 25757, 25806, 25934, 26112, 26133, 5830 26121, 26158, 0, 26148, 26213, 26199, 26201, 64018, 26227, 26265, 26272, 5831 26290, 26303, 26362, 26382, 0, 26470, 26555, 26706, 26560, 0, 26692, 26831, 5832 64019, 26984, 64020, 27032, 27106, 27184, 27243, 27206, 27251, 27262, 5833 27362, 27364, 27606, 27711, 27740, 27782, 27759, 27866, 27908, 28039, 5834 28015, 28054, 28076, 28111, 28152, 28146, 28156, 28217, 28252, 28199, 5835 28220, 28351, 28552, 28597, 28661, 28677, 28679, 28712, 28805, 28843, 5836 28943, 28932, 29020, {f: 2, c: 28998}, 0, 29121, 29182, 29361, 29374, 5837 29476, 64022, 29559, 29629, 29641, 29654, 29667, 29650, 29703, 29685, 5838 29734, 29738, 29737, 29742, 0, 29833, 29855, 29953, 30063, 30338, 30364, 5839 30366, 30363, 30374, 64023, 30534, 21167, 30753, 30798, 30820, 30842, 5840 31024, {f: 3, c: 64024}, 31124, 64027, 31131, 31441, 31463, 64028, 31467, 5841 31646, 64029, 32072, 0, 32183, 32160, 32214, 32338, 32583, 32673, 64030, 5842 33537, 33634, 33663, 33735, 33782, 33864, 33972, 34131, 34137, 34155, 5843 64031, 34224, {f: 2, c: 64032}, 34823, 35061, 35346, 35383, 35449, 35495, 5844 35518, 35551, 64034, 35574, 35667, 35711, 36080, 36084, 36114, 36214, 5845 64035, 36559, 0, 64037, 36967, 37086, 64038, 37141, 37159, 37338, 37335, 5846 37342, {f: 2, c: 37357}, {f: 2, c: 37348}, 37382, 37392, 37386, 37434, 5847 37440, 37436, 37454, 37465, 37457, 37433, 37479, 37543, {f: 2, c: 37495}, 5848 37607, 37591, 37593, 37584, 64039, 37589, 37600, 37587, 37669, 37665, 5849 37627, 64040, 37662, 37631, 37661, 37634, 37744, 37719, 37796, 37830, 5850 37854, 37880, 37937, 37957, 37960, 38290, 0, 64041, 38557, 38575, 38707, 5851 38715, 38723, 38733, 38735, [12205, 38737], 0, 38999, 39013, 5852 {f: 2, c: 64042}, 39207, 64044, 39326, 39502, 39641, 39644, 39797, 39794, 5853 39823, 39857, 39867, 39936, 40304, 40299, 64045, 40473, 40657, {s: 636}, 5854 8364, 8486, 0, 0, 64256, {f: 2, c: 64259}, 257, 299, 363, 275, 333, 256, 5855 298, 362, 274, 332, {f: 4, c: 8539}, {f: 2, c: 8531}, 8304, 5856 {f: 6, c: 8308}, {f: 10, c: 8320}, 461, 282, 0, 7868, 463, 0, 296, 465, 0, 5857 467, 366, 360, 462, 283, 0, 7869, 464, 0, 297, 466, 0, 468, 367, 361, 593, 5858 8049, 8048, 509, 0, 596, 0, 0, 601, 0, 0, 602, 0, 0, 603, 8051, 8050, 0, 5859 331, 629, 652, 0, 0, 658, 643, 720, {s: 682}, {f: 10, c: 12832}, {s: 108}, 5860 {f: 4, c: 12892}, {f: 15, c: 12977}, {s: 50}, {f: 26, c: 9424}, 5861 {f: 26, c: 9398}, {s: 48}, {f: 47, c: 13008}, 0, {f: 10, c: 12928}, 12944, 5862 {f: 6, c: 12938}, 0, 12959, {s: 6}, {f: 2, c: 12960}, 12955, 12954, 12963, 5863 12962, 12951, 0, 12956, 12949, {s: 6}, 9676, {s: 11}, 10111, 5864 {f: 10, c: 9451}, {s: 510}, 8414, {s: 815}, 13274, {s: 3}, 8448, 13250, 0, 5865 0, 8453, 0, 13169, 0, 0, 13197, 13211, {s: 3}, {f: 2, c: 13271}, {s: 3}, 5866 {f: 2, c: 13057}, 13060, 13062, 0, 13064, 0, 13063, 13066, 0, 13065, 0, 5867 13067, 0, 13068, {f: 6, c: 13070}, 0, 13079, 0, 13081, 0, {f: 4, c: 13082}, 5868 {f: 3, c: 13087}, 13092, 0, 13093, 0, 0, {f: 2, c: 13096}, 0, 13101, 0, 0, 5869 {f: 3, c: 13102}, 13106, 0, 0, {f: 2, c: 13108}, 13116, {s: 3}, 13111, 0, 5870 13112, 13114, 13117, 13121, {f: 3, c: 13118}, {f: 4, c: 13123}, 13128, 5871 {f: 2, c: 13131}, {f: 2, c: 13135}, 0, 0, 13138, 13140, 0, 0, 13139, 5872 {f: 2, c: 13141}, {s: 132}, 8501, 976, 8714, 8463, 0, 981, 987, 977, 0, 5873 {f: 2, c: 9832}, 9836, {s: 5}, 12347, 0, {f: 3, c: 12339}, 8252, 8265, 5874 {s: 5}, 8723, 0, 8771, {f: 2, c: 8818}, {s: 6}, {f: 2, c: 12312}, 5875 {f: 2, c: 65375}, {s: 10}, 9115, {f: 2, c: 9117}, 9120, {s: 4}, 9121, 5876 {f: 2, c: 9123}, 9126, {s: 12}, [9116, 9119, 9122, 9125, 9130], {s: 8}, 5877 9986, 0, 0, 12349, 0, 12447, 0, 0, 8709, 8864, 8854, 8856, 8853, 8855, 5878 {s: 4}, 9664, 9654, {s: 4}, 8656, 8596, {f: 2, c: 8600}, {f: 2, c: 8598}, 5879 8652, 8651, {s: 10}, 12336, 8967, {s: 8}, 10048, 10047, {s: 7}, 9643, 0, 5880 9642, 0, 10010, {s: 12}, 9702, {s: 4}, 10070, {s: 379}, {f: 2, c: 65093}, 5881 {s: 679}, 64103, 64098, 32227, [12232, 40643], 28331, 64082, 64061, 64069, 5882 64062, 27114, 28212, 64096, 64071, 64056, 64066, 64078, 34395, 64105, 5883 64052, 64099, 25581, 25802, 30799, 64084, 63856, 64077, 64097, 64072, 5884 64076, {f: 2, c: 64091}, 64081, 64067, 64090, 28041, 29376, 0, 194885, 5885 64086, 64080, 64049, 64059, 24034, 64063, 64101, 21373, 64055, 64095, 5886 24501, 64064, 0, 64083, 0, 64085, 64104, 64068, 64089, 26202, 64053, 64075, 5887 64100, 64065, 64048, 0, 64057, 64051, 27493, 64058, 27599, 64050, 25150, 5888 64079, 63773, 63964, 63798, 28122, 63952, 26310, 27511, 64087, 37706, 0, 5889 37636, {s: 120}, 133390, {s: 120}, 35999, 11991, [11965, 158033], {s: 5}, 5890 37555, 38321, 0, 0, 194812, {s: 13}, 194965, {s: 8}, 194794, 0, 26478, 5891 11974, 0, 194594, {s: 13}, 13314, 0, 0, 26083, {s: 4}, 134071, {s: 10}, 5892 171339, 0, 194611, 24378, {s: 8}, 11945, 0, 20465, {s: 7}, 63753, {s: 7}, 5893 11964, 0, 0, 194732, 26435, {s: 3}, 133732, 35329, 25142, 0, 0, 21555, 5894 23067, {s: 3}, 25221, 0, 0, 194819, {s: 6}, 21567, {s: 9}, 27506, {s: 4}, 5895 29986, 19256, 0, 0, 24063, {s: 6}, 194827, 29626, 134047, {s: 3}, 194600, 5896 0, 194849, {s: 5}, 194623, {s: 16}, 194675, {f: 2, c: 11916}, 23577, 5897 {s: 3}, 131083, 23426, 194642, {s: 5}, 11997, [11999, 39136], 5898 [11998, 169599], 14221, 0, [11927, 14586], 0, 194887, 0, [11909, 20155], 5899 131490, {s: 7}, 13599, 0, 194738, 0, 0, [11971, 35200], {s: 4}, 31237, 5900 {s: 4}, 35498, 0, 32085, 0, 28568, {s: 7}, 25591, 30246, {s: 4}, 5901 [11978, 163767], {s: 5}, 146686, {s: 5}, 13351, 0, 0, 33067, 0, 0, 194842, 5902 {s: 5}, 11950, {s: 5}, 194714, {s: 3}, 194831, {s: 19}, 22305, 135741, 5903 194586, 0, 64003, {s: 7}, 21534, 15240, 20839, {s: 4}, 63839, {s: 9}, 5904 20023, {s: 13}, [11946, 150804], 24421, 23020, 194658, 0, 24217, {s: 46}, 5905 13416, {s: 8}, 21200, {s: 9}, 26625, 0, 195024, 195039, {s: 5}, 153215, 0, 5906 0, 11959, {s: 4}, 36534, 63775, {s: 3}, 63875, {s: 5}, 31867, 63906, 0, 5907 63898, 0, [11961, 32770], 157360, {s: 4}, [11911, 132648], 0, 0, 131210, 5908 194604, [11915, 13630], {s: 4}, 21589, 0, 22841, 0, 0, 23414, 194669, 5909 23572, 14306, 23782, 0, 20040, 0, 0, 194742, {s: 4}, 158105, 25371, 0, 0, 5910 26211, 0, 194779, 0, 0, 27126, 27014, {s: 3}, 27596, 0, 28183, 0, 0, 27818, 5911 {s: 3}, [11942, 20012], 0, 0, 29935, 30069, 30188, 30286, 16305, 30570, 5912 30633, {s: 6}, 31571, 0, 0, 16996, {s: 3}, 194924, 0, 0, 32328, {s: 5}, 5913 11955, {s: 4}, 33089, 17491, 0, [11966, 33401], [11967, 64094], 5914 [11968, 64093], 0, 20857, 33626, {s: 3}, 17701, 0, 34292, 131248, {s: 4}, 5915 34429, 0, 13358, 35014, {s: 6}, 18406, {s: 8}, 36808, {s: 19}, 166279, 0, 5916 0, 167447, 0, 0, 38969, {s: 6}, 39432, {s: 4}, 39903, {s: 10}, 148206, 5917 {s: 5}, 21385, 0, 64017, 194785, 0, 146622, 132625, 0, {f: 2, c: 19972}, 5918 19999, 20011, {f: 2, c: 20015}, {f: 2, c: 20032}, 20036, [11907, 20058], 5919 20095, 20109, 20118, 20153, 20176, 20192, 20221, 20223, 20235, 20245, 5920 20320, 20283, 20297, 20308, 20346, {f: 2, c: 20349}, 20375, 20414, 20431, 5921 20477, {f: 2, c: 20480}, 20496, 20507, 20519, 20526, 20567, 20582, 20586, 5922 20539, 20623, 20630, 20636, 20684, 20710, 20713, 20719, 20744, 20747, 5923 20752, 20763, 20766, 20831, 20897, 20924, 0, 20974, 20980, 20993, 5924 [11913, 20994], 21011, 21065, 21089, 21094, 21139, 21192, 21232, 5925 {f: 2, c: 21258}, 21310, 21324, 21323, 21345, 21356, 21419, 21466, 21478, 5926 21493, 21543, 21581, 21606, 21611, 21620, 21645, 21654, 21665, 21677, 5927 21689, 21695, 21702, 21709, 21774, 21803, 21813, 21834, 21856, 0, 21896, 5928 21902, 22024, {f: 2, c: 22030}, 22071, 22079, 22089, 22091, 22095, 22118, 5929 22121, 22127, {f: 2, c: 22129}, 22165, 22170, {f: 2, c: 22188}, 22193, 5930 22217, 22237, 22244, 22282, 22293, 22307, 22319, {f: 2, c: 22323}, 22348, 5931 22384, 22412, 22428, 22456, 22502, 22509, {f: 2, c: 22517}, 22527, 22537, 5932 22560, 22578, 22652, 22656, 22697, 22734, 22736, 22740, 22746, 22761, 5933 22796, 22820, 22831, 22881, 22893, 22986, 22994, 23005, {f: 2, c: 23011}, 5934 23044, 23052, 23075, 23111, 23125, 23139, 23149, 23166, 23198, 23207, 5935 23212, 23219, 23264, 23296, 23321, 23333, 23341, 23361, 23420, 5936 {f: 2, c: 23422}, 23434, [11919, 23587], 23595, 23600, 23651, 23657, 23676, 5937 23755, 23762, 23796, 23844, 23846, 23875, 23878, 23882, 23954, 23956, 5938 23961, 23968, 24024, 24032, 24056, 24064, 24082, {f: 2, c: 24084}, 24088, 5939 24110, 24152, {f: 2, c: 24171}, 24232, 24234, {f: 2, c: 24254}, 0, 24274, 5940 24327, 24334, {f: 2, c: 24348}, 24354, 24360, 24374, 24379, 24384, 5941 [12089, 24400], 24408, 24420, 24457, 24476, 24487, 24484, 24495, 24504, 5942 [11926, 24516], 24521, 24545, 24553, 24557, 24572, 24599, 24602, 24627, 5943 24673, 24703, 24734, 24740, 24752, 24779, 24795, 24824, {f: 3, c: 24850}, 5944 24860, 24956, 24973, 24991, 25000, 25026, 25055, 25109, 25129, 25155, 5945 25158, [11928, 25164], 25169, 25174, 25284, 25340, 25354, 25357, 25368, 5946 25401, {f: 2, c: 25410}, 25445, 25460, 25469, 25476, 25479, 25488, 25502, 5947 25553, 25564, 25609, 25616, 25634, 25684, 25691, 25709, 25723, 5948 {f: 2, c: 25790}, 25829, 25847, 25851, 25860, 25878, 25881, 25927, 25959, 5949 25985, 25989, 26050, 26096, 26098, 26156, 26188, {f: 2, c: 26203}, 26209, 5950 26219, 0, 26276, 26312, 26348, 26373, 26387, 26419, 26440, 26444, 26486, 5951 26491, 26544, 26546, 26617, 26583, 26585, 26608, 26668, {f: 2, c: 26672}, 5952 26715, 26738, 26741, 26746, 26756, 26789, 26802, 26832, 26838, 26856, 5953 26861, {f: 2, c: 26864}, 26876, 26897, 26899, 26933, 26939, 26967, 26979, 5954 26994, {f: 2, c: 27007}, 27046, 27053, 27063, {f: 2, c: 27094}, 27137, 5955 27151, 27157, 27176, 27188, 27198, 27205, {f: 2, c: 27216}, 27222, 27227, 5956 27267, 27273, 27281, {f: 3, c: 27293}, 27356, 27367, 27372, 27422, 27428, 5957 27445, 27462, 27478, 27488, 27522, 27582, 27617, 27633, 27664, 27699, 5958 [11937, 27701], 11938, 27737, 27766, 27771, 27781, 27797, 27804, 27856, 5959 27860, 27862, 27872, {f: 2, c: 27883}, 27886, 27914, 27918, 27921, 27950, 5960 27991, 27998, 28005, 28034, 28095, 28100, 28106, 28118, 28137, 28194, 5961 28241, 28359, 28362, 28366, 28413, 28442, 28458, 28463, 28467, 28506, 5962 28510, 28514, 28541, 28555, 28557, 28562, 28564, 28570, {f: 2, c: 28583}, 5963 28598, 28634, 28638, 0, 28729, 28732, 0, 28756, {f: 2, c: 28765}, 28772, 5964 [11939, 28780], 28798, 28801, 28821, 28855, {f: 2, c: 28883}, 28888, 28892, 5965 28935, 28960, 28977, 29002, 29010, 29024, 29049, 29074, 0, 29131, 29139, 5966 29142, 29184, 29213, 29227, 29240, 29249, 29267, {f: 2, c: 29269}, 29276, 5967 29325, [11944, 29357], 29364, 29383, 29435, {f: 2, c: 29444}, 29480, 29489, 5968 29507, 29548, 29564, 29571, {f: 2, c: 29573}, 29589, {f: 3, c: 29598}, 5969 29606, 29611, 29621, 29623, 29628, 29647, 29657, 29673, 29684, 29693, 5970 29700, 29706, {f: 2, c: 29722}, 29732, 29736, 29740, {f: 3, c: 29743}, 5971 29753, 29764, 29767, 29771, 29773, 29777, 29783, 29798, 29803, 29809, 5972 29824, {f: 3, c: 29829}, 29840, 29848, 29852, 29856, 29859, 29864, 29867, 5973 29877, 29887, 29896, 29914, 29918, 30030, 30073, 30081, 30096, 5974 [12135, 30098], 30099, 30132, 30180, 30201, 30208, 30218, {f: 2, c: 30229}, 5975 30233, 30238, 30253, 30261, 30275, 30283, 30309, 30317, 30319, 30321, 5976 30324, {f: 2, c: 30372}, 30405, 30412, 30444, 30460, 30516, 30518, 30556, 5977 {f: 2, c: 30559}, 30578, 30589, 30613, 30634, 30694, 30704, 30708, 30726, 5978 30754, {f: 2, c: 30765}, 30768, 30773, 30824, 30878, 30920, 30924, 30926, 5979 30948, {f: 2, c: 30944}, 30962, 30967, 30971, 31025, 0, [11949, 31035], 5980 31037, 31045, {f: 2, c: 31067}, 31115, 31126, 31128, [12145, 31160], 31163, 5981 31178, 31194, 31235, 31241, 31249, 31262, 31277, 31289, 31301, 31308, 5982 31325, 0, 31341, 31352, 31392, 31395, 31411, {f: 2, c: 31419}, 31430, 5983 31495, 31508, 31527, 31537, 31559, 31566, 31584, 31593, 31597, 31602, 5984 31633, 31663, 31703, 31705, 31755, 31759, 31776, 31782, 31793, 31798, 5985 31825, 31833, 31847, 31854, 31856, 31932, 31935, {f: 2, c: 31944}, 31959, 5986 31961, 31965, 31979, {f: 3, c: 32007}, 32019, 32029, 32035, 32065, 32083, 5987 32089, 32093, 32122, 32134, {f: 2, c: 32139}, 32204, 32235, 32241, 32249, 5988 32264, 32273, 32277, 32288, 32327, 32354, 32366, 32371, 32397, 32401, 5989 32408, 32580, 32591, [11947, 11954, 32594], [11953, 32595], 32609, 32657, 5990 32703, 32718, 32735, 32741, 32748, {f: 2, c: 32750}, 32762, 32782, 32785, 5991 32788, 32804, 32806, 32826, 32828, 32864, 32881, 32885, 32926, 32934, 5992 32939, {f: 2, c: 32983}, 33046, 33048, 33082, 33098, 33100, 33153, 33156, 5993 33204, 33231, 33273, 33283, 33313, 33330, 33332, 33350, 33355, 33359, 5994 33422, 33454, 33463, 33470, 33478, 33534, 33603, 33617, 33621, 33670, 5995 33677, 33682, 33688, 33705, {f: 2, c: 33727}, 33770, 33807, 33809, 33866, 5996 33910, 33960, 33967, 33984, 33986, 34032, 34045, 34060, 34100, 34142, 5997 34191, 34231, 34254, 34221, 34322, 34345, 34386, 34403, 34412, 34415, 5998 34426, 34445, 34449, 34456, {f: 2, c: 34471}, 34554, 34557, 34571, 34579, 5999 34585, 34590, 34600, 34622, 34673, 34696, 34713, {f: 2, c: 34732}, 34741, 6000 34774, 34795, 34797, 34817, 0, 34822, 34827, 34836, 34844, 34902, 34911, 6001 [11970, 34916], 34968, 34986, {f: 2, c: 35005}, 35018, 35026, 35035, 6002 {f: 2, c: 35056}, 35078, {f: 3, c: 35096}, 35111, 35120, 35134, 35195, 6003 35284, 35286, 35301, 35313, 35335, 35343, 35349, 35362, 35406, 35455, 6004 35572, 35615, 35639, {f: 2, c: 35651}, 35668, 35740, 35742, 35911, 35924, 6005 35955, 36004, 36057, 36065, 36088, 36094, 36123, 36201, 36204, 36228, 6006 36237, 36245, 36262, 36294, 36302, 36324, 36332, 36384, 36427, 36460, 6007 36464, 36474, 36498, 36526, 36531, 36561, 36564, 36601, 36631, 36662, 6008 36774, [12193, 36789], [11981, 36790], 0, 36832, 36836, 36854, 36866, 6009 36908, 36932, 37000, 37013, 37017, 37019, 37026, 37044, 37079, 37085, 6010 37108, 37143, 37148, 37169, 37178, 37181, 37192, 37211, 37217, 37220, 6011 37262, 37278, 37288, {f: 2, c: 37293}, 37298, 37308, 37360, 37367, 37371, 6012 37383, 37416, 37427, 37432, 37443, 37447, 37455, 37472, 37570, 6013 {f: 2, c: 37579}, 37599, 37645, 37653, 37663, 37671, 37703, 37714, 0, 6014 37738, 37741, 37787, 37818, 37801, 37825, 37834, 37858, 37882, 37885, 6015 37903, 37940, 37951, 37973, 37995, 38002, [11986, 38264], 38310, 38313, 0, 6016 38324, 38333, 38362, [11983, 11990, 38429], 38465, 38488, 38532, 38564, 6017 38569, 38610, 195060, 38622, 38633, 38641, 38658, 38665, 38746, 38755, 6018 38766, 38771, 38810, 38818, {f: 2, c: 38837}, 38873, 38878, 38900, 38922, 6019 38926, 38942, 38947, 38955, 38974, {f: 2, c: 38994}, 39001, 39020, 39096, 6020 39098, 39103, 39112, 39141, {f: 2, c: 39218}, 39232, 39245, 39260, 39263, 6021 39345, {f: 2, c: 39353}, 39369, 39426, 39446, 39460, 39463, 6022 {f: 2, c: 39469}, 39478, 39480, 39498, 39510, {f: 2, c: 39605}, 39673, 6023 39683, 39712, {f: 2, c: 39731}, 39795, 39801, 39847, 39873, 39879, 39895, 6024 39911, 39915, 39927, 39930, 39933, 39947, 39975, 39978, 39990, 40001, 6025 40019, 40035, 40048, 40055, 40194, 40258, 40263, 40291, 40297, 40316, 6026 40318, 40333, 40369, 40387, 40391, 40406, 40415, 40427, 40436, 40469, 6027 40477, 40612, 40616, 40620, 40679, 40686, 40720, 40722, 40727, 40729, 6028 40751, 40759, 40761, 40769, 40773, 40791, 40808, 40817, 40821, 40848, 6029 40852, 40866, 0, 13317, 194564, 22048, 24267, 11925, 0, 144954, 0, 28665, 6030 28390, 29107, [11940, 64073], {s: 4}, [11980, 64102], 0, 23986, 0, 20435, 6031 20697, 20720, 20931, 22134, 27220, 27905, 28112, 28226, 28377, 29668, 6032 29729, 30060, 30801, 34805, 144382, 29608, 15091, 13531, 17420, 16010, 0, 6033 0, 19432, 0, 16090, 15138, 0, 17786, 16531, 0, 18021, 16643, 17043, 18094, 6034 13448, 140809, {f: 3, c: 63584}, 63610, 63615, {s: 23}, {f: 2, c: 8836}, 6035 {f: 2, c: 8842}, 8713, 0, {f: 2, c: 8965}, {s: 9}, {f: 2, c: 8741}, 6036 {s: 14}, 8802, 0, 8773, 8776, {f: 2, c: 8822}, {s: 4}, 8487, {s: 209}, 6037 {f: 2, c: 8922}, 8533, 8984, {f: 2, c: 7742}, {f: 2, c: 504}, 470, 472, 6038 474, 476, 260, 728, 317, 346, 350, 356, 377, 379, 261, 731, 318, 347, 711, 6039 351, 357, 378, 733, 380, 340, 258, 313, 262, 268, 280, 270, 323, 327, 336, 6040 344, 368, 354, 341, 259, 314, 263, 269, 281, 271, 273, 324, 328, 337, 345, 6041 369, 355, 729, 264, 284, 292, 308, 348, 364, 265, 285, 293, 309, 349, 365, 6042 625, 651, 638, 620, 622, 633, 648, 598, 627, 637, 642, 656, 635, 621, 607, 6043 626, 669, 654, 609, 624, 641, 295, 661, 660, 614, 664, 450, 595, 599, 644, 6044 608, 403, 616, 649, 600, 604, 606, 592, 623, 650, 612, 594, 653, 613, 674, 6045 673, 597, 657, 634, 615, 865, 712, 716, 721, 8255, 783, {f: 5, c: 741}, 0, 6046 0, 805, 812, 825, 796, {f: 2, c: 799}, 829, 809, 815, 734, 804, 816, 828, 6047 820, {f: 2, c: 797}, {f: 2, c: 792}, 810, {f: 2, c: 826}, 794, {s: 3}, 6048 {f: 2, c: 610}, 618, 628, 630, 632, 640, 655, 665, 668, 671, 688, 690, 695, 6049 704, {f: 2, c: 736}, {s: 6}, 8862, {s: 287}, 12348, 12543, 0, 6050 {f: 2, c: 12310}, 9838, 9835, {f: 2, c: 10548}, 10687, 0, 12448, 0, 6051 {f: 2, c: 10746}, {s: 13}, 962, {f: 10, c: 9461}, {f: 2, c: 9750}, 9649, 6052 {f: 10, c: 12784}, 0, {f: 6, c: 12794}, {f: 15, c: 9150}, 0, 0, 10003, 0, 6053 9251, 9166, {f: 4, c: 9680}, {f: 2, c: 8263}, 0, 8273, 8258, 6054 {f: 16, c: 12688}, {s: 13}, {f: 2, c: 9136}, {f: 12, c: 9842}, 6055 {f: 2, c: 12441}, 8413, {s: 450}, 20296, 20319, 20330, 20332, 20494, 20504, 6056 20545, 20722, 20688, 20742, 20739, 20789, 20821, 20823, 13493, 20938, 6057 20962, 21079, 21196, 21206, 21243, 21276, 21347, 21405, 21522, 21631, 6058 21640, 21840, 21889, 21933, 21966, 22075, 22174, 22185, 22195, 22391, 6059 22396, 135963, 22479, 22500, 22628, 22665, 136302, 22738, 22752, 34369, 6060 22923, 22930, 22979, 23059, 23143, 23159, 23172, 23236, 137405, 23421, 6061 23443, 23570, 64060, 136884, 23674, 23695, 23711, 23715, 23722, 23760, 6062 138804, 23821, 23879, 23937, 23972, 23975, 24011, 24158, 24313, 24320, 6063 24322, 24355, 24381, 24404, 24445, 24589, 24596, 24600, 24629, 24647, 6064 24733, 24788, 24797, 24875, 25020, 25017, 25122, 25178, 25199, 25302, 6065 25468, 25573, 25721, 25796, 25808, 25897, 26013, 26170, 26146, 26155, 6066 26160, 26163, 26184, 143812, {f: 2, c: 26231}, 26253, 26299, 26331, 26344, 6067 26439, 26497, 26515, 26520, 26523, 26620, 26653, 26787, 26890, 26953, 6068 144836, 26946, 26980, 27045, 27087, 15286, 15299, 27113, 27125, 145215, 6069 27195, 145251, 27284, 27301, 15375, 27419, 27436, 27495, 27561, 27565, 6070 27607, 27647, 27653, 27764, 27800, 27899, 27846, 27953, 27961, 27967, 6071 27992, 28052, 28074, 28123, 28125, 28228, 28254, 28337, 28353, 28432, 6072 28505, 28513, 28542, 28556, 28576, 28604, 28615, 28618, 28656, 28750, 6073 28789, 28836, 28900, 28971, 28958, 28974, 29009, 29032, 29061, 29063, 6074 29114, 29124, 29205, 15935, 29339, 149489, 29479, 29520, 29542, 29602, 6075 29739, 29766, 29794, 29805, 29862, 29865, 29897, 29951, 29975, 16242, 6076 30158, 30210, 30216, 30308, 30337, 30365, 30378, 30390, 30414, 30420, 6077 30438, 30449, 30474, 30489, {f: 2, c: 30541}, 30586, 30592, 30612, 30688, 6078 152718, 30787, 30830, 30896, 152846, 30893, 30976, 31004, 31022, 31028, 6079 31046, 31097, 31176, 153457, 31188, 31198, 31211, 31213, 31365, 154052, 6080 31438, 31485, 31506, 31533, 31547, 31599, 31745, 31795, 155041, 31853, 6081 31865, 31887, 31892, 31904, 31957, 32049, 32092, 32131, 32166, 32194, 6082 32296, 32663, 32731, 32821, 32823, 32970, 32992, 33011, 33120, 6083 {f: 2, c: 33127}, 33133, 33211, 33226, 33239, 17499, 33376, 33396, 158463, 6084 33441, {f: 2, c: 33443}, 33449, 33471, 33493, 33533, 33536, 33570, 33581, 6085 33594, 33607, 33661, 33703, 33743, 33745, 33761, 33793, 33798, 33887, 6086 33904, 33907, 33925, 33950, 33978, 159296, 34098, 34078, 34095, 34148, 6087 34170, 34188, 34210, 34251, 34285, 34303, {f: 2, c: 34308}, 34320, 159988, 6088 34328, 34360, 34391, 34402, 17821, 34421, 34488, 34556, 34695, 17898, 6089 34826, 34832, 35022, 161412, 35122, 35129, 35136, 35220, 35318, 35399, 6090 35421, 35425, 35445, 35536, 35654, 35673, 35689, 35741, 35913, 35944, 6091 36271, 36305, 36311, 36387, 36413, 36475, 164471, 18500, 36602, 36638, 6092 36653, 36692, 164813, 36840, 36846, 36872, 36909, 37015, 37043, 37054, 6093 {f: 2, c: 37060}, 37063, 37103, 37140, 37142, {f: 2, c: 37154}, 37167, 6094 37172, 37251, 37361, 37705, {f: 2, c: 37732}, 37795, 37855, 37892, 37939, 6095 37962, 37987, 38001, 38286, 38303, 38316, 38326, 38347, 38352, 38355, 6096 18864, 38366, 38565, 38639, 38734, 38805, 38830, 38842, 38849, 38857, 6097 38875, 38998, 39143, 39256, 39427, 39617, 39619, 39630, 39638, 39682, 6098 39688, 19479, 39725, 39774, 39782, 39812, 39818, 39838, 39886, 39909, 6099 39928, 39971, {f: 2, c: 40015}, 40037, {f: 2, c: 40221}, 40259, 40274, 6100 40330, 40342, 40384, 40364, 40380, 172432, 40423, 40455, 40606, 40623, 6101 40855, 131209, 19970, 19983, 19986, 20009, 20014, 20039, 131234, 20049, 6102 13318, 131236, 20073, 20125, 13356, 20156, 20163, 20168, 20203, 20186, 6103 20209, 20213, 20246, 20324, 20279, 20286, 20312, 131603, {f: 2, c: 20343}, 6104 20354, 20357, 20454, 20402, 20421, 20427, 20434, 13418, 20466, 20499, 6105 20508, 20558, 20563, 20579, 20643, 20616, {f: 2, c: 20626}, 20629, 20650, 6106 131883, 20657, {f: 2, c: 20666}, 20676, 20679, 20723, 131969, 20686, 6107 131953, 20692, 20705, 13458, 132089, 20759, 132170, 20832, 132361, 20851, 6108 20867, 20875, 13500, 20888, 20899, 20909, 13511, 132566, 20979, 21010, 6109 21014, 132943, 21077, 21084, 21100, 21111, 21124, 21122, 133127, 21144, 6110 133178, 21156, {f: 2, c: 21178}, 21194, 21201, 133305, 21239, 21301, 21314, 6111 133500, 133533, 21351, 21370, 21412, 21428, 133843, 21431, 21440, 133917, 6112 {f: 2, c: 13661}, 21461, 13667, 21492, 21540, 21544, 13678, 21571, 21602, 6113 21612, 21653, 21664, 21670, 21678, 21687, 21690, 21699, 134469, 21740, 6114 21743, 21745, 21747, {f: 2, c: 21760}, 21769, 21820, 21825, 13734, 21831, 6115 13736, 21860, 134625, 21885, 21890, 21905, 13765, 21970, 134805, 134765, 6116 21951, 21961, 21964, 21969, 21981, 13786, 21986, 134756, 21993, 22056, 6117 135007, 22023, 22032, 22064, 13812, 22077, 22080, 22087, 22110, 22112, 6118 22125, 13829, 22152, 22156, 22173, 22184, 22194, 22213, 22221, 22239, 6119 22248, {f: 2, c: 22262}, 135681, 135765, 22313, 135803, {f: 2, c: 22341}, 6120 22349, 135796, 22376, 22383, {f: 3, c: 22387}, 22395, 135908, 135895, 6121 22426, {f: 2, c: 22429}, 22440, 22487, 135933, 22476, 135990, 136004, 6122 22494, 22512, 13898, 22520, 22523, 22525, 22532, 22558, 22567, 22585, 6123 136132, 22601, 22604, 22631, {f: 2, c: 22666}, 22669, {f: 2, c: 22671}, 6124 22676, 22685, 22698, 22705, 136301, 22723, 22733, 22754, {f: 2, c: 22771}, 6125 {f: 2, c: 22789}, 22797, 22804, 136663, 13969, 22845, 13977, 22854, 13974, 6126 158761, 22879, 136775, {f: 2, c: 22901}, 22908, 22943, 22958, 22972, 22984, 6127 22989, 23006, 23015, 23022, 136966, 137026, 14031, 23053, 23063, 23079, 6128 23085, 23141, 23162, 23179, 23196, {f: 2, c: 23199}, 23202, 23217, 23221, 6129 23226, 23231, 23258, 23260, 23269, 23280, 23278, 23285, 23304, 23319, 6130 23348, 23372, 23378, 23400, 23407, 23425, 23428, 137667, 23446, 23468, 6131 {f: 2, c: 14177}, 23502, 23510, 14188, 14187, 23537, 23549, 14197, 23555, 6132 23593, 138326, 23647, {f: 2, c: 23655}, 23664, 138541, 138565, 138616, 6133 138594, 23688, 23690, 14273, 138657, 138652, 23712, 23714, 23719, 138642, 6134 23725, 23733, 138679, 23753, 138720, 138803, 23814, 23824, 23851, 23837, 6135 23840, 23857, 23865, 14312, 23905, 23914, 14324, 23920, 139038, 14333, 6136 23944, 14336, 23959, 23984, 23988, 139126, 24017, 24023, 139258, 24036, 6137 24041, 14383, 14390, 14400, 24095, 24126, 24137, 14428, 24150, 14433, 6138 {f: 2, c: 24173}, 139643, 24229, 24236, 24249, 24262, 24281, 140062, 24317, 6139 24328, 140205, 24350, 24391, 24419, 24434, 24446, 24463, 24482, 24519, 6140 24523, {f: 3, c: 24530}, 24546, {f: 2, c: 24558}, 24563, 14615, 24610, 6141 24612, 14618, 24652, 24725, 24744, 141043, 24753, 24766, 24776, 24793, 6142 24814, 24821, 24848, 24857, 24862, 24890, 14703, 24897, 24902, 24928, 6143 141403, {f: 2, c: 24978}, 24983, 24997, 25005, 141483, 25045, 25053, 25077, 6144 141711, 25123, 25170, 25185, 25188, 25211, 25197, 25203, 25241, 25301, 6145 142008, 25341, 25347, 25360, {f: 2, c: 142159}, 25394, 25397, 6146 {f: 2, c: 25403}, 25409, 25412, 25422, 142150, 25433, 142365, 142246, 6147 25452, 25497, 142372, 25492, 25533, {f: 2, c: 25556}, 25568, 6148 {f: 2, c: 25579}, 25586, 25630, 25637, 25641, 25647, 25690, 25693, 25715, 6149 25725, 25735, 25745, 25759, {f: 2, c: 25803}, 25813, 25815, 142817, 25828, 6150 25855, 14958, 25871, 25876, 14963, 25886, 25906, 25924, 25940, 25963, 6151 25978, 25988, 25994, 26034, 26037, 26040, 26047, 26057, 26068, 15062, 6152 26105, 26108, 26116, 26120, 26145, 26154, 26181, 26193, 26190, 15082, 6153 143811, 143861, 143798, 26218, {f: 2, c: 26220}, 26235, 26240, 26256, 6154 26258, 15118, 26285, 26289, 26293, 15130, 15132, 15063, 26369, 26386, 6155 144242, 26393, 144339, 144338, 26445, 26452, 26461, 144336, 144356, 144341, 6156 26484, 144346, 26514, 144351, 33635, 26640, 26563, 26568, 26578, 26587, 6157 26615, 144458, 144465, 144459, 26648, 26655, 26669, 144485, 26675, 26683, 6158 26686, 26693, 26697, 26700, 26709, 26711, 15223, 26731, 26734, 26748, 6159 26754, 26768, 26774, 15213, {f: 3, c: 26776}, 26780, {f: 2, c: 26794}, 6160 26804, 26811, 26875, 144612, 144730, 26819, 26821, 26828, 26841, 6161 {f: 2, c: 26852}, 26860, 26871, 26883, 26887, 15239, 144788, 15245, 26950, 6162 26985, 26988, 27002, 27026, 15268, 27030, 27056, 27066, 27068, 27072, 6163 27089, 144953, 144967, 144952, 27107, {f: 2, c: 27118}, 27123, 15309, 6164 27124, 27134, 27153, 27162, 27165, 145180, {f: 2, c: 27186}, 27199, 27209, 6165 27258, 27214, 27218, 27236, 145164, 27275, 15344, 27297, 145252, 27307, 6166 27325, 27334, 27348, 27344, 27357, 145407, 145383, {f: 3, c: 27377}, 27389, 6167 145444, 27403, {f: 3, c: 27407}, 145469, 27415, 15398, 27439, 27466, 27480, 6168 27500, 27509, [11934, 27514], 27521, 27547, 27566, 146072, 27581, 6169 {f: 3, c: 27591}, 27610, {f: 2, c: 27622}, 27630, 27650, 27658, 27662, 6170 27702, 146559, 27725, 27739, 27757, 27780, 27785, 15555, 27796, 27799, 6171 27821, 27842, 15570, 27868, 27881, 27885, 146688, 27904, 27940, 6172 {f: 2, c: 27942}, 27751, 27951, 27964, 27995, 28000, 28016, 6173 {f: 2, c: 28032}, 28042, 28045, 28049, 28056, 146752, 146938, 146937, 6174 146899, 28075, 28078, 28084, 28098, 27956, 28104, 28110, 28127, 28150, 6175 28214, 28190, 15633, 28210, {f: 2, c: 28232}, {f: 2, c: 28235}, 28239, 6176 {f: 2, c: 28243}, 28247, 28259, 15646, 28307, 28327, 28340, 28355, 28469, 6177 28395, 28409, 28411, 28426, 28428, 28440, 28453, 28470, 28476, 147326, 6178 28498, 28503, 28512, 28520, 28560, 28566, 28606, 28575, 28581, 28591, 6179 15716, {f: 2, c: 28616}, 28649, 147606, 28668, 28672, 28682, 28707, 147715, 6180 28730, 28739, 28743, 28747, 15770, 28773, 28777, 28782, 28790, 28806, 6181 28823, 147910, 28831, 28849, 147966, 28908, 28874, 28881, 28931, 28934, 6182 28936, 28940, 15808, 28975, 29008, 29011, 29022, 15828, 29078, 29056, 6183 29083, 29088, 29090, {f: 2, c: 29102}, 148412, 29145, 29148, 29191, 15877, 6184 29236, 29241, 29250, 29271, 29283, 149033, {f: 2, c: 29294}, 29304, 29311, 6185 29326, 149157, 29358, 29360, 29377, 15968, 29388, 15974, 15976, 29427, 6186 29434, 29447, 29458, {f: 2, c: 29464}, 16003, 29497, 29484, 29491, 29501, 6187 29522, 16020, 29547, 149654, {f: 2, c: 29550}, 29553, 29569, 29578, 29588, 6188 29592, 29596, 29605, 29625, 29631, 29637, 29643, 29665, 29671, 29689, 6189 29715, 29690, 29697, 29779, 29760, 29763, 29778, 29789, 29825, 29832, 6190 150093, 29842, 29847, 29849, 29857, 29861, 29866, 29881, 29883, 29882, 6191 29910, 29912, 29931, 150358, 29946, 150383, 29984, 29988, 29994, 16215, 6192 150550, {f: 2, c: 30013}, 30016, 30024, 30032, 30034, 30066, 30065, 30074, 6193 {f: 2, c: 30077}, 30092, 16245, 30114, 16247, 30128, 30135, 6194 {f: 2, c: 30143}, 30150, 30159, 30163, 30173, {f: 2, c: 30175}, 30183, 6195 30190, 30193, 30211, 30232, 30215, 30223, 16302, 151054, 30227, 6196 {f: 2, c: 30235}, 151095, 30245, 30248, 30268, 30259, 151146, 16329, 30273, 6197 151179, 30281, 30293, 16343, 30318, 30357, 30369, 30368, {f: 2, c: 30375}, 6198 30383, 151626, 30409, 151637, 30440, 151842, 30487, 30490, 30509, 30517, 6199 151977, 16441, 152037, 152013, 30552, 152094, 30588, 152140, 16472, 30618, 6200 30623, 30626, 30628, {f: 2, c: 30686}, 30692, 30698, 30700, 30715, 152622, 6201 30725, 30729, 30733, 30745, 30764, 30791, 30826, 152793, 30858, 30868, 6202 30884, 30877, 30879, 30907, 30933, 30950, {f: 2, c: 30969}, 30974, 152999, 6203 30992, 31003, 31013, 31050, 31064, 16645, 31079, 31090, 31125, 31137, 6204 31145, 31156, 31170, 31175, {f: 2, c: 31180}, 31190, 16712, 153513, 153524, 6205 16719, 31242, 31253, 31259, 16739, 31288, 31303, 31318, 31321, 31324, 6206 31327, 31335, 31338, 31349, 31362, 31370, 31376, 31404, 154068, 16820, 6207 31417, 31422, 16831, 31436, 31464, 31476, 154340, 154339, 154353, 31549, 6208 31530, {f: 2, c: 31534}, 16870, 16883, 31615, 31553, 16878, 31573, 31609, 6209 31588, 31590, 31603, 154546, 16903, 31632, 31643, 16910, 31669, 31676, 6210 31685, 31690, 154699, 154724, 31700, 31702, 31706, 31722, 31728, 31747, 6211 31758, 31813, 31818, 31831, 31838, 31841, 31849, 31855, 155182, 155222, 6212 155237, 31910, 155234, {f: 2, c: 31926}, 155352, 31940, 155330, 31949, 6213 155368, 155427, 31974, 155484, 31989, 32003, 17094, 32018, 32030, 155616, 6214 155604, {f: 2, c: 32061}, 32064, 32071, 155660, 155643, 17110, 32090, 6215 32106, 32112, 17117, 32127, 155671, 32136, 32151, 155744, 32157, 32167, 6216 32170, 32182, 32192, 32215, 32217, 32230, 17154, 155885, 64088, 32272, 6217 32279, 32285, 32295, 32300, 32325, 32373, 32382, {f: 2, c: 32390}, 17195, 6218 32410, 17219, 32572, 32571, 32574, 32579, 13505, 156272, 156294, 6219 {f: 2, c: 32611}, 32621, {f: 2, c: 32637}, 32656, 20859, 146702, 32662, 6220 32668, 32685, 156674, 32707, 32719, 32739, 32754, 32778, 32776, 32790, 6221 32812, 32816, 32835, 32870, 32891, 32921, 32924, 32932, 32935, 32952, 6222 157310, 32965, 32981, 32998, 33037, 33013, 33019, 17390, 33077, 33054, 6223 17392, 33060, 33063, 33068, 157469, 33085, 17416, 33129, 17431, 17436, 6224 33157, 17442, 33176, 33202, 33217, 33219, 33238, 33243, 157917, 33252, 6225 157930, 33260, 33277, 33279, 158063, 33284, 158173, 33305, 33314, 158238, 6226 33340, 33353, 33349, 158296, 17526, 17530, 33367, 158348, 33372, 33379, 6227 158391, 17553, 33405, 33407, 33411, 33418, 33427, {f: 2, c: 33447}, 33458, 6228 33460, 33466, 33468, 33506, 33512, 33527, {f: 2, c: 33543}, 33548, 33620, 6229 33563, 33565, 33584, 33596, 33604, 33623, 17598, 17620, 17587, 6230 {f: 2, c: 33684}, 33691, 33693, 33737, 33744, 33748, 33757, 33765, 33785, 6231 33813, 158835, 33815, 33849, 33871, {f: 2, c: 33873}, {f: 2, c: 33881}, 6232 33884, 158941, 33893, 33912, 33916, 33921, 17677, 33943, 33958, 33982, 6233 17672, {f: 2, c: 33998}, 34003, 159333, 34023, 34026, 34031, 34033, 34042, 6234 34075, {f: 2, c: 34084}, 34091, 34127, 34159, 17731, 34129, 6235 {f: 2, c: 34145}, 159636, 34171, 34173, 34175, 34177, 34182, 34195, 34205, 6236 34207, 159736, {f: 2, c: 159734}, 34236, 34247, 34250, {f: 2, c: 34264}, 6237 34271, 34273, 34278, 34294, 34304, 34321, 34334, 34337, 34340, 34343, 6238 160013, 34361, 34364, 160057, 34368, 34387, 34390, 34423, 34439, 34441, 6239 {f: 2, c: 34460}, 34481, 34483, 34497, 34499, 34513, 34517, 34519, 34531, 6240 34534, 17848, 34565, 34567, 34574, 34576, 34591, 34593, 34595, 34609, 6241 34618, 34624, 34627, 34641, 34648, {f: 2, c: 34660}, 34674, 34684, 160731, 6242 160730, 34727, 34697, 34699, 34707, 34720, 160766, 17893, 34750, 160784, 6243 34753, 34766, 34783, 160841, 34787, {f: 2, c: 34789}, 34794, 34835, 34856, 6244 34862, 34866, 34876, 17935, 34890, 34904, 161301, 161300, 34921, 161329, 6245 34927, 34976, 35004, 35008, 161427, 35025, 35027, 17985, 35073, 161550, 6246 35127, 161571, 35138, 35141, 35145, 161618, 35170, 35209, 35216, 35231, 6247 35248, 35255, 35288, 35307, 18081, 35315, 35325, 35327, 18095, 35345, 6248 35348, 162181, 35361, 35381, 35390, 35397, 35405, 35416, 35502, 35472, 6249 35511, 35543, 35580, 162436, 35594, 35589, 35597, 35612, 35629, 18188, 6250 35665, 35678, 35702, 35713, 35723, {f: 2, c: 35732}, 35897, 162739, 35901, 6251 162750, 162759, 35909, 35919, 35927, 35945, 35949, 163000, 35987, 35986, 6252 35993, 18276, 35995, 36054, 36053, 163232, 36081, 163344, 36105, 36110, 6253 36296, 36313, 36364, 18429, 36349, 36358, 163978, 36372, 36374, 6254 {f: 2, c: 36385}, 36391, 164027, 18454, 36406, 36409, 36436, 36450, 36461, 6255 36463, 36504, 36510, 36533, 36539, 164482, 18510, 164595, 36608, 36616, 6256 36651, 36672, 36682, 36696, 164876, 36772, 36788, 164949, 36801, 36806, 6257 64036, 36810, 36813, 36819, 36821, 36849, 36853, 36859, 36876, 36919, 6258 165227, 36931, 36957, {f: 2, c: 165320}, 36997, 37004, 37008, 37025, 18613, 6259 37040, 37046, 37059, 37064, 165591, 37084, 37087, 165626, 37110, 37106, 6260 37120, 37099, {f: 2, c: 37118}, 37124, 37126, 37144, 37150, 37175, 37177, 6261 {f: 2, c: 37190}, 37207, 37209, 37236, 37241, 37253, 37299, 37302, 6262 {f: 2, c: 37315}, 166217, 166214, 37356, 37377, {f: 2, c: 37398}, 166251, 6263 37442, 37450, 37462, 37473, 37477, 37480, 166280, {f: 2, c: 37500}, 37503, 6264 37513, 37517, 37527, 37529, 37535, 37547, {f: 2, c: 166330}, 37554, 6265 {f: 2, c: 37567}, 37574, 37582, 37605, 37649, 166430, 166441, 37623, 37673, 6266 166513, 166467, 37713, 37722, 37739, 37745, 37747, 37793, 166553, 166605, 6267 37768, 37771, 37775, 37790, 37877, 166628, 166621, 37873, 37831, 37852, 6268 37863, 37897, {f: 2, c: 37910}, 37883, 37938, 37947, 166849, 166895, 37997, 6269 37999, 38265, 38278, {f: 2, c: 38284}, 167184, 167281, 38344, 167419, 6270 167455, 38444, {f: 2, c: 38451}, 167478, 38460, 38497, 167561, 38530, 6271 167659, 38554, 167730, 18919, 38579, 38586, 38589, 18938, 167928, 38616, 6272 38618, 38621, 18948, 38676, 38691, 18985, 38710, 38721, 38727, 38743, 6273 38747, 38762, 168608, 168625, 38806, 38814, {f: 2, c: 38833}, 38846, 38860, 6274 38865, 38868, 38872, 38881, 38897, 38916, 38925, 38932, 38934, 19132, 6275 169104, {f: 2, c: 38962}, 38949, 38983, 39014, 39083, 39085, 39088, 169423, 6276 39095, {f: 2, c: 39099}, 39106, 39111, 39115, 39137, 39139, 39146, 6277 {f: 2, c: 39152}, 39155, 39176, 19259, 169712, {f: 2, c: 39190}, 169753, 6278 {f: 3, c: 39194}, 169808, 39217, {f: 3, c: 39226}, 39233, 39238, 39246, 6279 39264, 39331, 39334, 39357, 39359, 39363, 39380, 39385, 39390, 170182, 6280 39408, 39417, 39420, 39434, 39441, 39450, 39456, 39473, 39492, 39500, 6281 39512, 19394, 39599, 19402, 39607, 19410, 39609, 170610, 39622, 39632, 6282 39634, 39637, 39648, 39653, 39657, 39692, 39696, 39698, 39702, 39708, 6283 39723, 39741, 19488, 39755, 39779, 39781, {f: 2, c: 39787}, 6284 {f: 2, c: 39798}, 39846, 39852, 171483, 39858, 39864, 39870, 39923, 39896, 6285 39901, 39914, 39919, 39918, 171541, 171658, 171593, 39958, 6286 {f: 3, c: 39960}, 39965, 39970, 39977, 171716, 39985, 39991, 40005, 40028, 6287 171753, {f: 2, c: 40009}, 171739, 40020, 40024, 40027, 40029, 40031, 6288 {f: 3, c: 40041}, {f: 2, c: 40045}, 40050, 40053, 40058, 40166, 40178, 6289 40203, [171982, 171991], 40209, {f: 2, c: 40215}, 172079, 19652, 172058, 6290 40242, 19665, 40266, 40287, 40290, 172281, 172162, 40307, {f: 2, c: 40310}, 6291 40324, 40345, 40353, 40383, 40373, 40377, 40381, 40393, 40410, 40416, 6292 40419, 19719, 40458, 40450, 40461, 40476, 40571, 139800, 40576, 40581, 6293 40603, 172940, 40637, 173111, 40671, 40703, 40706, 19831, 40707, 40762, 6294 40765, 40774, 40787, 40789, 40792, 173553, 40797, 173570, 40809, 40813, 6295 40816, 173746, 11948, 13844, 14509, 15820, 16348, 17854, 17936, 19326, 6296 19512, 19681, 19980, {f: 2, c: 20003}, 20089, 20211, 20236, 20249, 20267, 6297 20270, 20273, 20356, 20382, 20407, 20484, 20492, 20556, 20575, 20578, 6298 20599, 20622, 20638, 20642, 20675, 20712, 20721, 20734, 20743, 6299 {f: 3, c: 20748}, 20787, 20792, 20852, 20868, 20920, 20922, 20936, 20943, 6300 20945, {f: 2, c: 20947}, 20952, 20959, 20997, 21030, 21032, 21035, 6301 {f: 2, c: 21041}, 21045, 21052, 21082, 21088, 21102, {f: 2, c: 21112}, 6302 21130, 21132, 21217, 21225, 21233, 21251, 21265, 21279, 21293, 21298, 6303 21309, 21349, 21357, 21369, 21374, 21396, 21401, 21418, 21423, 21434, 6304 21441, {f: 2, c: 21444}, 21472, 21523, 21546, 21553, {f: 2, c: 21556}, 6305 21580, 21671, 21674, 21681, 21691, 21710, 21738, 21756, 21765, 21768, 6306 21781, 21799, 21802, 21814, 21841, 21862, 21903, 21906, 21908, 21924, 6307 21938, 21955, 21958, 21971, 21979, 21996, 21998, 22001, 22006, 22008, 6308 22021, 22029, {f: 2, c: 22033}, 22060, 22069, 22073, 22093, 22100, 22149, 6309 22175, 22182, 22199, 22220, 22223, 22233, 22241, 22251, 22253, 22257, 6310 22279, 22284, {f: 2, c: 22298}, 22301, 22316, 22318, {f: 2, c: 22333}, 6311 22367, 22379, 22381, 22394, 22403, 22423, 22446, 22485, 22503, 22541, 6312 22566, 22605, 22607, 22623, 22637, 22655, 22657, 22680, 22716, 22815, 6313 22819, 22873, 22905, 22935, 22959, 22963, 23007, 23025, 23032, 23218, 6314 23224, 23274, 23286, 23323, 23325, 23329, 23352, 23479, 23511, 23520, 6315 23583, 23594, 23596, 23606, 23641, 23644, 23661, 23773, 23809, 23860, 6316 23869, 23897, 23934, 23939, 24007, 24057, 24104, 24114, 24117, 24155, 6317 24168, 24170, 24183, 24192, 24203, 24243, 24253, 24273, {f: 2, c: 24276}, 6318 24397, 24492, 24554, 24583, 24649, 24660, 24679, 24763, 24772, 24829, 6319 24842, 24854, 24874, 24886, 24926, 24932, 24955, 24957, 24959, 24989, 6320 25016, 25052, 25058, 25061, 25064, 25092, 25095, 25137, 25145, 25149, 6321 25210, 25232, 25256, 25306, 25332, 25366, 25386, 25398, 25414, 25419, 6322 25427, 25457, 25461, 25471, 25474, 25482, {f: 2, c: 25518}, 25578, 6323 {f: 2, c: 25592}, 25618, 25624, 25632, 25636, 25642, 25653, 25661, 25663, 6324 25682, 25695, 25716, 25744, {f: 2, c: 25752}, 25772, 25779, 25837, 25840, 6325 25883, 25887, 25902, 25929, 25952, 26002, 26005, 26036, 26046, 26056, 6326 26062, 26064, 26079, 26238, {f: 2, c: 26251}, 26291, 26304, 26319, 26405, 6327 26421, 26453, 26496, 26511, 26513, 26532, 26545, 26549, 26558, 26664, 6328 26758, 26859, 26869, 26903, 26931, 26936, 26971, 26981, 27048, 27051, 6329 27055, 27109, 27121, 27210, 27221, 27239, 27249, 27311, {f: 2, c: 27336}, 6330 27395, 27451, 27455, {f: 2, c: 27517}, 27568, 27639, 27641, 27652, 27657, 6331 27661, 27692, 27722, 27730, 27732, 27769, 27820, 27828, 27858, 28001, 6332 28028, 28089, 28144, 28229, 28275, 28283, 28285, 28297, 28348, 6333 {f: 2, c: 28378}, 28454, 28457, 28464, 28551, 28573, 28590, 28599, 28685, 6334 28704, 28745, 28824, 28848, {f: 2, c: 28885}, 28997, 29106, 29172, 29207, 6335 29215, 29251, {f: 2, c: 29263}, 29274, 29280, 29288, 29303, 29316, 29385, 6336 29413, 29428, 29442, 29451, 29470, 29474, {f: 2, c: 29498}, 29517, 29528, 6337 29543, 29810, 29871, 29919, 29924, 29940, 29947, 29974, 29985, 30015, 6338 30046, 30105, 30116, 30145, 30148, 30156, 30167, 30172, 30177, 30191, 6339 30212, 30220, 30237, 30258, 30264, 30277, 30282, 30303, 30381, 30397, 6340 30425, 30443, 30448, 30457, 30464, 30478, 30498, 30504, 30511, 30521, 6341 30526, 30533, 30538, 30543, 30558, 30564, 30567, 30572, 30596, 6342 {f: 2, c: 30604}, 30614, 30631, 30639, 30647, 30654, 30665, 30673, 30681, 6343 30705, 30775, 30812, 30846, 30872, 30881, 30897, 30899, 30921, 30931, 6344 30988, 31007, {f: 2, c: 31015}, 31039, 31042, 31060, 31083, 31100, 31147, 6345 31172, 31210, 31234, 31244, 31280, 31290, 31300, 31360, 31366, 31380, 6346 31413, 31421, 31486, 31531, 31607, 31648, 31660, 31664, 31720, 31730, 6347 31736, 31740, 31742, 31753, 31784, 31791, 31810, {f: 2, c: 31826}, 6348 {f: 3, c: 31835}, 31858, 31869, 31879, 31902, 31930, 31943, 31955, 31962, 6349 32060, 32077, 32130, 32133, 32141, 32145, 32158, 32179, 32185, 32208, 6350 32229, {f: 2, c: 32245}, 32303, 32310, 32324, 32367, 32376, 32385, 32573, 6351 32603, 32605, 32613, 32625, {f: 2, c: 32639}, 32651, 32674, 6352 {f: 3, c: 32765}, 32775, 32781, 32798, 32825, 32904, 32910, 32975, 32980, 6353 33005, 33008, 33015, 33018, 33022, 33027, 33047, 33072, 33111, 33135, 6354 33139, 33163, 33168, 33179, 33182, 33227, 33237, {f: 2, c: 33245}, 33249, 6355 33263, 33270, 33280, 33291, {f: 2, c: 33299}, 33306, 33338, 33348, 33389, 6356 33412, 33417, 33425, 33450, 33456, 33488, 33514, 33519, 33526, 33622, 6357 33656, 33784, 33788, 33880, 33939, 33969, 33981, 34043, 34118, 34134, 6358 34141, 34181, 34200, 34370, 34374, 34496, 34580, 34594, 34606, 34617, 6359 34653, 34683, 34700, 34702, {f: 2, c: 34711}, 34718, 34723, 34734, 34751, 6360 34761, 34778, 34840, 34843, 34861, 34874, 34885, 34891, 34894, 34901, 6361 34906, 34926, {f: 3, c: 34970}, 35021, 35040, 35055, {f: 2, c: 35086}, 6362 35110, 35125, 35162, 35164, 35179, 35184, 35196, 35237, 35253, 35260, 6363 35285, 35401, 35415, 35431, 35454, 35462, 35478, 35510, 35529, 35537, 6364 35549, 35564, 35573, 35590, 35599, 35601, 35653, 35666, 35693, 35704, 6365 35708, 35710, 35717, 35743, 35915, 35923, 35963, 36026, 36037, 36041, 6366 36050, 36076, 36085, 36087, 36097, 36099, 36119, 36124, 36206, 36241, 6367 36255, 36267, 36274, 36309, 36327, {f: 2, c: 36337}, 36340, 36353, 36363, 6368 36390, 36401, {f: 2, c: 36416}, 36429, 36431, 36444, 36449, 36457, 36465, 6369 36469, 36471, 36489, 36496, 36501, 36506, 36519, 36521, 36525, 36584, 6370 36592, 36615, 36632, 36645, 36647, 36652, 36661, 36666, 36675, 36679, 6371 36689, 36693, {f: 3, c: 36768}, 36773, 36868, 36891, 36911, 36940, 36955, 6372 36976, 36980, 36985, 37003, 37016, 37024, 37042, 37053, 37065, 37104, 6373 37125, 37157, 37210, 37223, 37242, 37258, 37265, 37269, 37296, 37307, 6374 37309, 37314, 37317, 37376, 37385, 37411, 37494, 37518, 37551, 6375 {f: 2, c: 37563}, 37569, 37571, 37573, 37576, 37652, 37683, 37686, 37720, 6376 37759, 37762, 37770, 37819, 37836, 37862, 37881, 37890, {f: 2, c: 37901}, 6377 37934, 37964, 38280, 38305, 38335, 38342, 38345, {f: 2, c: 38353}, 38368, 6378 38372, 38374, 38436, 38449, 38456, 38461, 38484, 38516, 38523, 38527, 6379 38529, 38531, 38537, 38550, 38574, 38659, 38683, {f: 2, c: 38689}, 38696, 6380 38705, 38759, 38774, 38781, 38783, 38809, 38815, 38828, 38841, 38861, 6381 38880, 38895, 38919, 38950, 38958, {f: 2, c: 39010}, 39092, 39109, 39170, 6382 39185, 39189, 39221, 39240, 39252, 39262, 39393, 39436, 39440, 39459, 6383 39489, 39505, {f: 2, c: 39613}, 39681, 39689, 39691, {f: 2, c: 39693}, 6384 39705, 39733, 39752, 39765, 39784, 39808, 39814, 39824, 39837, 39856, 6385 39871, 39880, 39935, 39938, 39964, 39989, 40004, 40022, 40033, 40040, 6386 40240, 40253, 40298, 40315, 40421, 40425, 40435, 40570, {f: 3, c: 40578}, 6387 40624, 40676, 40688, 40690, 40713, 40719, 40724, 40731, 40738, 40742, 6388 {f: 2, c: 40746}, 40756, 40794, 40815, 40862, 40869, 131317, 151044, 6389 151538, 163187, 194581, 194630, 194713, 194726, 194789, 195038, 13790, 6390 {s: 4}, 172722, 0, 0, 131416, {s: 4}, 132529, 0, 0, 132844, {s: 6}, 134488, 6391 {s: 21}, 154060, {s: 9}, 14756, 14776, 142914, 0, 0, 14940, 0, 0, 143339, 6392 0, 0, 162228, 0, 15044, 15051, {s: 5}, 14981, {s: 8}, 15347, 27384, {s: 5}, 6393 15665, {s: 9}, 147531, 0, 15936, 14497, {s: 34}, 158878, {s: 12}, 18207, 6394 162876, {s: 4}, 18462, {s: 71}, 39709, 39724, 20482, 20958, 21255, 23532, 6395 63784, 26142, 63785, 28746, 64021, 21857, 27706, 31328, 156492, 34819, 6396 38315, 38741, 171581, 173594], 6397 'Adobe-Korea1': [{f: 95, c: 32}, 8361, 8208, 169, 0, 0, [12288, 12644], 6398 {f: 2, c: 12289}, 12539, 8229, [8230, 8943], 168, 12291, {f: 2, c: 8211}, 6399 8214, 65340, 65374, {f: 2, c: 8216}, {f: 2, c: 8220}, {f: 2, c: 12308}, 6400 {f: 10, c: 12296}, 177, 215, 247, 8800, {f: 2, c: 8804}, 8734, 8756, 176, 6401 {f: 2, c: 8242}, 8451, 8491, {f: 2, c: 65504}, 65509, 9794, 9792, 8736, 6402 8869, 8978, 8706, 8711, 8801, 8786, 167, 8251, 9734, 9733, 9675, 9679, 6403 9678, 9671, 9670, 9633, 9632, 9651, 9650, 9661, 9660, 8594, 6404 {f: 2, c: 8592}, {f: 2, c: 8595}, 12307, 171, 187, 8730, 8765, 8733, 8757, 6405 {f: 2, c: 8747}, 8712, 8715, {f: 2, c: 8838}, {f: 2, c: 8834}, 8746, 8745, 6406 {f: 2, c: 8743}, 65506, 8658, 8660, 8704, 8707, 180, 732, 711, 728, 733, 6407 730, 729, 184, 731, 161, 191, 8758, 8750, 8721, 8719, 164, 8457, 8240, 6408 9665, 9664, 9655, 9654, 9828, {f: 2, c: 9824}, 9829, 9831, 9827, 9673, 6409 9672, 9635, {f: 2, c: 9680}, 9618, {f: 2, c: 9636}, 9640, 9639, 9638, 9641, 6410 9832, 9743, 9742, 9756, 9758, 182, {f: 2, c: 8224}, 8597, 8599, 8601, 8598, 6411 8600, 9837, {f: 2, c: 9833}, 9836, 12927, 12828, 8470, 13255, 8482, 13250, 6412 13272, 8481, {f: 59, c: 65281}, 65510, {f: 33, c: 65341}, 65507, 6413 {f: 51, c: 12593}, {f: 42, c: 12645}, {f: 10, c: 8560}, {f: 10, c: 8544}, 6414 {f: 17, c: 913}, {f: 7, c: 931}, {f: 17, c: 945}, {f: 7, c: 963}, 9472, 6415 9474, 9484, 9488, 9496, 9492, 9500, 9516, 9508, 9524, 9532, 9473, 9475, 6416 9487, 9491, 9499, 9495, 9507, 9523, 9515, 9531, 9547, 9504, 9519, 9512, 6417 9527, 9535, 9501, 9520, 9509, 9528, 9538, 9490, 9489, 9498, 9497, 9494, 6418 9493, 9486, 9485, {f: 2, c: 9502}, {f: 2, c: 9505}, {f: 2, c: 9510}, 6419 {f: 2, c: 9513}, {f: 2, c: 9517}, {f: 2, c: 9521}, {f: 2, c: 9525}, 6420 {f: 2, c: 9529}, {f: 2, c: 9533}, {f: 2, c: 9536}, {f: 8, c: 9539}, 6421 {f: 3, c: 13205}, 8467, 13208, 13252, {f: 4, c: 13219}, {f: 10, c: 13209}, 6422 13258, {f: 3, c: 13197}, 13263, {f: 2, c: 13192}, 13256, {f: 2, c: 13223}, 6423 {f: 10, c: 13232}, {f: 5, c: 13184}, {f: 6, c: 13242}, {f: 5, c: 13200}, 6424 8486, {f: 2, c: 13248}, {f: 3, c: 13194}, 13270, 13253, {f: 3, c: 13229}, 6425 13275, {f: 4, c: 13225}, 13277, 13264, 13267, 13251, 13257, 13276, 13254, 6426 198, 208, 170, 294, 306, 319, 321, 216, 338, 186, 222, 358, 330, 6427 {f: 28, c: 12896}, {f: 26, c: 9424}, {f: 15, c: 9312}, 189, 6428 {f: 2, c: 8531}, 188, 190, {f: 4, c: 8539}, 230, 273, 240, 295, 305, 307, 6429 312, 320, 322, 248, 339, 223, 254, 359, 331, 329, {f: 28, c: 12800}, 6430 {f: 26, c: 9372}, {f: 15, c: 9332}, 185, {f: 2, c: 178}, 8308, 8319, 6431 {f: 4, c: 8321}, {f: 83, c: 12353}, {f: 86, c: 12449}, {f: 6, c: 1040}, 6432 1025, {f: 32, c: 1046}, 1105, {f: 26, c: 1078}, {f: 2, c: 44032}, 44036, 6433 {f: 4, c: 44039}, {f: 8, c: 44048}, {f: 5, c: 44057}, 44064, 44068, 6434 {f: 2, c: 44076}, {f: 3, c: 44079}, {f: 2, c: 44088}, 44092, 44096, 44107, 6435 44109, 44116, 44120, 44124, {f: 2, c: 44144}, 44148, {f: 2, c: 44151}, 6436 44154, {f: 2, c: 44160}, {f: 4, c: 44163}, {f: 4, c: 44169}, 44176, 44180, 6437 {f: 2, c: 44188}, {f: 3, c: 44191}, {f: 3, c: 44200}, 44204, 6438 {f: 2, c: 44207}, {f: 2, c: 44216}, {f: 3, c: 44219}, 44225, 44228, 44232, 6439 44236, 44245, 44247, {f: 2, c: 44256}, 44260, {f: 2, c: 44263}, 44266, 6440 44268, {f: 3, c: 44271}, 44275, {f: 2, c: 44277}, {f: 2, c: 44284}, 44288, 6441 44292, 44294, {f: 2, c: 44300}, 44303, 44305, 44312, 44316, 44320, 44329, 6442 {f: 2, c: 44332}, {f: 2, c: 44340}, 44344, 44348, {f: 2, c: 44356}, 44359, 6443 44361, 44368, 44372, 44376, 44385, 44387, {f: 2, c: 44396}, 44400, 6444 {f: 4, c: 44403}, {f: 3, c: 44411}, 44415, {f: 2, c: 44417}, 6445 {f: 2, c: 44424}, 44428, 44432, {f: 2, c: 44444}, 44452, 44471, 6446 {f: 2, c: 44480}, 44484, 44488, {f: 2, c: 44496}, 44499, 44508, 44512, 6447 44516, {f: 2, c: 44536}, 44540, {f: 3, c: 44543}, {f: 2, c: 44552}, 44555, 6448 44557, 44564, {f: 2, c: 44592}, 44596, {f: 2, c: 44599}, 44602, 6449 {f: 2, c: 44608}, 44611, {f: 2, c: 44613}, 44618, {f: 3, c: 44620}, 44624, 6450 44628, 44630, {f: 2, c: 44636}, {f: 3, c: 44639}, 44645, {f: 2, c: 44648}, 6451 44652, 44656, {f: 2, c: 44664}, {f: 3, c: 44667}, {f: 2, c: 44676}, 44684, 6452 {f: 3, c: 44732}, 44736, 44740, {f: 2, c: 44748}, {f: 3, c: 44751}, 6453 {f: 2, c: 44760}, 44764, 44776, 44779, 44781, 44788, 44792, 44796, 6454 {f: 2, c: 44807}, 44813, 44816, {f: 2, c: 44844}, 44848, 44850, 44852, 6455 {f: 2, c: 44860}, 44863, {f: 3, c: 44865}, {f: 2, c: 44872}, 44880, 6456 {f: 2, c: 44892}, {f: 2, c: 44900}, 44921, 44928, 44932, 44936, 6457 {f: 2, c: 44944}, 44949, 44956, {f: 2, c: 44984}, 44988, 44992, 6458 {f: 3, c: 44999}, 45003, {f: 2, c: 45005}, 45012, 45020, {f: 2, c: 45032}, 6459 {f: 2, c: 45040}, 45044, 45048, {f: 2, c: 45056}, 45060, 45068, 45072, 6460 45076, {f: 2, c: 45084}, 45096, {f: 2, c: 45124}, 45128, 45130, 45132, 6461 45134, {f: 3, c: 45139}, 45143, 45145, 45149, {f: 2, c: 45180}, 45184, 6462 45188, {f: 2, c: 45196}, 45199, 45201, {f: 3, c: 45208}, 45212, 6463 {f: 4, c: 45215}, {f: 2, c: 45224}, {f: 5, c: 45227}, 45233, 6464 {f: 3, c: 45235}, 45240, 45244, {f: 2, c: 45252}, {f: 3, c: 45255}, 6465 {f: 2, c: 45264}, 45268, 45272, 45280, 45285, {f: 2, c: 45320}, 6466 {f: 2, c: 45323}, 45328, {f: 2, c: 45330}, {f: 2, c: 45336}, 6467 {f: 3, c: 45339}, {f: 3, c: 45347}, 45352, 45356, {f: 2, c: 45364}, 6468 {f: 3, c: 45367}, {f: 2, c: 45376}, 45380, 45384, {f: 2, c: 45392}, 6469 {f: 2, c: 45396}, 45400, 45404, 45408, {f: 2, c: 45432}, 45436, 45440, 6470 45442, {f: 2, c: 45448}, 45451, 45453, {f: 3, c: 45458}, 45464, 45468, 6471 45480, 45516, 45520, 45524, {f: 2, c: 45532}, 45535, {f: 2, c: 45544}, 6472 45548, 45552, 45561, 45563, 45565, {f: 2, c: 45572}, 45576, 6473 {f: 2, c: 45579}, {f: 2, c: 45588}, 45591, 45593, 45600, 45620, 45628, 6474 45656, 45660, 45664, {f: 2, c: 45672}, {f: 2, c: 45684}, 45692, 6475 {f: 2, c: 45700}, 45705, {f: 2, c: 45712}, 45716, {f: 3, c: 45720}, 6476 {f: 2, c: 45728}, 45731, {f: 2, c: 45733}, 45738, 45740, 45744, 45748, 6477 {f: 2, c: 45768}, 45772, 45776, 45778, {f: 2, c: 45784}, 45787, 45789, 6478 45794, {f: 3, c: 45796}, 45800, {f: 5, c: 45803}, {f: 3, c: 45811}, 6479 {f: 5, c: 45815}, {f: 3, c: 45823}, 45828, 45832, {f: 2, c: 45840}, 6480 {f: 3, c: 45843}, 45852, {f: 3, c: 45908}, 45912, {f: 2, c: 45915}, 6481 {f: 2, c: 45918}, {f: 2, c: 45924}, 45927, 45929, 45931, 45934, 6482 {f: 2, c: 45936}, 45940, 45944, {f: 2, c: 45952}, {f: 3, c: 45955}, 45964, 6483 45968, 45972, {f: 2, c: 45984}, 45992, 45996, {f: 2, c: 46020}, 46024, 6484 {f: 2, c: 46027}, 46030, 46032, {f: 2, c: 46036}, 46039, 46041, 46043, 6485 46045, 46048, 46052, 46056, 46076, 46096, 46104, 46108, 46112, 6486 {f: 2, c: 46120}, 46123, 46132, {f: 2, c: 46160}, 46164, 46168, 6487 {f: 2, c: 46176}, 46179, 46181, 46188, 46208, 46216, 46237, 46244, 46248, 6488 46252, 46261, 46263, 46265, 46272, 46276, 46280, 46288, 46293, 6489 {f: 2, c: 46300}, 46304, {f: 2, c: 46307}, 46310, {f: 2, c: 46316}, 46319, 6490 46321, 46328, {f: 2, c: 46356}, 46360, {f: 2, c: 46363}, {f: 2, c: 46372}, 6491 {f: 4, c: 46375}, {f: 2, c: 46384}, 46388, 46392, {f: 2, c: 46400}, 6492 {f: 3, c: 46403}, {f: 3, c: 46411}, 46416, 46420, {f: 2, c: 46428}, 6493 {f: 3, c: 46431}, {f: 2, c: 46496}, 46500, 46504, {f: 2, c: 46506}, 6494 {f: 2, c: 46512}, {f: 3, c: 46515}, {f: 3, c: 46523}, 46528, 46532, 6495 {f: 2, c: 46540}, {f: 3, c: 46543}, 46552, 46572, {f: 2, c: 46608}, 46612, 6496 46616, 46629, 46636, 46644, 46664, 46692, 46696, {f: 2, c: 46748}, 46752, 6497 46756, {f: 2, c: 46763}, 46769, 46804, 46832, 46836, 46840, 6498 {f: 2, c: 46848}, 46853, {f: 2, c: 46888}, 46892, {f: 2, c: 46895}, 6499 {f: 2, c: 46904}, 46907, 46916, 46920, 46924, {f: 2, c: 46932}, 46944, 6500 46948, 46952, {f: 2, c: 46960}, 46963, 46965, {f: 2, c: 46972}, 46976, 6501 46980, {f: 2, c: 46988}, {f: 4, c: 46991}, {f: 4, c: 46998}, 47004, 47008, 6502 {f: 2, c: 47016}, {f: 3, c: 47019}, {f: 2, c: 47028}, 47032, 47047, 47049, 6503 {f: 2, c: 47084}, 47088, 47092, {f: 2, c: 47100}, {f: 3, c: 47103}, 6504 {f: 3, c: 47111}, 47116, 47120, {f: 2, c: 47128}, 47131, 47133, 6505 {f: 2, c: 47140}, 47144, 47148, {f: 2, c: 47156}, {f: 3, c: 47159}, 47168, 6506 47172, 47185, 47187, {f: 2, c: 47196}, 47200, 47204, {f: 2, c: 47212}, 6507 47215, 47217, 47224, 47228, 47245, 47272, 47280, 47284, 47288, 6508 {f: 2, c: 47296}, 47299, 47301, 47308, 47312, 47316, 47325, 47327, 47329, 6509 {f: 2, c: 47336}, 47340, 47344, {f: 2, c: 47352}, 47355, 47357, 47364, 6510 47384, 47392, {f: 2, c: 47420}, 47424, 47428, 47436, 47439, 47441, 6511 {f: 2, c: 47448}, 47452, 47456, {f: 2, c: 47464}, 47467, 47469, 6512 {f: 2, c: 47476}, 47480, 47484, {f: 2, c: 47492}, 47495, {f: 2, c: 47497}, 6513 {f: 2, c: 47501}, {f: 2, c: 47532}, 47536, 47540, {f: 2, c: 47548}, 47551, 6514 47553, {f: 2, c: 47560}, 47564, {f: 5, c: 47566}, {f: 2, c: 47576}, 47579, 6515 {f: 2, c: 47581}, 47585, {f: 3, c: 47587}, 47592, 47596, {f: 2, c: 47604}, 6516 {f: 4, c: 47607}, {f: 2, c: 47616}, 47624, 47637, {f: 2, c: 47672}, 47676, 6517 47680, 47682, {f: 2, c: 47688}, 47691, {f: 2, c: 47693}, {f: 3, c: 47699}, 6518 47704, 47708, {f: 2, c: 47716}, {f: 3, c: 47719}, {f: 2, c: 47728}, 47732, 6519 47736, {f: 3, c: 47747}, 47751, 47756, {f: 2, c: 47784}, {f: 2, c: 47787}, 6520 47792, 47794, {f: 2, c: 47800}, 47803, 47805, 47812, 47816, 6521 {f: 2, c: 47832}, 47868, 47872, 47876, 47885, 47887, 47889, 47896, 47900, 6522 47904, 47913, 47915, {f: 3, c: 47924}, 47928, {f: 4, c: 47931}, 6523 {f: 2, c: 47940}, 47943, 47945, 47949, {f: 2, c: 47951}, 47956, 47960, 6524 47969, 47971, 47980, 48008, 48012, 48016, 48036, 48040, 48044, 48052, 6525 48055, 48064, 48068, 48072, 48080, 48083, {f: 2, c: 48120}, 48124, 6526 {f: 2, c: 48127}, 48130, {f: 2, c: 48136}, {f: 3, c: 48139}, 48143, 48145, 6527 {f: 5, c: 48148}, {f: 5, c: 48155}, {f: 2, c: 48164}, 48167, 48169, 48173, 6528 {f: 2, c: 48176}, 48180, 48184, {f: 2, c: 48192}, {f: 3, c: 48195}, 48201, 6529 {f: 2, c: 48204}, 48208, 48221, {f: 2, c: 48260}, 48264, {f: 2, c: 48267}, 6530 48270, {f: 2, c: 48276}, 48279, {f: 2, c: 48281}, {f: 2, c: 48288}, 48292, 6531 {f: 2, c: 48295}, {f: 2, c: 48304}, {f: 3, c: 48307}, {f: 2, c: 48316}, 6532 48320, 48324, 48333, {f: 3, c: 48335}, 48341, 48344, 48348, 6533 {f: 3, c: 48372}, 48376, 48380, {f: 2, c: 48388}, 48391, 48393, 48400, 6534 48404, 48420, 48428, 48448, {f: 2, c: 48456}, 48460, 48464, 6535 {f: 2, c: 48472}, 48484, 48488, {f: 2, c: 48512}, 48516, {f: 4, c: 48519}, 6536 {f: 2, c: 48528}, 48531, 48533, {f: 2, c: 48537}, 48540, 48548, 48560, 6537 48568, {f: 2, c: 48596}, 48600, 48604, 48617, 48624, 48628, 48632, 48640, 6538 48643, 48645, {f: 2, c: 48652}, 48656, 48660, {f: 2, c: 48668}, 48671, 6539 {f: 2, c: 48708}, 48712, 48716, 48718, {f: 2, c: 48724}, 48727, 6540 {f: 3, c: 48729}, {f: 2, c: 48736}, 48740, 48744, 48746, {f: 2, c: 48752}, 6541 {f: 3, c: 48755}, {f: 3, c: 48763}, 48768, 48772, {f: 2, c: 48780}, 6542 {f: 3, c: 48783}, {f: 2, c: 48792}, 48808, {f: 2, c: 48848}, 48852, 6543 {f: 2, c: 48855}, 48864, {f: 3, c: 48867}, 48876, 48897, {f: 2, c: 48904}, 6544 {f: 2, c: 48920}, {f: 3, c: 48923}, {f: 2, c: 48960}, 48964, 48968, 6545 {f: 2, c: 48976}, 48981, 49044, 49072, 49093, {f: 2, c: 49100}, 49104, 6546 49108, 49116, 49119, 49121, 49212, 49233, 49240, 49244, 49248, 6547 {f: 2, c: 49256}, {f: 2, c: 49296}, 49300, 49304, {f: 2, c: 49312}, 49315, 6548 49317, {f: 2, c: 49324}, {f: 2, c: 49327}, {f: 4, c: 49331}, 6549 {f: 2, c: 49340}, {f: 3, c: 49343}, 49349, {f: 2, c: 49352}, 49356, 49360, 6550 {f: 2, c: 49368}, {f: 3, c: 49371}, {f: 2, c: 49380}, 49384, 49388, 6551 {f: 2, c: 49396}, 49399, 49401, 49408, 49412, 49416, 49424, 49429, 6552 {f: 5, c: 49436}, {f: 2, c: 49443}, {f: 2, c: 49446}, {f: 2, c: 49452}, 6553 {f: 3, c: 49455}, 49462, {f: 2, c: 49464}, 49468, 49472, {f: 2, c: 49480}, 6554 {f: 3, c: 49483}, {f: 2, c: 49492}, 49496, 49500, {f: 2, c: 49508}, 6555 {f: 3, c: 49511}, 49520, 49524, 49528, 49541, {f: 3, c: 49548}, 49552, 6556 49556, 49558, {f: 2, c: 49564}, 49567, 49569, 49573, {f: 2, c: 49576}, 6557 49580, 49584, 49597, 49604, 49608, 49612, 49620, {f: 2, c: 49623}, 49632, 6558 49636, 49640, {f: 2, c: 49648}, 49651, {f: 2, c: 49660}, 49664, 49668, 6559 {f: 2, c: 49676}, 49679, 49681, {f: 2, c: 49688}, 49692, {f: 2, c: 49695}, 6560 {f: 2, c: 49704}, 49707, 49709, 49711, {f: 2, c: 49713}, 49716, 49736, 6561 {f: 2, c: 49744}, 49748, 49752, 49760, 49765, {f: 2, c: 49772}, 49776, 6562 49780, {f: 2, c: 49788}, 49791, 49793, {f: 2, c: 49800}, 49808, 49816, 6563 49819, 49821, {f: 2, c: 49828}, 49832, {f: 2, c: 49836}, {f: 2, c: 49844}, 6564 49847, 49849, {f: 2, c: 49884}, 49888, {f: 2, c: 49891}, {f: 3, c: 49899}, 6565 49903, 49905, 49910, {f: 2, c: 49912}, {f: 2, c: 49915}, 49920, 6566 {f: 2, c: 49928}, {f: 2, c: 49932}, {f: 3, c: 49939}, 49944, 49948, 6567 {f: 2, c: 49956}, {f: 2, c: 49960}, 49989, {f: 2, c: 50024}, 50028, 50032, 6568 50034, {f: 2, c: 50040}, {f: 2, c: 50044}, 50052, 50056, 50060, 50112, 6569 {f: 2, c: 50136}, 50140, {f: 2, c: 50143}, 50146, {f: 2, c: 50152}, 50157, 6570 {f: 2, c: 50164}, 50168, 50184, 50192, 50212, 50220, 50224, 50228, 6571 {f: 2, c: 50236}, 50248, {f: 2, c: 50276}, 50280, 50284, {f: 2, c: 50292}, 6572 50297, 50304, 50324, 50332, 50360, 50364, 50409, {f: 2, c: 50416}, 50420, 6573 50424, 50426, {f: 3, c: 50431}, 50444, 50448, 50452, 50460, 6574 {f: 2, c: 50472}, 50476, 50480, {f: 2, c: 50488}, 50491, 50493, 6575 {f: 2, c: 50500}, {f: 3, c: 50504}, {f: 3, c: 50508}, {f: 3, c: 50515}, 6576 {f: 3, c: 50519}, {f: 2, c: 50525}, {f: 2, c: 50528}, 50532, 50536, 6577 {f: 2, c: 50544}, {f: 3, c: 50547}, {f: 2, c: 50556}, 50560, 50564, 50567, 6578 {f: 2, c: 50572}, 50575, 50577, 50581, {f: 2, c: 50583}, 50588, 50592, 6579 50601, {f: 2, c: 50612}, {f: 2, c: 50616}, {f: 4, c: 50619}, 6580 {f: 7, c: 50628}, 50636, 50638, {f: 2, c: 50640}, 50644, 50648, 6581 {f: 2, c: 50656}, 50659, 50661, {f: 3, c: 50668}, 50672, 50676, 6582 {f: 2, c: 50678}, {f: 6, c: 50684}, {f: 4, c: 50693}, 50700, 50704, 6583 {f: 2, c: 50712}, {f: 2, c: 50715}, {f: 2, c: 50724}, 50728, 6584 {f: 3, c: 50732}, 50736, {f: 3, c: 50739}, 50743, 50745, 50747, 6585 {f: 2, c: 50752}, 50756, 50760, {f: 2, c: 50768}, {f: 3, c: 50771}, 6586 {f: 2, c: 50780}, 50784, 50796, 50799, 50801, {f: 2, c: 50808}, 50812, 6587 50816, {f: 2, c: 50824}, 50827, 50829, {f: 2, c: 50836}, 50840, 50844, 6588 {f: 2, c: 50852}, 50855, 50857, {f: 2, c: 50864}, 50868, {f: 3, c: 50872}, 6589 {f: 2, c: 50880}, 50883, 50885, {f: 2, c: 50892}, 50896, 50900, 6590 {f: 2, c: 50908}, {f: 2, c: 50912}, {f: 2, c: 50920}, 50924, 50928, 6591 {f: 2, c: 50936}, 50941, {f: 2, c: 50948}, 50952, 50956, {f: 2, c: 50964}, 6592 50967, 50969, {f: 2, c: 50976}, 50980, 50984, {f: 2, c: 50992}, 50995, 6593 50997, 50999, {f: 2, c: 51004}, 51008, 51012, 51018, {f: 2, c: 51020}, 6594 51023, {f: 8, c: 51025}, 51036, 51040, 51048, 51051, {f: 2, c: 51060}, 6595 51064, {f: 3, c: 51068}, {f: 3, c: 51075}, {f: 4, c: 51079}, 51086, 6596 {f: 2, c: 51088}, 51092, {f: 3, c: 51094}, 51098, {f: 2, c: 51104}, 6597 {f: 4, c: 51107}, {f: 2, c: 51116}, 51120, 51124, {f: 2, c: 51132}, 6598 {f: 3, c: 51135}, {f: 2, c: 51144}, 51148, 51150, 51152, 51160, 51165, 6599 51172, 51176, 51180, {f: 2, c: 51200}, 51204, 51208, 51210, 6600 {f: 2, c: 51216}, 51219, {f: 2, c: 51221}, {f: 2, c: 51228}, 51232, 51236, 6601 {f: 2, c: 51244}, 51247, 51249, 51256, 51260, 51264, {f: 2, c: 51272}, 6602 {f: 2, c: 51276}, 51284, {f: 2, c: 51312}, 51316, 51320, 51322, 6603 {f: 2, c: 51328}, 51331, {f: 3, c: 51333}, {f: 3, c: 51339}, 51348, 51357, 6604 51359, 51361, 51368, {f: 2, c: 51388}, 51396, 51400, 51404, 6605 {f: 2, c: 51412}, 51415, 51417, {f: 2, c: 51424}, 51428, 51445, 6606 {f: 2, c: 51452}, 51456, {f: 3, c: 51460}, {f: 2, c: 51468}, 51471, 51473, 6607 51480, 51500, 51508, {f: 2, c: 51536}, 51540, 51544, {f: 2, c: 51552}, 6608 51555, 51564, 51568, 51572, 51580, {f: 2, c: 51592}, 51596, 51600, 6609 {f: 2, c: 51608}, 51611, 51613, {f: 2, c: 51648}, 51652, {f: 2, c: 51655}, 6610 51658, {f: 2, c: 51664}, 51667, {f: 2, c: 51669}, {f: 2, c: 51673}, 6611 {f: 2, c: 51676}, 51680, 51682, 51684, 51687, {f: 2, c: 51692}, 6612 {f: 3, c: 51695}, {f: 2, c: 51704}, 51708, 51712, {f: 2, c: 51720}, 6613 {f: 3, c: 51723}, 51732, 51736, 51753, {f: 2, c: 51788}, 51792, 51796, 6614 {f: 2, c: 51804}, {f: 3, c: 51807}, 51816, 51837, 51844, 51864, 6615 {f: 2, c: 51900}, 51904, 51908, {f: 2, c: 51916}, 51919, 51921, 51923, 6616 {f: 2, c: 51928}, 51936, 51948, 51956, 51976, 51984, 51988, 51992, 6617 {f: 2, c: 52000}, 52033, {f: 2, c: 52040}, 52044, 52048, {f: 2, c: 52056}, 6618 52061, 52068, {f: 2, c: 52088}, 52124, 52152, 52180, 52196, 52199, 52201, 6619 {f: 2, c: 52236}, 52240, 52244, {f: 2, c: 52252}, {f: 2, c: 52257}, 6620 {f: 3, c: 52263}, 52268, 52270, 52272, {f: 2, c: 52280}, {f: 4, c: 52283}, 6621 {f: 2, c: 52292}, 52296, 52300, {f: 2, c: 52308}, {f: 3, c: 52311}, 52320, 6622 52324, 52326, 52328, 52336, 52341, {f: 2, c: 52376}, 52380, 52384, 6623 {f: 2, c: 52392}, {f: 3, c: 52395}, {f: 2, c: 52404}, 52408, 52412, 6624 {f: 2, c: 52420}, 52423, 52425, 52432, 52436, 52452, 52460, 52464, 52481, 6625 {f: 2, c: 52488}, 52492, 52496, {f: 2, c: 52504}, 52507, 52509, 52516, 6626 52520, 52524, 52537, 52572, 52576, 52580, {f: 2, c: 52588}, 52591, 52593, 6627 52600, 52616, {f: 2, c: 52628}, 52632, 52636, {f: 2, c: 52644}, 52647, 6628 52649, 52656, 52676, 52684, 52688, 52712, 52716, 52720, {f: 2, c: 52728}, 6629 52731, 52733, 52740, 52744, 52748, 52756, 52761, {f: 2, c: 52768}, 52772, 6630 52776, {f: 2, c: 52784}, 52787, 52789, {f: 2, c: 52824}, 52828, 6631 {f: 3, c: 52831}, {f: 2, c: 52840}, 52843, 52845, {f: 2, c: 52852}, 52856, 6632 52860, {f: 2, c: 52868}, 52871, 52873, {f: 2, c: 52880}, 52884, 52888, 6633 {f: 2, c: 52896}, {f: 3, c: 52899}, {f: 2, c: 52908}, 52929, 6634 {f: 2, c: 52964}, 52968, {f: 2, c: 52971}, {f: 2, c: 52980}, 6635 {f: 3, c: 52983}, {f: 2, c: 52992}, 52996, 53000, {f: 2, c: 53008}, 53011, 6636 53013, 53020, 53024, 53028, {f: 2, c: 53036}, {f: 3, c: 53039}, 53048, 6637 {f: 2, c: 53076}, 53080, 53084, {f: 2, c: 53092}, 53095, 53097, 6638 {f: 2, c: 53104}, 53108, 53112, 53120, 53125, 53132, 53153, 53160, 53168, 6639 53188, {f: 2, c: 53216}, 53220, 53224, {f: 2, c: 53232}, 53235, 53237, 6640 53244, 53248, 53252, 53265, 53272, 53293, {f: 2, c: 53300}, 53304, 53308, 6641 {f: 2, c: 53316}, 53319, 53321, 53328, 53332, 53336, 53344, 6642 {f: 2, c: 53356}, 53360, 53364, {f: 2, c: 53372}, 53377, {f: 2, c: 53412}, 6643 53416, 53420, {f: 2, c: 53428}, 53431, 53433, {f: 2, c: 53440}, 53444, 6644 {f: 2, c: 53448}, {f: 2, c: 53456}, {f: 3, c: 53459}, {f: 2, c: 53468}, 6645 53472, 53476, {f: 2, c: 53484}, {f: 3, c: 53487}, 53496, 53517, 6646 {f: 2, c: 53552}, 53556, 53560, 53562, {f: 2, c: 53568}, {f: 3, c: 53571}, 6647 {f: 2, c: 53580}, 53584, 53588, {f: 2, c: 53596}, 53599, 53601, 53608, 6648 53612, 53628, 53636, 53640, {f: 2, c: 53664}, 53668, 53672, 6649 {f: 2, c: 53680}, 53683, 53685, 53690, 53692, 53696, 53720, 53748, 53752, 6650 53767, 53769, 53776, {f: 2, c: 53804}, 53808, 53812, {f: 2, c: 53820}, 6651 53823, 53825, 53832, 53852, 53860, {f: 2, c: 53888}, 53892, 53896, 6652 {f: 2, c: 53904}, 53909, 53916, 53920, 53924, 53932, 53937, 6653 {f: 2, c: 53944}, 53948, {f: 2, c: 53951}, 53954, {f: 2, c: 53960}, 53963, 6654 53972, 53976, 53980, {f: 2, c: 53988}, {f: 2, c: 54000}, 54004, 54008, 6655 {f: 2, c: 54016}, 54019, 54021, {f: 3, c: 54028}, 54032, 54036, 54038, 6656 {f: 2, c: 54044}, {f: 3, c: 54047}, 54053, {f: 2, c: 54056}, 54060, 54064, 6657 {f: 2, c: 54072}, {f: 3, c: 54075}, {f: 2, c: 54084}, {f: 2, c: 54140}, 6658 54144, 54148, {f: 2, c: 54156}, {f: 3, c: 54159}, {f: 2, c: 54168}, 54172, 6659 54176, {f: 2, c: 54184}, 54187, 54189, 54196, 54200, 54204, 6660 {f: 2, c: 54212}, {f: 2, c: 54216}, 54224, 54232, 54241, 54243, 6661 {f: 2, c: 54252}, 54256, 54260, {f: 2, c: 54268}, 54271, 54273, 54280, 6662 54301, 54336, 54340, 54364, 54368, 54372, 54381, 54383, {f: 2, c: 54392}, 6663 54396, {f: 2, c: 54399}, 54402, {f: 2, c: 54408}, 54411, 54413, 54420, 6664 54441, 54476, 54480, 54484, 54492, 54495, 54504, 54508, 54512, 54520, 6665 54523, 54525, 54532, 54536, 54540, {f: 2, c: 54548}, 54551, 6666 {f: 2, c: 54588}, 54592, 54596, {f: 2, c: 54604}, 54607, 54609, 6667 {f: 2, c: 54616}, 54620, 54624, 54629, {f: 2, c: 54632}, 54635, 54637, 6668 {f: 2, c: 54644}, 54648, 54652, {f: 2, c: 54660}, {f: 3, c: 54663}, 54672, 6669 54693, {f: 2, c: 54728}, 54732, 54736, 54738, {f: 2, c: 54744}, 54747, 6670 54749, {f: 2, c: 54756}, 54760, 54764, {f: 2, c: 54772}, 54775, 54777, 6671 {f: 2, c: 54784}, 54788, 54792, {f: 2, c: 54800}, {f: 3, c: 54803}, 54812, 6672 54816, 54820, 54829, {f: 2, c: 54840}, 54844, 54848, 54853, 6673 {f: 2, c: 54856}, 54859, 54861, 54865, {f: 2, c: 54868}, 54872, 54876, 6674 54887, 54889, {f: 2, c: 54896}, 54900, 54915, 54917, {f: 2, c: 54924}, 6675 54928, 54932, 54941, 54943, 54945, 54952, 54956, 54960, 54969, 54971, 6676 {f: 2, c: 54980}, 54984, 54988, 54993, 54996, 54999, 55001, 55008, 55012, 6677 55016, 55024, 55029, {f: 2, c: 55036}, 55040, 55044, 55057, 6678 {f: 2, c: 55064}, 55068, 55072, {f: 2, c: 55080}, 55083, 55085, 6679 {f: 2, c: 55092}, 55096, 55100, 55108, 55111, 55113, {f: 2, c: 55120}, 6680 55124, {f: 4, c: 55126}, {f: 2, c: 55136}, 55139, 55141, 55145, 55148, 6681 55152, 55156, {f: 2, c: 55164}, 55169, {f: 2, c: 55176}, 55180, 55184, 6682 {f: 2, c: 55192}, 55195, 55197, 20285, 20339, 20551, 20729, 21152, 21487, 6683 21621, 21733, 22025, 23233, 23478, 26247, {f: 2, c: 26550}, 26607, 27468, 6684 29634, 30146, 31292, 33499, 33540, 34903, 34952, 35382, [36040, 63747], 6685 36303, 36603, 36838, 39381, 21051, 21364, 21508, 24682, 24932, 27580, 6686 29647, 33050, 35258, [12179, 35282], 38307, 20355, 21002, 22718, 22904, 6687 23014, [12082, 24178], 24185, 25031, 25536, 26438, 26604, 26751, 28567, 6688 30286, 30475, 30965, 31240, 31487, 31777, 32925, [12169, 33390], 33393, 6689 35563, 38291, 20075, 21917, 26359, 28212, 30883, 31469, 33883, 35088, 6690 34638, 38824, 21208, 22350, 22570, 23884, 24863, 25022, 25121, 25954, 6691 26577, 27204, 28187, [12130, 29976], 30131, 30435, 30640, 32058, 37039, 6692 {f: 2, c: 37969}, 40853, 21283, 23724, 30002, 32987, 37440, 38296, 21083, 6693 22536, 23004, 23713, 23831, 24247, 24378, 24394, 24951, 27743, 30074, 6694 30086, 31968, 32115, 32177, 32652, 33108, 33313, 34193, 35137, 35611, 6695 37628, [38477, 64009], 40007, 20171, 20215, 20491, 20977, 22607, 24887, 6696 24894, 24936, 25913, 27114, 28433, 30117, 30342, 30422, 31623, 33445, 6697 33995, 37799, 38283, 21888, 23458, 22353, 31923, 32697, 37301, 20520, 6698 21435, 23621, 24040, 25298, 25454, 25818, 25831, 28192, 28844, 31067, 6699 36317, 36382, 36989, 37445, 37624, 20094, 20214, 20581, [12081, 24062], 6700 24314, 24838, 26967, 33137, 34388, 36423, 37749, 39467, 20062, 20625, 6701 26480, 26688, 20745, 21133, 21138, 27298, 30652, 37392, 40660, 21163, 6702 24623, 36850, 20552, 25001, 25581, 25802, 26684, 27268, 28608, 33160, 6703 35233, 38548, 22533, 29309, [12125, 29356], 29956, 32121, 32365, 32937, 6704 [12178, 35211, 64010], 35700, 36963, 40273, 25225, 27770, 28500, 32080, 6705 32570, 35363, 20860, 24906, 31645, 35609, 37463, 37772, 20140, 20435, 6706 20510, 20670, 20742, 21185, 21197, 21375, 22384, 22659, 24218, 24465, 6707 24950, 25004, 25806, 25964, 26223, 26299, [26356, 63745], 26775, 28039, 6708 28805, 28913, 29855, 29861, 29898, 30169, 30828, 30956, 31455, 31478, 6709 32069, 32147, 32789, 32831, 33051, 33686, 35686, 36629, 36885, 37857, 6710 38915, 38968, 39514, 39912, 20418, 21843, 22586, [22865, 63753], 23395, 6711 23622, 24760, 25106, 26690, 26800, 26856, 28330, 30028, 30328, 30926, 6712 31293, 31995, 32363, 32380, 35336, 35489, 35903, 38542, 40388, 21476, 6713 21481, 21578, 21617, 22266, 22993, 23396, 23611, 24235, 25335, 25911, 6714 25925, 25970, 26272, 26543, 27073, 27837, 30204, 30352, 30590, 31295, 6715 32660, 32771, 32929, 33167, 33510, 33533, 33776, 34241, 34865, 34996, 6716 35493, 36764, 37678, 38599, 39015, [12220, 39640], [12238, 40723], 21741, 6717 26011, 26354, 26767, 31296, [12181, 35895], 40288, 22256, 22372, 23825, 6718 26118, 26801, 26829, 28414, 29736, 34974, 39908, 27752, [12219, 39592], 6719 20379, 20844, 20849, 21151, 23380, [12079, 24037], 24656, 24685, 25329, 6720 25511, 25915, 29657, 31354, 34467, 36002, 38799, [20018, 63749], 23521, 6721 [12093, 25096], 26524, [12128, 29916], 31185, 33747, 35463, 35506, 36328, 6722 36942, 37707, 38982, [24275, 64011], 27112, 34303, 37101, 20896, 23448, 6723 23532, 24931, 26874, 27454, 28748, 29743, 29912, 31649, 32592, 33733, 6724 35264, 36011, 38364, 39208, 21038, 24669, 25324, 36866, 20362, 20809, 6725 21281, 22745, 24291, 26336, 27960, 28826, 29378, 29654, 31568, 33009, 6726 37979, 21350, 25499, 32619, 20054, 20608, 22602, 22750, 24618, 24871, 6727 25296, 27088, 39745, 23439, 32024, 32945, 36703, 20132, 20689, 21676, 6728 21932, 23308, 23968, 24039, 25898, 25934, 26657, 27211, 29409, 30350, 6729 30703, 32094, 32761, 33184, 34126, 34527, 36611, 36686, 37066, 39171, 6730 39509, 39851, 19992, 20037, 20061, 20167, 20465, 20855, 21246, 21312, 6731 [12061, 21475], [21477, 63750], 21646, 22036, 22389, 22434, 23495, 23943, 6732 24272, 25084, 25304, 25937, 26552, 26601, 27083, 27472, 27590, 27628, 6733 27714, 28317, 28792, 29399, 29590, 29699, 30655, 30697, 31350, 32127, 6734 32777, [12165, 33276], 33285, 33290, 33503, 34914, 35635, 36092, 36544, 6735 36881, 37041, 37476, 37558, 39378, 39493, 40169, 40407, 6736 [12244, 40860, 63751, 63752], 22283, 23616, 33738, 38816, 38827, 40628, 6737 21531, 31384, 32676, 35033, 36557, 37089, 22528, 23624, 25496, 31391, 6738 23470, [12088, 24339], 31353, 31406, 33422, 36524, 20518, 21048, 21240, 6739 21367, 22280, 25331, 25458, 27402, 28099, 30519, 21413, 29527, 34152, 6740 36470, 38357, 26426, 27331, 28528, 35437, 36556, 39243, 26231, 27512, 6741 36020, [12225, 39740], 21483, 22317, 22862, 25542, 27131, 29674, 30789, 6742 31418, 31429, 31998, 33909, 35215, 36211, 36917, 38312, 21243, 22343, 6743 30023, 31584, 33740, 37406, 27224, 20811, 21067, 21127, 25119, 26840, 6744 26997, 38553, 20677, 21156, 21220, 25027, [12100, 26020], 26681, 27135, 6745 29822, 31563, 33465, 33771, 35250, 35641, 36817, 39241, 20170, 22935, 6746 25810, 26129, 27278, 29748, 31105, 31165, 33449, {f: 2, c: 34942}, 35167, 6747 37670, 20235, 21450, 24613, 25201, 27762, 32026, 32102, 20120, 20834, 6748 30684, 32943, 20225, 20238, 20854, 20864, 21980, 22120, 22331, 22522, 6749 22524, 22804, 22855, 22931, 23492, 23696, 23822, [12080, 24049], 24190, 6750 24524, 25216, 26071, 26083, {f: 2, c: 26398}, 26462, 26827, 26820, 27231, 6751 27450, 27683, 27773, 27778, 28103, 29592, 29734, 29738, 29826, 29859, 6752 30072, 30079, 30849, 30959, 31041, {f: 2, c: 31047}, 31098, 31637, 32000, 6753 32186, 32648, 32774, 32813, 32908, 35352, 35663, [35912, 63744], 36215, 6754 37665, 37668, 39138, 39249, {f: 2, c: 39438}, 39525, 40594, 32202, 20342, 6755 21513, 25326, 26708, [12198, 37329, 63754], 21931, 20794, 23068, 25062, 6756 [25295, 63835], 25343, 37027, [35582, 63837], 26262, 29014, 38627, 25423, 6757 25466, 21335, 26511, 26976, 28275, 30007, 32013, 34930, 22218, 23064, 6758 20035, 20839, [22856, 63756], 26608, 32784, [12069, 22899, 63873], 6759 [24180, 63886], [25754, 63889], [31178, 63893], [24565, 63907], 24684, 6760 25288, [25467, 63908], [23527, 63839, 63914], 23511, 21162, 22900, 24361, 6761 [24594, 63840], 29785, 39377, 28611, 33215, 36786, 24817, 33126, 6762 [23615, 63933], 23273, 35365, [26491, 63944], [32016, 63951], 33021, 23612, 6763 [27877, 63971], [21311, 63979], [28346, 63980], 22810, [33590, 63998], 6764 [20025, 63838], 20150, 20294, 21934, 22296, 22727, 24406, 26039, 26086, 6765 27264, 27573, 28237, 30701, 31471, 31774, 32222, 34507, 34962, 37170, 6766 37723, 25787, 28606, 29562, 30136, 36948, 21846, 22349, 25018, 25812, 6767 26311, 28129, 28251, 28525, 28601, 30192, 32835, 33213, 34113, 35203, 6768 35527, 35674, 37663, 27795, 30035, 31572, 36367, 36957, 21776, 22530, 6769 22616, 24162, 25095, 25758, 26848, 30070, [31958, 64003], 34739, 40680, 6770 20195, 22408, 22382, [12068, 22823], 23565, 23729, 24118, 24453, 25140, 6771 25825, 29619, 33274, 34955, 36024, 38538, 40667, [23429, 64004], 24503, 6772 24755, 20498, [12049, 20992], 21040, 22294, 22581, 22615, 23566, 23648, 6773 23798, 23947, [24230, 64001], 24466, 24764, 25361, 25481, 25623, 26691, 6774 26873, 27330, 28120, 28193, 28372, 28644, 29182, 30428, 30585, 31153, 6775 31291, 33796, 35241, 36077, 36339, 36424, 36867, 36884, 36947, 37117, 6776 37709, 38518, 38876, 27602, 28678, 29272, 29346, 29544, 30563, 31167, 6777 31716, 32411, [35712, 63834], 22697, 24775, 25958, 26109, 26302, 27788, 6778 28958, 29129, 35930, 38931, 20077, 31361, 20189, 20908, 20941, 21205, 6779 21516, 24999, 26481, 26704, 26847, [27934, 64005], 28540, 30140, 30643, 6780 31461, 33012, 33891, 37509, 20828, [12099, 26007], 26460, 26515, 30168, 6781 31431, 33651, [12182, 35910], 36887, 38957, 23663, 33216, 33434, 36929, 6782 36975, 37389, 24471, 23965, 27225, 29128, 30331, 31561, 34276, 35588, 6783 37159, 39472, [21895, 63755], [25078, 63757], [30313, 63758], 6784 [32645, 63759], [34367, 63760], [34746, 63761], [35064, 63762], 6785 [37007, 63763], [27931, 63765], [28889, 63766], [29662, 63767], 32097, 6786 [33853, 63768], [37226, 63769], [39409, 63770], [20098, 63771], 6787 [21365, 63772], [27396, 63773], 27410, 28734, [29211, 63774], 6788 [34349, 63775], [40478, 63776], 21068, 36771, [23888, 63777], 25829, 25900, 6789 27414, [28651, 63778], 31811, 32412, [34253, 63779], [35172, 63780], 35261, 6790 [25289, 63781], [33240, 63782], [34847, 63783], [24266, 63784], 6791 [26391, 63785], [28010, 63786], [29436, 63787], 29701, 29807, 34690, 6792 [37086, 63788], [20358, 63789], 23821, 24480, 33802, [20919, 63790], 6793 [25504, 63861], [30053, 63862], [20142, 63863], 20486, [20841, 63864], 6794 [20937, 63865], [26753, 63866], 27153, 31918, 31921, [31975, 63867], 6795 [33391, 63868], [35538, 63869], 36635, [37327, 63870], 20406, 20791, 6796 [21237, 63871], [21570, 63872], [24300, 63874], 24942, 25150, 6797 [26053, 63875], 27354, [28670, 63876], [31018, 63877], 34268, 34851, 6798 [38317, 63878], 39522, [39530, 63879], [40599, 63880], [40654, 63881], 6799 [12050, 21147, 63882], [26310, 63883], [27511, 63884], 28701, 31019, 6800 [36706, 63885], 38722, [24976, 63887], [25088, 63888], 25891, 6801 [28451, 63890], [29001, 63891], [29833, 63892], [32244, 63894], 6802 [32879, 63895], [34030, 63897], [36646, 63896], [36899, 63898], 6803 [37706, 63899], 20925, [21015, 63900], [21155, 63901], 27916, 6804 [28872, 63903], [35010, 63904], [24265, 63906], 25986, [27566, 63909], 6805 28610, [31806, 63910], [29557, 63911], [20196, 63912], 20278, 6806 [22265, 63913], 23738, [23994, 63915], [24604, 63916], [29618, 63917], 6807 31533, [32666, 63919], 32718, [32838, 63920], 36894, [37428, 63921], 6808 [38646, 63922], [38728, 63923], [38936, 63924], 40801, [20363, 63925], 6809 28583, [31150, 63926], [37300, 63927], [38583, 63928], [21214, 63791], 6810 25736, [25796, 63792], [27347, 63793], 28510, 28696, [29200, 63794], 6811 [30439, 63795], [12156, 32769, 63796], [34310, 63797], [34396, 63798], 6812 [36335, 63799], 36613, [38706, 63800], [39791, 63801], [40442, 63802], 6813 [12228, 40565], [30860, 63803], [31103, 63804], [32160, 63805], 6814 [33737, 63806], [37636, 63807], [12229, 40575, 63808], 40595, 6815 [35542, 63809], [22751, 63810], [24324, 63811], 26407, 28711, 29903, 6816 [31840, 63812], [32894, 63813], 20769, 28712, [29282, 63814], 6817 [30922, 63815], [36034, 63816], 36058, 36084, [38647, 63817], 6818 [20102, 63930], [20698, 63931], [23534, 63932], 24278, [26009, 63934], 6819 [29134, 63936], [30274, 63937], 30637, 32842, [34044, 63938], 6820 [36988, 63939], 39719, [12243, 40845, 63940], [22744, 63818], 23105, 6821 [23650, 63819], [27155, 63820], [28122, 63821], [28431, 63822], 30267, 6822 [32047, 63823], [32311, 63824], 34078, 35128, 37860, [38475, 63825], 6823 [21129, 63943], 26066, [26611, 63945], 27060, [27969, 63946], 6824 [28316, 63947], 28687, [29705, 63948], 29792, [30041, 63949], 30244, 6825 [30827, 63950], 35628, [39006, 63952], [20845, 63953], [25134, 63954], 6826 [38520, 63955], 20374, [20523, 63956], [23833, 63957], [28138, 63958], 6827 32184, [36650, 63959], [24459, 63960], [24900, 63961], [26647, 63962], 6828 [38534, 63964], [21202, 63826], [32907, 63827], [20956, 63828], 6829 [20940, 63829], 26974, [31260, 63830], [32190, 63831], [33777, 63832], 6830 [38517, 63833], 20442, [21033, 63965], 21400, [21519, 63966], 21774, 6831 [23653, 63967], 24743, [26446, 63969], [26792, 63970], 28012, 29313, 29432, 6832 [29702, 63972], 29827, [30178, 63973], 31852, [32633, 63974], 32696, 33673, 6833 [35023, 63975], [35041, 63976], [12197, 37324, 63977], 37328, 6834 [38626, 63978], 39881, [21533, 63981], 28542, [29136, 63982], 6835 [29848, 63983], [34298, 63984], 36522, [38563, 63985], [40023, 63986], 6836 [40607, 63987], [26519, 63988], [28107, 63989], 29747, [33256, 63990], 6837 38678, 30764, [12148, 31435, 63991], [31520, 63992], [31890, 63993], 25705, 6838 29802, 30194, 30908, 30952, [12218, 39340], 39764, [12231, 40635], 23518, 6839 24149, 28448, 33180, 33707, 37000, 19975, 21325, 23081, 24018, 24398, 6840 24930, 25405, 26217, 26364, 28415, 28459, 28771, 30622, 33836, 34067, 6841 34875, 36627, 39237, 39995, 21788, 25273, 26411, 27819, 33545, 35178, 6842 38778, 20129, 22916, {f: 2, c: 24536}, 26395, 32178, 32596, 33426, 33579, 6843 33725, 36638, 37017, 22475, 22969, 23186, 23504, 26151, 26522, 26757, 6844 27599, 29028, 32629, 36023, 36067, 36993, 39749, 33032, 35978, 38476, 6845 39488, [12230, 40613], 23391, 27667, 29467, 30450, 30431, 33804, 20906, 6846 35219, 20813, 20885, 21193, 26825, 27796, 30468, 30496, 32191, 32236, 6847 [12207, 38754], 40629, 28357, 34065, 20901, 21517, 21629, 26126, 26269, 6848 26919, 28319, [12139, 30399], 30609, 33559, 33986, 34719, 37225, 37528, 6849 40180, 34946, 20398, 20882, 21215, 22982, 24125, 24917, {f: 2, c: 25720}, 6850 26286, 26576, 27169, 27597, [12113, 27611], 29279, 29281, 29761, 30520, 6851 [12141, 30683], 32791, 33468, 33541, 35584, 35624, 35980, [12106, 26408], 6852 27792, 29287, [12140, 30446], 30566, 31302, 40361, 27519, 27794, 22818, 6853 26406, 33945, 21359, 22675, 22937, 24287, 25551, 26164, 26483, 28218, 6854 29483, 31447, 33495, 37672, 21209, 24043, 25006, 25035, 25098, 25287, 6855 25771, [12102, 26080], 26969, 27494, [12111, 27595], 28961, 29687, 30045, 6856 32326, 33310, 33538, 34154, 35491, 36031, 38695, 40289, 22696, 40664, 6857 20497, 21006, 21563, 21839, [12098, 25991], 27766, {f: 2, c: 32010}, 32862, 6858 34442, [12200, 38272], 38639, 21247, 27797, 29289, 21619, 23194, 23614, 6859 23883, 24396, 24494, 26410, 26806, 26979, 28220, 28228, 30473, 6860 [12150, 31859], 32654, 34183, 35598, 36855, 38753, 40692, 23735, 24758, 6861 24845, 25003, 25935, {f: 2, c: 26107}, 27665, 27887, 29599, 29641, 32225, 6862 38292, 23494, 34588, 35600, 21085, 21338, 25293, 25615, 25778, 26420, 6863 27192, 27850, 29632, 29854, 31636, 31893, 32283, 33162, 33334, 34180, 6864 36843, 38649, 39361, 20276, 21322, 21453, 21467, 25292, 25644, 25856, 6865 26001, 27075, 27886, 28504, 29677, 30036, 30242, 30436, 30460, 30928, 6866 [30971, 63844], 31020, 32070, 33324, 34784, 36820, 38930, 39151, 21187, 6867 25300, 25765, 28196, 28497, 30332, 36299, 37297, 37474, 39662, 39747, 6868 20515, 20621, 22346, 22952, 23592, 24135, 24439, 25151, 25918, 6869 [12101, 26041], 26049, 26121, 26507, 27036, 28354, 30917, 32033, 32938, 6870 33152, 33323, 33459, 33953, 34444, 35370, 35607, 37030, 38450, 40848, 6871 20493, 20467, 22521, 24472, 25308, 25490, 26479, 28227, 28953, 30403, 6872 32972, 32986, {f: 2, c: 35060}, 35097, 36064, 36649, 37197, 38506, 20271, 6873 20336, 24091, 26575, 26658, [12137, 30333], 30334, 39748, 24161, 27146, 6874 29033, 29140, 30058, 32321, 34115, 34281, 39132, 20240, 31567, 32624, 6875 38309, 20961, 24070, 26805, 27710, 27726, 27867, 29359, 31684, 33539, 6876 27861, 29754, 20731, 21128, 22721, 25816, 27287, 29863, 30294, 30887, 6877 34327, 38370, 38713, 21342, 24321, 35722, 36776, 36783, 37002, 21029, 6878 30629, 40009, 40712, 19993, 20482, 20853, 23643, 24183, 26142, 26170, 6879 26564, 26821, 28851, 29953, 30149, 31177, 31453, 36647, 39200, 39432, 6880 20445, 22561, 22577, 23542, 26222, 27493, 27921, 28282, 28541, 29668, 6881 29995, 33769, 35036, 35091, 35676, 36628, 20239, 20693, 21264, 6882 [12056, 21340], 23443, [24489, 63846], 26381, 31119, 33145, 33583, 34068, 6883 35079, 35206, 36665, [36667, 64007], 39333, 39954, 26412, 20086, 20472, 6884 22857, 23553, {f: 2, c: 23791}, 25447, 26834, 28925, 29090, 29739, 32299, 6885 34028, 34562, 36898, 37586, 40179, [19981, 63847], 20184, 20463, 20613, 6886 21078, 21103, 21542, 21648, 22496, 22827, 23142, 23386, 23413, 23500, 6887 24220, 25206, 25975, 26023, 28014, 28325, [12119, 29238], 31526, 31807, 6888 [12152, 32566], {f: 2, c: 33104}, 33178, 33344, 33433, 33705, 35331, 36000, 6889 36070, 36091, 36212, 36282, 37096, 37340, [12201, 38428], 38468, 39385, 6890 40167, [21271, 63843], 20998, 21545, 22132, 22707, 22868, 22894, 24575, 6891 24996, 25198, 26128, 27774, 28954, 30406, 31881, 31966, 32027, 33452, 6892 36033, 38640, 20315, 24343, 24447, 25282, 23849, 26379, 26842, 30844, 6893 32323, 40300, 19989, 20633, [12052, 21269], 21290, 21329, 22915, 23138, 6894 24199, 24754, 24970, 25161, 25209, 26000, 26503, 27047, [12112, 27604], 6895 {f: 3, c: 27606}, 27832, 29749, 30202, 30738, 30865, 31189, 31192, 31875, 6896 32203, 32737, 32933, 33086, 33218, 33778, 34586, 35048, 35513, 35692, 6897 36027, 37145, [12206, 38750], [12214, 39131], [12240, 40763], 22188, 23338, 6898 24428, 25996, 27315, 27567, 27996, 28657, 28693, 29277, 29613, 36007, 6899 36051, 38971, 24977, 27703, 32856, 39425, 20045, 20107, 20123, 20181, 6900 20282, 20284, 20351, 20447, 20735, 21490, 21496, 21766, 21987, 22235, 6901 [12064, 22763], 22882, 23057, 23531, 23546, 23556, 24051, 24107, 24473, 6902 24605, 25448, 26012, 26031, 26614, 26619, 26797, 27515, 27801, 27863, 6903 28195, 28681, 29509, 30722, 31038, 31040, 31072, 31169, 31721, 32023, 6904 32114, 32902, 33293, 33678, 34001, 34503, 35039, 35408, 35422, 35613, 6905 36060, 36198, 36781, 37034, 39164, 39391, 40605, 21066, 26388, 20632, 6906 21034, [12077, 23665], 25955, 27733, 29642, 29987, 30109, 31639, 33948, 6907 37240, 38704, 20087, 25746, [27578, 63856], 29022, 34217, 19977, 26441, 6908 26862, 28183, 33439, 34072, 34923, 25591, 28545, 37394, 39087, 19978, 6909 20663, 20687, 20767, 21830, 21930, 22039, 23360, 23577, 23776, 24120, 6910 24202, 24224, 24258, 24819, 26705, 27233, 28248, 29245, 29248, 6911 [29376, 63994], 30456, 31077, 31665, 32724, 35059, 35316, 35443, 35937, 6912 36062, 38684, [22622, 63852], 29885, 36093, 21959, 31329, [32034, 63850], 6913 [12170, 33394], 29298, [12131, 29983], 29989, 31513, 22661, 22779, 23996, 6914 24207, 24246, 24464, 24661, 25234, 25471, 25933, 26257, 26329, 26360, 6915 26646, 26866, 29312, 29790, 31598, 32110, 32214, 32626, 32997, 33298, 6916 34223, 35199, 35475, 36893, 37604, [12233, 40653], [12239, 40736], 6917 [12067, 22805], 22893, 24109, 24796, 26132, 26227, 26512, 27728, 28101, 6918 28511, [12143, 30707], 30889, 33990, 37323, 37675, 20185, 20682, 20808, 6919 21892, 23307, 23459, 25159, 25982, 26059, 28210, 29053, 29697, 29764, 6920 29831, 29887, 30316, 31146, 32218, 32341, 32680, 33146, 33203, 33337, 6921 34330, 34796, 35445, 36323, 36984, 37521, 37925, 39245, 39854, 21352, 6922 23633, 26964, 27844, 27945, 28203, [12166, 33292], 34203, 35131, 35373, 6923 [35498, 63855, 63905], 38634, 40807, 21089, 26297, 27570, 32406, 34814, 6924 36109, 38275, 38493, 25885, 28041, 29166, 22478, 22995, 23468, 24615, 6925 24826, 25104, 26143, 26207, 29481, 29689, 30427, [30465, 63853], 31596, 6926 32854, 32882, 33125, 35488, 37266, 19990, 21218, 27506, 27927, 31237, 6927 31545, 32048, 36016, 21484, 22063, 22609, 23477, [12073, 23567], 23569, 6928 24034, 25152, 25475, 25620, 26157, 26803, 27836, 28040, 28335, 28703, 6929 28836, 29138, 29990, 30095, 30094, 30233, 31505, 31712, 31787, 32032, 6930 32057, 34092, 34157, 34311, 35380, 36877, 36961, 37045, 37559, 38902, 6931 39479, 20439, 23660, 26463, 28049, 31903, 32396, 35606, 36118, 36895, 6932 23403, 24061, 25613, 33984, 36956, 39137, [29575, 63841, 63963], 23435, 6933 24730, 26494, 28126, 35359, 35494, 36865, 38924, 21047, 28753, 30862, 6934 37782, 34928, 37335, 20462, 21463, 22013, 22234, 22402, 22781, 23234, 6935 23432, 23723, 23744, 24101, 24833, 25101, [12095, 25163], 25480, 25628, 6936 25910, [25976, 63849], 27193, 27530, [12116, 27700], 27929, 28465, 29159, 6937 29417, 29560, 29703, 29874, 30246, 30561, 31168, 31319, 31466, 31929, 6938 32143, 32172, 32353, 32670, 33065, 33585, 33936, 34010, 34282, 34966, 6939 35504, 35728, 36664, 36930, 36995, 37228, 37526, 37561, 38539, 6940 {f: 2, c: 38567}, 38614, 38656, 38920, [12216, 39318], 39635, 39706, 21460, 6941 22654, 22809, 23408, 23487, 28113, 28506, 29087, 29729, 29881, 32901, 6942 33789, 24033, 24455, 24490, 24642, 26092, 26642, 26991, 27219, 27529, 6943 27957, 28147, 29667, 30462, 30636, 31565, 32020, 33059, 33308, 33600, 6944 34036, 34147, 35426, 35524, 37255, 37662, 38918, 39348, 25100, 34899, 6945 36848, 37477, 23815, 23847, 23913, 29791, 33181, 34664, 28629, 6946 [25342, 63859], 32722, 35126, 35186, 19998, 20056, 20711, 21213, 21319, 6947 25215, 26119, 32361, 34821, 38494, 20365, 21273, 22070, 22987, 23204, 6948 [12075, 23608], 23630, 23629, 24066, 24337, 24643, 26045, 26159, 26178, 6949 26558, 26612, 29468, [12142, 30690], [12144, 31034], 32709, 33940, 33997, 6950 35222, 35430, 35433, 35553, [12183, 35925], 35962, 22516, 23508, 24335, 6951 24687, 25325, 26893, 27542, 28252, 29060, 31698, 34645, [35672, 63996], 6952 36606, [12215, 39135], 39166, 20280, 20353, 20449, 21627, 23072, 23480, 6953 24892, 26032, 26216, 29180, 30003, 31070, 32051, 33102, [12162, 33251], 6954 33688, 34218, 34254, 34563, 35338, [12189, 36523], [12191, 36763], 36805, 6955 22833, 23460, 23526, 24713, 23529, 23563, [12092, 24515], 27777, 28145, 6956 28683, 29978, 33455, 35574, [20160, 63997], [12055, 21313], 38617, 6957 [12114, 27663], 20126, 20420, 20818, 21854, 23077, 23784, 25105, 6958 [12123, 29273], 33469, 33706, 34558, 34905, 35357, 38463, 38597, 39187, 6959 40201, 40285, 22538, 23731, 23997, 24132, [24801, 63929], 24853, 25569, 6960 [27138, 63764, 63836, 63935], 28197, 37122, 37716, 38990, 39952, 40823, 6961 23433, 23736, 25353, 26191, 26696, 30524, 38593, 38797, 38996, 39839, 6962 26017, 35585, 36555, 38332, 21813, 23721, 24022, 24245, 26263, 30284, 6963 33780, 38343, 22739, 25276, 29390, 40232, 20208, 22830, 24591, 26171, 6964 27523, 31207, 40230, 21395, 21696, 22467, 23830, 24859, 26326, 28079, 6965 30861, 33406, 38552, 38724, 21380, 25212, 25494, 28082, 32266, 33099, 6966 38989, 27387, 32588, 40367, 40474, 20063, 20539, 20918, 22812, 24825, 6967 25590, 26928, 29242, 32822, 37326, 24369, 32004, [33509, 63860], 33903, 6968 33979, 34277, 36493, 20335, 22756, 23363, 24665, 25562, 25880, 25965, 6969 26264, 26954, 27171, 27915, 28673, 29036, 30162, 30221, 31155, 31344, 6970 [12154, 32650], 35140, 35731, 37312, 38525, 39178, 22276, 24481, 26044, 6971 28417, 30208, 31142, 35486, 39341, [12226, 39770], 40812, 20740, 25014, 6972 25233, 27277, 33222, 20547, 22576, 24422, 28937, [12180, 35328], 35578, 6973 23420, 34326, 20474, 20796, 22196, 22852, 25513, 28153, 23978, 26989, 6974 20870, 20104, 20313, 22914, 27487, 27741, 29877, 30998, 33287, 33349, 6975 33593, 36671, 36701, 39192, 20134, 22495, 24441, [26131, 63968], 30123, 6976 32377, 35695, 36870, 39515, 22181, 22567, 23032, 23071, 23476, 24310, 6977 25424, 25403, 26941, 27783, 27839, 28046, 28051, 28149, 28436, 28895, 6978 28982, 29017, 29123, 29141, 30799, 30831, 31605, 32227, 32303, 34893, 6979 36575, 37467, 40182, 24709, 28037, 29105, 38321, 21421, 26579, 28814, 6980 28976, 29744, 33398, 33490, 38331, 39653, 40573, 26308, 29121, 6981 [33865, 63854], 22603, 23992, 24433, 26144, 26254, 27001, 27054, 27704, 6982 27891, 28214, 28481, 28634, 28699, 28719, 29008, 29151, 29552, 29787, 6983 29908, 30408, 31310, 32403, 33521, 35424, 36814, 37704, 38681, 20034, 6984 20522, 21000, 21473, 26355, 27757, 28618, 29450, 30591, 31330, 33454, 6985 34269, 34306, 35028, 35427, 35709, 35947, 37555, 38675, 38928, 20116, 6986 20237, 20425, 20658, 21320, 21566, 21555, 21978, 22626, 22714, 22887, 6987 23067, 23524, 24735, 25034, 25942, 26111, 26212, 26791, 27738, 28595, 6988 28879, 29100, 29522, 31613, 34568, 35492, 39986, 40711, 23627, 27779, 6989 29508, [12127, 29577], 37434, 28331, 29797, 30239, 31337, 32277, 34314, 6990 20800, 22725, 25793, 29934, 29973, 30320, 32705, 37013, 38605, 39252, 6991 28198, [12129, 29926], {f: 2, c: 31401}, 33253, 34521, 34680, 35355, 23113, 6992 23436, 23451, 26785, 26880, 28003, 29609, 29715, 29740, 30871, 32233, 6993 32747, 33048, 33109, 33694, 35916, [38446, 63942], 38929, [12104, 26352], 6994 24448, 26106, 26505, 27754, 29579, 20525, 23043, 27498, 30702, 22806, 6995 23916, 24013, 29477, 30031, 20709, 20985, 22575, 22829, 22934, 23002, 6996 23525, 23970, 25303, 25622, 25747, 25854, 26332, 27208, 29183, 29796, 6997 31368, 31407, 32327, 32350, 32768, 33136, 34799, 35201, 35616, 36953, 6998 36992, 39250, 24958, 27442, 28020, 32287, 35109, 36785, 20433, 20653, 6999 20887, 21191, 22471, 22665, 23481, 24248, 24898, 27029, 28044, 28263, 7000 28342, 29076, 29794, [12132, 29992], 29996, 32883, 33592, 33993, 36362, 7001 37780, 37854, 20110, 20305, 20598, 20778, [12060, 21448], 21451, 21491, 7002 23431, 23507, 23588, 24858, 24962, 26100, [12124, 29275], 29591, 29760, 7003 30402, 31056, 31121, 31161, 32006, [12155, 32701], 33419, 34261, 34398, 7004 36802, 36935, 37109, 37354, 38533, [12204, 38632], 38633, 21206, 24423, 7005 26093, 26161, 26671, 29020, 31286, 37057, 38922, 20113, 27218, 27550, 7006 28560, 29065, 32792, 33464, 34131, 36939, 38549, 38642, 38907, 34074, 7007 39729, 20112, 29066, 38596, 20803, 21407, 21729, 22291, 22290, 22435, 7008 23195, 23236, 23491, 24616, 24895, 25588, 27781, 27961, 28274, 28304, 7009 29232, 29503, 29783, 33489, 34945, 36677, 36960, 38498, 39000, 40219, 7010 [12105, 26376], 36234, 37470, 20301, 20553, 20702, 21361, 22285, 22996, 7011 23041, 23561, 24944, 26256, 28205, 29234, 29771, 32239, 32963, 33806, 7012 33894, 34111, 34655, 34907, 35096, 35586, 36949, [12209, 38859], 39759, 7013 20083, 20369, 20754, 20842, 21807, 21929, 23418, 23461, {f: 2, c: 24188}, 7014 24254, 24736, 24799, {f: 2, c: 24840}, 25540, 25912, 26377, 26580, 26586, 7015 {f: 2, c: 26977}, 27833, 27943, 28216, 28641, {f: 2, c: 29494}, 29788, 7016 30001, 30290, 32173, 33278, 33848, 35029, 35480, 35547, 35565, 36400, 7017 36418, 36938, 36926, 36986, [12195, 37193], 37321, 37742, 22537, 27603, 7018 [12161, 32905], 32946, 20801, 22891, 23609, 28516, 29607, 32996, 36103, 7019 37399, 38287, [12160, 32895], 25102, 28700, 32104, 34701, 22432, 24681, 7020 24903, 27575, 35518, 37504, 38577, [12036, 20057], 21535, 28139, 34093, 7021 38512, [12211, 38899], 39150, 25558, 27875, [12194, 37009], 20957, 25033, 7022 33210, 40441, 20381, 20506, 20736, 23452, 24847, 25087, 25836, 26885, 7023 27589, 30097, 30691, 32681, 33380, 34191, 34811, [12176, 34915], 35516, 7024 35696, 37291, [12038, 20108], 20197, 20234, 22839, 23016, 24050, 24347, 7025 24411, 24609, 29246, 29669, [30064, 63842], 30157, 31227, [12157, 32780], 7026 [12159, 32819], 32900, 33505, 33617, 36029, 36019, 36999, 39156, 39180, 7027 28727, 30410, 32714, 32716, 32764, 35610, [12040, 20154], 20161, 20995, 7028 21360, [21693, 63902], 22240, 23035, 23493, 24341, 24525, 28270, 32106, 7029 33589, 34451, 35469, 38765, 38775, [12032, 19968], 20314, 20350, 22777, 7030 [12103, 26085], 28322, 36920, 37808, 39353, 20219, 22764, 22922, 23001, 7031 24641, 31252, 33615, 36035, [12042, 20837], 21316, 20173, 21097, 23381, 7032 33471, 20180, [21050, 63999], 21672, 22985, 23039, [12070, 23376], 23383, 7033 23388, 24675, 24904, 28363, [28825, 63995], 29038, 29574, 29943, 30133, 7034 30913, 32043, 32773, [12163, 33258], 33576, 34071, 34249, 35566, 36039, 7035 38604, 20316, 21242, 22204, 26027, 26152, 28796, 28856, 29237, 32189, 7036 33421, 37196, 38592, 40306, 23409, 26855, 27544, 28538, 30430, 23697, 7037 26283, 28507, 31668, 31786, 34870, 38620, 19976, 20183, 21280, 22580, 7038 22715, 22767, 22892, 23559, 24115, 24196, 24373, 25484, 26290, 26454, 7039 27167, 27299, 27404, 28479, 29254, 29520, 29835, 31456, 31911, 33144, 7040 33247, 33255, 33674, 33900, 34083, 34196, 34255, 35037, 36115, 37292, 7041 [12199, 38263], 38556, 20877, 21705, 22312, 23472, 25165, 26448, 26685, 7042 26771, 28221, 28371, 28797, 32289, 35009, 36001, 36617, 40779, 40782, 7043 29229, 31631, 35533, 37658, 20295, 20302, 20786, 21632, 22992, 24213, 7044 25269, 26485, 26990, 27159, 27822, 28186, 29401, 29482, 30141, 31672, 7045 32053, 33511, 33785, 33879, 34295, 35419, 36015, 36487, 36889, 37048, 7046 38606, 40799, 21219, 21514, 23265, 23490, 25688, 25973, 28404, 29380, 7047 30340, 31309, 31515, 31821, 32318, 32735, 33659, 35627, 36042, 7048 [12186, 36196], 36321, 36447, 36842, 36857, 36969, 37841, 20291, 20346, 7049 20659, 20840, 20856, 21069, 21098, 22625, 22652, 22880, 23560, 23637, 7050 24283, 24731, 25136, 26643, 27583, 27656, 28593, 29006, 29728, 7051 [12133, 30000], 30008, 30033, 30322, 31564, 31627, 31661, 31686, 32399, 7052 35438, 36670, 36681, 37439, 37523, 37666, 37931, 38651, 39002, 39019, 7053 39198, [20999, 64000], 25130, 25240, 27993, 30308, 31434, 31680, 32118, 7054 21344, 23742, 24215, 28472, 28857, 31896, 38673, 39822, 40670, 25509, 7055 25722, 34678, 19969, 20117, 20141, 20572, 20597, 21576, 22979, 23450, 7056 24128, 24237, 24311, 24449, 24773, 25402, 25919, 25972, 26060, 26230, 7057 26232, 26622, 26984, 27273, 27491, 27712, 28096, 28136, 28191, 28254, 7058 28702, 28833, 29582, 29693, 30010, 30555, 30855, 31118, 31243, 31357, 7059 31934, 32142, 33351, 35330, 35562, 35998, 37165, 37194, 37336, 37478, 7060 37580, 37664, 38662, 38742, 38748, 38914, [12237, 40718], 21046, 21137, 7061 21884, 22564, 24093, 24351, 24716, 25552, 26799, 28639, 31085, 31532, 7062 33229, 34234, 35069, 35576, 36420, 37261, 38500, 38555, 38717, 38988, 7063 [12241, 40778], 20430, 20806, 20939, 21161, 22066, 24340, 24427, 25514, 7064 25805, 26089, 26177, 26362, 26361, 26397, 26781, 26839, 27133, 28437, 7065 28526, 29031, 29157, [12118, 29226], 29866, 30522, 31062, 31066, 31199, 7066 31264, 31381, 31895, 31967, 32068, 32368, 32903, 34299, 34468, 35412, 7067 35519, 36249, 36481, 36896, 36973, 37347, 38459, 38613, [12227, 40165], 7068 26063, 31751, [12188, 36275], 37827, 23384, 23562, 21330, 25305, 29469, 7069 20519, 23447, 24478, 24752, 24939, 26837, 28121, 29742, 31278, 32066, 7070 32156, 32305, 33131, 36394, 36405, 37758, 37912, 20304, 22352, 24038, 7071 24231, 25387, 32618, 20027, 20303, 20367, 20570, 23005, 32964, 21610, 7072 21608, 22014, 22863, 23449, 24030, 24282, 26205, 26417, 26609, 26666, 7073 27880, 27954, 28234, 28557, 28855, 29664, 30087, 31820, 32002, 32044, 7074 32162, [12168, 33311], 34523, 35387, 35461, [12187, 36208], 36490, 36659, 7075 36913, 37198, 37202, 37956, 39376, [12149, 31481], 31909, 20426, 20737, 7076 20934, 22472, 23535, 23803, 26201, 27197, 27994, 28310, 28652, 28940, 7077 30063, 31459, 34850, 36897, 36981, 38603, 39423, 33537, 20013, 20210, 7078 34886, 37325, 21373, 27355, 26987, 27713, 33914, 22686, 24974, 26366, 7079 25327, 28893, 29969, 30151, 32338, 33976, 35657, 36104, 20043, 21482, 7080 21675, 22320, 22336, 24535, 25345, 25351, 25711, [12096, 25903], 26088, 7081 26234, 26525, 26547, [12108, 27490], 27744, 27802, 28460, 30693, 30757, 7082 31049, 31063, 32025, 32930, 33026, [12164, 33267], 33437, 33463, 34584, 7083 35468, 36100, 36286, 36978, 30452, 31257, 31287, 32340, 32887, 21767, 7084 21972, 22645, 25391, 25634, 26185, 26187, 26733, 27035, 27524, 27941, 7085 28337, 29645, 29800, 29857, 30043, 30137, 30433, 30494, 30603, 31206, 7086 32265, 32285, 33275, 34095, 34967, 35386, 36049, 36587, 7087 [12192, 36784, 63857], 36914, 37805, 38499, 38515, 38663, 20356, 21489, 7088 23018, 23241, 24089, 26702, 29894, 30142, 31209, 31378, 33187, 34541, 7089 36074, 36300, 36845, 26015, 26389, 22519, 28503, 32221, 36655, 37878, 7090 38598, 24501, 25074, 28548, 19988, 20376, 20511, 21449, 21983, 23919, 7091 24046, 27425, 27492, 30923, 31642, 36425, [12190, 36554, 63746], 36974, 7092 25417, 25662, 30528, 31364, 37679, 38015, 40810, 25776, 28591, 29158, 7093 29864, 29914, 31428, 31762, 32386, 31922, 32408, 35738, 36106, 38013, 7094 39184, 39244, 21049, 23519, 25830, 26413, 32046, 20717, [21443, 63851], 7095 22649, {f: 2, c: 24920}, 25082, 26028, 31449, 35730, 35734, 20489, 20513, 7096 21109, 21809, 23100, 24288, 24432, 24884, 25950, 26124, 26166, 26274, 7097 27085, 28356, 28466, 29462, 30241, 31379, 33081, 33369, 33750, 33980, 7098 20661, 22512, 23488, 23528, 24425, 25505, 30758, 32181, 33756, 34081, 7099 37319, 37365, 20874, 26613, 31574, 36012, 20932, 22971, 24765, 34389, 7100 20508, 21076, 23610, 24957, 25114, [25299, 64002], 25842, 26021, 28364, 7101 30240, 33034, 36448, 38495, 38587, 20191, 21315, 21912, 22825, 24029, 7102 25797, 27849, 28154, 29588, 31359, [12167, 33307], 34214, 36068, 36368, 7103 36983, 37351, 38369, 38433, 38854, 20984, 21746, 21894, 24505, 25764, 7104 28552, 32180, 36639, 36685, 37941, 20681, 23574, 27838, 28155, 29979, 7105 30651, 31805, 31844, 35449, 35522, 22558, 22974, 24086, 25463, 29266, 7106 30090, 30571, 35548, 36028, 36626, 24307, 26228, 28152, 32893, 33729, 7107 35531, [12205, 38737], 39894, 21059, 26367, 28053, 28399, 32224, 35558, 7108 36910, 36958, 39636, 21021, 21119, 21736, 24980, 25220, 25307, 26786, 7109 26898, 26970, 27189, 28818, 28966, 30813, 30977, 30990, 31186, 31245, 7110 32918, [12171, 33400], 33493, 33609, 34121, 35970, 36229, 37218, 37259, 7111 37294, 20419, 22225, 29165, 30679, 34560, 35320, [12072, 23544], 24534, 7112 26449, 37032, 21474, 22618, 23541, 24740, 24961, 25696, 32317, 32880, 7113 34085, 37507, 25774, 20652, 23828, 26368, 22684, 25277, 25512, 26894, 7114 27000, 27166, 28267, 30394, 31179, 33467, 33833, 35535, 36264, 36861, 7115 37138, 37195, 37276, 37648, 37656, 37786, 38619, 39478, 39949, 19985, 7116 30044, 31069, 31482, 31569, 31689, 32302, 33988, 36441, 36468, 36600, 7117 36880, 26149, 26943, 29763, 20986, 26414, 40668, 20805, 24544, 27798, 7118 34802, 34909, 34935, 24756, 33205, 33795, 36101, 21462, 21561, 22068, 7119 23094, 23601, 28810, 32736, 32858, 33030, 33261, 36259, 37257, 39519, 7120 40434, 20596, 20164, 21408, 24827, 28204, 23652, 20360, 20516, 21988, 7121 23769, 24159, 24677, 26772, 27835, 28100, 29118, 30164, 30196, 30305, 7122 31258, 31305, 32199, 32251, 32622, 33268, 34473, 36636, 38601, 39347, 7123 [12242, 40786], 21063, 21189, 39149, 35242, 19971, 26578, 28422, 20405, 7124 23522, 26517, [27784, 63858], 28024, 29723, 30759, 37341, 37756, 34756, 7125 31204, 31281, 24555, 20182, 21668, 21822, 22702, 22949, 24816, 25171, 7126 25302, 26422, 26965, 33333, 38464, 39345, 39389, 20524, 21331, 21828, 7127 22396, 25176, 25826, 26219, 26589, 28609, 28655, 29730, 29752, 35351, 7128 37944, 21585, 22022, 22374, 24392, 24986, 27470, 28760, 28845, 32187, 7129 35477, 22890, 33067, 25506, 30472, 32829, 36010, 22612, 25645, 27067, 7130 23445, 24081, 28271, 34153, 20812, 21488, 22826, 24608, 24907, 27526, 7131 27760, 27888, 31518, 32974, 33492, 36294, 37040, 39089, 25799, 28580, 7132 25745, 25860, 20814, 21520, [12063, 22303], 35342, 24927, 26742, 30171, 7133 31570, 32113, 36890, 22534, 27084, 33151, 35114, 36864, 38969, 20600, 7134 22871, 22956, 25237, 36879, 39722, 24925, 29305, 38358, 22369, 23110, 7135 24052, 25226, 25773, 25850, 26487, 27874, 27966, 29228, 29750, 30772, 7136 32631, 33453, 36315, 38935, 21028, 22338, 26495, 29256, 29923, 36009, 7137 36774, 37393, 38442, [12043, 20843], 21485, 25420, 20329, 21764, 24726, 7138 25943, 27803, 28031, 29260, 29437, 31255, 35207, [12185, 35997], 24429, 7139 28558, 28921, 33192, 24846, [20415, 63845], 20559, 25153, [12122, 29255], 7140 31687, 32232, 32745, 36941, 38829, 39449, 36022, 22378, 24179, 26544, 7141 33805, 35413, 21536, 23318, 24163, 24290, 24330, 25987, 32954, 34109, 7142 38281, 38491, 20296, 21253, 21261, 21263, 21638, 21754, 22275, 24067, 7143 24598, 25243, 25265, 25429, 27873, 28006, 30129, 30770, 32990, 33071, 7144 33502, 33889, 33970, 34957, 35090, 36875, 37610, 39165, 39825, 24133, 7145 [26292, 64006], 26333, 28689, 29190, 20469, 21117, 24426, 24915, 26451, 7146 27161, 28418, 29922, 31080, 34920, 35961, 39111, 39108, 39491, 21697, 7147 31263, 26963, 35575, 35914, [12213, 39080], 39342, 24444, 25259, 30130, 7148 [12138, 30382], 34987, 36991, 38466, 21305, 24380, 24517, [27852, 63848], 7149 29644, 30050, [12134, 30091], 31558, 33534, 39325, 20047, 36924, 19979, 7150 20309, 21414, 22799, 24264, 26160, 27827, 29781, 33655, 34662, 36032, 7151 36944, 38686, 39957, 22737, 23416, 34384, 35604, 40372, 23506, 24680, 7152 24717, 26097, 27735, 28450, 28579, 28698, 32597, 32752, {f: 2, c: 38289}, 7153 38480, 38867, 21106, 36676, 20989, 21547, 21688, 21859, 21898, 27323, 7154 28085, 32216, 33382, 37532, 38519, 40569, 21512, 21704, 30418, 34532, 7155 38308, 38356, 38492, 20130, 20233, 23022, 23270, 24055, 24658, 25239, 7156 26477, 26689, 27782, 28207, 32568, 32923, 33322, 38917, 20133, 20565, 7157 21683, 22419, 22874, 23401, 23475, 25032, 26999, 28023, 28707, 34809, 7158 35299, 35442, 35559, 36994, 39405, 39608, 21182, 26680, 20502, 24184, 7159 26447, 33607, [12175, 34892, 64008], 20139, 21521, 22190, 29670, 37141, 7160 38911, 39177, 39255, [12217, 39321], 22099, 22687, 34395, 35377, 25010, 7161 27382, 29563, 36562, 27463, 38570, 39511, 22869, 29184, 36203, 7162 [12208, 38761], 20436, 23796, 24358, 25080, 26203, 27883, 28843, 7163 [12126, 29572], 29625, 29694, 30505, 30541, 32067, 32098, 32291, 33335, 7164 34898, 36066, 37449, 39023, 23377, [12147, 31348], [12174, 34880], 7165 [12212, 38913], 23244, 20448, 21332, 22846, 23805, 25406, 28025, 29433, 7166 33029, 33031, 33698, 37583, 38960, 20136, 20804, 21009, 22411, 24418, 7167 27842, 28366, 28677, 28752, 28847, 29074, 29673, [29801, 63918], 33610, 7168 34722, 34913, 36872, 37026, 37795, 39336, 20846, 24407, 24800, 24935, 7169 26291, 34137, 36426, 37295, 38795, 20046, 20114, 21628, 22741, 22778, 7170 22909, 23733, 24359, [12094, 25142], 25160, 26122, 26215, 27627, 28009, 7171 28111, 28246, 28408, 28564, 28640, 28649, 28765, 29392, 29733, 29786, 7172 29920, 30355, 31068, 31946, 32286, 32993, 33446, 33899, 33983, 34382, 7173 34399, 34676, 35703, 35946, 37804, 38912, 39013, 24785, 25110, 37239, 7174 23130, 26127, 28151, 28222, 29759, 39746, 24573, 24794, 31503, 21700, 7175 24344, 27742, 27859, 27946, 28888, 32005, 34425, 35340, 40251, 21270, 7176 21644, 23301, 27194, [12117, 28779], 30069, 31117, [12146, 31166], 33457, 7177 33775, 35441, 35649, 36008, 38772, 25844, 25899, {f: 2, c: 30906}, 31339, 7178 20024, 21914, 22864, 23462, 24187, 24739, 25563, 27489, 26213, 26707, 7179 28185, 29029, 29872, 32008, 36996, 39529, 39973, 27963, [28369, 63748], 7180 29502, 35905, 38346, 20976, 24140, 24488, 24653, 24822, 24880, 24908, 7181 {f: 2, c: 26179}, 27045, 27841, 28255, 28361, 28514, 29004, 29852, 30343, 7182 31681, 31783, 33618, 34647, 36945, 38541, [12232, 40643], 21295, 22238, 7183 24315, 24458, 24674, 24724, 25079, 26214, 26371, 27292, 28142, 28590, 7184 28784, 29546, 32362, 33214, 33588, 34516, 35496, 36036, 21123, 29554, 7185 23446, 27243, 37892, 21742, 22150, 23389, 25928, 25989, 26313, 26783, 7186 28045, 28102, [12120, 29243], 32948, 37237, 39501, 20399, 20505, 21402, 7187 21518, 21564, 21897, 21957, 24127, 24460, 26429, 29030, 29661, 36869, 7188 21211, 21235, 22628, 22734, 28932, 29071, 29179, 34224, 35347, 7189 [26248, 63941], 34216, 21927, 26244, 29002, 33841, 21321, 21913, 27585, 7190 24409, 24509, 25582, 26249, 28999, 35569, 36637, 40638, 20241, 25658, 7191 28875, 30054, 34407, 24676, 35662, 40440, 20807, 20982, 21256, 27958, 7192 33016, [12234, 40657], 26133, 27427, 28824, 30165, 21507, 23673, 32007, 7193 35350, [12107, 27424], 27453, 27462, 21560, 24688, 27965, 32725, 33288, 7194 20694, 20958, 21916, 22123, 22221, 23020, 23305, 24076, 24985, 24984, 7195 25137, 26206, 26342, 29081, {f: 2, c: 29113}, 29351, 31143, 31232, 32690, 7196 35440, {s: 163}, {f: 4, c: 12310}, {s: 14}, 8223, 8219, {f: 2, c: 8314}, 7197 {s: 7}, 8316, 0, {f: 2, c: 8317}, {s: 23}, 700, {s: 44}, 8942, 8759, 7198 {s: 20}, {f: 10, c: 10122}, {s: 36}, {f: 26, c: 9398}, {s: 61}, 7199 {f: 2, c: 8826}, {f: 2, c: 8910}, {f: 2, c: 8832}, {f: 4, c: 8816}, 0, 7200 8842, 0, 8843, {f: 2, c: 8822}, 8825, {f: 2, c: 8922}, {s: 5}, 8773, 8771, 7201 8776, 0, 8868, {s: 78}, 8244, {s: 11}, 9839, {s: 4}, 8258, {s: 4}, 10045, 7202 0, 0, 8226, {s: 4}, {f: 2, c: 8249}, {s: 16}, 10010, 10006, 0, 9711, 7203 {s: 3}, 10070, 0, 9676, {s: 24}, 9775, {s: 6}, 12320, 0, {f: 10, c: 10102}, 7204 {s: 17}, 12306, 12342, {s: 13}, 8710, 0, 8735, 0, {f: 2, c: 8741}, 0, 8787, 7205 8785, {f: 2, c: 8806}, 8723, {f: 3, c: 8853}, 0, 8980, 0, 0, 8802, 0, 9649, 7206 0, 8738, 8784, 0, 0, 8867, 0, 0, {f: 2, c: 8814}, 8837, 8836, 8713, 8716, 7207 {f: 2, c: 8891}, 8794, 8966, {s: 6}, 12958, 0, 8252, {s: 11}, 9702, {s: 3}, 7208 9663, 9653, 9657, 9667, {s: 4}, 9674, 12849, 12857, 13259, {f: 5, c: 9327}, 7209 {s: 18}, 8656, 8655, 8653, {s: 37}, 8657, 8659, {s: 8}, 8626, 8625, 0, 7210 8628, 8624, 8627, {s: 14}, 8636, 8640, {s: 10}, {f: 2, c: 8644}, {s: 144}, 7211 {f: 5, c: 9347}, {s: 33}, 12948, {s: 15}, 12965, {s: 93}, 8672, 8674, 8673, 7212 8675, {s: 4}, 8678, 8680, 8679, 8681, {s: 20}, 9757, 9759, {s: 76}, 12944, 7213 {f: 6, c: 12938}, {s: 15}, {f: 2, c: 12318}, 8246, 0, 8245, {s: 3}, 12540, 7214 0, 0, {f: 2, c: 44034}, {f: 2, c: 44037}, {f: 5, c: 44043}, 44056, 7215 {f: 2, c: 44062}, {f: 3, c: 44065}, {f: 7, c: 44069}, 44078, 7216 {f: 6, c: 44082}, {f: 2, c: 44090}, {f: 3, c: 44093}, {f: 10, c: 44097}, 7217 44108, {f: 6, c: 44110}, {f: 3, c: 44117}, {f: 3, c: 44121}, 7218 {f: 19, c: 44125}, {f: 2, c: 44146}, {f: 2, c: 44149}, 44153, 7219 {f: 5, c: 44155}, 44162, {f: 2, c: 44167}, {f: 3, c: 44173}, 7220 {f: 3, c: 44177}, {f: 7, c: 44181}, 44190, {f: 6, c: 44194}, 44203, 7221 {f: 2, c: 44205}, {f: 7, c: 44209}, 44218, {f: 3, c: 44222}, 7222 {f: 2, c: 44226}, {f: 3, c: 44229}, {f: 3, c: 44233}, {f: 8, c: 44237}, 7223 44246, {f: 8, c: 44248}, {f: 2, c: 44258}, {f: 2, c: 44261}, 44265, 44267, 7224 {f: 2, c: 44269}, 44274, 44276, {f: 5, c: 44279}, {f: 2, c: 44286}, 7225 {f: 3, c: 44289}, 44293, {f: 5, c: 44295}, 44302, 44304, {f: 6, c: 44306}, 7226 {f: 3, c: 44313}, {f: 3, c: 44317}, {f: 8, c: 44321}, {f: 2, c: 44330}, 7227 {f: 6, c: 44334}, {f: 2, c: 44342}, {f: 3, c: 44345}, {f: 7, c: 44349}, 7228 44358, 44360, {f: 6, c: 44362}, {f: 3, c: 44369}, {f: 3, c: 44373}, 7229 {f: 8, c: 44377}, 44386, {f: 8, c: 44388}, {f: 2, c: 44398}, 7230 {f: 2, c: 44401}, {f: 4, c: 44407}, 44414, 44416, {f: 5, c: 44419}, 7231 {f: 2, c: 44426}, {f: 3, c: 44429}, {f: 11, c: 44433}, {f: 6, c: 44446}, 7232 {f: 18, c: 44453}, {f: 8, c: 44472}, {f: 2, c: 44482}, {f: 3, c: 44485}, 7233 {f: 7, c: 44489}, 44498, {f: 8, c: 44500}, {f: 3, c: 44509}, 7234 {f: 3, c: 44513}, {f: 19, c: 44517}, {f: 2, c: 44538}, {f: 2, c: 44541}, 7235 {f: 6, c: 44546}, 44554, 44556, {f: 6, c: 44558}, {f: 27, c: 44565}, 7236 {f: 2, c: 44594}, {f: 2, c: 44597}, 44601, {f: 5, c: 44603}, 44610, 44612, 7237 {f: 3, c: 44615}, 44619, 44623, {f: 3, c: 44625}, 44629, {f: 5, c: 44631}, 7238 44638, {f: 3, c: 44642}, {f: 2, c: 44646}, {f: 2, c: 44650}, 7239 {f: 3, c: 44653}, {f: 7, c: 44657}, 44666, {f: 6, c: 44670}, 7240 {f: 6, c: 44678}, {f: 47, c: 44685}, 44735, {f: 3, c: 44737}, 7241 {f: 7, c: 44741}, 44750, {f: 6, c: 44754}, {f: 2, c: 44762}, 7242 {f: 11, c: 44765}, {f: 2, c: 44777}, 44780, {f: 6, c: 44782}, 7243 {f: 3, c: 44789}, {f: 3, c: 44793}, {f: 10, c: 44797}, {f: 4, c: 44809}, 7244 {f: 2, c: 44814}, {f: 27, c: 44817}, {f: 2, c: 44846}, 44849, 44851, 7245 {f: 7, c: 44853}, 44862, 44864, {f: 4, c: 44868}, {f: 6, c: 44874}, 7246 {f: 11, c: 44881}, {f: 6, c: 44894}, {f: 19, c: 44902}, {f: 6, c: 44922}, 7247 {f: 3, c: 44929}, {f: 3, c: 44933}, {f: 7, c: 44937}, {f: 3, c: 44946}, 7248 {f: 6, c: 44950}, {f: 27, c: 44957}, {f: 2, c: 44986}, {f: 3, c: 44989}, 7249 {f: 6, c: 44993}, 45002, 45004, {f: 5, c: 45007}, {f: 7, c: 45013}, 7250 {f: 11, c: 45021}, {f: 6, c: 45034}, {f: 2, c: 45042}, {f: 3, c: 45045}, 7251 {f: 7, c: 45049}, {f: 2, c: 45058}, {f: 7, c: 45061}, {f: 3, c: 45069}, 7252 {f: 3, c: 45073}, {f: 7, c: 45077}, {f: 10, c: 45086}, {f: 27, c: 45097}, 7253 {f: 2, c: 45126}, 45129, 45131, 45133, {f: 4, c: 45135}, 45142, 45144, 7254 {f: 3, c: 45146}, {f: 30, c: 45150}, {f: 2, c: 45182}, {f: 3, c: 45185}, 7255 {f: 7, c: 45189}, 45198, 45200, {f: 6, c: 45202}, 45211, {f: 2, c: 45213}, 7256 {f: 5, c: 45219}, 45226, 45232, 45234, {f: 2, c: 45238}, {f: 3, c: 45241}, 7257 {f: 7, c: 45245}, 45254, {f: 6, c: 45258}, {f: 2, c: 45266}, 7258 {f: 3, c: 45269}, {f: 7, c: 45273}, {f: 4, c: 45281}, {f: 34, c: 45286}, 7259 45322, {f: 3, c: 45325}, 45329, {f: 4, c: 45332}, 45338, {f: 5, c: 45342}, 7260 {f: 2, c: 45350}, {f: 3, c: 45353}, {f: 7, c: 45357}, 45366, 7261 {f: 6, c: 45370}, {f: 2, c: 45378}, {f: 3, c: 45381}, {f: 7, c: 45385}, 7262 {f: 2, c: 45394}, {f: 2, c: 45398}, {f: 3, c: 45401}, {f: 3, c: 45405}, 7263 {f: 23, c: 45409}, {f: 2, c: 45434}, {f: 3, c: 45437}, 45441, 7264 {f: 5, c: 45443}, 45450, 45452, {f: 4, c: 45454}, {f: 3, c: 45461}, 7265 {f: 3, c: 45465}, {f: 11, c: 45469}, {f: 35, c: 45481}, {f: 3, c: 45517}, 7266 {f: 3, c: 45521}, {f: 7, c: 45525}, 45534, {f: 8, c: 45536}, 7267 {f: 2, c: 45546}, {f: 3, c: 45549}, {f: 8, c: 45553}, 45562, 45564, 7268 {f: 6, c: 45566}, {f: 2, c: 45574}, {f: 2, c: 45577}, {f: 7, c: 45581}, 7269 45590, 45592, {f: 6, c: 45594}, {f: 19, c: 45601}, {f: 7, c: 45621}, 7270 {f: 27, c: 45629}, {f: 3, c: 45657}, {f: 3, c: 45661}, {f: 7, c: 45665}, 7271 {f: 10, c: 45674}, {f: 6, c: 45686}, {f: 7, c: 45693}, {f: 3, c: 45702}, 7272 {f: 6, c: 45706}, {f: 2, c: 45714}, {f: 3, c: 45717}, {f: 5, c: 45723}, 7273 45730, 45732, {f: 3, c: 45735}, 45739, {f: 3, c: 45741}, {f: 3, c: 45745}, 7274 {f: 19, c: 45749}, {f: 2, c: 45770}, {f: 3, c: 45773}, 45777, 7275 {f: 5, c: 45779}, 45786, 45788, {f: 4, c: 45790}, 45795, 45799, 7276 {f: 2, c: 45801}, {f: 3, c: 45808}, 45814, {f: 3, c: 45820}, 7277 {f: 2, c: 45826}, {f: 3, c: 45829}, {f: 7, c: 45833}, 45842, 7278 {f: 6, c: 45846}, {f: 55, c: 45853}, 45911, {f: 2, c: 45913}, 45917, 7279 {f: 4, c: 45920}, 45926, 45928, 45930, {f: 2, c: 45932}, 45935, 7280 {f: 2, c: 45938}, {f: 3, c: 45941}, {f: 7, c: 45945}, 45954, 7281 {f: 6, c: 45958}, {f: 3, c: 45965}, {f: 3, c: 45969}, {f: 11, c: 45973}, 7282 {f: 6, c: 45986}, {f: 3, c: 45993}, {f: 23, c: 45997}, {f: 2, c: 46022}, 7283 {f: 2, c: 46025}, 46029, 46031, {f: 3, c: 46033}, 46038, 46040, 46042, 7284 46044, {f: 2, c: 46046}, {f: 3, c: 46049}, {f: 3, c: 46053}, 7285 {f: 19, c: 46057}, {f: 19, c: 46077}, {f: 7, c: 46097}, {f: 3, c: 46105}, 7286 {f: 3, c: 46109}, {f: 7, c: 46113}, 46122, {f: 8, c: 46124}, 7287 {f: 27, c: 46133}, {f: 2, c: 46162}, {f: 3, c: 46165}, {f: 7, c: 46169}, 7288 46178, 46180, {f: 6, c: 46182}, {f: 19, c: 46189}, {f: 7, c: 46209}, 7289 {f: 20, c: 46217}, {f: 6, c: 46238}, {f: 3, c: 46245}, {f: 3, c: 46249}, 7290 {f: 8, c: 46253}, 46262, 46264, {f: 6, c: 46266}, {f: 3, c: 46273}, 7291 {f: 3, c: 46277}, {f: 7, c: 46281}, {f: 4, c: 46289}, {f: 6, c: 46294}, 7292 {f: 2, c: 46302}, {f: 2, c: 46305}, 46309, {f: 5, c: 46311}, 46318, 46320, 7293 {f: 6, c: 46322}, {f: 27, c: 46329}, {f: 2, c: 46358}, {f: 2, c: 46361}, 7294 {f: 7, c: 46365}, 46374, {f: 5, c: 46379}, {f: 2, c: 46386}, 7295 {f: 3, c: 46389}, {f: 7, c: 46393}, 46402, {f: 5, c: 46406}, 7296 {f: 2, c: 46414}, {f: 3, c: 46417}, {f: 7, c: 46421}, 46430, 7297 {f: 62, c: 46434}, {f: 2, c: 46498}, {f: 3, c: 46501}, 46505, 7298 {f: 4, c: 46508}, 46514, {f: 5, c: 46518}, {f: 2, c: 46526}, 7299 {f: 3, c: 46529}, {f: 7, c: 46533}, 46542, {f: 6, c: 46546}, 7300 {f: 19, c: 46553}, {f: 35, c: 46573}, {f: 2, c: 46610}, {f: 3, c: 46613}, 7301 {f: 12, c: 46617}, {f: 6, c: 46630}, {f: 7, c: 46637}, {f: 19, c: 46645}, 7302 {f: 27, c: 46665}, {f: 3, c: 46693}, {f: 51, c: 46697}, {f: 2, c: 46750}, 7303 {f: 3, c: 46753}, {f: 6, c: 46757}, {f: 4, c: 46765}, {f: 34, c: 46770}, 7304 {f: 27, c: 46805}, {f: 3, c: 46833}, {f: 3, c: 46837}, {f: 7, c: 46841}, 7305 {f: 3, c: 46850}, {f: 34, c: 46854}, {f: 2, c: 46890}, {f: 2, c: 46893}, 7306 {f: 7, c: 46897}, 46906, {f: 8, c: 46908}, {f: 3, c: 46917}, 7307 {f: 3, c: 46921}, {f: 7, c: 46925}, {f: 10, c: 46934}, {f: 3, c: 46945}, 7308 {f: 3, c: 46949}, {f: 7, c: 46953}, 46962, 46964, {f: 6, c: 46966}, 7309 {f: 2, c: 46974}, {f: 3, c: 46977}, {f: 7, c: 46981}, 46990, 7310 {f: 3, c: 46995}, {f: 2, c: 47002}, {f: 3, c: 47005}, {f: 7, c: 47009}, 7311 47018, {f: 6, c: 47022}, {f: 2, c: 47030}, {f: 14, c: 47033}, 47048, 7312 {f: 34, c: 47050}, {f: 2, c: 47086}, {f: 3, c: 47089}, {f: 7, c: 47093}, 7313 47102, {f: 5, c: 47106}, {f: 2, c: 47114}, {f: 3, c: 47117}, 7314 {f: 7, c: 47121}, 47130, 47132, {f: 6, c: 47134}, {f: 2, c: 47142}, 7315 {f: 3, c: 47145}, {f: 7, c: 47149}, 47158, {f: 6, c: 47162}, 7316 {f: 3, c: 47169}, {f: 12, c: 47173}, 47186, {f: 8, c: 47188}, 7317 {f: 2, c: 47198}, {f: 3, c: 47201}, {f: 7, c: 47205}, 47214, 47216, 7318 {f: 6, c: 47218}, {f: 3, c: 47225}, {f: 16, c: 47229}, {f: 26, c: 47246}, 7319 {f: 7, c: 47273}, {f: 3, c: 47281}, {f: 3, c: 47285}, {f: 7, c: 47289}, 7320 47298, 47300, {f: 6, c: 47302}, {f: 3, c: 47309}, {f: 3, c: 47313}, 7321 {f: 8, c: 47317}, 47326, 47328, {f: 6, c: 47330}, {f: 2, c: 47338}, 7322 {f: 3, c: 47341}, {f: 7, c: 47345}, 47354, 47356, {f: 6, c: 47358}, 7323 {f: 19, c: 47365}, {f: 7, c: 47385}, {f: 27, c: 47393}, {f: 2, c: 47422}, 7324 {f: 3, c: 47425}, {f: 7, c: 47429}, {f: 2, c: 47437}, 47440, 7325 {f: 6, c: 47442}, {f: 2, c: 47450}, {f: 3, c: 47453}, {f: 7, c: 47457}, 7326 47466, 47468, {f: 6, c: 47470}, {f: 2, c: 47478}, {f: 3, c: 47481}, 7327 {f: 7, c: 47485}, 47494, 47496, {f: 2, c: 47499}, {f: 29, c: 47503}, 7328 {f: 2, c: 47534}, {f: 3, c: 47537}, {f: 7, c: 47541}, 47550, 47552, 7329 {f: 6, c: 47554}, {f: 2, c: 47562}, 47565, {f: 5, c: 47571}, 47578, 47580, 7330 {f: 2, c: 47583}, 47586, {f: 2, c: 47590}, {f: 3, c: 47593}, 7331 {f: 7, c: 47597}, 47606, {f: 5, c: 47611}, {f: 6, c: 47618}, 7332 {f: 12, c: 47625}, {f: 34, c: 47638}, {f: 2, c: 47674}, {f: 3, c: 47677}, 7333 47681, {f: 5, c: 47683}, 47690, 47692, {f: 4, c: 47695}, {f: 2, c: 47702}, 7334 {f: 3, c: 47705}, {f: 7, c: 47709}, 47718, {f: 6, c: 47722}, 7335 {f: 2, c: 47730}, {f: 3, c: 47733}, {f: 10, c: 47737}, 47750, 7336 {f: 4, c: 47752}, {f: 27, c: 47757}, 47786, {f: 3, c: 47789}, 47793, 7337 {f: 5, c: 47795}, 47802, 47804, {f: 6, c: 47806}, {f: 3, c: 47813}, 7338 {f: 15, c: 47817}, {f: 34, c: 47834}, {f: 3, c: 47869}, {f: 3, c: 47873}, 7339 {f: 8, c: 47877}, 47886, 47888, {f: 6, c: 47890}, {f: 3, c: 47897}, 7340 {f: 3, c: 47901}, {f: 8, c: 47905}, 47914, {f: 8, c: 47916}, 47927, 7341 {f: 2, c: 47929}, {f: 5, c: 47935}, 47942, 47944, {f: 3, c: 47946}, 47950, 7342 {f: 3, c: 47953}, {f: 3, c: 47957}, {f: 8, c: 47961}, 47970, 7343 {f: 8, c: 47972}, {f: 27, c: 47981}, {f: 3, c: 48009}, {f: 3, c: 48013}, 7344 {f: 19, c: 48017}, {f: 3, c: 48037}, {f: 3, c: 48041}, {f: 7, c: 48045}, 7345 {f: 2, c: 48053}, {f: 8, c: 48056}, {f: 3, c: 48065}, {f: 3, c: 48069}, 7346 {f: 7, c: 48073}, {f: 2, c: 48081}, {f: 36, c: 48084}, {f: 2, c: 48122}, 7347 {f: 2, c: 48125}, 48129, {f: 5, c: 48131}, 48138, 48142, 48144, 7348 {f: 2, c: 48146}, {f: 2, c: 48153}, {f: 4, c: 48160}, 48166, 48168, 7349 {f: 3, c: 48170}, {f: 2, c: 48174}, {f: 2, c: 48178}, {f: 3, c: 48181}, 7350 {f: 7, c: 48185}, 48194, {f: 3, c: 48198}, {f: 2, c: 48202}, 7351 {f: 2, c: 48206}, {f: 12, c: 48209}, {f: 38, c: 48222}, {f: 2, c: 48262}, 7352 {f: 2, c: 48265}, 48269, {f: 5, c: 48271}, 48278, 48280, {f: 5, c: 48283}, 7353 {f: 2, c: 48290}, {f: 2, c: 48293}, {f: 7, c: 48297}, 48306, 7354 {f: 6, c: 48310}, {f: 2, c: 48318}, {f: 3, c: 48321}, {f: 8, c: 48325}, 7355 48334, {f: 3, c: 48338}, {f: 2, c: 48342}, {f: 3, c: 48345}, 7356 {f: 23, c: 48349}, 48375, {f: 3, c: 48377}, {f: 7, c: 48381}, 48390, 48392, 7357 {f: 6, c: 48394}, {f: 3, c: 48401}, {f: 15, c: 48405}, {f: 7, c: 48421}, 7358 {f: 19, c: 48429}, {f: 7, c: 48449}, {f: 2, c: 48458}, {f: 3, c: 48461}, 7359 {f: 7, c: 48465}, {f: 10, c: 48474}, {f: 3, c: 48485}, {f: 23, c: 48489}, 7360 {f: 2, c: 48514}, {f: 2, c: 48517}, {f: 5, c: 48523}, 48530, 48532, 7361 {f: 3, c: 48534}, 48539, {f: 7, c: 48541}, {f: 11, c: 48549}, 7362 {f: 7, c: 48561}, {f: 27, c: 48569}, {f: 2, c: 48598}, {f: 3, c: 48601}, 7363 {f: 12, c: 48605}, {f: 6, c: 48618}, {f: 3, c: 48625}, {f: 3, c: 48629}, 7364 {f: 7, c: 48633}, {f: 2, c: 48641}, 48644, {f: 6, c: 48646}, 7365 {f: 2, c: 48654}, {f: 3, c: 48657}, {f: 7, c: 48661}, 48670, 7366 {f: 36, c: 48672}, {f: 2, c: 48710}, {f: 3, c: 48713}, 48717, 7367 {f: 5, c: 48719}, 48726, 48728, {f: 4, c: 48732}, {f: 2, c: 48738}, 7368 {f: 3, c: 48741}, 48745, {f: 5, c: 48747}, 48754, {f: 5, c: 48758}, 7369 {f: 2, c: 48766}, {f: 3, c: 48769}, {f: 7, c: 48773}, 48782, 7370 {f: 6, c: 48786}, {f: 14, c: 48794}, {f: 39, c: 48809}, {f: 2, c: 48850}, 7371 {f: 2, c: 48853}, {f: 7, c: 48857}, {f: 2, c: 48865}, {f: 6, c: 48870}, 7372 {f: 20, c: 48877}, {f: 6, c: 48898}, {f: 14, c: 48906}, 48922, 7373 {f: 34, c: 48926}, {f: 2, c: 48962}, {f: 3, c: 48965}, {f: 7, c: 48969}, 7374 {f: 3, c: 48978}, {f: 62, c: 48982}, {f: 27, c: 49045}, {f: 20, c: 49073}, 7375 {f: 6, c: 49094}, {f: 2, c: 49102}, {f: 3, c: 49105}, {f: 7, c: 49109}, 7376 {f: 2, c: 49117}, 49120, {f: 90, c: 49122}, {f: 20, c: 49213}, 7377 {f: 6, c: 49234}, {f: 3, c: 49241}, {f: 3, c: 49245}, {f: 7, c: 49249}, 7378 {f: 38, c: 49258}, {f: 2, c: 49298}, {f: 3, c: 49301}, {f: 7, c: 49305}, 7379 49314, 49316, {f: 6, c: 49318}, 49326, {f: 2, c: 49329}, {f: 5, c: 49335}, 7380 49342, {f: 3, c: 49346}, {f: 2, c: 49350}, {f: 2, c: 49354}, 7381 {f: 3, c: 49357}, {f: 7, c: 49361}, 49370, {f: 6, c: 49374}, 7382 {f: 2, c: 49382}, {f: 3, c: 49385}, {f: 7, c: 49389}, 49398, 49400, 7383 {f: 6, c: 49402}, {f: 3, c: 49409}, {f: 3, c: 49413}, {f: 7, c: 49417}, 7384 {f: 4, c: 49425}, {f: 6, c: 49430}, {f: 2, c: 49441}, 49445, 7385 {f: 4, c: 49448}, 49454, {f: 4, c: 49458}, 49463, {f: 2, c: 49466}, 7386 {f: 3, c: 49469}, {f: 7, c: 49473}, 49482, {f: 6, c: 49486}, 7387 {f: 2, c: 49494}, {f: 3, c: 49497}, {f: 7, c: 49501}, 49510, 7388 {f: 6, c: 49514}, {f: 3, c: 49521}, {f: 3, c: 49525}, {f: 12, c: 49529}, 7389 {f: 6, c: 49542}, 49551, {f: 3, c: 49553}, 49557, {f: 5, c: 49559}, 49566, 7390 49568, {f: 3, c: 49570}, {f: 2, c: 49574}, {f: 2, c: 49578}, 7391 {f: 3, c: 49581}, {f: 12, c: 49585}, {f: 6, c: 49598}, {f: 3, c: 49605}, 7392 {f: 3, c: 49609}, {f: 7, c: 49613}, {f: 2, c: 49621}, {f: 7, c: 49625}, 7393 {f: 3, c: 49633}, {f: 3, c: 49637}, {f: 7, c: 49641}, 49650, 7394 {f: 8, c: 49652}, {f: 2, c: 49662}, {f: 3, c: 49665}, {f: 7, c: 49669}, 7395 49678, 49680, {f: 6, c: 49682}, {f: 2, c: 49690}, {f: 2, c: 49693}, 7396 {f: 7, c: 49697}, 49706, 49708, 49710, 49712, 49715, {f: 19, c: 49717}, 7397 {f: 7, c: 49737}, {f: 2, c: 49746}, {f: 3, c: 49749}, {f: 7, c: 49753}, 7398 {f: 4, c: 49761}, {f: 6, c: 49766}, {f: 2, c: 49774}, {f: 3, c: 49777}, 7399 {f: 7, c: 49781}, 49790, 49792, {f: 6, c: 49794}, {f: 6, c: 49802}, 7400 {f: 7, c: 49809}, {f: 2, c: 49817}, 49820, {f: 6, c: 49822}, 7401 {f: 2, c: 49830}, {f: 3, c: 49833}, {f: 6, c: 49838}, 49846, 49848, 7402 {f: 34, c: 49850}, {f: 2, c: 49886}, {f: 2, c: 49889}, {f: 6, c: 49893}, 7403 49902, 49904, {f: 4, c: 49906}, 49911, 49914, {f: 3, c: 49917}, 7404 {f: 7, c: 49921}, {f: 2, c: 49930}, {f: 5, c: 49934}, {f: 2, c: 49942}, 7405 {f: 3, c: 49945}, {f: 7, c: 49949}, {f: 2, c: 49958}, {f: 27, c: 49962}, 7406 {f: 34, c: 49990}, {f: 2, c: 50026}, {f: 3, c: 50029}, 50033, 7407 {f: 5, c: 50035}, {f: 2, c: 50042}, {f: 6, c: 50046}, {f: 3, c: 50053}, 7408 {f: 3, c: 50057}, {f: 51, c: 50061}, {f: 23, c: 50113}, {f: 2, c: 50138}, 7409 {f: 2, c: 50141}, 50145, {f: 5, c: 50147}, {f: 3, c: 50154}, 7410 {f: 6, c: 50158}, {f: 2, c: 50166}, {f: 15, c: 50169}, {f: 7, c: 50185}, 7411 {f: 19, c: 50193}, {f: 7, c: 50213}, {f: 3, c: 50221}, {f: 3, c: 50225}, 7412 {f: 7, c: 50229}, {f: 10, c: 50238}, {f: 27, c: 50249}, {f: 2, c: 50278}, 7413 {f: 3, c: 50281}, {f: 7, c: 50285}, {f: 3, c: 50294}, {f: 6, c: 50298}, 7414 {f: 19, c: 50305}, {f: 7, c: 50325}, {f: 27, c: 50333}, {f: 3, c: 50361}, 7415 {f: 44, c: 50365}, {f: 6, c: 50410}, {f: 2, c: 50418}, {f: 3, c: 50421}, 7416 50425, {f: 4, c: 50427}, {f: 10, c: 50434}, {f: 3, c: 50445}, 7417 {f: 3, c: 50449}, {f: 7, c: 50453}, {f: 11, c: 50461}, {f: 2, c: 50474}, 7418 {f: 3, c: 50477}, {f: 7, c: 50481}, 50490, 50492, {f: 6, c: 50494}, 7419 {f: 2, c: 50502}, 50507, {f: 4, c: 50511}, 50518, {f: 3, c: 50522}, 50527, 7420 {f: 2, c: 50530}, {f: 3, c: 50533}, {f: 7, c: 50537}, 50546, 7421 {f: 6, c: 50550}, {f: 2, c: 50558}, {f: 3, c: 50561}, {f: 2, c: 50565}, 7422 {f: 4, c: 50568}, 50574, 50576, {f: 3, c: 50578}, 50582, {f: 3, c: 50585}, 7423 {f: 3, c: 50589}, {f: 8, c: 50593}, {f: 10, c: 50602}, {f: 2, c: 50614}, 7424 50618, {f: 5, c: 50623}, 50635, 50637, 50639, {f: 2, c: 50642}, 7425 {f: 3, c: 50645}, {f: 7, c: 50649}, 50658, 50660, {f: 6, c: 50662}, 50671, 7426 {f: 3, c: 50673}, 50677, {f: 4, c: 50680}, {f: 3, c: 50690}, 7427 {f: 3, c: 50697}, {f: 3, c: 50701}, {f: 7, c: 50705}, 50714, 7428 {f: 7, c: 50717}, {f: 2, c: 50726}, {f: 3, c: 50729}, 50735, 7429 {f: 2, c: 50737}, 50742, 50744, 50746, {f: 4, c: 50748}, {f: 2, c: 50754}, 7430 {f: 3, c: 50757}, {f: 7, c: 50761}, 50770, {f: 6, c: 50774}, 7431 {f: 2, c: 50782}, {f: 11, c: 50785}, {f: 2, c: 50797}, 50800, 7432 {f: 6, c: 50802}, {f: 2, c: 50810}, {f: 3, c: 50813}, {f: 7, c: 50817}, 7433 50826, 50828, {f: 6, c: 50830}, {f: 2, c: 50838}, {f: 3, c: 50841}, 7434 {f: 7, c: 50845}, 50854, 50856, {f: 6, c: 50858}, {f: 2, c: 50866}, 7435 {f: 3, c: 50869}, {f: 5, c: 50875}, 50882, 50884, {f: 6, c: 50886}, 7436 {f: 2, c: 50894}, {f: 3, c: 50897}, {f: 7, c: 50901}, {f: 2, c: 50910}, 7437 {f: 6, c: 50914}, {f: 2, c: 50922}, {f: 3, c: 50925}, {f: 7, c: 50929}, 7438 {f: 3, c: 50938}, {f: 6, c: 50942}, {f: 2, c: 50950}, {f: 3, c: 50953}, 7439 {f: 7, c: 50957}, 50966, 50968, {f: 6, c: 50970}, {f: 2, c: 50978}, 7440 {f: 3, c: 50981}, {f: 7, c: 50985}, 50994, 50996, 50998, {f: 4, c: 51000}, 7441 {f: 2, c: 51006}, {f: 3, c: 51009}, {f: 5, c: 51013}, 51019, 51022, 51024, 7442 {f: 3, c: 51033}, {f: 3, c: 51037}, {f: 7, c: 51041}, {f: 2, c: 51049}, 7443 {f: 8, c: 51052}, {f: 2, c: 51062}, {f: 3, c: 51065}, {f: 4, c: 51071}, 7444 51078, {f: 3, c: 51083}, 51087, {f: 2, c: 51090}, 51093, 51097, 7445 {f: 5, c: 51099}, 51106, {f: 5, c: 51111}, {f: 2, c: 51118}, 7446 {f: 3, c: 51121}, {f: 7, c: 51125}, 51134, {f: 6, c: 51138}, 7447 {f: 2, c: 51146}, 51149, 51151, {f: 7, c: 51153}, {f: 4, c: 51161}, 7448 {f: 6, c: 51166}, {f: 3, c: 51173}, {f: 3, c: 51177}, {f: 19, c: 51181}, 7449 {f: 2, c: 51202}, {f: 3, c: 51205}, 51209, {f: 5, c: 51211}, 51218, 51220, 7450 {f: 5, c: 51223}, {f: 2, c: 51230}, {f: 3, c: 51233}, {f: 7, c: 51237}, 7451 51246, 51248, {f: 6, c: 51250}, {f: 3, c: 51257}, {f: 3, c: 51261}, 7452 {f: 7, c: 51265}, {f: 2, c: 51274}, {f: 6, c: 51278}, {f: 27, c: 51285}, 7453 {f: 2, c: 51314}, {f: 3, c: 51317}, 51321, {f: 5, c: 51323}, 51330, 51332, 7454 {f: 3, c: 51336}, {f: 6, c: 51342}, {f: 8, c: 51349}, 51358, 51360, 7455 {f: 6, c: 51362}, {f: 19, c: 51369}, {f: 6, c: 51390}, {f: 3, c: 51397}, 7456 {f: 3, c: 51401}, {f: 7, c: 51405}, 51414, 51416, {f: 6, c: 51418}, 7457 {f: 2, c: 51426}, {f: 16, c: 51429}, {f: 6, c: 51446}, {f: 2, c: 51454}, 7458 {f: 3, c: 51457}, {f: 5, c: 51463}, 51470, 51472, {f: 6, c: 51474}, 7459 {f: 19, c: 51481}, {f: 7, c: 51501}, {f: 27, c: 51509}, {f: 2, c: 51538}, 7460 {f: 3, c: 51541}, {f: 7, c: 51545}, 51554, {f: 8, c: 51556}, 7461 {f: 3, c: 51565}, {f: 3, c: 51569}, {f: 7, c: 51573}, {f: 11, c: 51581}, 7462 {f: 2, c: 51594}, {f: 3, c: 51597}, {f: 7, c: 51601}, 51610, 51612, 7463 {f: 34, c: 51614}, {f: 2, c: 51650}, {f: 2, c: 51653}, 51657, 7464 {f: 5, c: 51659}, 51666, 51668, {f: 2, c: 51671}, 51675, {f: 2, c: 51678}, 7465 51681, 51683, {f: 2, c: 51685}, {f: 4, c: 51688}, 51694, {f: 6, c: 51698}, 7466 {f: 2, c: 51706}, {f: 3, c: 51709}, {f: 7, c: 51713}, 51722, 7467 {f: 6, c: 51726}, {f: 3, c: 51733}, {f: 16, c: 51737}, {f: 34, c: 51754}, 7468 {f: 2, c: 51790}, {f: 3, c: 51793}, {f: 7, c: 51797}, 51806, 7469 {f: 6, c: 51810}, {f: 20, c: 51817}, {f: 6, c: 51838}, {f: 19, c: 51845}, 7470 {f: 35, c: 51865}, {f: 2, c: 51902}, {f: 3, c: 51905}, {f: 7, c: 51909}, 7471 51918, 51920, 51922, {f: 4, c: 51924}, {f: 6, c: 51930}, {f: 11, c: 51937}, 7472 {f: 7, c: 51949}, {f: 19, c: 51957}, {f: 7, c: 51977}, {f: 3, c: 51985}, 7473 {f: 3, c: 51989}, {f: 7, c: 51993}, {f: 31, c: 52002}, {f: 6, c: 52034}, 7474 {f: 2, c: 52042}, {f: 3, c: 52045}, {f: 7, c: 52049}, {f: 3, c: 52058}, 7475 {f: 6, c: 52062}, {f: 19, c: 52069}, {f: 34, c: 52090}, {f: 27, c: 52125}, 7476 {f: 27, c: 52153}, {f: 15, c: 52181}, {f: 2, c: 52197}, 52200, 7477 {f: 34, c: 52202}, {f: 2, c: 52238}, {f: 3, c: 52241}, {f: 7, c: 52245}, 7478 {f: 3, c: 52254}, {f: 4, c: 52259}, {f: 2, c: 52266}, 52269, 52271, 7479 {f: 7, c: 52273}, 52282, {f: 5, c: 52287}, {f: 2, c: 52294}, 7480 {f: 3, c: 52297}, {f: 7, c: 52301}, 52310, {f: 6, c: 52314}, 7481 {f: 3, c: 52321}, 52325, 52327, {f: 7, c: 52329}, {f: 4, c: 52337}, 7482 {f: 34, c: 52342}, {f: 2, c: 52378}, {f: 3, c: 52381}, {f: 7, c: 52385}, 7483 52394, {f: 6, c: 52398}, {f: 2, c: 52406}, {f: 3, c: 52409}, 7484 {f: 7, c: 52413}, 52422, 52424, {f: 6, c: 52426}, {f: 3, c: 52433}, 7485 {f: 15, c: 52437}, {f: 7, c: 52453}, {f: 3, c: 52461}, {f: 16, c: 52465}, 7486 {f: 6, c: 52482}, {f: 2, c: 52490}, {f: 3, c: 52493}, {f: 7, c: 52497}, 7487 52506, 52508, {f: 6, c: 52510}, {f: 3, c: 52517}, {f: 3, c: 52521}, 7488 {f: 12, c: 52525}, {f: 34, c: 52538}, {f: 3, c: 52573}, {f: 3, c: 52577}, 7489 {f: 7, c: 52581}, 52590, 52592, {f: 6, c: 52594}, {f: 15, c: 52601}, 7490 {f: 11, c: 52617}, {f: 2, c: 52630}, {f: 3, c: 52633}, {f: 7, c: 52637}, 7491 52646, 52648, {f: 6, c: 52650}, {f: 19, c: 52657}, {f: 7, c: 52677}, 7492 {f: 3, c: 52685}, {f: 23, c: 52689}, {f: 3, c: 52713}, {f: 3, c: 52717}, 7493 {f: 7, c: 52721}, 52730, 52732, {f: 6, c: 52734}, {f: 3, c: 52741}, 7494 {f: 3, c: 52745}, {f: 7, c: 52749}, {f: 4, c: 52757}, {f: 6, c: 52762}, 7495 {f: 2, c: 52770}, {f: 3, c: 52773}, {f: 7, c: 52777}, 52786, 52788, 7496 {f: 34, c: 52790}, {f: 2, c: 52826}, {f: 2, c: 52829}, {f: 6, c: 52834}, 7497 52842, 52844, {f: 6, c: 52846}, {f: 2, c: 52854}, {f: 3, c: 52857}, 7498 {f: 7, c: 52861}, 52870, 52872, {f: 6, c: 52874}, {f: 2, c: 52882}, 7499 {f: 3, c: 52885}, {f: 7, c: 52889}, 52898, {f: 6, c: 52902}, 7500 {f: 19, c: 52910}, {f: 34, c: 52930}, {f: 2, c: 52966}, {f: 2, c: 52969}, 7501 {f: 7, c: 52973}, 52982, {f: 6, c: 52986}, {f: 2, c: 52994}, 7502 {f: 3, c: 52997}, {f: 7, c: 53001}, 53010, 53012, {f: 6, c: 53014}, 7503 {f: 3, c: 53021}, {f: 3, c: 53025}, {f: 7, c: 53029}, 53038, 7504 {f: 6, c: 53042}, {f: 27, c: 53049}, {f: 2, c: 53078}, {f: 3, c: 53081}, 7505 {f: 7, c: 53085}, 53094, 53096, {f: 6, c: 53098}, {f: 2, c: 53106}, 7506 {f: 3, c: 53109}, {f: 7, c: 53113}, {f: 4, c: 53121}, {f: 6, c: 53126}, 7507 {f: 20, c: 53133}, {f: 6, c: 53154}, {f: 7, c: 53161}, {f: 19, c: 53169}, 7508 {f: 27, c: 53189}, {f: 2, c: 53218}, {f: 3, c: 53221}, {f: 7, c: 53225}, 7509 53234, 53236, {f: 6, c: 53238}, {f: 3, c: 53245}, {f: 3, c: 53249}, 7510 {f: 12, c: 53253}, {f: 6, c: 53266}, {f: 20, c: 53273}, {f: 6, c: 53294}, 7511 {f: 2, c: 53302}, {f: 3, c: 53305}, {f: 7, c: 53309}, 53318, 53320, 7512 {f: 6, c: 53322}, {f: 3, c: 53329}, {f: 3, c: 53333}, {f: 7, c: 53337}, 7513 {f: 11, c: 53345}, {f: 2, c: 53358}, {f: 3, c: 53361}, {f: 7, c: 53365}, 7514 {f: 3, c: 53374}, {f: 34, c: 53378}, {f: 2, c: 53414}, {f: 3, c: 53417}, 7515 {f: 7, c: 53421}, 53430, 53432, {f: 6, c: 53434}, {f: 2, c: 53442}, 7516 {f: 3, c: 53445}, {f: 6, c: 53450}, 53458, {f: 6, c: 53462}, 7517 {f: 2, c: 53470}, {f: 3, c: 53473}, {f: 7, c: 53477}, 53486, 7518 {f: 6, c: 53490}, {f: 20, c: 53497}, {f: 34, c: 53518}, {f: 2, c: 53554}, 7519 {f: 3, c: 53557}, 53561, {f: 5, c: 53563}, 53570, {f: 6, c: 53574}, 7520 {f: 2, c: 53582}, {f: 3, c: 53585}, {f: 7, c: 53589}, 53598, 53600, 7521 {f: 6, c: 53602}, {f: 3, c: 53609}, {f: 15, c: 53613}, {f: 7, c: 53629}, 7522 {f: 3, c: 53637}, {f: 23, c: 53641}, {f: 2, c: 53666}, {f: 3, c: 53669}, 7523 {f: 7, c: 53673}, 53682, 53684, {f: 4, c: 53686}, 53691, {f: 3, c: 53693}, 7524 {f: 23, c: 53697}, {f: 27, c: 53721}, {f: 3, c: 53749}, {f: 14, c: 53753}, 7525 53768, {f: 6, c: 53770}, {f: 27, c: 53777}, {f: 2, c: 53806}, 7526 {f: 3, c: 53809}, {f: 7, c: 53813}, 53822, 53824, {f: 6, c: 53826}, 7527 {f: 19, c: 53833}, {f: 7, c: 53853}, {f: 27, c: 53861}, {f: 2, c: 53890}, 7528 {f: 3, c: 53893}, {f: 7, c: 53897}, {f: 3, c: 53906}, {f: 6, c: 53910}, 7529 {f: 3, c: 53917}, {f: 3, c: 53921}, {f: 7, c: 53925}, {f: 4, c: 53933}, 7530 {f: 6, c: 53938}, {f: 2, c: 53946}, {f: 2, c: 53949}, 53953, 7531 {f: 5, c: 53955}, 53962, {f: 8, c: 53964}, {f: 3, c: 53973}, 7532 {f: 3, c: 53977}, {f: 7, c: 53981}, {f: 10, c: 53990}, {f: 2, c: 54002}, 7533 {f: 3, c: 54005}, {f: 7, c: 54009}, 54018, 54020, {f: 6, c: 54022}, 54031, 7534 {f: 3, c: 54033}, 54037, {f: 5, c: 54039}, 54046, {f: 3, c: 54050}, 7535 {f: 2, c: 54054}, {f: 2, c: 54058}, {f: 3, c: 54061}, {f: 7, c: 54065}, 7536 54074, {f: 6, c: 54078}, {f: 54, c: 54086}, {f: 2, c: 54142}, 7537 {f: 3, c: 54145}, {f: 7, c: 54149}, 54158, {f: 6, c: 54162}, 7538 {f: 2, c: 54170}, {f: 3, c: 54173}, {f: 7, c: 54177}, 54186, 54188, 7539 {f: 6, c: 54190}, {f: 3, c: 54197}, {f: 3, c: 54201}, {f: 7, c: 54205}, 7540 {f: 2, c: 54214}, {f: 6, c: 54218}, {f: 7, c: 54225}, {f: 8, c: 54233}, 7541 54242, {f: 8, c: 54244}, {f: 2, c: 54254}, {f: 3, c: 54257}, 7542 {f: 7, c: 54261}, 54270, 54272, {f: 6, c: 54274}, {f: 20, c: 54281}, 7543 {f: 34, c: 54302}, {f: 3, c: 54337}, {f: 23, c: 54341}, {f: 3, c: 54365}, 7544 {f: 3, c: 54369}, {f: 8, c: 54373}, 54382, {f: 8, c: 54384}, 7545 {f: 2, c: 54394}, {f: 2, c: 54397}, 54401, {f: 5, c: 54403}, 54410, 54412, 7546 {f: 6, c: 54414}, {f: 20, c: 54421}, {f: 34, c: 54442}, {f: 3, c: 54477}, 7547 {f: 3, c: 54481}, {f: 7, c: 54485}, {f: 2, c: 54493}, {f: 8, c: 54496}, 7548 {f: 3, c: 54505}, {f: 3, c: 54509}, {f: 7, c: 54513}, {f: 2, c: 54521}, 7549 54524, {f: 6, c: 54526}, {f: 3, c: 54533}, {f: 3, c: 54537}, 7550 {f: 7, c: 54541}, 54550, {f: 36, c: 54552}, {f: 2, c: 54590}, 7551 {f: 3, c: 54593}, {f: 7, c: 54597}, 54606, 54608, {f: 6, c: 54610}, 7552 {f: 2, c: 54618}, {f: 3, c: 54621}, {f: 4, c: 54625}, {f: 2, c: 54630}, 7553 54634, 54636, {f: 6, c: 54638}, {f: 2, c: 54646}, {f: 3, c: 54649}, 7554 {f: 7, c: 54653}, 54662, {f: 6, c: 54666}, {f: 20, c: 54673}, 7555 {f: 34, c: 54694}, {f: 2, c: 54730}, {f: 3, c: 54733}, 54737, 7556 {f: 5, c: 54739}, 54746, 54748, {f: 6, c: 54750}, {f: 2, c: 54758}, 7557 {f: 3, c: 54761}, {f: 7, c: 54765}, 54774, 54776, {f: 6, c: 54778}, 7558 {f: 2, c: 54786}, {f: 3, c: 54789}, {f: 7, c: 54793}, 54802, 7559 {f: 6, c: 54806}, {f: 3, c: 54813}, {f: 3, c: 54817}, {f: 8, c: 54821}, 7560 {f: 10, c: 54830}, {f: 2, c: 54842}, {f: 3, c: 54845}, {f: 4, c: 54849}, 7561 {f: 2, c: 54854}, 54858, 54860, {f: 3, c: 54862}, {f: 2, c: 54866}, 7562 {f: 2, c: 54870}, {f: 3, c: 54873}, {f: 10, c: 54877}, 54888, 7563 {f: 6, c: 54890}, {f: 2, c: 54898}, {f: 14, c: 54901}, 54916, 7564 {f: 6, c: 54918}, {f: 2, c: 54926}, {f: 3, c: 54929}, {f: 8, c: 54933}, 7565 54942, 54944, {f: 6, c: 54946}, {f: 3, c: 54953}, {f: 3, c: 54957}, 7566 {f: 8, c: 54961}, 54970, {f: 8, c: 54972}, {f: 2, c: 54982}, 7567 {f: 3, c: 54985}, {f: 4, c: 54989}, {f: 2, c: 54994}, {f: 2, c: 54997}, 7568 55000, {f: 6, c: 55002}, {f: 3, c: 55009}, {f: 3, c: 55013}, 7569 {f: 7, c: 55017}, {f: 4, c: 55025}, {f: 6, c: 55030}, {f: 2, c: 55038}, 7570 {f: 3, c: 55041}, {f: 12, c: 55045}, {f: 6, c: 55058}, {f: 2, c: 55066}, 7571 {f: 3, c: 55069}, {f: 7, c: 55073}, 55082, 55084, {f: 6, c: 55086}, 7572 {f: 2, c: 55094}, {f: 3, c: 55097}, {f: 7, c: 55101}, {f: 2, c: 55109}, 7573 55112, {f: 6, c: 55114}, {f: 2, c: 55122}, 55125, {f: 6, c: 55130}, 55138, 7574 55140, {f: 3, c: 55142}, {f: 2, c: 55146}, {f: 3, c: 55149}, 7575 {f: 3, c: 55153}, {f: 7, c: 55157}, {f: 3, c: 55166}, {f: 6, c: 55170}, 7576 {f: 2, c: 55178}, {f: 3, c: 55181}, {f: 7, c: 55185}, 55194, 55196, 7577 {f: 6, c: 55198}], 7578 'Adobe-CNS1': [{f: 95, c: 32}, {s: 3}, 12288, 65292, {f: 2, c: 12289}, 65294, 7579 8226, 65307, 65306, 65311, 65281, 65072, 8230, 8229, 65104, 65380, 65106, 7580 183, {f: 4, c: 65108}, 65372, 8211, 65073, 8212, {s: 4}, {f: 2, c: 65288}, 7581 {f: 2, c: 65077}, 65371, 65373, {f: 2, c: 65079}, {f: 2, c: 12308}, 7582 {f: 2, c: 65081}, {f: 2, c: 12304}, {f: 2, c: 65083}, {f: 2, c: 12298}, 7583 {f: 2, c: 65085}, {f: 2, c: 12296}, {f: 2, c: 65087}, {f: 2, c: 12300}, 7584 {f: 2, c: 65089}, {f: 2, c: 12302}, {f: 2, c: 65091}, {f: 6, c: 65113}, 7585 {f: 2, c: 8216}, {f: 2, c: 8220}, {f: 2, c: 12317}, 8245, 8242, 65283, 7586 65286, 65290, 8251, 167, 12291, 9675, 9679, 9651, 9650, 9678, 9734, 9733, 7587 9671, 9670, 9633, 9632, 9661, 9660, 12963, 8453, 8254, 0, 65343, 0, 7588 {f: 2, c: 65097}, {f: 2, c: 65101}, {f: 2, c: 65099}, {f: 3, c: 65119}, 7589 65291, 65293, 215, 247, 177, 8730, 65308, 65310, 65309, {f: 2, c: 8806}, 7590 8800, 8734, 8786, 8801, {f: 5, c: 65122}, 8764, {f: 2, c: 8745}, 8869, 7591 8736, 8735, 8895, 13266, 13265, 8747, 8750, 8757, 8756, 9792, 9794, 9793, 7592 9737, 8593, 8595, 8594, 8592, {f: 2, c: 8598}, 8601, 8600, 8741, 8739, 0, 7593 0, 65295, 65340, 65284, 165, 12306, {f: 2, c: 162}, 65285, 65312, 8451, 7594 8457, {f: 3, c: 65129}, 13269, {f: 3, c: 13212}, 13262, 13217, 7595 {f: 2, c: 13198}, 13252, 176, [20825, 58834], [20827, 58835], 7596 [20830, 58837], [20829, 58836], 20833, 20835, 21991, [29929, 58044], 7597 [31950, 58191], {f: 8, c: 9601}, 9615, 9614, 9613, 9612, 9611, 9610, 9609, 7598 9532, 9524, 9516, 9508, 9500, 9620, 9472, 9474, 9621, 9484, 9488, 9492, 7599 9496, {f: 2, c: 9581}, 9584, 9583, 9552, 9566, 9578, 9569, {f: 2, c: 9698}, 7600 9701, 9700, {f: 3, c: 9585}, {f: 10, c: 65296}, {f: 10, c: 8544}, 7601 {f: 9, c: 12321}, 0, [21316, 57443], 0, {f: 26, c: 65313}, 7602 {f: 26, c: 65345}, {f: 17, c: 913}, {f: 7, c: 931}, {f: 17, c: 945}, 7603 {f: 7, c: 963}, {f: 37, c: 12549}, 729, 714, 711, 715, [9312, 63153], 7604 [9313, 63154], [9314, 63155], [9315, 63156], [9316, 63157], [9317, 63158], 7605 [9318, 63159], [9319, 63160], [9320, 63161], [9321, 63162], [9332, 63163], 7606 [9333, 63164], [9334, 63165], [9335, 63166], [9336, 63167], [9337, 63168], 7607 [9338, 63169], [9339, 63170], [9340, 63171], [9341, 63172], [8560, 63173], 7608 [8561, 63174], [8562, 63175], [8563, 63176], [8564, 63177], [8565, 63178], 7609 [8566, 63179], [8567, 63180], [8568, 63181], [8569, 63182], [12033, 20008], 7610 [12034, 20022, 63183], [12035, 20031, 63184], [12037, 20101, 63185], 7611 [12039, 20128, 63186], [12044, 20866, 63187], [12045, 20886, 63188], 7612 [12046, 20907, 63189], [12051, 21241, 63190], [12054, 21304, 63191], 7613 [12057, 21353, 63192], [12059, 21430, 63193], 7614 [12065, 12066, 22786, 22794, 63194], [12071, 23424, 63195], 7615 [12078, 24027, 63196], [12083, 24186, 63197], [12084, 24191, 63198], 7616 [12085, 24308], [12089, 24400, 63200], [12090, 24417, 63201], 7617 [12097, 25908, 63202], [12102, 26080], [12135, 30098, 63204], 7618 [12136, 30326], [12193, 36789, 63206], [12202, 38582], {f: 32, c: 9216}, 7619 9249, [12032, 19968], [12036, 20057], 19969, 19971, 20035, 20061, 20102, 7620 [12038, 20108], [12040, 20154], [12041, 20799], [12042, 20837], 7621 [12043, 20843], [12047, 20960], [12049, 20992], 20993, [12050, 21147], 7622 [12052, 21269], [12055, 21313], [12056, 21340], [12060, 21448], 19977, 7623 19979, 19976, 19978, 20011, 20024, 20961, 20037, 20040, 20063, 20062, 7624 20110, 20129, [20800, 64012], 20995, 21242, 21315, 21449, [12061, 21475], 7625 [12063, 22303], [12064, 22763], [12067, 22805], [12068, 22823], 7626 [12069, 22899], [12070, 23376], 23377, 23379, [12072, 23544], 7627 [12073, 23567], [12074, 23586], [12075, 23608], [12077, 23665], 24029, 7628 [12079, 24037], [12080, 24049], {f: 2, c: 24050}, [12081, 24062], 7629 [12082, 24178], [12086, 24318], [12087, 24331], [12088, 24339], 25165, 7630 19985, 19984, 19981, 20013, 20016, 20025, 20043, 23609, 20104, 20113, 7631 20117, 20114, 20116, 20130, 20161, 20160, 20163, {f: 2, c: 20166}, 20173, 7632 {f: 2, c: 20170}, 20164, 20803, 20801, 20839, {f: 2, c: 20845}, 20844, 7633 20887, 20982, {f: 3, c: 20998}, 21243, {f: 2, c: 21246}, 21270, 21305, 7634 21320, 21319, 21317, 21342, 21380, 21451, 21450, 21453, 22764, 22825, 7635 22827, 22826, 22829, 23380, 23569, 23588, 23610, 23663, 24052, 24187, 7636 24319, {f: 2, c: 24340}, [12092, 24515], [12093, 25096], [12094, 25142], 7637 [12095, 25163], 25166, [12096, 25903], [12098, 25991], [12099, 26007], 7638 [12100, 26020], [12101, 26041], [12103, 26085], [12104, 26352], 7639 [12105, 26376], [12106, 26408], [12107, 27424], [12108, 27490], 7640 [12109, 27513], [12111, 27595], [12112, 27604], [12113, 27611], 7641 [12114, 27663], [12116, 27700], [12117, 28779], [12118, 29226], 7642 [12119, 29238], [12120, 29243], [12122, 29255], [12123, 29273], 7643 [12124, 29275], [12125, 29356], 29579, 19993, 19990, 19989, 19988, 19992, 7644 20027, 20045, 20047, 20046, 20197, 20184, {f: 4, c: 20180}, 7645 {f: 2, c: 20195}, 20185, 20190, 20805, 20804, {f: 2, c: 20873}, 20908, 7646 {f: 2, c: 20985}, 20984, 21002, 21152, 21151, [21253, 57435], 21254, 21271, 7647 21277, 20191, 21322, 21321, 21345, 21344, 21359, 21358, 21435, 21487, 7648 21476, 21491, 21484, 21486, 21481, 21480, 21500, 21496, 21493, 21483, 7649 21478, 21482, 21490, 21489, 21488, 21477, 21485, 21499, 22235, 22234, 7650 22806, 22830, 22833, 22900, 22902, 23381, 23427, 23612, 24040, 24039, 7651 24038, {f: 2, c: 24066}, 24179, 24188, 24321, 24344, 24343, 24517, 25098, 7652 {f: 2, c: 25171}, 25170, 25169, 26021, 26086, 26414, 26412, 7653 {f: 2, c: 26410}, 26413, 27491, 27597, 27665, 27664, 27704, 27713, 27712, 7654 27710, 29359, [12126, 29572], [12127, 29577], [12128, 29916], 7655 [12129, 29926], [12130, 29976], [12131, 29983], [12132, 29992], 29993, 7656 [12133, 30000], {f: 3, c: 30001}, [12134, 30091], [12137, 30333], 7657 [12138, 30382], [12139, 30399], [12140, 30446], [12141, 30683], 7658 [12142, 30690], [12143, 30707], [12144, 31034], [12146, 31166], 7659 [12147, 31348], [12148, 31435], {f: 2, c: 19998}, {f: 2, c: 20050}, 20073, 7660 20121, 20132, 20134, 20133, 20223, 20233, 20249, 20234, 20245, 20237, 7661 {f: 2, c: 20240}, 20239, 20210, 20214, 20219, 20208, 20211, 20221, 20225, 7662 20235, 20809, 20807, 20806, 20808, 20840, 20849, 20877, 20912, 21015, 7663 {f: 2, c: 21009}, 21006, 21014, 21155, 21256, 21281, 21280, 7664 {f: 2, c: 21360}, 21513, 21519, 21516, 21514, 21520, 21505, 21515, 21508, 7665 21521, 21517, 21512, 21507, 21518, 21510, 21522, 22240, 22238, 22237, 7666 22323, 22320, 22312, 22317, 22316, 22319, 22313, {f: 2, c: 22809}, 7667 {f: 2, c: 22839}, 22916, 22904, 22915, 22909, 22905, 22914, 22913, 7668 {f: 2, c: 23383}, {f: 2, c: 23431}, 23429, 23433, 23546, 23574, 23673, 7669 24030, 24070, 24182, 24180, 24335, 24347, 24537, 24534, 25102, 7670 {f: 2, c: 25100}, 25104, 25187, 25179, 25176, 25910, 26089, 26088, 7671 {f: 2, c: 26092}, {f: 2, c: 26354}, 26377, 26429, 26420, 26417, 26421, 7672 27425, 27492, 27515, 27670, 27741, 27735, 27737, {f: 2, c: 27743}, 27728, 7673 27733, 27745, 27739, {f: 2, c: 27725}, 28784, 29279, 29277, 30334, 7674 [12149, 31481], [12150, 31859], [12151, 31992], [12152, 32566], 7675 [12154, 32650], [12155, 32701], [12156, 32769], 32771, [12157, 32780], 7676 [12158, 32786], [12159, 32819], [12160, 32895], [12161, 32905], 7677 {f: 2, c: 32907}, [12162, 33251], [12163, 33258], [12164, 33267], 7678 [12165, 33276], [12166, 33292], [12167, 33307], [12168, 33311], 7679 [12169, 33390], [12170, 33394], 33406, [12173, 34411], [12174, 34880], 7680 [12175, 34892], [12176, 34915], 35199, 38433, 20018, 20136, 20301, 20303, 7681 20295, 20311, 20318, 20276, 20315, 20309, 20272, {f: 2, c: 20304}, 20285, 7682 20282, 20280, 20291, 20308, 20284, 20294, 20323, 20316, 20320, 20271, 7683 20302, 20278, 20313, 20317, 20296, 20314, 20812, 20811, 20813, 20853, 7684 {f: 2, c: 20918}, 21029, 21028, {f: 2, c: 21033}, 21032, 21163, 7685 {f: 2, c: 21161}, 21164, 21283, 21363, 21365, 21533, 21549, 21534, 21566, 7686 21542, 21582, 21543, 21574, 21571, 21555, 21576, 21570, 21531, 21545, 7687 21578, 21561, 21563, 21560, 21550, {f: 2, c: 21557}, 21536, 21564, 21568, 7688 21553, 21547, 21535, 21548, 22250, 22256, 22244, 22251, 22346, 22353, 7689 22336, 22349, 22343, 22350, 22334, 22352, 22351, 22331, 22767, 22846, 7690 22941, 22930, 22952, 22942, 22947, 22937, 22934, 22925, 22948, 22931, 7691 22922, 22949, 23389, 23388, {f: 2, c: 23386}, 23436, 23435, 23439, 23596, 7692 {f: 2, c: 23616}, 23615, 23614, {f: 2, c: 23696}, 23700, 23692, 24043, 7693 24076, 24207, 24199, 24202, 24311, 24324, 24351, 24420, 24418, 24439, 7694 24441, 24536, 24524, 24535, 24525, 24561, 24555, 24568, 24554, 25106, 7695 25105, 25220, 25239, 25238, 25216, 25206, 25225, 25197, 25226, 25212, 7696 25214, 25209, 25203, 25234, 25199, 25240, 25198, 25237, 25235, 25233, 7697 25222, 25913, 25915, 25912, 26097, 26356, 26463, {f: 4, c: 26446}, 26460, 7698 26454, [26462, 57801], 26441, 26438, 26464, 26451, 26455, 27493, 27599, 7699 27714, 27742, 27801, 27777, {f: 2, c: 27784}, 27781, 27803, 27754, 27770, 7700 27792, 27760, 27788, 27752, 27798, 27794, 27773, 27779, 27762, 27774, 7701 27764, 27782, 27766, 27789, 27796, 27800, 27778, 28790, {f: 2, c: 28796}, 7702 28792, 29282, 29281, 29280, 29380, 29378, 29590, 29996, 29995, 7703 {f: 2, c: 30007}, 30338, 30447, 30691, 31169, 31168, 31167, 31350, 31995, 7704 32597, 32918, 32915, 32925, 32920, 32923, 32922, 32946, 33391, 33426, 7705 33419, 33421, [12178, 35211], [12179, 35282], [12180, 35328], 7706 [12181, 35895], [12182, 35910], [12183, 35925], [12185, 35997], 7707 [12186, 36196], [12187, 36208], [12188, 36275], [12189, 36523], 7708 [12190, 36554], [12191, 36763], [12192, 36784], 36802, 36806, 36805, 36804, 7709 24033, [12194, 37009], 37026, 37034, 37030, 37027, [12195, 37193], 7710 [12196, 37318], [12197, 37324], 38450, 38446, 38449, 38442, 38444, 20006, 7711 20054, 20083, 20107, 20123, 20126, {f: 2, c: 20139}, 20335, 20381, 20365, 7712 20339, 20351, 20332, 20379, 20363, 20358, 20355, 20336, 20341, 20360, 7713 20329, 20347, 20374, 20350, 20367, 20369, 20346, 20820, 20818, 20821, 7714 20841, 20855, 20854, 20856, 20925, 20989, 21051, 21048, 21047, 21050, 7715 21040, 21038, 21046, 21057, 21182, 21179, 21330, 21332, 21331, 21329, 7716 21350, {f: 3, c: 21367}, 21462, 21460, 21463, 21619, 21621, 21654, 21624, 7717 21653, 21632, 21627, 21623, 21636, 21650, 21638, 21628, 21648, 21617, 7718 21622, 21644, 21658, 21602, 21608, 21643, 21629, 21646, 22266, 22403, 7719 22391, 22378, 22377, 22369, 22374, 22372, 22396, 22812, 22857, 7720 {f: 2, c: 22855}, 22852, 22868, 22974, 22971, 22996, 22969, 22958, 22993, 7721 22982, 22992, 22989, 22987, 22995, 22986, 22959, 22963, 22994, 22981, 7722 23391, 23396, 23395, 23447, 23450, 23448, 23452, 23449, 23451, 23578, 7723 23624, {f: 2, c: 23621}, 23735, 23713, 23736, 23721, 23723, 23729, 23731, 7724 24088, 24090, 24086, 24085, 24091, 24081, 24184, 24218, 24215, 24220, 7725 {f: 2, c: 24213}, 24310, {f: 2, c: 24358}, 24361, {f: 2, c: 24448}, 24447, 7726 24444, 24541, 24544, 24573, 24565, 24575, 24591, 24596, 24623, 24629, 7727 24598, 24618, 24597, 24609, 24615, 24617, 24619, 24603, 25110, 25109, 7728 25151, 25150, 25152, 25215, 25289, 25292, 25284, 25279, 25282, 25273, 7729 25298, 25307, 25259, {f: 2, c: 25299}, 25291, 25288, 25256, 25277, 25276, 7730 [25296, 60582], 25305, 25287, 25293, 25269, 25306, 25265, 25304, 7731 {f: 2, c: 25302}, 25286, 25260, [25294, 61010], 25918, 26023, 26044, 26106, 7732 26132, 26131, 26124, 26118, 26114, 26126, 26112, 26127, 26133, 26122, 7733 26119, 26381, 26379, 26477, 26507, 26517, 26481, 26524, 26483, 26487, 7734 26503, 26525, 26519, {f: 2, c: 26479}, 26495, 26505, 26494, 26512, 26485, 7735 26522, 26515, 26492, 26474, 26482, 27427, {f: 2, c: 27494}, 27519, 27667, 7736 27675, 27875, 27880, 27891, 27825, 27852, 27877, 27827, {f: 2, c: 27837}, 7737 27836, 27874, 27819, 27861, 27859, 27832, 27844, 27833, 27841, 27822, 7738 27863, 27845, 27889, 27839, 27835, 27873, 27867, 27850, 27820, 27887, 7739 27868, 27862, 27872, 28821, 28814, 28818, 28810, 28825, {f: 2, c: 29228}, 7740 29240, 29256, 29287, 29289, 29376, 29390, 29401, 29399, 29392, 29609, 7741 29608, 29599, 29611, 29605, 30013, 30109, {f: 2, c: 30105}, 30340, 30402, 7742 30450, 30452, 30693, 30717, 31038, {f: 2, c: 31040}, 31177, 31176, 31354, 7743 31353, 31482, 31998, 32596, 32652, 32651, [32773, 58236], 32954, 32933, 7744 32930, 32945, 32929, 32939, 32937, 32948, 32938, 32943, 33253, 33278, 7745 33293, 33459, 33437, 33433, 33453, 33469, 33439, 33465, 33457, 33452, 7746 33445, 33455, 33464, 33443, 33456, 33470, 33463, 34382, 34417, 21021, 7747 34920, 36555, 36814, 36820, 36817, 37045, 37048, 37041, 37046, 37319, 7748 [12198, 37329], [12199, 38263], [12200, 38272], [12201, 38428], 38464, 7749 38463, 38459, 38468, 38466, [12203, 38585], [12204, 38632], 38738, 7750 [12206, 38750], 20127, {f: 2, c: 20141}, 20449, 20405, 20399, 20415, 20448, 7751 20433, 20431, 20445, 20419, 20406, 20440, 20447, 20426, 20439, 20398, 7752 20432, 20420, 20418, 20442, 20430, 20446, 20407, 20823, 20882, 20881, 7753 20896, 21070, 21059, 21066, 21069, 21068, 21067, 21063, 21191, 21193, 7754 21187, 21185, 21261, 21335, 21371, 21402, 21467, 21676, 21696, 21672, 7755 21710, 21705, 21688, 21670, 21683, 21703, 21698, 21693, 21674, 21697, 7756 21700, 21704, 21679, 21675, 21681, 21691, 21673, 21671, 21695, 22271, 7757 22402, 22411, 22432, 22435, 22434, 22478, 22446, 22419, 22869, 22865, 7758 22863, 22862, 22864, 23004, 23000, 23039, 23011, 23016, 23043, 23013, 7759 23018, 23002, 23014, 23041, 23035, 23401, 23459, 23462, 23460, 23458, 7760 23461, 23553, {f: 2, c: 23630}, 23629, 23627, 23769, 23762, 24055, 24093, 7761 24101, 24095, 24189, 24224, 24230, 24314, 24328, 24365, 24421, 24456, 7762 24453, {f: 2, c: 24458}, 24455, 24460, 24457, 24594, 24605, 24608, 24613, 7763 24590, 24616, 24653, 24688, 24680, [24674, 60712], 24646, 24643, 24684, 7764 24683, 24682, 24676, 25153, 25308, 25366, 25353, 25340, 25325, 25345, 7765 25326, 25341, 25351, 25329, 25335, 25327, 25324, 25342, 25332, 25361, 7766 25346, 25919, 25925, 26027, 26045, 26082, 26149, 26157, 26144, 26151, 7767 26159, 26143, 26152, 26161, 26148, 26359, 26623, 26579, 26609, 26580, 7768 26576, 26604, 26550, 26543, 26613, 26601, 26607, 26564, 26577, 26548, 7769 26586, 26597, 26552, 26575, 26590, 26611, 26544, 26585, 26594, 26589, 7770 26578, 27498, 27523, 27526, 27573, 27602, 27607, 27679, 27849, 27915, 7771 27954, 27946, 27969, 27941, 27916, 27953, 27934, 27927, 27963, 7772 {f: 2, c: 27965}, 27958, 27931, 27893, 27961, 27943, 27960, 27945, 27950, 7773 27957, 27918, 27947, 28843, 28858, 28851, 28844, 28847, 28845, 28856, 7774 28846, 28836, 29232, 29298, 29295, 29300, 29417, {f: 2, c: 29408}, 29623, 7775 29642, 29627, 29618, 29645, 29632, 29619, 29978, 29997, 30031, 30028, 7776 30030, 30027, 30123, {f: 2, c: 30116}, {f: 2, c: 30114}, 30328, 7777 {f: 3, c: 30342}, 30408, 30406, 30403, 30405, 30465, 30457, 30456, 30473, 7778 30475, 30462, 30460, 30471, 30684, 30722, 30740, {f: 2, c: 30732}, 31046, 7779 31049, 31048, 31047, {f: 2, c: 31161}, {f: 2, c: 31185}, 31179, 31359, 7780 31361, 31487, 31485, 31869, 32002, 32005, 32000, 32009, 32007, 32004, 7781 32006, 32568, 32654, 32703, 32784, 32781, 32785, 32822, 32982, 32997, 7782 32986, {f: 2, c: 32963}, 32972, 32993, 32987, 32974, 32990, 32996, 32989, 7783 33268, 33314, 33511, 33539, 33541, 33507, 33499, 33510, 33540, 33509, 7784 33538, 33545, 33490, 33495, 33521, 33537, 33500, 33492, 33489, 33502, 7785 33491, 33503, 33519, 33542, 34384, 34425, 34427, 34426, 34893, 34923, 7786 35201, 35284, 35336, {f: 2, c: 35330}, 35998, 36000, 36212, 36211, 36276, 7787 36557, 36556, 36848, 36838, 36834, 36842, 36837, 36845, 36843, 36836, 7788 36840, 37066, 37070, 37057, 37059, 37195, 37194, 37325, 38274, 38480, 7789 {f: 3, c: 38475}, [12207, 38754], [12208, 38761], [12209, 38859], 7790 [12210, 38893], [12211, 38899], [12212, 38913], [12213, 39080], 7791 [12214, 39131], [12215, 39135], [12216, 39318], [12217, 39321], 20056, 7792 20147, {f: 2, c: 20492}, 20515, 20463, 20518, 20517, 20472, [20521, 57375], 7793 20502, 20486, 20540, 20511, 20506, 20498, 20497, 20474, 20480, 20500, 7794 20520, 20465, 20513, 20491, 20505, 20504, 20467, 20462, 20525, 20522, 7795 20478, 20523, 20489, 20860, {f: 2, c: 20900}, 20898, 20941, 20940, 20934, 7796 20939, 21078, 21084, 21076, 21083, 21085, 21290, [21375, 57459], 21407, 7797 21405, 21471, 21736, 21776, 21761, 21815, 21756, 21733, 21746, 21766, 7798 21754, 21780, 21737, 21741, 21729, 21769, 21742, 21738, 21734, 21799, 7799 21767, 21757, 21775, {f: 2, c: 22275}, 22466, 22484, 22475, 22467, 22537, 7800 22799, {f: 2, c: 22871}, 22874, 23057, 23064, 23068, 23071, 23067, 23059, 7801 23020, 23072, 23075, 23081, 23077, 23052, 23049, 23403, 23640, 23472, 7802 23475, 23478, 23476, 23470, 23477, 23481, 23480, 23556, 23633, 23637, 7803 23632, 23789, 23805, 23803, 23786, 23784, 23792, 23798, 23809, 23796, 7804 24046, 24109, 24107, 24235, 24237, 24231, 24369, 24466, 24465, 24464, 7805 24665, 24675, 24677, 24656, 24661, 24685, 24681, 24687, 24708, 24735, 7806 24730, 24717, 24724, 24716, 24709, 24726, 25159, 25331, 25352, 25343, 7807 25422, 25406, 25391, 25429, 25410, 25414, 25423, 25417, 25402, 25424, 7808 25405, {f: 2, c: 25386}, 25384, 25421, 25420, {f: 2, c: 25928}, 26009, 7809 26049, 26053, 26178, 26185, 26191, 26179, 26194, 26188, 26181, 26177, 7810 26360, {f: 2, c: 26388}, 26391, 26657, 26680, 26696, 26694, 26707, 26681, 7811 26690, 26708, 26665, 26803, 26647, 26700, 26705, 26685, 26612, 26704, 7812 26688, 26684, 26691, 26666, 26693, 26643, 26648, 26689, 27530, 27529, 7813 27575, 27683, {f: 2, c: 27687}, 27686, 27684, 27888, 28010, 28053, 28040, 7814 28039, 28006, 28024, 28023, 27993, 28051, 28012, 28041, 28014, 27994, 7815 28020, 28009, 28044, 28042, 28025, 28037, 28005, 28052, 28874, 28888, 7816 28900, 28889, 28872, 28879, 29241, 29305, 29436, 29433, 29437, 29432, 7817 29431, 29574, 29677, 29705, 29678, 29664, 29674, 29662, 30036, 30045, 7818 30044, 30042, 30041, 30142, 30149, 30151, {f: 2, c: 30130}, 30141, 30140, 7819 30137, 30146, 30136, 30347, 30384, 30410, {f: 2, c: 30413}, 30505, 7820 {f: 2, c: 30495}, 30504, 30697, 30768, 30759, 30776, 30749, 30772, 30775, 7821 30757, 30765, 30752, 30751, 30770, 31061, 31056, 31072, 31071, 31062, 7822 31070, 31069, 31063, 31066, 31204, [31203, 60418], 31207, 31199, 31206, 7823 31209, 31192, 31364, 31368, 31449, 31494, 31505, 31881, 32033, 32023, 7824 32011, 32010, 32032, 32034, 32020, 32016, 32021, 32026, 32028, 32013, 7825 32025, 32027, 32570, 32607, 32660, 32709, 32705, 32774, 32772, 32792, 7826 32789, 32793, 32791, 32829, 32831, 33009, 33026, 33008, 33029, 33005, 7827 33012, 33030, 33016, 33011, 33032, 33021, 33034, 33020, 33007, 33261, 7828 33260, 33280, 33296, {f: 2, c: 33322}, 33320, 33324, 33467, 33579, 33618, 7829 33620, 33610, 33592, 33616, 33609, 33589, 33588, 33615, 33586, 33593, 7830 33590, 33559, 33600, 33585, 33576, 33603, 34388, 34442, 34474, 34451, 7831 34468, 34473, 34444, 34467, 34460, 34928, 34935, {f: 2, c: 34945}, 34941, 7832 34937, 35352, 35344, 35342, 35340, 35349, 35338, 35351, 35347, 35350, 7833 35343, 35345, 35912, 35962, 35961, {f: 2, c: 36001}, [36215, 58442], 36524, 7834 36562, 36564, 36559, 36785, 36865, 36870, 36855, 36864, 36858, 36852, 7835 36867, 36861, 36869, 36856, 37013, 37089, 37085, 37090, 37202, 37197, 7836 37196, 37336, 37341, 37335, 37340, 37337, 38275, {f: 2, c: 38498}, 38497, 7837 38491, 38493, 38500, 38488, 38494, 38587, 39138, [12218, 39340], 7838 [12219, 39592], [12220, 39640], [12222, 39717], [12224, 39730], 7839 [12225, 39740], 20094, 20602, [20605, 57382], 20572, 20551, 20547, 20556, 7840 20570, 20553, 20581, 20598, 20558, 20565, 20597, 20596, 20599, 20559, 7841 20495, 20591, 20589, 20828, 20885, 20976, 21098, 21103, 21202, 21209, 7842 21208, 21205, 21264, 21263, 21273, {f: 2, c: 21311}, 21310, 21443, 26364, 7843 21830, 21866, 21862, 21828, 21854, 21857, 21827, 21834, 21809, 21846, 7844 21839, 21845, 21807, 21860, 21816, 21806, 21852, 21804, 21859, 21811, 7845 21825, 21847, 22280, 22283, 22281, 22495, 22533, 22538, 22534, 22496, 7846 22500, 22522, 22530, 22581, 22519, 22521, 22816, 22882, 23094, 23105, 7847 23113, 23142, 23146, 23104, 23100, 23138, 23130, 23110, 23114, 23408, 7848 23495, 23493, 23492, 23490, 23487, 23494, 23561, 23560, 23559, 23648, 7849 {f: 2, c: 23644}, 23815, 23814, 23822, 23835, 23830, 23842, 23825, 23849, 7850 23828, 23833, 23844, 23847, 23831, 24034, 24120, 24118, 24115, 24119, 7851 {f: 2, c: 24247}, 24246, 24245, 24254, 24373, 24375, 24407, 24428, 24425, 7852 24427, 24471, 24473, 24478, 24472, 24481, 24480, 24476, 24703, 24739, 7853 24713, 24736, 24744, 24779, 24756, 24806, 24765, 24773, 24763, 24757, 7854 24796, 24764, 24792, 24789, 24774, 24799, 24760, 24794, 24775, 7855 {f: 2, c: 25114}, 25160, 25504, 25511, 25458, 25494, 25506, 25509, 25463, 7856 25447, 25496, 25514, 25457, 25513, 25481, 25475, 25499, 25451, 25512, 7857 25476, 25480, 25497, 25505, 25516, 25490, 25487, 25472, 25467, 25449, 7858 25448, 25466, 25949, 25942, 25937, 25945, 25943, 21855, 25935, 25944, 7859 25941, 25940, 26012, 26011, 26028, 26063, {f: 2, c: 26059}, 26062, 26205, 7860 26202, 26212, 26216, 26214, 26206, 26361, 21207, 26395, 26753, 26799, 7861 26786, 26771, 26805, 26751, 26742, 26801, 26791, 26775, 26800, 26755, 7862 26820, 26797, 26758, 26757, 26772, 26781, 26792, 26783, 26785, 26754, 7863 27442, 27578, {f: 2, c: 27627}, 27691, 28046, 28092, 28147, 28121, 28082, 7864 28129, 28108, 28132, 28155, 28154, 28165, 28103, 28107, 28079, 28113, 7865 28078, 28126, 28153, 28088, 28151, 28149, 28101, 28114, 28186, 28085, 7866 28122, 28139, 28120, 28138, 28145, 28142, 28136, 28102, 28100, 28074, 7867 28140, 28095, 28134, 28921, {f: 2, c: 28937}, 28925, 28911, 29245, 29309, 7868 29313, 29468, 29467, 29462, 29459, 29465, 29575, 29701, 29706, 29699, 7869 29702, 29694, 29709, 29920, {f: 2, c: 29942}, 29980, 29986, 7870 {f: 2, c: 30053}, 30050, 30064, 30095, {f: 2, c: 30164}, 30133, 30154, 7871 30157, 30350, 30420, 30418, 30427, 30519, 30526, 30524, 30518, 30520, 7872 30522, 30827, 30787, 30798, 31077, 31080, 31085, 31227, 31378, 31381, 7873 31520, 31528, 31515, 31532, 31526, 31513, 31518, 31534, 31890, 31895, 7874 31893, 32070, 32067, 32113, 32046, 32057, 32060, 32064, 32048, 32051, 7875 32068, 32047, 32066, 32050, 32049, 32573, 32670, 32666, 32716, 32718, 7876 32722, 32796, 32842, 32838, 33071, 33046, 33059, 33067, 33065, 33072, 7877 33060, 33282, 33333, 33335, 33334, 33337, 33678, 33694, 33688, 33656, 7878 33698, 33686, 33725, 33707, 33682, 33674, 33683, 33673, 33696, 33655, 7879 {f: 2, c: 33659}, 33670, 33703, 34389, 24426, 34503, 34496, 34486, 34500, 7880 34485, 34502, 34507, 34481, 34479, 34505, 34899, 34974, 34952, 34987, 7881 34962, 34966, 34957, 34955, 35219, 35215, 35370, 35357, 35363, 35365, 7882 35377, 35373, 35359, 35355, 35362, 35913, 35930, 36009, 36012, 36011, 7883 36008, 36010, 36007, 36199, 36198, 36286, 36282, 36571, 36575, 36889, 7884 36877, 36890, 36887, 36899, 36895, 36893, 36880, 36885, 36894, 36896, 7885 36879, 36898, 36886, 36891, 36884, 37096, 37101, [37117, 58488], 37207, 7886 37326, 37365, 37350, 37347, 37351, 37357, 37353, 38281, 38506, 38517, 7887 38515, 38520, 38512, 38516, {f: 2, c: 38518}, 38508, 38592, 38634, 38633, 7888 31456, 31455, {f: 2, c: 38914}, [12226, 39770], [12227, 40165], 7889 [12228, 40565], [12229, 40575], [12230, 40613], [12231, 40635], 20642, 7890 20621, 20613, 20633, 20625, 20608, 20630, 20632, 20634, 26368, 20977, 7891 21106, {f: 2, c: 21108}, 21097, 21214, 21213, 21211, 21338, 21413, 21883, 7892 21888, 21927, 21884, 21898, 21917, 21912, 21890, 21916, 21930, 21908, 7893 21895, 21899, 21891, 21939, 21934, 21919, 21822, 21938, 21914, 21947, 7894 21932, 21937, 21886, 21897, 21931, 21913, 22285, 22575, 22570, 22580, 7895 22564, {f: 2, c: 22576}, 22561, 22557, 22560, {f: 2, c: 22777}, 22880, 7896 [23159, 57587], 23194, 23167, 23186, 23195, 23207, 23411, 23409, 23506, 7897 23500, 23507, 23504, {f: 2, c: 23562}, 23601, 23884, 23888, 23860, 23879, 7898 24061, 24133, 24125, 24128, 24131, 24190, 24266, {f: 2, c: 24257}, 24260, 7899 24380, 24429, {f: 2, c: 24489}, 24488, 24785, 24801, 24754, 24758, 24800, 7900 24860, 24867, 24826, 24853, 24816, 24827, 24820, 24936, 24817, 24846, 7901 24822, 24841, 24832, 24850, 25119, 25161, 25507, 25484, 25551, 25536, 7902 25577, 25545, 25542, 25549, 25554, 25571, 25552, 25569, 25558, 7903 {f: 2, c: 25581}, 25462, 25588, 25578, 25563, 25682, 25562, 25593, 25950, 7904 25958, {f: 2, c: 25954}, 26001, 26000, 26031, 26222, 26224, [26228, 57786], 7905 26230, 26223, 26257, 26234, 26238, 26231, {f: 2, c: 26366}, 26399, 26397, 7906 26874, 26837, 26848, 26840, 26839, 26885, 26847, 26869, 26862, 26855, 7907 26873, 26834, 26866, 26851, 26827, 26829, 26893, 26898, 26894, 26825, 7908 26842, 26990, 26875, 27454, 27450, 27453, 27544, 27542, 27580, 27631, 7909 {f: 2, c: 27694}, 27692, [28207, 57904], 28216, 28244, 28193, 28210, 28263, 7910 28234, 28192, 28197, 28195, 28187, 28251, 28248, 28196, 28246, 28270, 7911 28205, 28198, 28271, 28212, 28237, 28218, 28204, 28227, [28189, 57901], 7912 28222, 28363, 28297, 28185, 28238, 28259, 28228, 28274, 28265, 28255, 7913 {f: 2, c: 28953}, 28966, 28976, 28961, 28982, [29038, 57958], 28956, 29260, 7914 29316, 29312, 29494, 29477, 29492, 29481, 29754, 29738, 29747, 29730, 7915 29733, {f: 2, c: 29749}, 29748, 29743, 29723, 29734, 29736, 7916 {f: 2, c: 29989}, 30059, 30058, 30178, 30171, 30179, 30169, 30168, 30174, 7917 30176, {f: 2, c: 30331}, 30358, 30355, 30388, 30428, 30543, 30701, 30813, 7918 30828, 30831, 31245, 31240, 31243, 31237, 31232, 31384, 31383, 31382, 7919 31461, 31459, 31561, 31574, 31558, 31568, 31570, 31572, 31565, 31563, 7920 31567, [31569, 60510], 31903, 31909, 32094, 32080, 32104, 32085, 32043, 7921 32110, 32114, 32097, 32102, 32098, 32112, 32115, 21892, {f: 2, c: 32724}, 7922 32779, 32850, 32901, 33109, 33108, 33099, 33105, 33102, 33081, 33094, 7923 33086, 33100, 33107, 33140, 33298, 33308, 33769, 33795, 33784, 33805, 7924 33760, 33733, 33803, [33729, 58309], 33775, 33777, 33780, 33879, 33802, 7925 33776, 33804, 33740, 33789, 33778, 33738, 33848, 33806, 33796, 33756, 7926 33799, 33748, 33759, 34395, 34527, 34521, 34541, 34516, 34523, 34532, 7927 34512, 34526, 34903, {f: 2, c: 35009}, 34993, 35203, 35222, 35387, 35424, 7928 35413, 35422, 35388, 35393, 35412, 35419, 35408, 35398, 35380, 35386, 7929 35382, 35414, 35937, 35970, 36015, 36028, 36019, 36029, 36033, 36027, 7930 36032, 36020, 36023, 36022, 36031, 36024, 36234, 36229, 36225, 36302, 7931 36317, 36299, 36314, 36305, 36300, 36315, 36294, 36603, 36600, 36604, 7932 36764, 36910, 36917, 36913, 36920, 36914, 36918, 37122, 37109, 37129, 7933 37118, 37219, 37221, 37327, {f: 2, c: 37396}, 37411, 37385, 37406, 37389, 7934 37392, 37383, 37393, 38292, 38287, 38283, 38289, 38291, 38290, 38286, 7935 38538, 38542, 38539, 38525, {f: 2, c: 38533}, 38541, 38514, 38532, 38593, 7936 38597, 38596, {f: 2, c: 38598}, 38639, 38642, 38860, {f: 2, c: 38917}, 7937 38920, 39143, 39146, 39151, 39145, 39154, 39149, 39342, 39341, 7938 [12232, 40643], [12233, 40653], [12234, 40657], 20098, 20653, 20661, 7939 {f: 2, c: 20658}, 20677, 20670, 20652, 20663, 20667, 20655, 20679, 21119, 7940 21111, 21117, 21215, 21222, 21220, {f: 2, c: 21218}, 21295, 21983, 21992, 7941 21971, 21990, 21966, 21980, 21959, 21969, {f: 2, c: 21987}, 21999, 21978, 7942 21985, {f: 2, c: 21957}, 21989, 21961, {f: 2, c: 22290}, 22622, 22609, 7943 22616, 22615, 22618, 22612, 22635, 22604, 22637, 22602, 22626, 22610, 7944 22603, 22887, 23233, 23241, 23244, 23230, 23229, 23228, 23219, 23234, 7945 23218, 23913, 23919, 24140, 24185, 24265, 24264, 24338, 24409, 24492, 7946 24494, 24858, 24847, 24904, 24863, 24819, 24859, 24825, 24833, 24840, 7947 24910, 24908, 24900, 24909, 24894, 24884, 24871, 24845, 24838, 24887, 7948 {f: 2, c: 25121}, 25619, 25662, 25630, 25642, 25645, 25661, 25644, 25615, 7949 25628, 25620, 25613, 25654, {f: 2, c: 25622}, 25606, 25964, 26015, 26032, 7950 26263, 26249, {f: 2, c: 26247}, 26262, 26244, 26264, 26253, 26371, 27028, 7951 26989, 26970, 26999, 26976, 26964, 26997, 26928, 27010, 26954, 26984, 7952 26987, 26974, 26963, 27001, 27014, 26973, 26979, 26971, 27463, 27506, 7953 27584, 27583, 27603, 27645, 28322, 28335, 28371, 28342, 28354, 28304, 7954 28317, 28359, 28357, 28325, 28312, 28348, 28346, 28331, 28369, 28310, 7955 28316, 28356, 28372, 28330, 28327, 28340, 29006, 29017, 29033, 29028, 7956 29001, 29031, 29020, 29036, 29030, 29004, 29029, 29022, 28998, 29032, 7957 29014, 29242, 29266, 29495, 29509, 29503, 29502, 29807, 29786, 29781, 7958 29791, 29790, 29761, 29759, 29785, 29787, [29788, 58019], 30070, 30072, 7959 30208, 30192, 30209, 30194, 30193, 30202, 30207, 30196, 30195, 7960 {f: 2, c: 30430}, 30555, 30571, 30566, 30558, 30563, 30585, 30570, 30572, 7961 30556, 30565, 30568, 30562, 30702, 30862, 30896, {f: 2, c: 30871}, 30860, 7962 30857, 30844, 30865, 30867, 30847, 31098, 31103, 31105, 33836, 31165, 7963 31260, 31258, 31264, 31252, 31263, 31262, {f: 2, c: 31391}, 31607, 31680, 7964 31584, 31598, 31591, 31921, 31923, 31925, 32147, 32121, 32145, 32129, 7965 32143, 32091, 32622, {f: 2, c: 32617}, 32626, 32681, 32680, 32676, 32854, 7966 32856, 32902, 32900, 33137, 33136, 33144, 33125, 33134, 33139, 33131, 7967 {f: 2, c: 33145}, 33126, 33285, 33351, 33922, 33911, 33853, 33841, 33909, 7968 33894, 33899, 33865, 33900, 33883, 33852, 33845, 33889, 33891, 33897, 7969 33901, 33862, 34398, 34396, 34399, 34553, 34579, 34568, 34567, 34560, 7970 34558, 34555, {f: 2, c: 34562}, 34566, 34570, 34905, 35039, 35028, 35033, 7971 35036, 35032, 35037, 35041, 35018, 35029, 35026, 35228, 35299, 35435, 7972 {f: 2, c: 35442}, 35430, 35433, 35440, 35463, 35452, 35427, 35488, 35441, 7973 35461, 35437, 35426, 35438, 35436, 35449, 35451, 35390, 35432, 35938, 7974 35978, 35977, 36042, {f: 2, c: 36039}, 36036, 36018, 36035, 36034, 36037, 7975 36321, 36319, 36328, 36335, 36339, 36346, 36330, 36324, 36326, 36530, 7976 36611, 36617, 36606, 36618, 36767, 36786, 36939, 36938, 36947, 36930, 7977 36948, 36924, 36949, 36944, 36935, 36943, 36942, 36941, 36945, 36926, 7978 36929, 37138, 37143, 37228, 37226, 37225, 37321, 37431, 37463, 37432, 7979 37437, 37440, 37438, 37467, 37451, 37476, 37457, 37428, 37449, 37453, 7980 37445, 37433, 37439, 37466, 38296, 38552, {f: 2, c: 38548}, 38605, 38603, 7981 {f: 2, c: 38601}, 38647, 38651, 38649, 38646, 38742, 38772, 38774, 7982 {f: 2, c: 38928}, 38931, 38922, 38930, 38924, 39164, 39156, 7983 {f: 2, c: 39165}, 39347, 39345, 39348, 39649, 40169, 40578, [12237, 40718], 7984 [12238, 40723], [12239, 40736], 20711, 20718, 20709, 20694, [20717, 60903], 7985 20698, 20693, 20687, 20689, 20721, 20686, 20713, 20834, 20979, 21123, 7986 21122, 21297, 21421, 22014, 22016, 22043, 22039, 22013, 22036, 22022, 7987 22025, {f: 2, c: 22029}, 22007, 22038, 22047, 22024, 22032, 22006, 22296, 7988 22294, 22645, 22654, 22659, 22675, 22666, 22649, 22661, 22653, 22781, 7989 22821, 22818, 22820, 22890, 22889, 23265, 23270, 23273, 23255, 23254, 7990 23256, 23267, 23413, 23518, 23527, 23521, {f: 2, c: 23525}, 23528, 23522, 7991 23524, 23519, 23565, 23650, 23940, 23943, 24155, 24163, 24149, 24151, 7992 24148, 24275, 24278, 24330, 24390, 24432, 24505, 24903, 24895, 24907, 7993 24951, {f: 2, c: 24930}, 24927, 24922, 24920, 24949, 25130, 25735, 25688, 7994 25684, 25764, 25720, 25695, 25722, 25681, 25703, 25652, 25709, 25723, 7995 25970, 26017, 26071, 26070, 26274, 26280, 26269, 27036, 27048, 27029, 7996 27073, 27054, 27091, 27083, 27035, 27063, 27067, 27051, 27060, 27088, 7997 27085, 27053, 27084, 27046, 27075, 27043, 27465, 27468, 27699, 28467, 7998 28436, 28414, 28435, 28404, 28457, 28478, 28448, 28460, 28431, 28418, 7999 28450, 28415, 28399, 28422, 28465, 28472, 28466, 28451, 28437, 28459, 8000 28463, 28552, 28458, 28396, 28417, 28402, 28364, 28407, 29076, 29081, 8001 29053, 29066, 29060, 29074, 29246, 29330, 29334, 29508, 29520, 29796, 8002 29795, 29802, 29808, 29805, 29956, 30097, 30247, 30221, 30219, 30217, 8003 30227, 30433, 30435, 30596, 30589, 30591, 30561, 30913, 30879, 30887, 8004 30899, 30889, 30883, {f: 2, c: 31118}, 31117, 31278, 31281, 31402, 31401, 8005 31469, 31471, 31649, 31637, 31627, 31605, 31639, 31645, 31636, 31631, 8006 [31672, 58170], 31623, 31620, 31929, {f: 2, c: 31933}, 32187, 32176, 32156, 8007 {f: 2, c: 32189}, 32160, 32202, 32180, 32178, 32177, 32186, 32162, 32191, 8008 32181, 32184, 32173, [32210, 58202], 32199, 32172, 32624, {f: 2, c: 32736}, 8009 32735, 32862, 32858, 32903, 33104, 33152, 33167, 33160, 33162, 33151, 8010 33154, 33255, 33274, 33287, 33300, 33310, 33355, 33993, 33983, 33990, 8011 33988, 33945, 33950, 33970, 33948, 33995, 33976, 33984, 34003, 33936, 8012 33980, 34001, 33994, 34623, 34588, 34619, 34594, 34597, 34612, 34584, 8013 34645, 34615, 34601, 35059, 35074, 35060, 35065, 35064, 35069, 35048, 8014 35098, 35055, 35494, 35468, 35486, 35491, 35469, 35489, 35475, 35492, 8015 35498, 35493, 35496, 35480, 35473, 35482, 35495, 35946, 35981, 35980, 8016 36051, {f: 2, c: 36049}, 36203, 36249, 36245, 36348, 36628, 36626, 36629, 8017 36627, 36771, 36960, 36952, 36956, 36963, 36953, 36958, 36962, 36957, 8018 36955, 37145, 37144, 37150, 37237, 37240, 37239, 37236, 37496, 37548, 8019 37504, 37509, 37528, 37526, 37499, 37523, 37532, 37544, 37500, 37521, 8020 38305, {f: 2, c: 38312}, 38307, 38309, 38308, 38553, 38556, 38555, 38604, 8021 38610, 38656, 38780, 38789, 38902, {f: 2, c: 38935}, 39087, 39089, 39171, 8022 39173, 39180, 39177, 39361, {f: 2, c: 39599}, 39654, {f: 2, c: 39745}, 8023 40180, 40182, 40179, 40636, [12240, 40763], [12241, 40778], 20740, 20736, 8024 20731, 20725, 20729, 20738, {f: 2, c: 20744}, 20741, 20956, 8025 {f: 3, c: 21127}, 21133, 21130, 21232, 21426, 22062, 22075, 22073, 22066, 8026 22079, 22068, 22057, 22099, 22094, 22103, 22132, 22070, {f: 2, c: 22063}, 8027 22656, 22687, 22686, 22707, 22684, 22702, 22697, 22694, 22893, 23305, 8028 23291, 23307, 23285, 23308, 23304, 23534, 23532, 23529, 23531, 8029 {f: 2, c: 23652}, 23965, 23956, 24162, 24159, 24161, 24290, 24282, 24287, 8030 24285, 24291, 24288, 24392, 24433, 24503, 24501, 24950, 24935, 24942, 8031 24925, 24917, 24962, 24956, 24944, 24939, 24958, 24999, 24976, 25003, 8032 24974, 25004, 24986, 24996, 24980, 25006, 25134, 25705, 25711, 25721, 8033 25758, 25778, 25736, [25744, 57745], 25776, 25765, 25747, 25749, 25769, 8034 25746, 25774, 25773, 25771, 25754, 25772, 25753, 25762, 25779, 25973, 8035 {f: 2, c: 25975}, 26286, 26283, 26292, 26289, 27171, 27167, 27112, 27137, 8036 27166, 27161, 27133, 27169, 27155, 27146, 27123, 27138, 27141, 27117, 8037 27153, 27472, 27470, 27556, {f: 2, c: 27589}, 28479, 28540, 28548, 28497, 8038 28518, 28500, 28550, 28525, 28507, 28536, 28526, 28558, 28538, 28528, 8039 28516, 28567, 28504, 28373, 28527, 28512, 28511, 29087, 29100, 29105, 8040 29096, 29270, 29339, 29518, 29527, 29801, 29835, 29827, 29822, 29824, 8041 30079, 30240, 30249, 30239, 30244, 30246, {f: 2, c: 30241}, 30362, 30394, 8042 30436, 30606, 30599, 30604, 30609, 30603, 30923, 30917, 30906, 30922, 8043 30910, 30933, 30908, 30928, 31295, 31292, 31296, 31293, 31287, 31291, 8044 31407, 31406, 31661, 31665, 31684, 31668, {f: 2, c: 31686}, 31681, 31648, 8045 31692, 31946, 32224, 32244, 32239, 32251, 32216, 32236, 32221, 32232, 8046 32227, 32218, 32222, 32233, 32158, 32217, 32242, 32249, 32629, 32631, 8047 32687, 32745, 32806, {f: 3, c: 33179}, 33184, 33178, 33176, 34071, 34109, 8048 34074, 34030, {f: 2, c: 34092}, 34067, 34065, 34083, 34081, 34068, 34028, 8049 34085, 34047, 34054, 34690, 34676, 34678, 34656, 34662, 34680, 34664, 8050 34649, 34647, 34636, 34643, 34907, 34909, 35088, 35079, {f: 2, c: 35090}, 8051 35093, 35082, 35516, 35538, 35527, 35524, 35477, 35531, 35576, 35506, 8052 35529, 35522, 35519, 35504, 35542, 35533, 35510, 35513, 35547, 35916, 8053 35918, 35948, 36064, 36062, 36070, 36068, {f: 2, c: 36076}, 8054 {f: 2, c: 36066}, 36060, 36074, 36065, 36205, 36255, 36259, 36395, 36368, 8055 36381, 36386, 36367, 36393, 36383, 36385, 36382, 36538, 36637, 36635, 8056 36639, 36649, 36646, 36650, 36636, 36638, 36645, 36969, 36974, 36968, 8057 36973, 36983, 37168, 37165, 37159, 37169, 37255, 37257, 37259, 37251, 8058 37573, 37563, 37559, 37610, 37604, 37569, 37555, 37564, 37586, 37575, 8059 37616, 37554, 38317, 38321, 38660, {f: 2, c: 38662}, 38665, 38752, 38797, 8060 38795, 38799, 38945, 38955, 38940, 39091, 39178, 39187, 39186, 39192, 8061 39389, 39376, 39391, 39387, 39377, 39381, 39378, 39385, 39607, 8062 {f: 2, c: 39662}, 39719, 39749, 39748, 39799, 39791, 40198, 40201, 40195, 8063 40617, 40638, 40654, 22696, [12242, 40786], 20754, 20760, 20756, 20752, 8064 20757, 20864, 20906, 20957, 21137, 21139, 21235, 22105, 22123, 22137, 8065 22121, 22116, 22136, 22122, 22120, 22117, 22129, 22127, 22124, 22114, 8066 22134, 22721, 22718, 22727, 22725, 22894, 23325, 23348, 23416, 23536, 8067 23566, 24394, 25010, 24977, 25001, 24970, 25037, 25014, 25022, 25034, 8068 25032, 25136, 25797, 25793, 25803, {f: 2, c: 25787}, 25818, 25796, 25799, 8069 25794, 25805, 25791, 25810, 25812, 25790, 25972, 26310, 26313, 26297, 8070 26308, 26311, 26296, 27197, 27192, 27194, 27225, 27243, 27224, 27193, 8071 27204, 27234, 27233, 27211, 27207, 27189, 27231, 27208, 27481, 27511, 8072 27653, 28610, 28593, 28577, 28611, 28580, 28609, 28583, 28595, 28608, 8073 28601, [28598, 60318], 28582, 28576, 28596, 29118, 29129, 29136, 29138, 8074 29128, 29141, 29113, 29134, 29145, 29148, {f: 2, c: 29123}, 29544, 29852, 8075 29859, 29848, 29855, 29854, 29922, {f: 2, c: 29964}, 30260, 30264, 30266, 8076 30439, 30437, 30624, {f: 2, c: 30622}, 30629, 30952, 30938, 30956, 30951, 8077 31142, {f: 2, c: 31309}, 31302, 31308, 31307, 31418, 31705, 31761, 31689, 8078 31716, 31707, 31713, 31721, 31718, {f: 2, c: 31957}, 32266, 32273, 32264, 8079 32283, 32291, 32286, [32285, 58211], 32265, 32272, 32633, 32690, 8080 {f: 2, c: 32752}, 32750, [32808, 58239], 33203, 33193, 33192, 33275, 33288, 8081 {f: 2, c: 33368}, 34122, 34137, 34120, {f: 2, c: 34152}, 34115, 34121, 8082 34157, 34154, 34142, 34691, 34719, 34718, 34722, 34701, 34913, 35114, 8083 35122, 35109, 35115, 35105, 35242, [35238, 58391], 35558, 35578, 35563, 8084 35569, 35584, 35548, 35559, 35566, 35582, {f: 2, c: 35585}, 35575, 35565, 8085 35571, 35574, 35580, 35947, 35949, 35987, 36084, 36420, 36401, 36404, 8086 36418, 36409, 36405, 36667, 36655, 36664, 36659, 36776, 36774, 36981, 8087 36980, 36984, 36978, 36988, 36986, 37172, 37266, 37664, 37686, 37624, 8088 37683, 37679, 37666, 37628, 37675, 37636, 37658, 37648, 37670, 37665, 8089 37653, 37678, 37657, 38331, {f: 2, c: 38567}, 38570, 38613, 38670, 38673, 8090 38678, 38669, 38675, 38671, 38747, [38748, 58565], 38758, 38808, 38960, 8091 38968, 38971, 38967, 38957, 38969, 38948, 39184, 39208, 39198, 39195, 8092 39201, 39194, 39405, 39394, 39409, 39608, 39612, 39675, 39661, 39720, 8093 39825, 40213, 40227, 40230, 40232, 40210, 40219, 40664, 40660, 8094 [12243, 40845], [12244, 40860], 20778, 20767, 20769, 20786, 21237, 22158, 8095 22144, 22160, 22149, 22151, 22159, 22741, 22739, 22737, 22734, 23344, 8096 23338, 23332, 23418, 23607, 23656, 23996, 23994, 23997, 23992, 24171, 8097 24396, 24509, 25033, 25026, 25031, 25062, 25035, 25138, 25140, 25806, 8098 25802, 25816, 25824, 25840, 25830, 25836, 25841, 25826, 25837, 8099 {f: 2, c: 25986}, 26329, 26326, 27264, 27284, 27268, 27298, 27292, 27355, 8100 27299, 27262, 27287, 27280, 27296, 27484, 27566, 27610, 27656, 28632, 8101 28657, {f: 2, c: 28639}, 28635, 28644, 28651, 28655, 28544, 28652, 28641, 8102 28649, 28629, 28654, 28656, 29159, [29151, 60361], 29166, 29158, 29157, 8103 29165, 29164, 29172, 29152, 29237, 29254, 29552, 29554, 29865, 29872, 8104 29862, 29864, 30278, 30274, 30284, 30442, 30643, 30634, 30640, 30636, 8105 30631, 30637, 30703, 30967, 30970, 30964, 30959, 30977, 31143, 31146, 8106 31319, 31423, 31751, 31757, 31742, 31735, 31756, 31712, 31968, 31964, 8107 31966, 31970, 31967, 31961, 31965, 32302, 32318, 32326, 32311, 32306, 8108 32323, 32299, 32317, 32305, 32325, 32321, 32308, 32313, 32328, 32309, 8109 32319, 32303, 32580, 32755, 32764, {f: 2, c: 32881}, 32880, 32879, 32883, 8110 33222, 33219, 33210, 33218, 33216, 33215, 33213, 33225, 33214, 33256, 8111 33289, 33393, 34218, 34180, 34174, 34204, 34193, 34196, 34223, 34203, 8112 34183, 34216, 34186, 34214, 34407, 34752, 34769, 34739, 34770, 34758, 8113 34731, 34747, 34746, 34760, 34763, 35131, 35126, 35140, 35128, 35133, 8114 35244, 35598, 35607, 35609, 35611, 35594, 35616, 35613, 35588, 35600, 8115 35905, 35903, 35955, 36090, 36093, 36092, 36088, 36091, 36264, 36425, 8116 36427, 36424, 36426, 36676, 36670, 36674, 36677, 36671, 36991, 36989, 8117 36996, {f: 2, c: 36993}, 36992, 37177, 37283, 37278, 37276, 37709, 37762, 8118 37672, 37749, 37706, 37733, 37707, 37656, 37758, 37740, 37723, 37744, 8119 37722, 37716, {f: 3, c: 38346}, 38344, 38342, 38577, 38584, 38614, 38684, 8120 38686, 38816, 38867, 38982, 39094, 39221, 39425, 39423, 39854, 39851, 8121 39850, 39853, 40251, 40255, 40587, 40655, 40670, {f: 2, c: 40668}, 40667, 8122 40766, 40779, 21474, 22165, 22190, 22745, 22744, 23352, 24413, 25059, 8123 25139, 25844, 25842, 25854, 25862, {f: 2, c: 25850}, 25847, 26039, 26332, 8124 26406, 27315, 27308, 27331, 27323, 27320, 27330, {f: 2, c: 27310}, 27487, 8125 27512, 27567, 28681, 28683, 28670, 28678, 28666, 28689, 28687, 8126 {f: 2, c: 29179}, 29182, 29176, 29559, 29557, 29863, 29887, 29973, 30294, 8127 30296, 30290, 30653, 30655, {f: 2, c: 30651}, 30990, 31150, 8128 {f: 2, c: 31329}, 31328, {f: 2, c: 31428}, 31787, 31783, 31786, 31774, 8129 31779, 31777, 31975, {f: 2, c: 32340}, 32350, 32346, 32353, 32338, 32345, 8130 32584, 32761, 32763, 32887, 32886, 33229, 33231, 33290, 34255, 34217, 8131 34253, 34256, 34249, 34224, 34234, 34233, 34799, 34796, 34802, 34784, 8132 35206, 35250, 35316, 35624, 35641, 35628, 35627, 35920, 36101, 36441, 8133 36451, 36454, 36452, 36447, 36437, 36544, 36681, 36685, 36999, 36995, 8134 37000, {f: 2, c: 37291}, 37328, 37780, 37770, 37782, 37794, 37811, 37806, 8135 37804, 37808, 37784, 37786, 37783, 38356, 38358, 38352, 38357, 38626, 8136 38620, 38617, 38619, 38622, 38692, 38819, 38822, 38829, 38905, 38989, 8137 38991, 38988, 38990, 38995, 39098, {f: 2, c: 39230}, 39229, 39214, 39333, 8138 39438, 39617, 39683, 39686, 39759, 39758, 39757, 39882, 39881, 39933, 8139 39880, 39872, 40273, 40285, 40288, 40672, 40725, 40748, 20787, 22181, 8140 22184, {f: 2, c: 22750}, 22754, 23541, 40848, 24300, 25074, 25079, 25078, 8141 25077, 25856, 25871, 26336, 26333, 27365, 27357, 27354, 27347, 28699, 8142 28703, 28712, 28698, 28701, 28693, 28696, 29190, 29197, 29272, 29346, 8143 29560, 29562, 29885, 29898, 29923, 30087, 30086, 30303, 30305, 30663, 8144 31001, 31153, 31339, 31337, {f: 2, c: 31806}, 31800, 31805, 31799, 31808, 8145 32363, 32365, 32377, {f: 2, c: 32361}, 32371, 32645, 32694, 32697, 32696, 8146 33240, 34281, 34269, 34282, 34261, {f: 2, c: 34276}, 34295, 34811, 34821, 8147 34829, 34809, 34814, 35168, 35167, 35158, 35166, 35649, 35676, 35672, 8148 35657, 35674, {f: 2, c: 35662}, 35654, 35673, 36104, 36106, 36476, 36466, 8149 36487, 36470, 36460, 36474, 36468, 36692, 36686, 36781, {f: 2, c: 37002}, 8150 37297, 37294, 37857, 37841, 37855, 37827, 37832, {f: 2, c: 37852}, 37846, 8151 37858, 37837, 37848, 37860, 37847, 37864, 38364, 38580, 38627, 38698, 8152 38695, 38753, 38876, 38907, 39006, 39000, 39003, 39100, 39237, 39241, 8153 39446, 39449, 39693, 39912, 39911, 39894, 39899, 40329, 40289, 40306, 8154 40298, 40300, 40594, 40599, 40595, 40628, 21240, 22199, 22198, 22196, 8155 22204, 22756, 23360, 23363, 23421, 23542, 24009, 25080, 25082, 25880, 8156 25876, 25881, 26342, 26407, 27372, 28734, 28720, 28722, 29200, 29563, 8157 29903, 30306, 30309, 31014, 31018, 31020, 31019, 31431, 31478, 31820, 8158 31811, 31821, {f: 2, c: 31983}, 36782, 32381, 32380, 32386, 32588, 32768, 8159 33242, 33382, 34299, 34297, 34321, 34298, 34310, 34315, 34311, 34314, 8160 {f: 2, c: 34836}, 35172, 35258, 35320, 35696, 35692, 35686, 35695, 35679, 8161 35691, 36111, 36109, 36489, 36481, 36485, 36482, 37300, 37323, 37912, 8162 37891, 37885, 38369, 38704, 39108, 39250, 39249, 39336, 39467, 39472, 8163 39479, 39477, 39955, 39949, 40569, 40629, 40680, 40751, 40799, 40803, 8164 40801, {f: 2, c: 20791}, 22209, 22208, 22210, 22804, 23660, 24013, 25084, 8165 25086, 25885, 25884, 26005, 26345, 27387, 27396, 27386, 27570, 28748, 8166 29211, 29351, 29910, 29908, 30313, 30675, 31824, 32399, 32396, 32700, 8167 34327, 34349, 34330, 34851, 34850, 34849, 34847, 35178, 35180, 35261, 8168 35700, 35703, 35709, 36115, 36490, 36493, 36491, 36703, 36783, 37306, 8169 37934, 37939, 37941, 37946, 37944, 37938, 37931, 38370, {f: 2, c: 38712}, 8170 38706, [38911, 58586], 39015, 39013, 39255, 39493, 39491, 39488, 39486, 8171 39631, 39764, 39761, 39981, 39973, 40367, 40372, 40386, 40376, 40605, 8172 40687, 40729, 40796, {f: 2, c: 40806}, 20796, 20795, 22216, 22218, 22217, 8173 23423, 24020, 24018, 24398, 25087, 25892, 27402, 27489, 28753, 28760, 8174 29568, 29924, 30090, 30318, 30316, 31155, 31840, 31839, 32894, 32893, 8175 33247, 35186, 35183, 35324, 35712, {f: 2, c: 36118}, 36497, 36499, 36705, 8176 37192, 37956, {f: 2, c: 37969}, {f: 2, c: 38717}, 38851, 38849, 39019, 8177 39253, 39509, 39501, 39634, 39706, 40009, 39985, 39998, 39995, 40403, 8178 40407, 40756, 40812, 40810, 40852, 22220, 24022, 25088, 25891, 25899, 8179 25898, 26348, 27408, 29914, 31434, 31844, 31843, 31845, 32403, 32406, 8180 32404, 33250, 34360, 34367, 34865, 35722, 37008, 37007, 37987, 37984, 8181 37988, 38760, 39023, 39260, {f: 2, c: 39514}, 39511, {f: 2, c: 39635}, 8182 39633, 40020, 40023, 40022, 40421, 40607, 40692, 22225, 22761, 25900, 8183 28766, {f: 2, c: 30321}, [30679, 60226], 32592, 32648, 34870, 34873, 34914, 8184 35731, 35730, 35734, 33399, 36123, 37312, 37994, 38722, 38728, 38724, 8185 38854, 39024, 39519, 39714, 39768, 40031, {f: 2, c: 40441}, 8186 {f: 2, c: 40572}, 40711, 40823, 40818, 24307, 27414, 28771, 31852, 31854, 8187 34875, 35264, 36513, 37313, 38002, 38000, 39025, 39262, 39638, 39715, 8188 40652, 28772, 30682, 35738, 38007, 38857, 39522, 39525, 32412, 35740, 8189 36522, 37317, {f: 2, c: 38013}, 38012, {f: 2, c: 40055}, 40695, 35924, 8190 38015, 40474, 29224, 39530, 39729, 40475, 40478, 31858, 20034, 20060, 8191 [12048, 20981], [12053, 21274], [12058, 21378], 19975, 19980, 20039, 20109, 8192 [12062, 22231], [12076, 23662], [12091, 24435], 19983, 20871, 19982, 20014, 8193 20115, 20162, 20169, 20168, 20888, 21244, 21356, 21433, 22304, 22787, 8194 22828, [23568, 60417], 24063, 26081, [12110, 27571], 27596, [12115, 27668], 8195 [12121, 29247], 20017, 20028, 20200, 20188, 20201, 20193, 20189, 20186, 8196 21004, 21001, 21276, 21324, {f: 2, c: 22306}, 22807, 22831, 23425, 23428, 8197 23570, 23611, 23668, 23667, 24068, 24192, 24194, 24521, 25097, 25168, 8198 27669, 27702, 27715, 27711, 27707, 29358, 29360, 29578, [12145, 31160], 8199 32906, 38430, 20238, 20248, 20268, 20213, 20244, 20209, 20224, 20215, 8200 20232, 20253, 20226, 20229, 20258, 20243, 20228, 20212, 20242, 20913, 8201 21011, 21008, 21158, 21282, 21279, 21325, 21386, 21511, 22241, 22239, 8202 22318, 22314, 22324, 22844, 22912, 22908, 22917, 22907, 22910, 22903, 8203 22911, 23382, 23573, 23589, 23676, {f: 2, c: 23674}, 23678, 24031, 8204 [24181, 57646], 24196, 24322, 24346, 24436, 24533, 24532, 24527, 25180, 8205 25182, 25188, 25185, 25190, 25186, 25177, 25184, 25178, 25189, 25911, 8206 26095, 26094, 26430, 26425, 26424, 26427, 26426, 26431, 26428, 26419, 8207 27672, 27718, 27730, 27740, 27727, [27722, 60796], 27732, {f: 2, c: 27723}, 8208 28785, 29278, {f: 2, c: 29364}, 29582, 29994, 30335, 31349, [12153, 32593], 8209 [12171, 33400], 33404, 33408, 33405, 33407, [12172, 34381], [12177, 35198], 8210 37017, [37015, 59347], 37016, 37019, 37012, 38434, 38436, 38432, 38435, 8211 20310, 20283, 20322, 20297, 20307, 20324, 20286, 20327, 20306, 20319, 8212 20289, 20312, 20269, 20275, 20287, 20321, 20879, 20921, 21020, 21022, 8213 21025, {f: 2, c: 21165}, 21257, 21347, 21362, {f: 2, c: 21390}, 21552, 8214 21559, 21546, 21588, 21573, 21529, 21532, 21541, 21528, 21565, 21583, 8215 21569, 21544, 21540, 21575, 22254, 22247, 22245, 22337, 22341, 22348, 8216 22345, 22347, 22354, 22790, 22848, 22950, 22936, 22944, 22935, 22926, 8217 22946, 22928, 22927, 22951, 22945, 23438, 23442, 23592, 23594, 23693, 8218 23695, 23688, 23691, 23689, 23698, 23690, 23686, 23699, 23701, 24032, 8219 24074, 24078, 24203, 24201, 24204, 24200, 24205, 24325, 24349, 24440, 8220 24438, 24530, 24529, 24528, 24557, 24552, 24558, 24563, 24545, 24548, 8221 24547, 24570, 24559, 24567, 24571, 24576, 24564, 25146, 25219, 25228, 8222 {f: 2, c: 25230}, 25236, 25223, 25201, 25211, 25210, 25200, 25217, 25224, 8223 25207, 25213, 25202, 25204, 26096, 26100, 26099, 26098, 26101, 26437, 8224 26439, 26457, 26453, 26444, 26440, 26461, 26445, 26458, 26443, 27600, 8225 {f: 2, c: 27673}, 27768, 27751, 27755, 27780, 27787, 27791, 27761, 27759, 8226 27753, 27802, 27757, 27783, 27797, [27804, 57900], 27750, 27763, 27749, 8227 27771, 27790, 28788, 28794, 29283, 29375, 29373, 29379, 29382, 29377, 8228 29370, 29381, 29589, 29591, {f: 2, c: 29587}, 29586, 30010, 30009, 8229 {f: 2, c: 30100}, 30337, 31037, 32820, 32917, 32921, 32912, 32914, 32924, 8230 33424, 33423, 33413, 33422, 33425, 33427, 33418, {f: 2, c: 33411}, 8231 [12184, 35960], 36809, 36799, 37023, 37025, 37029, 37022, 37031, 37024, 8232 38448, 38440, 38447, 38445, 20019, 20376, 20348, 20357, 20349, 20352, 8233 20359, 20342, 20340, 20361, 20356, 20343, 20300, 20375, 20330, 20378, 8234 20345, 20353, 20344, 20368, 20380, 20372, 20382, 20370, 20354, 20373, 8235 20331, 20334, 20894, 20924, 20926, 21045, {f: 2, c: 21042}, 21062, 21041, 8236 21180, {f: 2, c: 21258}, 21308, 21394, 21396, 21639, 21631, 21633, 21649, 8237 21634, 21640, 21611, 21626, 21630, 21605, 21612, 21620, 21606, 21645, 8238 21615, 21601, 21600, 21656, 21603, 21607, 21604, 22263, 22265, 22383, 8239 22386, 22381, 22379, 22385, 22384, 22390, 22400, 22389, 22395, 8240 {f: 2, c: 22387}, 22370, 22376, 22397, 22796, 22853, 22965, 22970, 22991, 8241 22990, 22962, 22988, 22977, 22966, 22972, 22979, 22998, 22961, 22973, 8242 22976, 22984, 22964, 22983, 23394, 23397, 23443, 23445, 23620, 23623, 8243 23726, 23716, 23712, 23733, 23727, 23720, 23724, 23711, 23715, 23725, 8244 23714, 23722, 23719, 23709, 23717, 23734, 23728, 23718, 24087, 24084, 8245 24089, 24360, {f: 3, c: 24354}, 24404, 24450, 24446, 24445, 24542, 24549, 8246 24621, 24614, 24601, 24626, 24587, 24628, 24586, 24599, 24627, 24602, 8247 24606, 24620, 24610, 24589, 24592, 24622, 24595, 24593, 24588, 24585, 8248 24604, 25108, 25149, 25261, 25268, 25297, 25278, 25258, 25270, 25290, 8249 25262, 25267, 25263, 25275, 25257, 25264, 25272, 25917, 26024, 26043, 8250 26121, 26108, 26116, 26130, 26120, 26107, 26115, 26123, 26125, 26117, 8251 26109, 26129, 26128, 26358, 26378, 26501, 26476, 26510, 26514, 26486, 8252 26491, 26520, 26502, 26500, 26484, 26509, 26508, 26490, 26527, 26513, 8253 26521, 26499, 26493, 26497, {f: 2, c: 26488}, 26516, 27429, 27520, 27518, 8254 27614, 27677, 27795, 27884, 27883, 27886, 27865, 27830, 27860, 27821, 8255 27879, 27831, 27856, 27842, 27834, 27843, 27846, 27885, 27890, 27858, 8256 27869, 27828, 27786, 27805, 27776, 27870, 27840, 27952, 27853, 27847, 8257 27824, 27897, 27855, 27881, 27857, 28820, 28824, 28805, 28819, 28806, 8258 28804, 28817, 28822, 28802, 28826, 28803, 29290, 29398, 29387, 29400, 8259 29385, 29404, 29394, 29396, 29402, 29388, 29393, 29604, 29601, 29613, 8260 29606, 29602, 29600, 29612, 29597, 29917, 29928, {f: 2, c: 30015}, 30014, 8261 30092, 30104, 30383, 30451, 30449, 30448, 30453, 30712, 30716, 30713, 8262 30715, 30714, 30711, 31042, 31039, 31173, 31352, 31355, 31483, 31861, 8263 31997, 32821, 32911, 32942, 32931, 32952, 32949, 32941, 33312, 33440, 8264 33472, 33451, 33434, 33432, 33435, 33461, 33447, 33454, 33468, 33438, 8265 33466, 33460, 33448, 33441, 33449, 33474, 33444, 33475, 33462, 33442, 8266 34416, 34415, {f: 2, c: 34413}, 35926, 36818, 36811, 36819, 36813, 36822, 8267 36821, 36823, 37042, 37044, 37039, 37043, 37040, 38457, 38461, 38460, 8268 38458, 38467, 20429, 20421, 20435, 20402, 20425, 20427, 20417, 20436, 8269 20444, 20441, [20411, 60346], 20403, 20443, 20423, 20438, 20410, 20416, 8270 20409, 20460, 21060, 21065, 21184, 21186, 21309, 21372, 21399, 21398, 8271 21401, 21400, 21690, 21665, 21677, 21669, 21711, 21699, 33549, 21687, 8272 21678, 21718, 21686, {f: 2, c: 21701}, 21664, 21616, 21692, 21666, 21694, 8273 21618, 21726, 21680, 22453, {f: 2, c: 22430}, 22436, 22412, 22423, 22429, 8274 22427, 22420, 22424, 22415, 22425, 22437, 22426, 22421, 22772, 22797, 8275 22867, 23009, 23006, 23022, 23040, 23025, 23005, 23034, 23037, 23036, 8276 23030, 23012, 23026, 23031, 23003, 23017, 23027, 23029, 23008, 23038, 8277 23028, 23021, 23464, 23628, 23760, 23768, 23756, 23767, 23755, 23771, 8278 23774, 23770, 23753, 23751, 23754, 23766, {f: 2, c: 23763}, 23759, 23752, 8279 23750, 23758, 23775, 23800, 24057, {f: 3, c: 24097}, 24096, 24100, 24240, 8280 24228, 24226, 24219, 24227, 24229, 24327, 24366, 24406, 24454, 24631, 8281 24633, 24660, 24690, 24670, 24645, 24659, 24647, 24649, 24667, 24652, 8282 24640, 24642, 24671, 24612, 24644, 24664, 24678, 24686, {f: 2, c: 25154}, 8283 25295, 25357, 25355, 25333, 25358, 25347, 25323, 25337, 25359, 25356, 8284 25336, 25334, 25344, {f: 2, c: 25363}, 25338, 25365, 25339, 25328, 25921, 8285 25923, 26026, 26047, 26166, 26145, 26162, 26165, 26140, 26150, 26146, 8286 26163, 26155, 26170, 26141, 26164, 26169, 26158, {f: 2, c: 26383}, 26561, 8287 26610, 26568, 26554, 26588, 26555, 26616, 26584, 26560, 26551, 26565, 8288 26603, 26596, 26591, 26549, 26573, 26547, 26615, 26614, 26606, 26595, 8289 26562, 26553, 26574, 26599, 26608, 26546, 26620, 26566, 26605, 26572, 8290 26542, 26598, 26587, 26618, {f: 2, c: 26569}, 26563, 26602, 26571, 27432, 8291 27522, 27524, 27574, 27606, 27608, 27616, {f: 2, c: 27680}, 27944, 27956, 8292 27949, 27935, 27964, 27967, 27922, 27914, 27866, 27955, 27908, 27929, 8293 27962, 27930, 27921, 27904, 27933, 27970, 27905, 27928, 27959, 27907, 8294 27919, 27968, 27911, 27936, 27948, 27912, 27938, 27913, 27920, 28855, 8295 28831, 28862, 28849, 28848, 28833, {f: 2, c: 28852}, 28841, 29249, 8296 {f: 2, c: 29257}, 29292, 29296, 29299, 29294, 29386, 29412, 29416, 29419, 8297 29407, 29418, 29414, 29411, 29573, 29644, 29634, 29640, 29637, 29625, 8298 29622, 29621, 29620, 29675, 29631, 29639, 29630, 29635, 29638, 29624, 8299 29643, 29932, 29934, 29998, {f: 2, c: 30023}, 30119, 30122, 30329, 30404, 8300 30472, {f: 3, c: 30467}, 30474, 30455, 30459, 30458, {f: 2, c: 30695}, 8301 30726, {f: 2, c: 30737}, 30725, 30736, 30735, 30734, [30729, 58095], 30723, 8302 30739, 31050, 31052, 31051, 31045, 31044, 31189, 31181, 31183, 31190, 8303 31182, 31360, 31358, 31441, {f: 2, c: 31488}, 31866, {f: 2, c: 31864}, 8304 {f: 3, c: 31871}, 32003, 32008, 32001, 32600, 32657, 32653, 32702, 32775, 8305 {f: 2, c: 32782}, 32788, 32823, 32984, 32967, 32992, 32977, 32968, 32962, 8306 32976, 32965, 32995, 32985, 32988, 32970, 32981, 32969, 32975, 32983, 8307 32998, 32973, 33279, 33313, 33428, 33497, 33534, 33529, 33543, 33512, 8308 33536, 33493, 33594, 33515, 33494, 33524, 33516, 33505, 33522, 33525, 8309 33548, 33531, 33526, 33520, 33514, 33508, 33504, 33530, 33523, 33517, 8310 34423, 34420, 34428, 34419, 34881, 34894, 34919, 34922, 34921, 35283, 8311 35332, 35335, 36210, 36835, 36833, 36846, 36832, 37105, 37053, 37055, 8312 37077, 37061, 37054, 37063, 37067, 37064, [37332, 60294], 37331, 38484, 8313 38479, 38481, 38483, 38474, 38478, 20510, 20485, 20487, 20499, 20514, 8314 20528, 20507, 20469, 20468, 20531, 20535, 20524, {f: 2, c: 20470}, 20503, 8315 20508, 20512, 20519, 20533, 20527, 20529, 20494, 20826, 20884, 20883, 8316 20938, {f: 2, c: 20932}, 20936, 20942, 21089, 21082, 21074, 8317 {f: 2, c: 21086}, 21077, 21090, 21197, 21262, 21406, 21798, 21730, 21783, 8318 21778, 21735, 21747, 21732, 21786, 21759, 21764, 21768, 21739, 21777, 8319 21765, 21745, 21770, 21755, {f: 2, c: 21751}, 21728, 21774, 21763, 21771, 8320 {f: 2, c: 22273}, 22476, 22578, 22485, 22482, 22458, 22470, 22461, 22460, 8321 22456, 22454, 22463, 22471, 22480, 22457, 22465, 22798, 22858, 23065, 8322 23062, {f: 2, c: 23085}, 23061, 23055, 23063, 23050, 23070, 23091, 23404, 8323 23463, 23469, 23468, 23555, 23638, 23636, 23788, 23807, 23790, 23793, 8324 23799, 23808, 23801, 24105, 24104, 24232, 24238, 24234, 24236, 24371, 8325 24368, 24423, 24669, 24666, 24679, 24641, 24738, 24712, 24704, 24722, 8326 24705, 24733, 24707, 24725, 24731, 24727, 24711, 24732, 24718, 25113, 8327 25158, 25330, 25360, 25430, 25388, {f: 2, c: 25412}, 25398, 25411, 25572, 8328 25401, 25419, 25418, 25404, 25385, 25409, 25396, 25432, 25428, 25433, 8329 25389, 25415, 25395, 25434, 25425, 25400, 25431, 25408, 25416, 25930, 8330 25926, 26054, {f: 2, c: 26051}, 26050, 26186, 26207, 26183, 26193, 8331 {f: 2, c: 26386}, 26655, 26650, 26697, {f: 2, c: 26674}, 26683, 26699, 8332 26703, 26646, 26673, 26652, 26677, 26667, 26669, 26671, 26702, 26692, 8333 26676, 26653, 26642, 26644, 26662, 26664, 26670, 26701, 26682, 26661, 8334 26656, 27436, 27439, 27437, 27441, 27444, 27501, 32898, 27528, 27622, 8335 27620, 27624, 27619, 27618, 27623, 27685, 28026, {f: 2, c: 28003}, 28022, 8336 27917, 28001, 28050, 27992, 28002, 28013, 28015, 28049, 28045, 28143, 8337 28031, 28038, 27998, [28007, 59078], 28000, 28055, 28016, 28028, 27999, 8338 28034, 28056, 27951, 28008, 28043, 28030, 28032, 28036, 27926, 28035, 8339 28027, 28029, 28021, 28048, 28892, 28883, 28881, 28893, 28875, 32569, 8340 28898, 28887, 28882, 28894, 28896, 28884, 28877, {f: 3, c: 28869}, 28890, 8341 28878, 28897, 29250, 29304, 29303, 29302, 29440, 29434, 29428, 29438, 8342 29430, 29427, 29435, 29441, 29651, 29657, 29669, 29654, 29628, 29671, 8343 29667, 29673, 29660, 29650, 29659, 29652, 29661, 29658, {f: 2, c: 29655}, 8344 29672, {f: 2, c: 29918}, {f: 2, c: 29940}, 29985, 30043, 30047, 30128, 8345 30145, 30139, 30148, 30144, 30143, 30134, 30138, 30346, 30409, 30493, 8346 30491, 30480, 30483, 30482, 30499, 30481, 30485, {f: 2, c: 30489}, 30498, 8347 30503, 30755, 30764, 30754, 30773, 30767, 30760, 30766, 30763, 30753, 8348 30761, 30771, 30762, 30769, 31060, 31067, 31055, 31068, 31059, 31058, 8349 31057, {f: 2, c: 31211}, 31200, 31214, 31213, 31210, 31196, 31198, 31197, 8350 31366, 31369, 31365, {f: 2, c: 31371}, 31370, 31367, 31448, 31504, 31492, 8351 31507, 31493, 31503, 31496, 31498, 31502, 31497, 31506, 31876, 31889, 8352 31882, 31884, 31880, 31885, 31877, 32030, 32029, 32017, 32014, 32024, 8353 32022, 32019, 32031, 32018, 32015, 32012, 32604, 32609, 32606, 32608, 8354 32605, 32603, 32662, 32658, 32707, 32706, 32704, 32790, 32830, 32825, 8355 33018, 33010, 33017, 33013, 33025, 33019, 33024, 33281, 33327, 33317, 8356 33587, 33581, 33604, 33561, 33617, 33573, 33622, 33599, 33601, 33574, 8357 33564, 33570, 33602, 33614, 33563, 33578, 33544, 33596, 33613, 33558, 8358 33572, 33568, 33591, 33583, 33577, 33607, 33605, 33612, 33619, 33566, 8359 33580, 33611, 33575, 33608, 34387, 34386, 34466, 34472, 34454, 34445, 8360 34449, 34462, 34439, 34455, 34438, 34443, 34458, 34437, 34469, 34457, 8361 34465, 34471, 34453, 34456, 34446, 34461, 34448, 34452, {f: 2, c: 34883}, 8362 34925, {f: 2, c: 34933}, 34930, 34944, 34929, 34943, 34927, 34947, 34942, 8363 34932, 34940, 35346, 35911, 35927, 35963, 36004, 36003, 36214, 36216, 8364 36277, 36279, 36278, 36561, 36563, 36862, 36853, 36866, 36863, 36859, 8365 36868, 36860, 36854, 37078, 37088, {f: 2, c: 37081}, 37091, 37087, 37093, 8366 37080, 37083, 37079, 37084, 37092, 37200, {f: 2, c: 37198}, 37333, 37346, 8367 37338, 38492, 38495, 38588, 39139, [12221, 39647], [12223, 39727], 20095, 8368 20592, 20586, 20577, 20574, 20576, 20563, 20555, 20573, 20594, 20552, 8369 20557, 20545, 20571, 20554, 20578, 20501, 20549, 20575, 20585, 20587, 8370 {f: 2, c: 20579}, 20550, 20544, 20590, 20595, 20567, 20561, 20944, 21099, 8371 21101, 21100, 21102, 21206, 21203, 21293, 21404, {f: 2, c: 21877}, 21820, 8372 21837, 21840, 21812, 21802, 21841, 21858, 21814, 21813, 21808, 21842, 8373 21829, 21772, 21810, 21861, 21838, 21817, 21832, 21805, 21819, 21824, 8374 21835, 22282, 22279, 22523, 22548, 22498, 22518, 22492, 22516, 22528, 8375 22509, 22525, 22536, 22520, 22539, 22515, 22479, 22535, 22510, 22499, 8376 22514, 22501, 22508, 22497, 22542, 22524, 22544, 22503, 22529, 22540, 8377 22513, 22505, 22512, 22541, 22532, 22876, 23136, 23128, 23125, 8378 [23143, 60437], 23134, 23096, 23093, 23149, 23120, 23135, 23141, 23148, 8379 23123, 23140, 23127, 23107, 23133, 23122, 23108, 23131, 23112, 23182, 8380 23102, 23117, 23097, 23116, 23152, 23145, 23111, 23121, 23126, 23106, 8381 23132, 23410, 23406, 23489, 23488, 23641, 23838, 23819, 23837, 23834, 8382 23840, 23820, 23848, 23821, 23846, 23845, 23823, 23856, 23826, 23843, 8383 23839, 23854, 24126, 24116, 24241, 24244, 24249, {f: 2, c: 24242}, 24374, 8384 24376, 24475, 24470, 24479, 24714, 24720, 24710, 24766, 24752, 24762, 8385 {f: 2, c: 24787}, 24783, 24804, 24793, 24797, 24776, 24753, 24795, 24759, 8386 24778, 24767, 24771, 24781, 24768, 25394, 25445, 25482, 25474, 25469, 8387 25533, 25502, 25517, 25501, 25495, 25515, 25486, 25455, 25479, 25488, 8388 25454, 25519, 25461, 25500, 25453, 25518, 25468, 25508, 25403, 25503, 8389 25464, 25477, 25473, 25489, 25485, 25456, 25939, 26061, 26213, 26209, 8390 26203, 26201, 26204, 26210, 26392, 26745, 26759, 26768, 26780, 8391 {f: 2, c: 26733}, 26798, 26795, 26966, 26735, 26787, 26796, 26793, 26741, 8392 26740, 26802, 26767, 26743, 26770, 26748, 26731, 26738, 26794, 26752, 8393 26737, 26750, 26779, 26774, 26763, 26784, 26761, 26788, 26744, 26747, 8394 26769, 26764, 26762, 26749, 27446, 27443, {f: 2, c: 27447}, 27537, 27535, 8395 {f: 2, c: 27533}, 27532, 27690, 28096, 28075, 28084, 28083, 28276, 28076, 8396 28137, 28130, 28087, 28150, 28116, 28160, 28104, 28128, 28127, 28118, 8397 28094, 28133, {f: 2, c: 28124}, 28123, 28148, 28106, 28093, 28141, 28144, 8398 28090, 28117, 28098, 28111, 28105, 28112, 28146, 28115, 28157, 28119, 8399 28109, 28131, 28091, 28922, 28941, 28919, 28951, 28916, 28940, 28912, 8400 28932, 28915, 28944, 28924, 28927, 28934, 28947, 28928, 28920, 28918, 8401 28939, 28930, 28942, 29310, {f: 2, c: 29307}, 29311, 29469, 29463, 29447, 8402 29457, 29464, 29450, 29448, 29439, 29455, 29470, 29576, 29686, 29688, 8403 29685, 29700, 29697, 29693, 29703, 29696, 29690, 29692, 29695, 29708, 8404 29707, 29684, 29704, 30052, 30051, 30158, 30162, 30159, {f: 2, c: 30155}, 8405 30161, 30160, 30351, 30345, 30419, 30521, 30511, 30509, {f: 2, c: 30513}, 8406 30516, 30515, 30525, 30501, 30523, 30517, 30792, 30802, 30793, 30797, 8407 30794, 30796, 30758, 30789, 30800, 31076, 31079, {f: 2, c: 31081}, 31075, 8408 31083, 31073, 31163, 31226, 31224, {f: 2, c: 31222}, 31375, 31380, 31376, 8409 31541, 31547, 31540, 31525, 31536, 31522, 31524, 31539, 31512, 31530, 8410 31517, 31537, 31531, 31533, 31535, 31538, 31544, 31514, 31523, 31892, 8411 31896, 31894, 31907, 32053, 32061, 32056, 32054, 32058, 32069, 32044, 8412 32041, 32065, 32071, {f: 2, c: 32062}, 32074, 32059, 32040, 32611, 32661, 8413 {f: 2, c: 32668}, 32667, {f: 2, c: 32714}, 32717, {f: 2, c: 32720}, 32711, 8414 32719, 32713, 32799, 32798, 32795, 32839, 32835, 32840, 33048, 33061, 8415 33049, 33051, 33069, 33055, 33068, 33054, 33057, 33045, 33063, 33053, 8416 33058, 33297, 33336, 33331, 33338, 33332, 33330, 33396, 33680, 33699, 8417 33704, 33677, 33658, 33651, 33700, 33652, 33679, 33665, 33685, 33689, 8418 33653, 33684, 33705, 33661, 33667, 33676, 33693, 33691, 33706, 33675, 8419 33662, 33701, 33711, 33672, 33687, 33712, 33663, 33702, 33671, 33710, 8420 33654, 34393, 34390, 34495, 34487, 34498, 34497, 34501, 34490, 34480, 8421 34504, 34489, 34483, 34488, 34508, 34484, {f: 2, c: 34491}, 34499, 8422 {f: 2, c: 34493}, 34898, 34953, 34965, 34984, 34978, 34986, 34970, 34961, 8423 34977, 34975, 34968, 34983, 34969, 34971, 34967, 34980, 34988, 34956, 8424 34963, 34958, 35202, 35286, 35289, 35285, 35376, 35367, 35372, 35358, 8425 35897, 35899, {f: 2, c: 35932}, 35965, 36005, 36221, 36219, 36217, 36284, 8426 36290, 36281, 36287, 36289, 36568, 36574, 36573, 36572, 36567, 8427 {f: 2, c: 36576}, 36900, 36875, 36881, 36892, 36876, 36897, 37103, 37098, 8428 37104, 37108, {f: 2, c: 37106}, 37076, {f: 2, c: 37099}, 37097, 37206, 8429 37208, 37210, 37203, 37205, 37356, 37364, 37361, 37363, 37368, 37348, 8430 37369, {f: 2, c: 37354}, 37367, 37352, 37358, 38266, 38278, 38280, 38524, 8431 38509, 38507, 38513, 38511, 38591, 38762, 38916, 39141, 39319, 20635, 8432 20629, 20628, 20638, 20619, 20643, 20611, 20620, 20622, 20637, 20584, 8433 20636, 20626, 20610, 20615, 20831, 20948, 21266, 21265, 21412, 21415, 8434 21905, 21928, 21925, 21933, 21879, 22085, 21922, 21907, 21896, 21903, 8435 21941, 21889, 21923, 21906, 21924, 21885, 21900, 21926, 21887, 21909, 8436 21921, 21902, 22284, 22569, 22583, 22553, 22558, 22567, 22563, 22568, 8437 22517, 22600, 22565, 22556, 22555, 22579, 22591, 22582, 22574, 22585, 8438 22584, 22573, 22572, 22587, 22881, 23215, 23188, 23199, 23162, 23202, 8439 23198, 23160, 23206, 23164, 23205, 23212, 23189, 23214, 23095, 23172, 8440 23178, 23191, 23171, 23179, 23209, 23163, 23165, 23180, 23196, 23183, 8441 23187, 23197, 23530, 23501, 23499, 23508, 23505, 23498, 23502, 23564, 8442 23600, 23863, 23875, 23915, 23873, 23883, 23871, 23861, 23889, 23886, 8443 23893, 23859, 23866, 23890, 23869, 23857, 23897, 23874, 23865, 23881, 8444 23864, 23868, 23858, 23862, 23872, 23877, 24132, 24129, [24408, 57673], 8445 24486, 24485, 24491, 24777, 24761, 24780, 24802, 24782, 24772, 24852, 8446 24818, 24842, 24854, 24837, 24821, 24851, 24824, 24828, 24830, 24769, 8447 24835, 24856, 24861, 24848, 24831, 24836, 24843, 25162, 25492, 25521, 8448 25520, 25550, 25573, 25576, 25583, 25539, 25757, 25587, 25546, 25568, 8449 25590, 25557, 25586, 25589, 25697, 25567, 25534, 25565, 25564, 25540, 8450 25560, 25555, 25538, 25543, 25548, 25547, 25544, 25584, 25559, 25561, 8451 25906, 25959, 25962, 25956, 25948, 25960, 25957, 25996, {f: 2, c: 26013}, 8452 26030, 26064, 26066, 26236, 26220, 26235, 26240, 26225, 26233, 26218, 8453 26226, 26369, 26892, 26835, 26884, 26844, 26922, 26860, 26858, 26865, 8454 26895, 26838, 26871, 26859, 26852, 26870, 26899, 26896, 26867, 26849, 8455 26887, 26828, 26888, 26992, 26804, 26897, 26863, 26822, 26900, 26872, 8456 26832, 26877, 26876, 26856, 26891, 26890, 26903, 26830, 26824, 8457 {f: 2, c: 26845}, 26854, 26868, 26833, 26886, 26836, 26857, 26901, 26917, 8458 26823, 27449, 27451, 27455, 27452, 27540, 27543, 27545, 27541, 27581, 8459 27632, {f: 2, c: 27634}, 27696, 28156, {f: 2, c: 28230}, 28191, 28233, 8460 28296, {f: 2, c: 28220}, 28229, 28258, 28203, 28223, 28225, 28253, 28275, 8461 28188, 28211, 28235, 28224, 28241, 28219, 28163, 28206, 28254, 28264, 8462 28252, 28257, 28209, 28200, 28256, 28273, 28267, 28217, 28194, 28208, 8463 28243, 28261, 28199, 28280, 28260, 28279, 28245, 28281, 28242, 28262, 8464 {f: 2, c: 28213}, 28250, 28960, 28958, 28975, 28923, 28974, 28977, 28963, 8465 28965, 28962, 28978, 28959, 28968, 28986, 28955, 29259, 29274, 8466 {f: 2, c: 29320}, 29318, 29317, 29323, 29458, 29451, 29488, 29474, 29489, 8467 29491, 29479, 29490, 29485, 29478, 29475, 29493, 29452, 29742, 29740, 8468 29744, 29739, 29718, 29722, 29729, 29741, 29745, 29732, 29731, 29725, 8469 29737, 29728, 29746, 29947, 29999, 30063, 30060, 30183, 30170, 30177, 8470 30182, 30173, 30175, 30180, 30167, 30357, 30354, 30426, {f: 2, c: 30534}, 8471 30532, 30541, 30533, 30538, 30542, {f: 2, c: 30539}, 30686, 30700, 30816, 8472 {f: 2, c: 30820}, 30812, 30829, 30833, 30826, 30830, 30832, 30825, 30824, 8473 30814, 30818, 31092, 31091, 31090, 31088, 31234, 31242, 31235, 31244, 8474 31236, 31385, 31462, 31460, 31562, 31559, 31556, 31560, 31564, 31566, 8475 31552, 31576, 31557, 31906, 31902, 31912, 31905, 32088, 32111, 32099, 8476 32083, 32086, 32103, 32106, 32079, 32109, 32092, 32107, 32082, 32084, 8477 32105, 32081, 32095, 32078, {f: 2, c: 32574}, {f: 2, c: 32613}, 32674, 8478 {f: 2, c: 32672}, 32727, 32849, {f: 2, c: 32847}, 33022, 32980, 33091, 8479 33098, 33106, 33103, 33095, 33085, 33101, 33082, 33254, 33262, 8480 {f: 3, c: 33271}, 33284, {f: 2, c: 33340}, 33343, 33397, 33595, 8481 [33743, 60382], 33785, 33827, 33728, 33768, 33810, 33767, 33764, 33788, 8482 33782, 33808, 33734, 33736, 33771, 33763, 33727, 33793, 33757, 33765, 8483 33752, 33791, 33761, 33739, 33742, 33750, 33781, 33737, 33801, 8484 [33807, 58332], 33758, 33809, 33798, 33730, 33779, 33749, 33786, 33735, 8485 33745, 33770, 33811, 33690, 33731, 33772, 33774, 33732, 33787, 33751, 8486 33762, 33819, 33755, 33790, 34520, 34530, 34534, 34515, 34531, 34522, 8487 34538, 34525, 34539, 34524, 34540, 34537, 34519, 34536, 34513, 34888, 8488 34902, 34901, 35002, 35031, 35001, 35000, 35008, 35006, 34998, 35004, 8489 34999, 35005, 34994, 35073, 35017, 35221, 35224, 35223, 35293, 8490 {f: 2, c: 35290}, 35406, 35405, 35385, 35417, 35392, {f: 2, c: 35415}, 8491 {f: 2, c: 35396}, 35410, 35400, 35409, 35402, 35404, 35407, 35935, 35969, 8492 35968, 36026, 36030, 36016, 36025, 36021, 36228, 36224, 36233, 36312, 8493 36307, 36301, 36295, 36310, 36316, 36303, 36309, 36313, 36296, 36311, 8494 36293, 36591, 36599, 36602, 36601, 36582, 36590, 36581, 36597, 8495 {f: 2, c: 36583}, 36598, 36587, 36593, 36588, 36596, 36585, 36909, 36916, 8496 36911, 37126, 37164, [37124, 60367], 37119, 37116, 37128, 37113, 37115, 8497 37121, 37120, 37127, 37125, 37123, 37217, 37220, 37215, 37218, 37216, 8498 37377, 37386, 37413, 37379, 37402, 37414, 37391, 37388, 37376, 37394, 8499 37375, 37373, 37382, 37380, 37415, 37378, 37404, 37412, 37401, 37399, 8500 37381, 37398, 38267, 38285, 38284, 38288, 38535, 38526, {f: 2, c: 38536}, 8501 38531, 38528, 38594, 38600, 38595, 38641, 38640, 38764, 38768, 38766, 8502 38919, 39081, 39147, 40166, [12235, 40697], {f: 2, c: 20099}, 20150, 20669, 8503 20671, 20678, 20654, 20676, 20682, 20660, 20680, 20674, 20656, 20673, 8504 20666, 20657, 20683, 20681, 20662, 20664, 20951, 21114, 21112, 8505 {f: 2, c: 21115}, 21955, 21979, 21964, 21968, 21963, 21962, 21981, 8506 [21952, 64013], 21972, 21956, 21993, 21951, 21970, 21901, 21967, 21973, 8507 21986, 21974, 21960, 22002, 21965, 21977, 21954, 22292, 22611, 22632, 8508 22628, 22607, 22605, 22601, 22639, 22613, 22606, 22621, 22617, 22629, 8509 22619, 22589, 22627, 22641, 22780, 23239, 23236, 23243, 23226, 23224, 8510 23217, 23221, 23216, 23231, 23240, 23227, 23238, 23223, 23232, 23242, 8511 23220, 23222, 23245, 23225, 23184, 23510, {f: 2, c: 23512}, 23583, 23603, 8512 23921, 23907, 23882, 23909, 23922, 23916, 23902, 23912, 23911, 23906, 8513 24048, 24143, 24142, 24138, 24141, 24139, 24261, 24268, 24262, 24267, 8514 24263, 24384, 24495, 24493, 24823, {f: 2, c: 24905}, 24875, 24901, 24886, 8515 24882, 24878, 24902, 24879, 24911, 24873, 24896, 25120, 37224, 25123, 8516 25125, 25124, 25541, 25585, 25579, 25616, 25618, 25609, 25632, 25636, 8517 25651, 25667, 25631, 25621, 25624, 25657, 25655, {f: 2, c: 25634}, 25612, 8518 25638, 25648, 25640, 25665, 25653, 25647, 25610, 25626, 25664, 25637, 8519 25639, 25611, 25575, 25627, 25646, 25633, 25614, 25967, 26002, 26067, 8520 26246, 26252, 26261, 26256, 26251, 26250, 26265, 26260, 26232, 26400, 8521 26982, 26975, 26936, 26958, 26978, 26993, 26943, 26949, 26986, 26937, 8522 26946, 26967, 26969, 27002, {f: 2, c: 26952}, 26933, 26988, 26931, 26941, 8523 26981, 26864, 27000, 26932, 26985, 26944, 26991, 26948, 26998, 26968, 8524 26945, 26996, 26956, 26939, 26955, 26935, 26972, 26959, 26961, 26930, 8525 26962, 26927, 27003, 26940, 27462, 27461, 27459, 27458, 27464, 27457, 8526 27547, {f: 2, c: 27643}, 27641, {f: 2, c: 27639}, 28315, 28374, 28360, 8527 28303, 28352, 28319, {f: 2, c: 28307}, 28320, 28337, 28345, 28358, 28370, 8528 28349, 28353, 28318, 28361, 28343, 28336, 28365, 28326, 28367, 28338, 8529 28350, 28355, 28380, 28376, 28313, 28306, 28302, 28301, 28324, 28321, 8530 28351, 28339, 28368, 28362, 28311, 28334, 28323, 28999, 29012, 29010, 8531 29027, 29024, 28993, 29021, [29026, 61080], 29042, 29048, 29034, 29025, 8532 28994, 29016, 28995, 29003, 29040, 29023, 29008, 29011, 28996, 29005, 8533 29018, 29263, 29325, 29324, 29329, 29328, 29326, 29500, 29506, 29499, 8534 29498, 29504, 29514, 29513, 29764, {f: 2, c: 29770}, 29778, 29777, 29783, 8535 29760, {f: 2, c: 29775}, 29774, 29762, 29766, 29773, 29780, 29921, 29951, 8536 29950, 29949, 29981, 30073, 30071, 27011, 30191, 30223, 30211, 30199, 8537 30206, 30204, [30201, 60782], 30200, 30224, 30203, 30198, 30189, 30197, 8538 30205, 30361, 30389, 30429, 30549, {f: 2, c: 30559}, 30546, 30550, 30554, 8539 30569, 30567, 30548, 30553, 30573, 30688, 30855, 30874, 30868, 30863, 8540 30852, 30869, {f: 2, c: 30853}, 30881, 30851, 30841, 30873, 30848, 30870, 8541 30843, 31100, 31106, 31101, 31097, 31249, {f: 2, c: 31256}, 31250, 31255, 8542 31253, 31266, 31251, 31259, 31248, 31395, 31394, 31390, 31467, 31590, 8543 31588, 31597, 31604, 31593, 31602, 31589, 31603, 31601, 31600, 31585, 8544 31608, 31606, 31587, 31922, 31924, 31919, 32136, 32134, 32128, 32141, 8545 32127, 32133, 32122, 32142, 32123, 32131, 32124, 32140, 32148, 32132, 8546 32125, 32146, 32621, 32619, {f: 2, c: 32615}, 32620, 32678, 32677, 32679, 8547 {f: 2, c: 32731}, 32801, 33124, 33120, 33143, 33116, 33129, 33115, 33122, 8548 33138, 26401, 33118, 33142, 33127, 33135, 33092, 33121, 33309, 33353, 8549 33348, 33344, 33346, 33349, 34033, 33855, 33878, 33910, 33913, 33935, 8550 33933, 33893, 33873, 33856, 33926, 33895, 33840, 33869, 33917, 33882, 8551 33881, 33908, 33907, 33885, 34055, 33886, 33847, 33850, 33844, 33914, 8552 33859, 33912, 33842, 33861, 33833, 33753, 33867, 33839, 33858, 33837, 8553 33887, 33904, 33849, 33870, 33868, 33874, 33903, 33989, 33934, 33851, 8554 33863, 33846, 33843, 33896, 33918, 33860, 33835, 33888, 33876, 33902, 8555 33872, 34571, 34564, 34551, 34572, 34554, 34518, 34549, 34637, 34552, 8556 34574, 34569, 34561, 34550, 34573, 34565, 35030, 35019, {f: 2, c: 35021}, 8557 35038, 35035, 35034, 35020, 35024, 35205, 35227, 35295, 35301, 35300, 8558 35297, 35296, 35298, 35292, 35302, 35446, 35462, 35455, 35425, 35391, 8559 35447, 35458, 35460, 35445, 35459, 35457, 35444, 35450, 35900, 35915, 8560 35914, 35941, 35940, 35942, 35974, {f: 2, c: 35972}, 36044, 8561 {f: 2, c: 36200}, 36241, 36236, {f: 2, c: 36238}, 36237, {f: 2, c: 36243}, 8562 36240, 36242, 36336, 36320, 36332, 36337, 36334, 36304, 36329, 36323, 8563 36322, 36327, 36338, 36331, 36340, 36614, 36607, 36609, 36608, 36613, 8564 {f: 2, c: 36615}, 36610, [36619, 60507], 36946, 36927, 36932, 36937, 36925, 8565 37136, 37133, 37135, 37137, 37142, 37140, 37131, 37134, {f: 2, c: 37230}, 8566 37448, 37458, 37424, 37434, 37478, 37427, 37477, 37470, 37507, 37422, 8567 37450, 37446, 37485, 37484, 37455, 37472, 37479, 37487, 37430, 37473, 8568 37488, 37425, 37460, 37475, 37456, 37490, 37454, 37459, 37452, 37462, 8569 37426, 38303, 38300, 38302, 38299, {f: 2, c: 38546}, 38545, 38551, 38606, 8570 38650, 38653, 38648, 38645, 38771, {f: 2, c: 38775}, 38770, 38927, 8571 {f: 2, c: 38925}, 39084, 39158, 39161, 39343, 39346, 39344, 39349, 39597, 8572 39595, 39771, 40170, 40173, 40167, 40576, [12236, 40701], 20710, 20692, 8573 20695, 20712, 20723, 20699, 20714, 20701, 20708, 20691, 20716, 20720, 8574 20719, 20707, 20704, 20952, {f: 2, c: 21120}, 21225, 21227, 21296, 21420, 8575 22055, 22037, 22028, 22034, 22012, 22031, 22044, 22017, 22035, 22018, 8576 22010, 22045, 22020, 22015, 22009, 22665, 22652, 22672, 22680, 22662, 8577 22657, 22655, 22644, 22667, 22650, 22663, 22673, 22670, 22646, 22658, 8578 22664, 22651, 22676, 22671, 22782, 22891, 23260, 23278, 23269, 23253, 8579 23274, 23258, 23277, 23275, 23283, 23266, 23264, 23259, 23276, 23262, 8580 23261, 23257, 23272, 23263, 23415, 23520, 23523, 23651, 23938, 23936, 8581 23933, 23942, 23930, 23937, 23927, 23946, 23945, 23944, 23934, 23932, 8582 23949, 23929, 23935, {f: 2, c: 24152}, 24147, 24280, 24273, 24279, 24270, 8583 24284, 24277, 24281, 24274, 24276, 24388, 24387, 24431, 24502, 24876, 8584 24872, 24897, 24926, 24945, 24947, {f: 2, c: 24914}, 24946, 24940, 24960, 8585 24948, 24916, 24954, 24923, 24933, 24891, 24938, 24929, 24918, 25129, 8586 25127, 25131, 25643, 25677, 25691, 25693, 25716, 25718, {f: 2, c: 25714}, 8587 25725, 25717, 25702, 25766, 25678, 25730, 25694, 25692, 25675, 25683, 8588 25696, 25680, 25727, 25663, 25708, 25707, 25689, 25701, 25719, 25971, 8589 26016, 26273, 26272, 26271, 26373, 26372, 26402, 27057, 27062, 27081, 8590 27040, 27086, 27030, 27056, 27052, 27068, 27025, 27033, 27022, 27047, 8591 27021, 27049, 27070, 27055, 27071, 27076, 27069, 27044, 27092, 27065, 8592 27082, 27034, 27087, 27059, 27027, 27050, 27041, 27038, 27097, 27031, 8593 27024, 27074, 27061, 27045, 27078, 27466, 27469, 27467, {f: 3, c: 27550}, 8594 {f: 2, c: 27587}, 27646, 28366, 28405, 28401, 28419, 28453, 28408, 28471, 8595 28411, 28462, 28425, 28494, {f: 2, c: 28441}, 28455, 28440, 28475, 28434, 8596 28397, 28426, 28470, 28531, 28409, 28398, 28461, 28480, 28464, 28476, 8597 28469, 28395, 28423, 28430, 28483, 28421, 28413, 28406, 28473, 28444, 8598 28412, 28474, 28447, 28429, 28446, 28424, 28449, 29063, 29072, 29065, 8599 29056, 29061, 29058, 29071, 29051, 29062, 29057, 29079, 29252, 29267, 8600 29335, 29333, 29331, 29507, 29517, 29521, 29516, 29794, 29811, 29809, 8601 29813, 29810, 29799, 29806, 29952, {f: 2, c: 29954}, 30077, 30096, 30230, 8602 30216, 30220, 30229, 30225, 30218, 30228, 30392, 30593, 30588, 30597, 8603 30594, 30574, 30592, 30575, 30590, 30595, 30898, 30890, 30900, 30893, 8604 30888, 30846, 30891, 30878, 30885, 30880, 30892, 30882, 30884, 31128, 8605 {f: 2, c: 31114}, 31126, 31125, 31124, 31123, 31127, 31112, 31122, 31120, 8606 31275, 31306, 31280, 31279, 31272, 31270, 31400, {f: 2, c: 31403}, 31470, 8607 31624, 31644, 31626, 31633, 31632, 31638, 31629, 31628, 31643, 31630, 8608 31621, 31640, 21124, 31641, 31652, 31618, 31931, 31935, 31932, 31930, 8609 32167, 32183, 32194, 32163, 32170, 32193, 32192, 32197, 32157, 32206, 8610 32196, 32198, {f: 2, c: 32203}, 32175, 32185, 32150, 32188, 32159, 32166, 8611 32174, 32169, 32161, 32201, 32627, {f: 2, c: 32738}, 32741, 32734, 32804, 8612 32861, 32860, 33161, 33158, 33155, 33159, 33165, 33164, 33163, 33301, 8613 33943, 33956, 33953, 33951, 33978, 33998, 33986, 33964, 33966, 33963, 8614 33977, 33972, 33985, 33997, 33962, 33946, 33969, 34000, 33949, 33959, 8615 33979, 33954, 33940, 33991, 33996, 33947, 33961, 33967, [33960, 58327], 8616 34006, 33944, 33974, 33999, 33952, 34007, 34004, 34002, 34011, 33968, 8617 33937, 34401, 34611, 34595, 34600, 34667, 34624, 34606, 34590, 34593, 8618 34585, 34587, 34627, 34604, 34625, 34622, 34630, 34592, 34610, 34602, 8619 34605, 34620, 34578, 34618, 34609, 34613, 34626, {f: 2, c: 34598}, 34616, 8620 34596, 34586, 34608, 34577, 35063, 35047, {f: 2, c: 35057}, 35066, 35070, 8621 35054, 35068, 35062, 35067, 35056, 35052, 35051, 35229, 35233, 35231, 8622 35230, 35305, 35307, 35304, 35499, 35481, 35467, 35474, 35471, 35478, 8623 35901, {f: 2, c: 35944}, 36053, 36047, 36055, 36246, 36361, 36354, 36351, 8624 36365, 36349, 36362, 36355, 36359, 36358, 36357, 36350, 36352, 36356, 8625 {f: 2, c: 36624}, 36622, 36621, 37155, 37148, 37152, 37154, 37151, 37149, 8626 37146, 37156, 37153, 37147, 37242, 37234, 37241, 37235, 37541, 37540, 8627 37494, 37531, 37498, 37536, 37524, 37546, 37517, 37542, 37530, 37547, 8628 37497, 37527, 37503, 37539, 37614, 37518, 37506, 37525, 37538, 37501, 8629 37512, 37537, 37514, 37510, 37516, 37529, 37543, 37502, 37511, 37545, 8630 37533, 37515, 37421, 38558, 38561, 38655, 38744, 38781, 38778, 38782, 8631 38787, 38784, 38786, 38779, 38788, 38785, 38783, 38862, 38861, 38934, 8632 {f: 2, c: 39085}, 39170, 39168, 39175, 39325, 39324, 39363, 39353, 39355, 8633 39354, 39362, 39357, 39367, 39601, 39651, 39655, {f: 2, c: 39742}, 8634 {f: 2, c: 39776}, 39775, {f: 2, c: 40177}, 40181, 40615, 20735, 20739, 8635 20784, 20728, {f: 2, c: 20742}, 20726, 20734, {f: 2, c: 20747}, 20733, 8636 20746, {f: 2, c: 21131}, 21233, 21231, 22088, 22082, 22092, 22069, 22081, 8637 22090, 22089, 22086, 22104, 22106, 22080, 22067, 22077, 22060, 22078, 8638 22072, 22058, 22074, 22298, 22699, 22685, 22705, 22688, 22691, 22703, 8639 22700, 22693, 22689, 22783, 23295, 23284, 23293, 23287, 23286, 23299, 8640 23288, 23298, 23289, 23297, 23303, 23301, 23311, 23655, 23961, 23959, 8641 23967, 23954, 23970, 23955, 23957, 23968, 23964, 23969, 23962, 23966, 8642 24169, 24157, 24160, 24156, 32243, 24283, 24286, 24289, 24393, 24498, 8643 24971, 24963, 24953, 25009, 25008, 24994, 24969, 24987, 24979, 25007, 8644 25005, 24991, 24978, 25002, 24993, 24973, 24934, 25011, 25133, 25710, 8645 25712, 25750, 25760, 25733, 25751, 25756, 25743, 25739, 25738, 25740, 8646 25763, 25759, 25704, 25777, 25752, 25974, 25978, 25977, 25979, 8647 {f: 2, c: 26034}, 26293, 26288, 26281, 26290, 26295, 26282, 26287, 27136, 8648 27142, 27159, 27109, 27128, 27157, 27121, 27108, 27168, 27135, 27116, 8649 27106, 27163, 27165, 27134, 27175, 27122, 27118, 27156, 27127, 27111, 8650 27200, 27144, 27110, 27131, 27149, 27132, 27115, 27145, 27140, 27160, 8651 27173, 27151, 27126, 27174, 27143, 27124, 27158, 27473, 27557, 27555, 8652 27554, 27558, 27649, 27648, 27647, 27650, 28481, 28454, 28542, 28551, 8653 28614, 28562, 28557, 28553, 28556, 28514, 28495, 28549, 28506, 28566, 8654 28534, 28524, 28546, 28501, 28530, 28498, 28496, 28503, 28564, 28563, 8655 28509, 28416, 28513, 28523, 28541, 28519, 28560, 28499, 28555, 28521, 8656 28543, 28565, 28515, 28535, 28522, 28539, 29106, 29103, 29083, 29104, 8657 29088, 29082, 29097, 29109, 29085, 29093, 29086, 29092, 29089, 29098, 8658 29084, 29095, 29107, 29336, 29338, 29528, 29522, {f: 3, c: 29534}, 29533, 8659 29531, 29537, 29530, 29529, 29538, 29831, {f: 2, c: 29833}, 29830, 29825, 8660 29821, 29829, 29832, 29820, [29817, 58868], 29960, 29959, 30078, 30245, 8661 30238, 30233, 30237, 30236, 30243, 30234, 30248, 30235, {f: 3, c: 30364}, 8662 30363, 30605, 30607, 30601, 30600, 30925, 30907, 30927, 30924, 30929, 8663 30926, 30932, 30920, {f: 2, c: 30915}, 30921, 31130, 31137, 31136, 31132, 8664 31138, [31131, 59175], 27510, 31289, 31410, 31412, 31411, 31671, 31691, 8665 31678, 31660, 31694, 31663, 31673, 31690, 31669, 31941, 31944, 31948, 8666 31947, 32247, 32219, 32234, 32231, 32215, 32225, 32259, 32250, 32230, 8667 32246, 32241, 32240, 32238, 32223, 32630, 32684, 32688, 32685, 32749, 8668 32747, 32746, 32748, 32742, 32744, 32868, 32871, 33187, 33183, 33182, 8669 33173, 33186, 33177, 33175, 33302, 33359, 33363, 33362, 33360, 33358, 8670 33361, 34084, 34107, 34063, 34048, 34089, 34062, 34057, 34061, 34079, 8671 34058, 34087, 34076, 34043, 34091, 34042, 34056, 34060, 34036, 34090, 8672 34034, 34069, 34039, 34027, 34035, 34044, 34066, 34026, 34025, 34070, 8673 34046, 34088, 34077, 34094, 34050, 34045, 34078, 34038, 34097, 34086, 8674 {f: 2, c: 34023}, 34032, 34031, 34041, 34072, 34080, 34096, 34059, 34073, 8675 34095, 34402, 34646, {f: 2, c: 34659}, 34679, 34785, 34675, 34648, 34644, 8676 34651, 34642, 34657, 34650, 34641, 34654, 34669, 34666, 34640, 34638, 8677 34655, 34653, 34671, 34668, 34682, 34670, 34652, 34661, 34639, 34683, 8678 34677, 34658, 34663, 34665, 34906, 35077, 35084, 35092, 35083, 8679 {f: 3, c: 35095}, 35078, 35094, 35089, 35086, 35081, 35234, 35236, 35235, 8680 35309, 35312, 35308, 35535, 35526, 35512, 35539, 35537, {f: 2, c: 35540}, 8681 35515, 35543, 35518, 35520, 35525, 35544, 35523, 35514, 35517, 35545, 8682 35902, 35917, 35983, 36069, 36063, 36057, 36072, 36058, 36061, 36071, 8683 36256, 36252, 36257, 36251, 36384, 36387, 36389, 36388, 36398, 36373, 8684 36379, 36374, 36369, 36377, {f: 2, c: 36390}, 36372, 36370, 36376, 36371, 8685 36380, 36375, 36378, 36652, 36644, 36632, 36634, 36640, 36643, 8686 {f: 2, c: 36630}, 36979, 36976, 36975, 36967, 36971, 37167, 37163, 8687 {f: 2, c: 37161}, 37170, 37158, 37166, {f: 2, c: 37253}, 37258, 8688 {f: 2, c: 37249}, 37252, 37248, 37584, {f: 2, c: 37571}, 37568, 37593, 8689 37558, 37583, 37617, 37599, 37592, 37609, 37591, 37597, 37580, 37615, 8690 37570, 37608, 37578, 37576, 37582, 37606, 37581, 37589, 37577, 37600, 8691 37598, 37607, 37585, 37587, 37557, 37601, 37669, 37574, 37556, 38268, 8692 38316, 38315, 38318, 38320, 38564, 38562, 38611, 38661, 38664, 38658, 8693 38746, 38794, 38798, 38792, 38864, 38863, 38942, 38941, 38950, 38953, 8694 38952, 38944, 38939, 38951, 39090, 39176, 39162, 39185, 39188, 8695 {f: 2, c: 39190}, 39189, 39388, 39373, 39375, {f: 2, c: 39379}, 39374, 8696 39369, [39382, 60270], 39384, 39371, 39383, 39372, 39603, 39660, 39659, 8697 39667, 39666, 39665, 39750, 39747, 39783, 39796, 39793, 39782, 39798, 8698 39797, 39792, 39784, 39780, 39788, 40188, 40186, 40189, 40191, 40183, 8699 40199, 40192, 40185, 40187, 40200, 40197, 40196, 40579, 40659, 8700 {f: 2, c: 40719}, 20764, 20755, 20759, 20762, 20753, 20958, 21300, 21473, 8701 22128, 22112, 22126, 22131, 22118, 22115, 22125, 22130, 22110, 22135, 8702 22300, 22299, 22728, 22717, 22729, 22719, 22714, 22722, 22716, 22726, 8703 23319, 23321, 23323, 23329, 23316, 23315, 23312, 23318, [23336, 59539], 8704 23322, 23328, 23326, 23535, 23980, 23985, 23977, 23975, 23989, 23984, 8705 23982, 23978, 23976, 23986, 23981, 23983, 23988, {f: 2, c: 24167}, 24166, 8706 24175, 24297, 24295, 24294, 24296, 24293, 24395, 24508, 24507, 24989, 8707 25000, 24982, 25029, 25012, 25030, 25025, 25036, 25018, 25023, 25016, 8708 24972, 25815, 25814, 25808, 25807, 25801, 25789, 25737, 25795, 25819, 8709 25843, 25817, 25907, 25983, 25980, 26018, 26312, 26302, 26304, 8710 {f: 2, c: 26314}, 26319, 26301, 26299, 26298, 26316, 26403, 27188, 27238, 8711 27209, 27239, 27186, 27240, 27198, 27229, 27245, 27254, 27227, 27217, 8712 27176, 27226, 27195, 27199, 27201, 27242, 27236, 27216, 27215, 27220, 8713 27247, 27241, 27232, 27196, 27230, 27222, 27221, {f: 2, c: 27213}, 27206, 8714 27477, 27476, 27478, 27559, {f: 2, c: 27562}, 27592, 27591, 27652, 27651, 8715 27654, 28589, 28619, 28579, 28615, 28604, 28622, 28616, 28510, 28612, 8716 28605, 28574, 28618, 28584, 28676, 28581, 28590, 28602, 28588, 28586, 8717 28623, 28607, 28600, 28578, 28617, 28587, 28621, 28591, 28594, 28592, 8718 29125, 29122, 29119, 29112, 29142, {f: 2, c: 29120}, 29131, 29140, 29130, 8719 29127, 29135, 29117, 29144, 29116, 29126, {f: 2, c: 29146}, 8720 {f: 2, c: 29341}, 29545, {f: 2, c: 29542}, 29548, 29541, 29547, 29546, 8721 29823, 29850, 29856, 29844, 29842, 29845, 29857, 29963, 30080, 30255, 8722 30253, 30257, 30269, 30259, 30268, 30261, 30258, 30256, 30395, 30438, 8723 30618, 30621, 30625, 30620, 30619, {f: 2, c: 30626}, 30613, 30617, 30615, 8724 30941, 30953, 30949, 30954, 30942, 30947, 30939, {f: 2, c: 30945}, 30957, 8725 {f: 2, c: 30943}, 31140, 31300, 31304, 31303, 31414, 31416, 31413, 31409, 8726 31415, 31710, 31715, 31719, 31709, 31701, 31717, 31706, 31720, 31737, 8727 31700, 31722, 31714, 31708, 31723, 31704, 31711, 31954, 31956, 31959, 8728 {f: 2, c: 31952}, 32274, 32289, 32279, 32268, {f: 2, c: 32287}, 32275, 8729 32270, 32284, 32277, 32282, 32290, 32267, 32271, 32278, 32269, 32276, 8730 32293, 32292, 32579, {f: 2, c: 32635}, 32634, 32689, 32751, 32810, 32809, 8731 32876, 33201, 33190, 33198, 33209, 33205, 33195, 33200, 33196, 33204, 8732 33202, 33207, 33191, 33266, {f: 3, c: 33365}, 34134, 34117, 34155, 34125, 8733 34131, 34145, 34136, 34112, 34118, 34148, 34113, 34146, 34116, 34129, 8734 34119, 34147, 34110, 34139, 34161, 34126, 34158, 34165, 34133, 34151, 8735 34144, 34188, 34150, 34141, 34132, 34149, 34156, 34403, 34405, 34404, 8736 34724, 34715, 34703, 34711, 34707, 34706, 34696, 34689, 34710, 34712, 8737 34681, 34695, 34723, 34693, {f: 2, c: 34704}, 34717, 34692, 34708, 34716, 8738 34714, 34697, 35102, 35110, 35120, {f: 2, c: 35117}, 35111, 35121, 35106, 8739 35113, 35107, 35119, 35116, 35103, 35313, 35552, 35554, 35570, 8740 {f: 2, c: 35572}, 35549, 35604, 35556, 35551, 35568, 35528, 35550, 35553, 8741 35560, 35583, 35567, 35579, {f: 2, c: 35985}, 35984, 36085, 36078, 36081, 8742 36080, 36083, 36204, 36206, 36261, 36263, 36403, 36414, 36408, 36416, 8743 36421, 36406, {f: 2, c: 36412}, 36417, 36400, 36415, 36541, [36662, 60329], 8744 36654, 36661, 36658, 36665, 36663, 36660, 36982, 36985, 36987, 36998, 8745 37114, 37171, {f: 2, c: 37173}, 37267, {f: 2, c: 37264}, 37261, 37263, 8746 37671, 37662, 37640, 37663, 37638, 37647, 37754, 37688, 37692, 37659, 8747 37667, 37650, 37633, 37702, 37677, 37646, 37645, 37579, 37661, 37626, 8748 37651, 37625, 37623, 37684, 37634, 37668, 37631, 37673, 37689, 37685, 8749 37674, 37652, 37644, 37643, 37630, 37641, 37632, 37627, 37654, 38332, 8750 38349, 38334, {f: 2, c: 38329}, 38326, 38335, 38325, 38333, 38569, 38612, 8751 38667, 38674, 38672, 38809, 38807, 38804, 38896, 38904, 38965, 38959, 8752 38962, 39204, 39199, 39207, 39209, 39326, 39406, 39404, 39397, 39396, 8753 39408, 39395, 39402, 39401, 39399, 39609, 39615, 39604, 39611, 39670, 8754 39674, 39673, 39671, 39731, 39808, 39813, 39815, 39804, 39806, 39803, 8755 39810, 39827, 39826, 39824, 39802, 39829, 39805, 39816, 40229, 40215, 8756 40224, 40222, 40212, 40233, 40221, 40216, 40226, 40208, 40217, 40223, 8757 40584, {f: 2, c: 40582}, 40622, 40621, {f: 2, c: 40661}, 40698, 40722, 8758 40765, 20774, 20773, 20770, 20772, 20768, 20777, 21236, 22163, 8759 {f: 2, c: 22156}, 22150, 22148, 22147, 22142, 22146, 22143, 22145, 22742, 8760 22740, 22735, 22738, 23341, 23333, 23346, 23331, 23340, 23335, 23334, 8761 23343, 23342, 23419, {f: 2, c: 23537}, 23991, 24172, 24170, 24510, 25027, 8762 25013, 25020, 25063, 25056, 25061, 25060, 25064, 25054, 25839, 25833, 8763 25827, 25835, 25828, 25832, 25985, 25984, 26038, 26074, 26322, 27277, 8764 27286, 27265, 27301, 27273, 27295, 27291, 27297, 27294, 27271, 27283, 8765 27278, 27285, 27267, 27304, 27300, 27281, 27263, 27302, 27290, 27269, 8766 27276, 27282, 27483, 27565, 27657, 28620, 28585, 28660, 28628, 28643, 8767 28636, 28653, 28647, 28646, 28638, 28658, 28637, 28642, 28648, 29153, 8768 29169, 29160, 29170, 29156, 29168, 29154, 29555, {f: 2, c: 29550}, 29847, 8769 29874, 29867, 29840, 29866, 29869, 29873, 29861, 29871, {f: 3, c: 29968}, 8770 29967, 30084, 30275, {f: 2, c: 30280}, 30279, 30372, 30441, 30645, 30635, 8771 30642, 30647, 30646, 30644, 30641, 30632, 30704, 30963, 30973, 30978, 8772 {f: 2, c: 30971}, 30975, 30962, 30981, 30969, 30974, 30980, 31147, 31144, 8773 31324, 31323, 31318, 31320, 31316, 31322, 31422, {f: 2, c: 31424}, 31749, 8774 31759, 31730, 31744, 31743, 31739, 31758, 31732, 31755, 31731, 31746, 8775 31753, 31747, 31745, 31736, 31741, [31750, 58176], {f: 2, c: 31728}, 31760, 8776 31754, 31976, 32301, 32316, 32322, 32307, 38984, 32312, 32298, 32329, 8777 32320, 32327, 32297, 32332, 32304, 32315, 32310, 32324, 32314, 32581, 8778 32639, 32638, 32637, 32756, 32754, 32812, 33211, 33220, 33228, 33226, 8779 33221, 33223, 33212, 33257, 33371, 33370, 33372, 34179, 34176, 34191, 8780 34215, 34197, 34208, 34187, 34211, 34171, 34212, 34202, 34206, 34167, 8781 34172, 34185, 34209, 34170, 34168, 34135, 34190, 34198, 34182, 34189, 8782 34201, 34205, 34177, 34210, 34178, 34184, 34181, 34169, 34166, 34200, 8783 34192, 34207, 34408, 34750, 34730, 34733, 34757, 34736, 34732, 34745, 8784 34741, 34748, 34734, 34761, 34755, 34754, 34764, 34743, 34735, 34756, 8785 34762, 34740, 34742, 34751, 34744, 34749, 34782, 34738, 35125, 35123, 8786 35132, 35134, 35137, 35154, 35127, 35138, 35245, 35247, 35246, 8787 {f: 2, c: 35314}, 35614, 35608, 35606, 35601, 35589, 35595, 35618, 35599, 8788 35602, 35605, 35591, 35597, 35592, 35590, 35612, 35603, 35610, 35919, 8789 35952, 35954, 35953, 35951, 35989, 35988, 36089, 36207, 36430, 36429, 8790 36435, 36432, 36428, 36423, 36675, 36672, 36997, 36990, 37176, 37274, 8791 37282, 37275, 37273, 37279, 37281, 37277, 37280, 37793, 37763, 37807, 8792 37732, 37718, 37703, 37756, 37720, 37724, 37750, 37705, {f: 2, c: 37712}, 8793 37728, 37741, 37775, 37708, 37738, 37753, 37719, 37717, 37714, 37711, 8794 37745, 37751, 37755, 37729, 37726, 37731, 37735, 37710, 37721, 38343, 8795 38336, 38345, 38339, 38341, 38327, 38574, 38576, 38572, 38688, 38687, 8796 38680, 38685, 38681, 38810, 38817, 38812, 38814, 38813, 38869, 38868, 8797 38897, 38977, 38980, 38986, 38985, 38981, 38979, 39205, {f: 2, c: 39211}, 8798 39210, 39219, 39218, 39215, 39213, 39217, 39216, 39320, 39331, 39329, 8799 39426, 39418, 39412, 39415, 39417, 39416, 39414, 39419, {f: 2, c: 39421}, 8800 39420, 39427, 39614, 39678, 39677, 39681, 39676, 39752, 39834, 39848, 8801 39838, 39835, 39846, 39841, 39845, 39844, 39814, 39842, 39840, 39855, 8802 40243, 40257, 40295, 40246, {f: 2, c: 40238}, 40241, 40248, 40240, 40261, 8803 {f: 2, c: 40258}, 40254, 40247, 40256, 40253, 32757, 40237, 40586, 40585, 8804 40589, 40624, 40648, 40666, 40699, 40703, 40740, 40739, 40738, 40788, 8805 [12245, 40864], 20785, {f: 2, c: 20781}, 22168, 22172, 22167, 22170, 22173, 8806 22169, 22896, 23356, {f: 2, c: 23657}, 24000, {f: 2, c: 24173}, 25048, 8807 25055, {f: 2, c: 25069}, 25073, 25066, 25072, 25067, 25046, 25065, 25855, 8808 25860, 25853, 25848, 25857, 25859, 25852, 26004, 26075, {f: 2, c: 26330}, 8809 26328, 27333, 27321, 27325, 27361, 27334, 27322, {f: 2, c: 27318}, 27335, 8810 27316, 27309, 27486, 27593, 27659, 28679, {f: 2, c: 28684}, 28673, 28677, 8811 28692, 28686, {f: 2, c: 28671}, 28667, 28710, 28668, 28663, 28682, 8812 [29185, 60224], 29183, 29177, 29187, 29181, 29558, 29880, 29888, 29877, 8813 29889, 29886, 29878, 29883, 29890, 29972, 29971, 30300, 30308, 30297, 8814 30288, 30291, 30295, 30298, 30374, 30397, 30444, 30658, 30650, 30988, 8815 {f: 2, c: 30995}, 30985, 30992, 30994, 30993, 31149, 31148, 31327, 31772, 8816 31785, 31769, 31776, 31775, 31789, 31773, 31782, 31784, 31778, 31781, 8817 31792, 32348, 32336, 32342, 32355, 32344, 32354, 32351, 32337, 32352, 8818 32343, 32339, 32693, 32691, {f: 2, c: 32759}, 32885, {f: 2, c: 33233}, 8819 33232, 33375, 33374, 34228, 34246, 34240, 34243, 34242, 34227, 34229, 8820 34237, 34247, 34244, 34239, 34251, 34254, 34248, 34245, 34225, 34230, 8821 34258, 34340, 34232, 34231, 34238, 34409, 34791, 34790, 34786, 34779, 8822 34795, 34794, 34789, 34783, 34803, 34788, 34772, 34780, 34771, 34797, 8823 34776, 34787, 34775, 34777, 34817, 34804, 34792, 34781, 35155, 35147, 8824 35151, 35148, 35142, {f: 2, c: 35152}, 35145, 35626, 35623, 35619, 35635, 8825 35632, 35637, 35655, 35631, 35644, 35646, 35633, 35621, 35639, 35622, 8826 35638, 35630, 35620, 35643, 35645, 35642, 35906, 35957, 35993, 35992, 8827 35991, 36094, 36100, 36098, 36096, 36444, 36450, 36448, 36439, 36438, 8828 36446, 36453, 36455, 36443, 36442, 36449, 36445, 36457, 36436, 8829 {f: 3, c: 36678}, 36683, 37160, {f: 2, c: 37178}, 37182, 37288, 37285, 8830 37287, 37295, 37290, 37813, 37772, 37778, 37815, 37787, 37789, 37769, 8831 37799, 37774, 37802, 37790, 37798, 37781, 37768, 37785, 37791, 37760, 8832 37773, 37809, 37777, 37810, 37796, 37800, 37812, 37795, {f: 2, c: 38354}, 8833 38353, 38579, 38615, 38618, 24002, 38623, 38616, 38621, 38691, 38690, 8834 38693, 38828, 38830, 38824, 38827, 38820, 38826, 38818, 38821, 38871, 8835 38873, 38870, 38872, 38906, {f: 3, c: 38992}, 39096, 39233, 39228, 39226, 8836 39439, 39435, 39433, 39437, 39428, 39441, 39434, 39429, 39431, 39430, 8837 39616, 39644, 39688, {f: 2, c: 39684}, 39721, 39733, 39754, 39756, 39755, 8838 39879, 39878, 39875, 39871, 39873, 39861, 39864, 39891, 39862, 39876, 8839 39865, 39869, 40284, 40275, 40271, 40266, 40283, 40267, 40281, 40278, 8840 40268, 40279, 40274, 40276, 40287, 40280, 40282, 40590, 40588, 40671, 8841 40705, 40704, [40726, 58693], 40741, 40747, 40746, 40745, 40744, 40780, 8842 40789, {f: 2, c: 20788}, 21142, 21239, 21428, 22187, 22189, 8843 {f: 2, c: 22182}, 22186, 22188, 22746, 22749, 22747, 22802, 8844 {f: 3, c: 23357}, 24003, 24176, 24511, 25083, 25863, 25872, 25869, 25865, 8845 25868, 25870, 25988, 26078, 26077, 26334, 27367, 27360, 27340, 27345, 8846 27353, 27339, 27359, 27356, 27344, 27371, 27343, 27341, 27358, 27488, 8847 27568, 27660, 28697, 28711, 28704, 28694, 28715, {f: 3, c: 28705}, 28713, 8848 28695, 28708, 28700, 29196, 29194, 29191, 29186, 29189, {f: 2, c: 29349}, 8849 29348, 29347, 29345, 29899, 29893, 29879, 29891, 29974, 30304, 8850 {f: 2, c: 30665}, 30660, 30705, 31005, 31003, 31009, 31004, 30999, 31006, 8851 31152, {f: 2, c: 31335}, 31795, 31804, 31801, 31788, 31803, 31980, 31978, 8852 32374, 32373, 32376, 32368, 32375, 32367, 32378, 32370, 32372, 32360, 8853 32587, 32586, 32643, 32646, 32695, {f: 2, c: 32765}, 32888, 33239, 33237, 8854 33291, 33380, 33377, 33379, 34283, 34289, 34285, 34265, 34273, 34280, 8855 34266, 34263, 34284, 34290, 34296, 34264, 34271, 34275, 34268, 34257, 8856 34288, 34278, 34287, 34270, 34274, 34816, 34810, 34819, {f: 2, c: 34806}, 8857 34825, 34828, 34827, 34822, 34812, 34824, 34815, 34826, 34818, 35170, 8858 {f: 2, c: 35162}, 35159, 35169, 35164, 35160, 35165, 35161, 35208, 35255, 8859 35254, 35318, 35664, 35656, 35658, 35648, 35667, 35670, 35668, 35659, 8860 35669, 35665, 35650, 35666, 35671, 35907, 35959, 35958, 35994, 8861 {f: 2, c: 36102}, 36105, 36268, 36266, 36269, 36267, 36461, 36472, 36467, 8862 36458, 36463, 36475, 36546, 36690, 36689, {f: 2, c: 36687}, 36691, 36788, 8863 37184, 37183, 37296, 37293, 37854, 37831, 37839, 37826, 37850, 37840, 8864 37881, 37868, 37836, 37849, 37801, 37862, 37834, 37844, 37870, 37859, 8865 37845, 37828, 37838, 37824, 37842, 37797, 37863, 38269, {f: 2, c: 38362}, 8866 38625, 38697, {f: 2, c: 38699}, 38696, 38694, 38835, 38839, 38838, 8867 {f: 3, c: 38877}, 39004, 39001, 39005, 38999, 39103, 39101, 39099, 39102, 8868 39240, 39239, 39235, {f: 2, c: 39334}, 39450, 39445, 39461, 39453, 39460, 8869 39451, 39458, 39456, 39463, 39459, 39454, 39452, 39444, 39618, 39691, 8870 39690, 39694, 39692, 39735, {f: 2, c: 39914}, 39904, 39902, 39908, 39910, 8871 39906, 39920, 39892, 39895, 39916, 39900, 39897, 39909, 39893, 39905, 8872 39898, 40311, 40321, 40330, 40324, 40328, 40305, 40320, 40312, 40326, 8873 {f: 2, c: 40331}, 40317, 40299, {f: 2, c: 40308}, 40304, 40297, 40325, 8874 40307, 40315, 40322, 40303, 40313, 40319, 40327, 40296, 40596, 40593, 8875 40640, 40700, 40749, {f: 2, c: 40768}, 40781, {f: 3, c: 40790}, 21303, 8876 22194, 22197, 22195, 22755, 23365, {f: 2, c: 24006}, {f: 2, c: 24302}, 8877 {f: 2, c: 24512}, 25081, 25879, 25878, 25877, 25875, 26079, 26344, 8878 {f: 2, c: 26339}, 27379, 27376, 27370, 27368, 27385, 27377, 8879 {f: 2, c: 27374}, 28732, 28725, 28719, 28727, 28724, 28721, 28738, 28728, 8880 28735, 28730, 28729, 28714, 28736, 28731, 28723, 28737, {f: 2, c: 29203}, 8881 29352, 29565, 29564, 29882, 30379, 30378, 30398, 30445, 30668, 8882 {f: 2, c: 30670}, 30669, 30706, 31013, 31011, {f: 2, c: 31015}, 31012, 8883 31017, 31154, 31342, {f: 2, c: 31340}, 31479, 31817, 31816, 31818, 31815, 8884 31813, 31982, 32379, 32382, 32385, 32384, 32698, 32767, 32889, 33243, 8885 33241, {f: 2, c: 33384}, 34338, 34303, 34305, 34302, 34331, 34304, 34294, 8886 34308, 34313, 34309, 34316, 34301, 34841, {f: 2, c: 34832}, 34839, 34835, 8887 34838, 35171, 35174, 35257, 35319, 35680, 35690, 35677, 35688, 35683, 8888 35685, 35687, 35693, 36270, 36486, 36488, 36484, 36697, {f: 2, c: 36694}, 8889 36693, 36696, 36698, 37005, 37187, 37185, 37303, 37301, {f: 2, c: 37298}, 8890 37899, 37907, 37883, 37920, 37903, 37908, 37886, 37909, 37904, 37928, 8891 37913, 37901, 37877, 37888, 37879, 37895, 37902, 37910, 37906, 37882, 8892 37897, 37880, 37948, 37898, 37887, 37884, 37900, 37878, 37905, 37894, 8893 38366, 38368, 38367, {f: 2, c: 38702}, 38841, 38843, {f: 2, c: 38909}, 8894 39008, {f: 2, c: 39010}, 39007, {f: 2, c: 39105}, 39248, 39246, 39257, 8895 39244, 39243, 39251, 39474, 39476, 39473, 39468, 39466, 39478, 39465, 8896 39470, 39480, 39469, 39623, 39626, 39622, 39696, 39698, 39697, 39947, 8897 39944, 39927, 39941, 39954, 39928, 40000, 39943, 39950, 39942, 39959, 8898 39956, 39945, 40351, 40345, 40356, 40349, 40338, 40344, 40336, 40347, 8899 40352, 40340, 40348, 40362, 40343, 40353, 40346, 40354, 40360, 40350, 8900 40355, 40383, 40361, 40342, {f: 2, c: 40358}, 40601, 40603, 40602, 40677, 8901 40676, 40679, 40678, 40752, 40750, 40795, 40800, 40798, 40797, 40793, 8902 40849, 20794, 20793, 21144, 21143, 22211, {f: 2, c: 22205}, 23368, 23367, 8903 24011, 24015, 24305, 25085, 25883, 27394, 27388, 27395, 27384, 27392, 8904 {f: 2, c: 28739}, 28746, {f: 2, c: 28744}, {f: 2, c: 28741}, 29213, 29210, 8905 29209, 29566, 29975, 30314, 30672, 31021, 31025, 31023, 31828, 31827, 8906 31986, 32394, [32391, 60229], 32392, 32395, 32390, 32397, 32589, 32699, 8907 32816, 33245, 34328, 34346, 34342, 34335, 34339, 34332, 34329, 34343, 8908 34350, 34337, 34336, 34345, 34334, 34341, 34857, 34845, 34843, 34848, 8909 34852, 34844, 34859, 34890, 35181, 35177, 35182, 35179, 35322, 35705, 8910 35704, 35653, {f: 2, c: 35706}, 36112, 36116, 36271, 36494, 36492, 36702, 8911 36699, 36701, 37190, {f: 2, c: 37188}, 37305, 37951, 37947, 37942, 37929, 8912 37949, 37936, 37945, 37930, 37943, 37932, 37952, 37937, 38373, 38372, 8913 38371, 38709, 38714, 38847, 38881, 39012, 39113, 39110, 39104, 39256, 8914 39254, 39481, 39485, 39494, 39492, 39490, 39489, 39482, 39487, 39629, 8915 39701, {f: 2, c: 39703}, 39702, 39738, 39762, 39979, 39965, 39964, 39980, 8916 39971, {f: 2, c: 39976}, 39972, 39969, 40375, 40374, 40380, 40385, 40391, 8917 40394, 40399, 40382, 40389, 40387, 40379, 40373, 40398, {f: 2, c: 40377}, 8918 40364, 40392, 40369, 40365, 40396, 40371, 40397, 40370, 40570, 40604, 8919 40683, 40686, 40685, 40731, 40728, 40730, 40753, 40782, 40805, 40804, 8920 40850, 20153, 22214, 22213, 22219, 22897, {f: 2, c: 23371}, 24021, 24017, 8921 24306, 25889, 25888, 25894, 25890, 27403, {f: 2, c: 27400}, 27661, 8922 {f: 3, c: 28757}, 28754, {f: 2, c: 29214}, 29353, 29567, 29912, 29909, 8923 29913, 29911, 30317, 30381, 31029, 31156, {f: 2, c: 31344}, 31831, 31836, 8924 31833, 31835, 31834, 31988, 31985, 32401, 32591, 32647, 33246, 33387, 8925 {f: 2, c: 34356}, 34355, 34348, 34354, 34358, 34860, 34856, 34854, 34858, 8926 34853, 35185, 35263, 35262, 35323, 35710, 35716, 35714, 35718, 35717, 8927 35711, 36117, 36501, 36500, 36506, 36498, 36496, {f: 2, c: 36502}, 36704, 8928 36706, 37191, 37964, 37968, {f: 2, c: 37962}, 37967, 37959, 37957, 8929 {f: 2, c: 37960}, 37958, 38719, 38883, 39018, 39017, 39115, 39252, 39259, 8930 39502, {f: 2, c: 39507}, 39500, 39503, 39496, 39498, 39497, 39506, 39504, 8931 39632, 39705, 39723, 39739, 39766, 39765, 40006, 40008, 39999, 40004, 8932 39993, 39987, 40001, 39996, 39991, 39988, 39986, 39997, 39990, 40411, 8933 40402, 40414, 40410, 40395, 40400, 40412, 40401, 40415, 40425, 40409, 8934 40408, 40406, 40437, 40405, 40413, 40630, 40688, 40757, 40755, 40754, 8935 40770, 40811, 40853, 40866, 20797, 21145, 22760, 22759, 22898, 23373, 8936 24024, 34863, 24399, 25089, {f: 2, c: 25091}, 25897, 25893, 26006, 26347, 8937 {f: 2, c: 27409}, 27407, 27594, 28763, 28762, 29218, 29570, 29569, 29571, 8938 30320, 30676, 31847, 31846, 32405, 33388, 34362, 34368, 34361, 34364, 8939 34353, 34363, 34366, 34864, 34866, 34862, 34867, 35190, 35188, 35187, 8940 35326, 35724, 35726, 35723, 35720, 35909, 36121, 36504, 36708, 36707, 8941 37308, 37986, 37973, 37981, 37975, 37982, {f: 2, c: 38852}, 38912, 39510, 8942 39513, {f: 3, c: 39710}, 40018, 40024, 40016, 40010, 40013, 40011, 40021, 8943 40025, 40012, 40014, 40443, 40439, 40431, 40419, 40427, 40440, 40420, 8944 40438, 40417, 40430, 40422, 40434, [40432, 60370], 40418, 40428, 40436, 8945 40435, 40424, 40429, 40642, 40656, {f: 2, c: 40690}, 40710, 40732, 40760, 8946 40759, 40758, 40771, 40783, 40817, 40816, {f: 2, c: 40814}, 22227, 22221, 8947 23374, 23661, 25901, {f: 2, c: 26349}, 27411, 28767, 28769, 28765, 28768, 8948 29219, 29915, 29925, 30677, 31032, 31159, 31158, 31850, 32407, 32649, 8949 33389, 34371, 34872, 34871, 34869, 34891, {f: 2, c: 35732}, 8950 {f: 3, c: 36510}, 36509, 37310, 37309, 37314, 37995, {f: 2, c: 37992}, 8951 38629, 38726, 38723, 38727, 38855, 38885, 39518, 39637, 39769, 40035, 8952 40039, 40038, 40034, 40030, 40032, 40450, 40446, 40455, 40451, 40454, 8953 40453, {f: 2, c: 40448}, 40457, 40447, 40445, 40452, 40608, 40734, 40774, 8954 {f: 3, c: 40820}, 22228, 25902, 26040, {f: 2, c: 27416}, 27415, 27418, 8955 28770, 29222, 29354, {f: 2, c: 30680}, 31033, 31849, 31851, 31990, 32410, 8956 32408, 32411, 32409, {f: 2, c: 33248}, {f: 3, c: 34374}, {f: 2, c: 35193}, 8957 35196, 35195, 35327, {f: 2, c: 35736}, 36517, 36516, 36515, 37998, 37997, 8958 37999, 38001, 38003, 38729, 39026, 39263, 40040, 40046, 40045, 40459, 8959 40461, 40464, 40463, 40466, 40465, 40609, 40693, 40713, 40775, 40824, 8960 40827, 40826, 40825, 22302, 28774, 31855, 34876, 36274, 36518, 37315, 8961 38004, 38008, 38006, 38005, 39520, [39726, 60830], 40052, 40051, 40049, 8962 40053, 40468, 40467, 40694, 40714, 40868, 28776, 28773, 31991, 34410, 8963 34878, 34877, 34879, 35742, 35996, 36521, 36553, 38731, {f: 2, c: 39027}, 8964 39116, 39265, 39339, 39524, {f: 2, c: 39526}, 39716, 40469, 40471, 40776, 8965 25095, 27422, 29223, 34380, 36520, 38018, {f: 2, c: 38016}, 39529, 39528, 8966 40473, 34379, 35743, 38019, 40057, 40631, 30325, 39531, 40058, 40477, 8967 {f: 2, c: 28777}, 29225, 40612, 40830, 40777, 40856, {s: 97}, 65075, 0, 8968 65076, 65103, [168, 776, 63208], [710, 63209, 65342], [12541, 63210], 8969 [12542, 63211], [12445, 63212], [12446, 63213], 0, [12293, 63216], 8970 [12294, 63217], [12295, 63218], [12540, 63219], [63220, 65339], 8971 [63221, 65341], [10045, 63222], [12353, 63223], [12354, 63224], 8972 [12355, 63225], [12356, 63226], [12357, 63227], [12358, 63228], 8973 [12359, 63229], [12360, 63230], [12361, 63231], [12362, 63232], 8974 [12363, 63233], [12364, 63234], [12365, 63235], [12366, 63236], 8975 [12367, 63237], [12368, 63238], [12369, 63239], [12370, 63240], 8976 [12371, 63241], [12372, 63242], [12373, 63243], [12374, 63244], 8977 [12375, 63245], [12376, 63246], [12377, 63247], [12378, 63248], 8978 [12379, 63249], [12380, 63250], [12381, 63251], [12382, 63252], 8979 [12383, 63253], [12384, 63254], [12385, 63255], [12386, 63256], 8980 [12387, 63257], [12388, 63258], [12389, 63259], [12390, 63260], 8981 [12391, 63261], [12392, 63262], [12393, 63263], [12394, 63264], 8982 [12395, 63265], [12396, 63266], [12397, 63267], [12398, 63268], 8983 [12399, 63269], [12400, 63270], [12401, 63271], [12402, 63272], 8984 [12403, 63273], [12404, 63274], [12405, 63275], [12406, 63276], 8985 [12407, 63277], [12408, 63278], [12409, 63279], [12410, 63280], 8986 [12411, 63281], [12412, 63282], [12413, 63283], [12414, 63284], 8987 [12415, 63285], [12416, 63286], [12417, 63287], [12418, 63288], 8988 [12419, 63289], [12420, 63290], [12421, 63291], [12422, 63292], 8989 [12423, 63293], [12424, 63294], [12425, 63295], [12426, 63296], 8990 [12427, 63297], [12428, 63298], [12429, 63299], [12430, 63300], 8991 [12431, 63301], [12432, 63302], [12433, 63303], [12434, 63304], 8992 [12435, 63305], [12449, 63306], [12450, 63307], [12451, 63308], 8993 [12452, 63309], [12453, 63310], [12454, 63311], [12455, 63312], 8994 [12456, 63313], [12457, 63314], [12458, 63315], [12459, 63316], 8995 [12460, 63317], [12461, 63318], [12462, 63319], [12463, 63320], 8996 [12464, 63321], [12465, 63322], [12466, 63323], [12467, 63324], 8997 [12468, 63325], [12469, 63326], [12470, 63327], [12471, 63328], 8998 [12472, 63329], [12473, 63330], [12474, 63331], [12475, 63332], 8999 [12476, 63333], [12477, 63334], [12478, 63335], [12479, 63336], 9000 [12480, 63337], [12481, 63338], [12482, 63339], [12483, 63340], 9001 [12484, 63341], [12485, 63342], [12486, 63343], [12487, 63344], 9002 [12488, 63345], [12489, 63346], [12490, 63347], [12491, 63348], 9003 [12492, 63349], [12493, 63350], [12494, 63351], [12495, 63352], 9004 [12496, 63353], [12497, 63354], [12498, 63355], [12499, 63356], 9005 [12500, 63357], [12501, 63358], [12502, 63359], [12503, 63360], 9006 [12504, 63361], [12505, 63362], [12506, 63363], [12507, 63364], 9007 [12508, 63365], [12509, 63366], [12510, 63367], [12511, 63368], 9008 [12512, 63369], [12513, 63370], [12514, 63371], [12515, 63372], 9009 [12516, 63373], [12517, 63374], [12518, 63375], [12519, 63376], 9010 [12520, 63377], [12521, 63378], [12522, 63379], [12523, 63380], 9011 [12524, 63381], [12525, 63382], [12526, 63383], [12527, 63384], 9012 [12528, 63385], [12529, 63386], [12530, 63387], [12531, 63388], 9013 [12532, 63389], [12533, 63390], [12534, 63391], [1040, 63392], 9014 [1041, 63393], [1042, 63394], [1043, 63395], [1044, 63396], [1045, 63397], 9015 [1025, 63398], [1046, 63399], [1047, 63400], [1048, 63401], [1049, 63402], 9016 [1050, 63403], [1051, 63404], [1052, 63405], [1053, 63406], [1054, 63407], 9017 [1055, 63408], [1056, 63409], [1057, 63410], [1058, 63411], [1059, 63412], 9018 [1060, 63413], [1061, 63414], [1062, 63415], [1063, 63416], [1064, 63417], 9019 [1065, 63418], [1066, 63419], [1067, 63420], [1068, 63421], [1069, 63422], 9020 [1070, 63423], [1071, 63424], [1072, 63425], [1073, 63426], [1074, 63427], 9021 [1075, 63428], [1076, 63429], [1077, 63430], [1105, 63431], [1078, 63432], 9022 [1079, 63433], [1080, 63434], [1081, 63435], [1082, 63436], [1083, 63437], 9023 [1084, 63438], [1085, 63439], [1086, 63440], [1087, 63441], [1088, 63442], 9024 [1089, 63443], [1090, 63444], [1091, 63445], [1092, 63446], [1093, 63447], 9025 [1094, 63448], [1095, 63449], [1096, 63450], [1097, 63451], [1098, 63452], 9026 [1099, 63453], [1100, 63454], [1101, 63455], [1102, 63456], [1103, 63457], 9027 [8679, 63458], [8632, 63459], [8633, 63460], [20033, 63461], 9028 [63462, 131276], [20058, 63463], [63464, 131210], [20994, 63465], 9029 [17553, 63466], 63467, [20872, 63468], [13853, 63469], [63470, 161287], 9030 {s: 40}, [172, 63511, 65506], [63512, 65508], [63513, 65287], 9031 [63514, 65282], [12849, 63515], [8470, 63516], [8481, 63517], 30849, 9032 [37561, 58501], 35023, 22715, 24658, 31911, 23290, 9556, 9574, 9559, 9568, 9033 9580, 9571, 9562, 9577, 9565, 9554, 9572, 9557, {s: 3}, 9560, 9575, 9563, 9034 9555, 9573, 9558, 9567, 9579, 9570, 9561, 9576, 9564, 9553, {s: 5}, 9619, 9035 {s: 26}, [58129, 147159], [22462, 58130], [58131, 159443], [28990, 58132], 9036 [58133, 153568], [27042, 58135], [58136, 166889], [23412, 58137], 9037 [31305, 58138], [58139, 153825], [58140, 169177], [31333, 58141], 9038 [31357, 58142], [58143, 154028], [31419, 58144], [31408, 58145], 9039 [31426, 58146], [31427, 58147], [29137, 58148], [58149, 156813], 9040 [16842, 58150], [31450, 58151], [31453, 58152], [31466, 58153], 9041 [16879, 58154], [21682, 58155], [58156, 154625], [31499, 58157], 9042 [31573, 58158], [31529, 58159], [58160, 152334], [58161, 154878], 9043 [31650, 58162], [31599, 58163], [33692, 58164], [58165, 154548], 9044 [58166, 158847], [31696, 58167], [33825, 58168], [31634, 58169], 0, 9045 [58171, 154912], 0, [33938, 58174], [31738, 58175], 0, [31797, 58177], 9046 [58178, 154817], [31812, 58179], [31875, 58180], [58181, 149634], 9047 [31910, 58182], [58184, 148856], [31945, 58185], [31943, 58186], 9048 [31974, 58187], 0, [31987, 58189], [31989, 58190], [32359, 58192], 9049 [17693, 58193], [58194, 159300], [32093, 58195], [58196, 159446], 9050 [32137, 58198], [32171, 58199], [28981, 58200], [32179, 58201], 32214, 9051 [58203, 147543], [58204, 155689], [32228, 58205], [15635, 58206], 9052 [32245, 58207], [58208, 137209], [32229, 58209], [58210, 164717], 0, 9053 [58212, 155937], [58213, 155994], [32366, 58214], 0, [17195, 58216], 9054 [37996, 58217], [32295, 58218], [32576, 58219], [32577, 58220], 9055 [32583, 58221], [31030, 58222], [58223, 156368], [39393, 58224], 9056 [32663, 58225], [58226, 156497], [32675, 58227], [58228, 136801], 9057 [58229, 131176], [17756, 58230], [58231, 145254], [58233, 164666], 9058 [32762, 58234], [58235, 156809], 0, [32776, 58237], [32797, 58238], 0, 9059 [32815, 58240], [58241, 172167], [58242, 158915], [32827, 58243], 9060 [32828, 58244], [32865, 58245], [58246, 141076], [18825, 58247], 9061 [58248, 157222], [58249, 146915], [58250, 157416], [26405, 58251], 9062 [32935, 58252], [58253, 166472], [33031, 58254], [33050, 58255], 9063 [22704, 58256], [58257, 141046], [27775, 58258], [58259, 156824], 9064 [25831, 58261], [58262, 136330], [33304, 58263], [58264, 137310], 9065 [27219, 58265], [58266, 150117], [58267, 150165], [17530, 58268], 9066 [33321, 58269], [58271, 158290], [58272, 146814], [20473, 58273], 9067 [58274, 136445], [34018, 58275], [33634, 58276], 0, [58278, 149927], 9068 [58279, 144688], [58280, 137075], [58281, 146936], [33450, 58282], 9069 [26907, 58283], [58284, 194964], [16859, 58285], [34123, 58286], 9070 [33488, 58287], [33562, 58288], [58289, 134678], [58290, 137140], 9071 [14017, 58291], [58292, 143741], [58293, 144730], [33403, 58294], 9072 [33506, 58295], [33560, 58296], [58297, 147083], [58298, 159139], 9073 [58299, 158469], [58300, 158615], [58301, 144846], [15807, 58302], 9074 [33565, 58303], [21996, 58304], [33669, 58305], [17675, 58306], 9075 [58307, 159141], [33708, 58308], 0, [33747, 58310], [58312, 159444], 9076 [27223, 58313], [34138, 58314], [13462, 58315], [58316, 159298], 9077 [33880, 58318], [58319, 154596], [33905, 58320], [15827, 58321], 9078 [17636, 58322], [27303, 58323], [33866, 58324], [31064, 58326], 0, 9079 [58328, 158614], [58329, 159351], [58330, 159299], [34014, 58331], 0, 9080 [33681, 58333], [17568, 58334], [33939, 58335], [34020, 58336], 9081 [58337, 154769], [16960, 58338], [58339, 154816], [17731, 58340], 9082 [34100, 58341], [23282, 58342], 0, [17703, 58344], [34163, 58345], 9083 [17686, 58346], [26559, 58347], [34326, 58348], [58349, 165413], 9084 [58350, 165435], [34241, 58351], [58352, 159880], [34306, 58353], 9085 [58354, 136578], [58355, 159949], [58356, 194994], [17770, 58357], 9086 [34344, 58358], [13896, 58359], [58360, 137378], [21495, 58361], 9087 [58362, 160666], [34430, 58363], 0, [58365, 172280], [34798, 58366], 9088 [58367, 142375], [34737, 58368], [34778, 58369], [34831, 58370, 60990], 9089 [22113, 58371], [34412, 58372], [26710, 58373], [17935, 58374], 9090 [34885, 58375], [34886, 58376], [58377, 161248], [58378, 146873], 9091 [58379, 161252], [34910, 58380], [34972, 58381], [18011, 58382], 9092 [34996, 58383], [34997, 58384], [35013, 58386], [58388, 161551], 9093 [35207, 58389], {s: 3}, [35239, 58393], [35260, 58394], [58395, 166437], 9094 [35303, 58396], [58397, 162084], [58398, 162493], [35484, 58399], 9095 [30611, 58400], [37374, 58401], [35472, 58402], [58403, 162393], 9096 [31465, 58404], [58405, 162618], [18195, 58407], [58408, 162616], 9097 [29052, 58409], [35596, 58410], [35615, 58411], [58412, 152624], 9098 [58413, 152933], [35647, 58414], 0, [35661, 58416], [35497, 58417], 9099 [58418, 150138], [35728, 58419], [35739, 58420], [35503, 58421], 9100 [58422, 136927], [17941, 58423], [34895, 58424], [35995, 58425], 9101 [58426, 163156], [58427, 163215], [58428, 195028], [14117, 58429], 9102 [58430, 163155], [36054, 58431], [58432, 163224], [58433, 163261], 9103 [36114, 58434], [36099, 58435], [58436, 137488], [36059, 58437], 9104 [28764, 58438], [36113, 58439], [16080, 58441], 0, [36265, 58443], 9105 [58444, 163842], [58445, 135188], [58446, 149898], [15228, 58447], 9106 [58448, 164284], [58449, 160012], [31463, 58450], [36525, 58451], 9107 [36534, 58452], [36547, 58453], [37588, 58454], [36633, 58455], 9108 [36653, 58456], [58457, 164709], [58458, 164882], [36773, 58459], 9109 [37635, 58460], [58461, 172703], [58462, 133712], [36787, 58463], 0, 9110 [58465, 166366], [58466, 165181], [58467, 146875], [24312, 58468], 9111 [58469, 143970], [36857, 58470], 0, [58474, 140069], [14720, 58475], 9112 [58476, 159447], [36919, 58477], [58478, 165180], [58479, 162494], 9113 [36961, 58480], [58481, 165228], [58482, 165387], [37032, 58483], 9114 [58484, 165651], [37060, 58485], [58486, 165606], [37038, 58487], 0, 9115 [37223, 58489], [37289, 58491], [37316, 58492], [31916, 58493], 9116 [58494, 166195], [58495, 138889], [37390, 58496], [27807, 58497], 9117 [37441, 58498], [37474, 58499], [58500, 153017], [58502, 166598], 9118 [58503, 146587], [58504, 166668], [58505, 153051], [58506, 134449], 9119 [37676, 58507], [37739, 58508], [58509, 166625], [58510, 166891], 9120 [23235, 58512], [58513, 166626], [58514, 166629], [18789, 58515], 9121 [37444, 58516], [58517, 166892], [58518, 166969], [58519, 166911], 9122 [37747, 58520], [37979, 58521], [36540, 58522], [38277, 58523], 9123 [38310, 58524], [37926, 58525], [38304, 58526], [28662, 58527], 9124 [17081, 58528], [58530, 165592], [58531, 135804], [58532, 146990], 9125 [18911, 58533], [27676, 58534], [38523, 58535], [38550, 58536], 9126 [16748, 58537], [38563, 58538], [58539, 159445], [25050, 58540], 58541, 9127 [30965, 58542], [58543, 166624], [38589, 58544], [21452, 58545], 9128 [18849, 58546], [58547, 158904], [58548, 131700], [58549, 156688], 9129 [58550, 168111], [58551, 168165], [58552, 150225], [58553, 137493], 9130 [58554, 144138], [38705, 58555], [34370, 58556], [38710, 58557], 9131 [18959, 58558], [17725, 58559], [17797, 58560], [58561, 150249], 9132 [28789, 58562], [23361, 58563], [38683, 58564], 0, [58566, 168405], 9133 [38743, 58567], [23370, 58568], [58569, 168427], [38751, 58570], 9134 [37925, 58571], [20688, 58572], [58573, 143543], [58574, 143548], 9135 [38793, 58575], [38815, 58576], [38833, 58577], [38846, 58578], 9136 [38848, 58579], [38866, 58580], [38880, 58581], [58582, 152684], 9137 [38894, 58583], [29724, 58584], [58585, 169011], 0, [38901, 58587], 9138 [58588, 168989], [58589, 162170], [19153, 58590], [38964, 58591], 9139 [38963, 58592], [38987, 58593], [39014, 58594], [15118, 58595], 9140 [58596, 160117], [15697, 58597], [58598, 132656], [58599, 147804], 9141 [58600, 153350], [39114, 58601], [39095, 58602], [39112, 58603], 9142 [39111, 58604], [19199, 58605], [58606, 159015], [58607, 136915], 9143 [21936, 58608], [39137, 58609], [39142, 58610], [39148, 58611], 9144 [37752, 58612], [39225, 58613], [58614, 150057], [19314, 58615], 9145 [58616, 170071], [58617, 170245], [39413, 58618], [39436, 58619], 9146 [39483, 58620], [39440, 58621], [39512, 58622], [58623, 153381], 9147 [14020, 58624], [58625, 168113], [58626, 170965], [39648, 58627], 9148 [39650, 58628], [58629, 170757], [39668, 58630], [19470, 58631], 9149 [39700, 58632], [39725, 58633], [58634, 165376], [20532, 58635], 9150 [39732, 58636], [14531, 58638], [58639, 143485], [39760, 58640], 9151 [39744, 58641], [58642, 171326], [23109, 58643], [58644, 137315], 9152 [39822, 58645], [39938, 58647], [39935, 58648], [39948, 58649], 9153 [58650, 171624], [40404, 58651], [58652, 171959], [58653, 172434], 9154 [58654, 172459], [58655, 172257], [58656, 172323], [58657, 172511], 9155 [40318, 58658], [40323, 58659], [58660, 172340], [40462, 58661], 9156 [40388, 58663], [58665, 172435], [58666, 172576], [58667, 137531], 9157 [58668, 172595], [40249, 58669], [58670, 172217], [58671, 172724], 9158 [40592, 58672], [40597, 58673], [40606, 58674], [40610, 58675], 9159 [19764, 58676], [40618, 58677], [40623, 58678], [58679, 148324], 9160 [40641, 58680], [15200, 58681], [14821, 58682], [15645, 58683], 9161 [20274, 58684], [14270, 58685], [58686, 166955], [40706, 58687], 9162 [40712, 58688], [19350, 58689], [37924, 58690], [58691, 159138], 9163 [40727, 58692, 60836], 0, [40761, 58694], [22175, 58695], [22154, 58696], 9164 [40773, 58697], [39352, 58698], [58699, 168075], [38898, 58700], 9165 [33919, 58701], 0, [40809, 58703], [31452, 58704], [40846, 58705], 9166 [29206, 58706], [19390, 58707], [58708, 149877], [58709, 149947], 9167 [29047, 58710], [58711, 150008], [58712, 148296], [58713, 150097], 9168 [29598, 58714], [58715, 166874], [58716, 137466], [31135, 58717], 9169 [58718, 166270], [58719, 167478], [37737, 58720], [37875, 58721], 9170 [58722, 166468], [37612, 58723], [37761, 58724], [37835, 58725], 9171 [58726, 166252], [58727, 148665], [29207, 58728], [16107, 58729], 9172 [30578, 58730], [31299, 58731], [28880, 58732], [58733, 148595], 9173 [58734, 148472], [29054, 58735], [58736, 137199], [28835, 58737], 9174 [58738, 137406], [58739, 144793], [16071, 58740], [58741, 137349], 9175 [58742, 152623], [58743, 137208], [14114, 58744], [58745, 136955], 9176 [58746, 137273], [14049, 58747], [58748, 137076], [58749, 137425], 9177 [58750, 155467], [14115, 58751], [58752, 136896], [22363, 58753], 9178 [58754, 150053], [58755, 136190], [58756, 135848], [58757, 136134], 9179 [58758, 136374], [34051, 58759, 58761], [58760, 145062], 0, [33877, 58762], 9180 [58763, 149908], [58764, 160101], [58765, 146993], [58766, 152924], 9181 [58767, 147195], [58768, 159826], [17652, 58769], [58770, 145134], 9182 [58771, 170397], [58772, 159526], [26617, 58773], [14131, 58774], 9183 [15381, 58775], [15847, 58776], [22636, 58777], [58778, 137506], 9184 [26640, 58779], [16471, 58780], [58781, 145215], [58782, 147681], 9185 [58783, 147595], [58784, 147727], [58785, 158753], [21707, 58786], 9186 [22174, 58787], [58788, 157361], [22162, 58789], [58790, 135135], 9187 [58791, 134056], [58792, 134669], 0, [58794, 166675], [37788, 58795], 9188 [20216, 58796], [20779, 58797], [14361, 58798], [58799, 148534], 9189 [20156, 58800], [58801, 132197], 0, [20299, 58803], [20362, 58804], 9190 [58805, 153169], [23144, 58806], [58807, 131499], [58808, 132043], 9191 [14745, 58809], [58810, 131850], [58811, 132116], [13365, 58812], 9192 [20265, 58813], [58814, 131776], [58815, 167603], [58816, 131701], 9193 [35546, 58817], [58818, 131596], [20120, 58819], [20685, 58820], 9194 [20749, 58821], [20386, 58822], [20227, 58823], [58824, 150030], 9195 [58825, 147082], [20290, 58826], [20526, 58827], [20588, 58828], 9196 [20609, 58829], [20428, 58830], [20453, 58831], [20568, 58832], 9197 [20732, 58833], [28278, 58838], [58839, 144789], [58840, 147001], 9198 [58841, 147135], [28018, 58842], [58843, 137348], [58844, 147081], 9199 [20904, 58845], [20931, 58846], [58847, 132576], [17629, 58848], 9200 [58849, 132259], [58850, 132242], [58851, 132241], [36218, 58852], 9201 [58853, 166556], [58854, 132878], [21081, 58855], [21156, 58856], 9202 [58857, 133235], [21217, 58858], 0, [18042, 58860], [29068, 58861], 9203 [58862, 148364], [58863, 134176], [58864, 149932], [58865, 135396], 9204 [27089, 58866], [58867, 134685], 0, [16094, 58869], [29849, 58870], 9205 [29716, 58871], [29782, 58872], [29592, 58873], [19342, 58874], 9206 [58875, 150204], [58876, 147597], [21456, 58877], [13700, 58878], 9207 [29199, 58879], [58880, 147657], [21940, 58881], [58882, 131909], 9208 [21709, 58883], [58884, 134086], [22301, 58885], [37469, 58886], 9209 [38644, 58887], [22493, 58889], [22413, 58890], [22399, 58891], 9210 [13886, 58892], [22731, 58893], [23193, 58894], [58895, 166470], 9211 [58896, 136954], [58897, 137071], [58898, 136976], [23084, 58899], 9212 [22968, 58900], [23166, 58902], [23247, 58903], [23058, 58904], 9213 [58905, 153926], [58906, 137715], [58907, 137313], [58908, 148117], 9214 [14069, 58909], [27909, 58910], [29763, 58911], [23073, 58912], 9215 [58913, 155267], [23169, 58914], [58915, 166871], [58916, 132115], 9216 [37856, 58917], [29836, 58918], [58919, 135939], [28933, 58920], 9217 [18802, 58921], [37896, 58922], [58923, 166395], [37821, 58924], 9218 [14240, 58925], [23582, 58926], [23710, 58927], [24158, 58928], 9219 [24136, 58929], [58930, 137622], [58931, 137596], [58932, 146158], 9220 [24269, 58933], [23375, 58934], [58935, 137475], [58936, 137476], 9221 [14081, 58937], [58938, 137376], [14045, 58939], [58940, 136958], 9222 [14035, 58941], [33066, 58942], [58943, 166471], [58944, 138682], 9223 [58945, 144498], [58946, 166312], [24332, 58947, 60916], [24334, 58948], 9224 [58949, 137511], [58950, 137131], [23147, 58951], [58952, 137019], 9225 [23364, 58953], [58955, 161277], [34912, 58956], [24702, 58957], 9226 [58958, 141408], [58959, 140843], [24539, 58960], [16056, 58961], 9227 [58962, 140719], [58963, 140734], [58964, 168072], [58965, 159603], 9228 [25024, 58966], [58967, 131134], [58968, 131142], [58969, 140827], 9229 [24985, 58970], [24984, 58971], [24693, 58972], [58973, 142491], 9230 [58974, 142599], [58975, 149204], [58976, 168269], [25713, 58977], 9231 [58978, 149093], [58979, 142186], [14889, 58980], [58981, 142114], 9232 [58982, 144464], [58983, 170218], [58984, 142968], [25399, 58985], 9233 [25782, 58987], [25393, 58988], [25553, 58989], [58990, 149987], 9234 [58991, 142695], [25252, 58992], [58993, 142497], [25659, 58994], 9235 [25963, 58995], [26994, 58996], [15348, 58997], [58998, 143502], 9236 [58999, 144045], [59000, 149897], [59001, 144043], [21773, 59002], 9237 [59003, 144096], [59004, 137433], [59005, 169023], [26318, 59006], 9238 [59007, 144009], [59008, 143795], [15072, 59009], [59011, 152964], 9239 [59012, 166690], [59013, 152975], [59014, 136956], [59015, 152923], 9240 [59016, 152613], [30958, 59017], [59018, 143619], [59019, 137258], 9241 [59020, 143924], [13412, 59021], [59022, 143887], [59023, 143746], 9242 [59024, 148169], [26254, 59025], [59026, 159012], [26219, 59027], 9243 [19347, 59028], [26160, 59029], [59030, 161904], [59031, 138731], 9244 [26211, 59032], [59033, 144082], [59034, 144097], [26142, 59035], 9245 [59036, 153714], [14545, 59037], [59038, 145466], [59039, 145340], 9246 [15257, 59040], [59041, 145314], [59042, 144382], [29904, 59043], 9247 [15254, 59044], [59046, 149034], [26806, 59047], 0, [15300, 59049], 9248 [27326, 59050], [59052, 145365], [59053, 148615], [27187, 59054], 9249 [27218, 59055], [27337, 59056], [27397, 59057], [59058, 137490], 9250 [25873, 59059], [26776, 59060], [27212, 59061], [15319, 59062], 9251 [27258, 59063], [27479, 59064], [59065, 147392], [59066, 146586], 9252 [37792, 59067], [37618, 59068], [59069, 166890], [59070, 166603], 9253 [37513, 59071], [59072, 163870], [59073, 166364], [37991, 59074], 9254 [28069, 59075], [28427, 59076], 0, [59079, 147327], [15759, 59080], 9255 [28164, 59081], [59082, 147516], [23101, 59083], [28170, 59084], 9256 [22599, 59085], [27940, 59086], [30786, 59087], [28987, 59088], 9257 [59089, 148250], [59090, 148086], [28913, 59091], [29264, 59092, 61085], 9258 [29319, 59093], [29332, 59094], [59095, 149391], [59096, 149285], 9259 [20857, 59097], [59098, 150180], [59099, 132587], [29818, 59100], 9260 [59101, 147192], [59102, 144991], [59103, 150090], [59104, 149783], 9261 [59105, 155617], [16134, 59106], [16049, 59107], [59108, 150239], 9262 [59109, 166947], [59110, 147253], [24743, 59111], [16115, 59112], 9263 [29900, 59113], [29756, 59114], [37767, 59115], [29751, 59116], 9264 [17567, 59117], [59118, 159210], [17745, 59119], [30083, 59120], 9265 [16227, 59121], [59122, 150745], [59123, 150790], [16216, 59124], 9266 [30037, 59125], [30323, 59126], [59127, 173510], 0, [29800, 59129, 61070], 9267 [59130, 166604], [59131, 149931], [59132, 149902], [15099, 59133], 9268 [15821, 59134], [59135, 150094], [16127, 59136], [59137, 149957], 9269 [59138, 149747], [37370, 59139], [22322, 59140], [37698, 59141], 9270 [59142, 166627], [59143, 137316], [20703, 59144], [59145, 152097], 9271 [59146, 152039], [30584, 59147], [59148, 143922], [30478, 59149], 9272 [30479, 59150], [30587, 59151], [59152, 149143], [59153, 145281], 9273 [14942, 59154], [59155, 149744], [29752, 59156], [29851, 59157], 9274 [16063, 59158], [59159, 150202], [59160, 150215], [16584, 59161], 9275 [59162, 150166], [59163, 156078], [37639, 59164], [59165, 152961], 9276 [30750, 59166], [30861, 59167], [30856, 59168], [30930, 59169], 9277 [29648, 59170], [31065, 59171], [59172, 161601], [59173, 153315], 9278 [16654, 59174], 0, 0, [31141, 59177], [27181, 59178], [59179, 147194], 9279 [31290, 59180], [31220, 59181], [16750, 59182], [59183, 136934], 9280 [16690, 59184], [37429, 59185], [31217, 59186], [59187, 134476], 9281 [59188, 149900], [59189, 131737], [59190, 146874], [59191, 137070], 9282 [13719, 59192], [21867, 59193], [13680, 59194], [13994, 59195], 9283 [59196, 131540], [59197, 134157], [31458, 59198], [23129, 59199], 9284 [59200, 141045], [59201, 154287], [59202, 154268], [23053, 59203], 9285 [59204, 131675], [30960, 59205], [23082, 59206], [59207, 154566], 9286 [31486, 59208], [16889, 59209], [31837, 59210], [31853, 59211], 9287 [16913, 59212], [59213, 154547], [59214, 155324], [59215, 155302], 9288 [31949, 59216], [59217, 150009], [59218, 137136], [31886, 59219], 9289 [31868, 59220], [31918, 59221], [27314, 59222], [32220, 59223], 9290 [32263, 59224], [32211, 59225], [32590, 59226], [59227, 156257], 9291 [59228, 155996], [59229, 162632], [32151, 59230], [59231, 155266], 9292 [17002, 59232], [59233, 158581], [59234, 133398], [26582, 59235], 9293 [59236, 131150], [59237, 144847], [22468, 59238], [59239, 156690], 9294 [59240, 156664], [32733, 59242], [31527, 59243], [59244, 133164], 9295 [59245, 154345], [59246, 154947], [31500, 59247], [59248, 155150], 9296 [39398, 59249], [34373, 59250], [39523, 59251], [27164, 59252], 9297 [59253, 144447], [59255, 150007], [59256, 157101], [39455, 59257], 9298 [59258, 157088], 0, [59260, 160039], [59261, 158929], [17642, 59262], 9299 [33079, 59263], [17410, 59264], [32966, 59265], [33033, 59266], 9300 [33090, 59267], [59268, 157620], [39107, 59269], [59270, 158274], 9301 [33378, 59271], [33381, 59272], [59273, 158289], [33875, 59274], 9302 [59275, 159143], [34320, 59276], [59277, 160283], [23174, 59278], 9303 [16767, 59279], [59280, 137280], [23339, 59281], [59282, 137377], 9304 [23268, 59283], [59284, 137432], [34464, 59285], [59286, 195004], 9305 [59287, 146831], [34861, 59288], [59289, 160802], [23042, 59290], 9306 [34926, 59291], [20293, 59292], [34951, 59293], [35007, 59294], 9307 [35046, 59295], [35173, 59296], [35149, 59297], [59298, 153219], 9308 [35156, 59299], [59300, 161669], [59301, 161668], [59302, 166901], 9309 [59303, 166873], [59304, 166812], [59305, 166393], [16045, 59306], 9310 [33955, 59307], [18165, 59308], [18127, 59309], [14322, 59310], 9311 [35389, 59311], [35356, 59312], [59313, 169032], [24397, 59314], 9312 [37419, 59315], [59316, 148100], [26068, 59317], [28969, 59318], 9313 [28868, 59319], [59320, 137285], [40301, 59321], [35999, 59322], 9314 [36073, 59323], [59324, 163292], [22938, 59325], [30659, 59326], 9315 [23024, 59327], [14036, 59329], [36394, 59330], [36519, 59331], 9316 [59332, 150537], [36656, 59333], [36682, 59334], [17140, 59335], 9317 [27736, 59336], [28603, 59337], [59338, 140065], [18587, 59339], 9318 [28537, 59340], [28299, 59341], [59342, 137178], [39913, 59343], 9319 [14005, 59344], [59345, 149807], [37051, 59346], 0, [21873, 59348], 9320 [18694, 59349], [37307, 59350], [37892, 59351], [59352, 166475], 9321 [16482, 59353], [59354, 166652], [37927, 59355], [59356, 166941], 9322 [59357, 166971], [34021, 59358], [35371, 59359], [38297, 59360], 9323 [38311, 59361], [38295, 59362], [38294, 59363], [59364, 167220], 9324 [29765, 59365], [16066, 59366], [59367, 149759], [59368, 150082], 9325 [59369, 148458], [16103, 59370], [59371, 143909], [38543, 59372], 9326 [59373, 167655], [59374, 167526], [59375, 167525], [16076, 59376], 9327 [59377, 149997], [59378, 150136], [59379, 147438], [29714, 59380], 9328 [29803, 59381], [16124, 59382], [38721, 59383], [59384, 168112], 9329 [26695, 59385], [18973, 59386], [59387, 168083], [59388, 153567], 0, 9330 [37736, 59390], [59391, 166281], [59392, 166950], [59393, 166703], 9331 [59394, 156606], [37562, 59395], [23313, 59396], [35689, 59397], 9332 [18748, 59398], [29689, 59399], [59400, 147995], [38811, 59401], 0, 9333 [39224, 59403], [59404, 134950], [24001, 59405], [59406, 166853], 9334 [59407, 150194], [38943, 59408], [59409, 169178], [37622, 59410], 9335 [59411, 169431], [37349, 59412], [17600, 59413], [59414, 166736], 9336 [59415, 150119], [59416, 166756], [39132, 59417], [59418, 166469], 9337 [16128, 59419], [37418, 59420], [18725, 59421], [33812, 59422], 9338 [39227, 59423], [39245, 59424], [59425, 162566], [15869, 59426], 0, 9339 [19311, 59428], [39338, 59429], [39516, 59430], [59431, 166757], 9340 [59432, 153800], [27279, 59433], [39457, 59434], [23294, 59435], 9341 [39471, 59436], [59437, 170225], [19344, 59438], [59439, 170312], 9342 [39356, 59440], [19389, 59441], [19351, 59442], [37757, 59443], 9343 [22642, 59444], [59445, 135938], [22562, 59446], [59447, 149944], 9344 [59448, 136424], [30788, 59449], [59450, 141087], [59451, 146872], 9345 [26821, 59452], [15741, 59453], [37976, 59454], [14631, 59455], 9346 [24912, 59456], [59457, 141185], [59458, 141675], [24839, 59459], 9347 [40015, 59460], [40019, 59461], [40059, 59462], [39989, 59463], 9348 [39952, 59464], [39807, 59465], [39887, 59466], [59467, 171565], 9349 [39839, 59468], [59469, 172533], [59470, 172286], [40225, 59471], 9350 [19630, 59472], [59473, 147716], [40472, 59474], [19632, 59475], 9351 [40204, 59476], [59477, 172468], [59478, 172269], [59479, 172275], 9352 [59480, 170287], [40357, 59481], [33981, 59482], [59483, 159250], 9353 [59484, 159711], [59485, 158594], [34300, 59486], [17715, 59487], 9354 [59488, 159140], [59489, 159364], [59490, 159216], [33824, 59491], 9355 [34286, 59492], [59493, 159232], [59494, 145367], [59495, 155748], 9356 [31202, 59496], [59497, 144796], [59498, 144960], [59500, 149982], 9357 [15714, 59501], [37851, 59502], [37566, 59503], [37704, 59504], 9358 [59505, 131775], [30905, 59506], [37495, 59507], [37965, 59508], 9359 [20452, 59509], [13376, 59510], [36964, 59511], [59512, 152925], 9360 [30781, 59513], [30804, 59514], [30902, 59515], [30795, 59516], 9361 [59517, 137047], [59518, 143817], [59519, 149825], [13978, 59520], 9362 [20338, 59521], [28634, 59522], [28633, 59523], 0, [28702, 59524, 59525], 9363 [21524, 59526], [59527, 147893], [22459, 59528], [22771, 59529], 9364 [22410, 59530], [40214, 59531], [22487, 59532], [28980, 59533], 9365 [13487, 59534], [59535, 147884], [29163, 59536], [59537, 158784], 9366 [59538, 151447], 0, [59540, 137141], [59541, 166473], [24844, 59542], 9367 [23246, 59543], [23051, 59544], [17084, 59545], [59546, 148616], 9368 [14124, 59547], [19323, 59548], [59549, 166396], [37819, 59550], 9369 [37816, 59551], [59552, 137430], [59553, 134941], [33906, 59554], 9370 [59555, 158912], [59556, 136211], [59557, 148218], [59558, 142374], 9371 [59559, 148417], [22932, 59560], [59561, 146871], [59562, 157505], 9372 [32168, 59563], [59564, 155995], [59565, 155812], [59566, 149945], 9373 [59567, 149899], [59568, 166394], [37605, 59569], [29666, 59570], 9374 [16105, 59571], [29876, 59572], [59573, 166755], [59574, 137375], 9375 [16097, 59575], [59576, 150195], [27352, 59577], [29683, 59578], 9376 [29691, 59579], [16086, 59580], [59581, 150078], [59582, 150164], 9377 [59583, 137177], [59584, 150118], [59585, 132007], [59586, 136228], 9378 [59587, 149989], [29768, 59588], [59589, 149782], [28837, 59590], 9379 [59591, 149878], [37508, 59592], [29670, 59593], [37727, 59594], 9380 [59595, 132350], [37681, 59596], [59597, 166606], [59598, 166422], 9381 [37766, 59599], [59600, 166887], [59601, 153045], [18741, 59602], 9382 [59603, 166530], [29035, 59604], [59605, 149827], [59606, 134399], 9383 [22180, 59607], [59608, 132634], [59609, 134123], [59610, 134328], 9384 [21762, 59611], [31172, 59612], [59613, 137210], [32254, 59614], 9385 [59615, 136898], [59616, 150096], [59617, 137298], [17710, 59618], 9386 [37889, 59619], [14090, 59620], [59621, 166592], [59622, 149933], 9387 [22960, 59623], [59624, 137407], [59625, 137347], [59626, 160900], 9388 [23201, 59627], [14050, 59628], [59629, 146779], [14000, 59630], 9389 [37471, 59631], [23161, 59632], [59633, 166529], [59634, 137314], 9390 [37748, 59635], [15565, 59636], [59637, 133812], [19094, 59638], 9391 [14730, 59639], [20724, 59640], [15721, 59641], [15692, 59642], 9392 [59643, 136092], [29045, 59644], [17147, 59645], [59646, 164376], 9393 [28175, 59647], [59648, 168164], [17643, 59649], [27991, 59650], 9394 [59651, 163407], [28775, 59652], [27823, 59653], [15574, 59654], 9395 [59655, 147437], [59656, 146989], [28162, 59657], [28428, 59658], 9396 [15727, 59659], [59660, 132085], [30033, 59661], [14012, 59662], 9397 [13512, 59663], [18048, 59664], [16090, 59665], [18545, 59666], 9398 [22980, 59667], [37486, 59668], [18750, 59669], [36673, 59670], 9399 [59671, 166940], [59672, 158656], [22546, 59673], [22472, 59674], 9400 [14038, 59675], [59676, 136274], [28926, 59677], [59678, 148322], 9401 [59679, 150129], [59680, 143331], [59681, 135856], [59682, 140221], 9402 [26809, 59683], [26983, 59684], [59685, 136088], [59686, 144613], 9403 [59687, 162804], [59688, 145119], [59689, 166531], [59690, 145366], 9404 [59691, 144378], [59692, 150687], [27162, 59693], [59694, 145069], 9405 [59695, 158903], [33854, 59696], [17631, 59697], [17614, 59698], 9406 [59699, 159014], [59700, 159057], [59701, 158850], [59702, 159710], 0, 0, 9407 [33597, 59705], [59706, 137018], [33773, 59707], [59708, 158848], 9408 [59709, 159827], [59710, 137179], [22921, 59711], [23170, 59712], 9409 [59713, 137139], [23137, 59714], [23153, 59715], [59716, 137477], 9410 [59717, 147964], [14125, 59718], [23023, 59719], [59720, 137020], 9411 [14023, 59721], [29070, 59722], [37776, 59723], [26266, 59724], 9412 [59725, 148133], [23150, 59726], [23083, 59727], [59728, 148115], 9413 [27179, 59729], [59730, 147193], [59731, 161590], [59732, 148571], 9414 [59733, 148170], [28957, 59734], [59735, 148057], [59736, 166369], 9415 [20400, 59737], [59738, 159016], [23746, 59739], [59740, 148686], 9416 [59741, 163405], [59742, 148413], [27148, 59743], [59744, 148054], 9417 [59745, 135940], 0, [28979, 59747], [59748, 148457], [15781, 59749], 9418 [27871, 59750], [59751, 194597], [23019, 59754], [24412, 59757], 9419 [59764, 144128], [31955, 59776], [59783, 162548], [59786, 153334], 9420 [59790, 162584], [36972, 59791], [33270, 59795], [30476, 59797], 9421 [27810, 59799], [22269, 59800], [22633, 59828], [26465, 59832], 9422 [23646, 59838], [22770, 59841], [28857, 59843], [26627, 59853], 9423 [36795, 59859], [36796, 59861], [20001, 59871], [31545, 59898], 9424 [15820, 59902], [29482, 57990, 59909], [30048, 59912], [22586, 59920], 9425 [33446, 59932], [27018, 59940], [24803, 59944], [20206, 59984], 9426 [39364, 60002], [40639, 60023], [21249, 60025], [26528, 60038], 9427 [24808, 60046], [20916, 60053], [31363, 60064], [39994, 60075], 9428 [31432, 60093], [26906, 60098], [22956, 60100], [22592, 60102], 9429 [21610, 60114], [24807, 60123], [22138, 60125], [26965, 60132], 9430 [39983, 60133], [34725, 60134], [23584, 60141], [24075, 60143], 9431 [26398, 60147], [33965, 60157], [35713, 60161], [20088, 60166], 9432 [25283, 60176], [26709, 60180], 0, [33533, 60190], [35237, 60194], 9433 [36768, 60196], [38840, 60198], [38983, 60200], [39613, 60201], 9434 [24497, 60218], [26184, 60219], [26303, 60220], [60221, 162425], 0, 9435 [60225, 149946], 0, 0, [60230, 131910], [26382, 60232], [26904, 60233], 9436 [60235, 161367], [60236, 155618], [60239, 161278], [60240, 139418], 9437 [18640, 60241], [19128, 60242], [60244, 166554], [60247, 147515], 9438 [60250, 150085], [60251, 132554], [20946, 60252], [60253, 132625], 9439 [22943, 60254], [60255, 138920], [15294, 60256], [60257, 146687], 9440 [14747, 60262], [60264, 165352], [60265, 170441], [14178, 60266], 9441 [60267, 139715], [35678, 60268], [60269, 166734], 0, [29193, 60274], 9442 [60276, 134264], [60280, 132985], [36570, 60281], [21135, 60283], 9443 [29041, 60285], [60288, 147274], [60289, 150183], [21948, 60290], 9444 [60293, 158546], [13427, 60295], [60297, 161330], [18200, 60299], 9445 [60303, 149823], [20582, 60305], [13563, 60306], [60307, 144332], 0, 9446 [18300, 60310], [60311, 166216], [60315, 138640], 0, [60320, 162834], 9447 [36950, 60321], [60323, 151450], [35682, 60324], [23899, 60327], 9448 [60328, 158711], 0, [60331, 137500], [35562, 60332], [60333, 150006], 9449 [60335, 147439], [19392, 60337], [60340, 141083], [37989, 60341], 9450 [60342, 153569], [24981, 60343], [23079, 60344], [60345, 194765], 0, 9451 [60348, 148769], [20074, 60350], [60351, 149812], [38486, 60352], 9452 [28047, 60353], [60354, 158909], [35191, 60356], [60359, 156689], 0, 9453 [31554, 60363], [60364, 168128], [60365, 133649], 0, [31301, 60369], 9454 [39462, 60372], [13919, 60374], [60375, 156777], [60376, 131105], 9455 [31107, 60377], [23852, 60380], [60381, 144665], 0, [18128, 60384], 9456 [30011, 60386], [34917, 60387], [22710, 60389], [14108, 60390], 9457 [60391, 140685], [15444, 60394], [37505, 60397], [60398, 139642], 9458 [37680, 60400], [60402, 149968], [27705, 60403], [60406, 134904], 9459 [34855, 60407], [35061, 60408], [60409, 141606], [60410, 164979], 9460 [60411, 137137], [28344, 60412], [60413, 150058], [60414, 137248], 9461 [14756, 60415], 0, 0, [17727, 60419], [26294, 60420], [60421, 171181], 9462 [60422, 170148], [35139, 60423], [16607, 60427], [60428, 136714], 9463 [14753, 60429], [60430, 145199], [60431, 164072], [60432, 136133], 9464 [29101, 60433], [33638, 60434], [60436, 168360], 0, [19639, 60438], 9465 [60439, 159919], [60440, 166315], [60445, 147834], [31555, 60446], 9466 [31102, 60447], [28597, 60449], [60450, 172767], [27139, 60451], 9467 [60452, 164632], [21410, 60453], [60454, 159239], [37823, 60455], 9468 [26678, 60456], [38749, 59389, 60457], [60458, 164207], [60460, 158133], 9469 [60461, 136173], [60462, 143919], [23941, 60464], [60465, 166960], 9470 [22293, 60467], [38947, 60468], [60469, 166217], [23979, 60470], 9471 [60471, 149896], [26046, 60472], [27093, 60473], [21458, 60474], 9472 [60475, 150181], [60476, 147329], [15377, 60477], [26422, 60478], 9473 [60482, 139169], [13770, 60490], [18682, 60493], 0, [30728, 60496], 9474 [37461, 60497], [17394, 60499], [17375, 60501], [23032, 60505], 0, 9475 [22155, 60518], [60520, 169449], [36882, 60541], [21953, 60546], 9476 [17673, 60551], [32383, 60552], [28502, 60553], [27313, 60554], 9477 [13540, 60556], [60558, 161949], [14138, 60559], 0, [60562, 163876], 9478 [60565, 162366], [15851, 60567], [60569, 146615], [60574, 156248], 9479 [22207, 60575], [36366, 60577], [23405, 60578], [25566, 60581], 0, 9480 [25904, 60585], [22061, 60586], [21530, 60588], [60591, 171416], 9481 [19581, 60592], [22050, 60593], [22046, 60594], [32585, 60595], 9482 [22901, 60597], [60598, 146752], [34672, 60599], [33047, 60604], 9483 [40286, 60605], [36120, 60606], [30267, 60607], [40005, 60608], 9484 [30286, 60609], [30649, 60610], [37701, 60611], [21554, 60612], 9485 [33096, 60613], [33527, 60614], [22053, 60615], [33074, 60616], 9486 [33816, 60617], [32957, 60618], [21994, 60619], [31074, 60620], 9487 [22083, 60621], [21526, 60622], [60623, 134813], [13774, 60624], 9488 [22021, 57509, 60625], [22001, 60626], [26353, 60627], [60628, 164578], 9489 [13869, 60629], [30004, 60630], [22000, 60631], [21946, 60632], 9490 [21655, 60633], [21874, 60634], [60635, 134209], [60636, 134294], 9491 [24272, 57652, 60637], [60639, 134774], [60640, 142434], [60641, 134818], 9492 [40619, 60642], [32090, 60643], 0, [60645, 135285], [25245, 60646], 9493 [38765, 60647], [21652, 60648], [36045, 60649], [29174, 60650], 9494 [37238, 60651], [25596, 60652], [25529, 60653], [25598, 60654], 9495 [21865, 60655], [60656, 142147], [40050, 60657], [60658, 143027], 9496 [20890, 60659], [13535, 60660], [60661, 134567], [20903, 60662], 9497 [21581, 60663], [21790, 60664], [21779, 60665], [30310, 60666], 9498 [36397, 60667], [60668, 157834], [30129, 60669], [32950, 60670], 9499 [34820, 60671], 0, [35015, 60673], [33206, 60674], [33820, 60675], 9500 [17644, 60677], [29444, 60678], [33547, 60681], [22139, 60683], 9501 [37232, 60690], [37384, 60692], [60696, 134905], [29286, 60697], 9502 [18254, 60699], [60701, 163833], [16634, 60703], [40029, 60704], 9503 [25887, 60705], [18675, 60707], [60708, 149472], [60709, 171388], 0, 9504 [60713, 161187], 60715, [60716, 155720], [29091, 60718], [32398, 60719], 9505 [40272, 60720], [13687, 60723], [27826, 60725], [21351, 60726], 9506 [14812, 60728], [60731, 149016], [33325, 60734], [21579, 60735], 60739, 9507 [14930, 60740], [29556, 60742], [60743, 171692], [19721, 60744], 9508 [39917, 60745], 0, [19547, 60748], [60751, 171998], [33884, 60752], 9509 [60754, 160434], [25390, 60757], [32037, 60758], [14890, 60761], 9510 [36872, 60762], [21196, 60763], [15988, 60764], [13946, 60765], 9511 [17897, 60766], [60767, 132238], [30272, 60768], [23280, 60769], 9512 [60770, 134838], [30842, 60771], [18358, 60772], [22695, 60773], 9513 [16575, 60774], [22140, 60775], [39819, 60776], [23924, 60777], 9514 [30292, 60778], [60779, 173108], [40581, 60780], [19681, 60781], 0, 9515 [14331, 60783], [24857, 60784], [60786, 148466], 60787, [22109, 60788], 9516 [60792, 171526], [21044, 60793], [13741, 60795], 0, [40316, 60797], 9517 [31830, 60798], [39737, 60799], [22494, 60800], [23635, 60802], 9518 [25811, 60803], [60804, 169168], [60805, 156469], [34477, 60807], 9519 [60808, 134440], [60811, 134513], 60812, [20990, 60813], [60814, 139023], 9520 [23950, 60815], [38659, 60816], [60817, 138705], [40577, 60818], 9521 [36940, 60819], [31519, 60820], [39682, 60821], [23761, 60822], 9522 [31651, 60823], [25192, 60824], [25397, 60825], [39679, 60826], 9523 [31695, 60827], [39722, 60828], [31870, 60829], 0, [31810, 60831], 9524 [31878, 60832], [39957, 60833], [31740, 60834], [39689, 60835], 0, 39982, 9525 [40794, 60839], [21875, 60840], [23491, 60841], [20477, 60842], 9526 [40600, 60843], [20466, 60844], [21088, 60845], [21201, 60847], 9527 [22375, 60848], [20566, 60849], [22967, 60850], [24082, 60851], 9528 [38856, 60852], [40363, 60853], [36700, 60854], [21609, 60855], 9529 [38836, 60856], [39232, 60857], [38842, 60858], [21292, 60859], 9530 [24880, 60860], [26924, 60861], [21466, 60862], [39946, 60863], 9531 [40194, 60864], [19515, 60865], [38465, 60866], [27008, 60867], 9532 [20646, 60868], [30022, 60869], [60870, 137069], [39386, 60871], 9533 [21107, 60872], 60873, [37209, 60874], [38529, 60875], [37212, 60876], 9534 60877, [37201, 60878], [60879, 167575], [25471, 60880], [27338, 60882], 9535 [22033, 60883], [37262, 60884], [30074, 60885], [25221, 60886], 9536 [29519, 60888], [31856, 60889], [60890, 154657], 60892, [30422, 60894], 9537 [39837, 60895], [20010, 60896], [60897, 134356], [33726, 60898], 9538 [34882, 60899], 60900, [23626, 60901], [27072, 60902], 0, 0, 9539 [21023, 60905], [24053, 60906], [20174, 60907], [27697, 60908], 9540 [60909, 131570], [20281, 60910], [21660, 60911], 0, [21146, 60913], 9541 [36226, 60914], [13822, 60915], 0, [13811, 60917], 60918, [27474, 60919], 9542 [37244, 60920], [40869, 60921], [39831, 60922], [38958, 60923], 9543 [39092, 60924], [39610, 60925], [40616, 60926], [40580, 60927], 9544 [31508, 60929], 60930, [27642, 60931], [34840, 60932], [32632, 60933], 9545 60934, [22048, 60935], [60936, 173642], [36471, 60937], [40787, 60938], 9546 60939, [36308, 60940], [36431, 60941], [40476, 60942], [36353, 60943], 9547 [25218, 60944], [60945, 164733], [36392, 60946], [36469, 60947], 9548 [31443, 60948], [31294, 60950], [30936, 60951], [27882, 60952], 9549 [35431, 60953], [30215, 60954], [40742, 60956], [27854, 60957], 9550 [34774, 60958], [30147, 60959], [60960, 172722], [30803, 60961], 9551 [36108, 60963], [29410, 60964], [29553, 60965], [35629, 60966], 9552 [29442, 60967], [29937, 60968], [36075, 60969], [60970, 150203], 9553 [34351, 60971], [24506, 60972], [34976, 60973], [17591, 60974], 60975, 9554 [60977, 159237], 60978, [35454, 60979], [60980, 140571], 60981, 9555 [24829, 60982], [30311, 60983], [39639, 60984], [40260, 60985], 9556 [37742, 58859, 60986], [39823, 60987], [34805, 60988], 60989, 0, 9557 [36087, 60991], [29484, 60992], [38689, 60993], [39856, 60994], 9558 [13782, 60995], [29362, 60996], [19463, 60997], [31825, 60998], 9559 [39242, 60999], [24921, 61001], [19460, 61002], [40598, 61003], 9560 [24957, 61004], 61005, [22367, 61006], [24943, 61007], [25254, 61008], 9561 [25145, 61009], 0, [14940, 61011], [25058, 61012], [21418, 61013], 9562 [25444, 61015], [26626, 61016], [13778, 61017], [23895, 61018], 9563 [36826, 61020], [61021, 167481], 61022, [20697, 61023], [30982, 61025], 9564 [21298, 61026], [38456, 61027], [61028, 134971], [16485, 61029], 61030, 9565 [30718, 61031], 61032, [31938, 61033], [61034, 155418], [31962, 61035], 9566 [31277, 61036], [32870, 61037], [32867, 61038], [32077, 61039], 9567 [29957, 61040], [29938, 61041], [35220, 61042], [33306, 61043], 9568 [26380, 61044], [32866, 61045], [61046, 160902], [32859, 61047], 9569 [29936, 61048], [33027, 61049], [30500, 61050], [35209, 61051], 9570 [61052, 157644], [30035, 61053], [34729, 61055], [34766, 61056], 9571 [33224, 61057], [34700, 61058], [35401, 61059], [36013, 61060], 9572 [35651, 61061], [30507, 61062], [29944, 61063], [34010, 61064], 9573 [27058, 61066], [36262, 61067], 61068, [35241, 58392, 61069], 0, 9574 [28089, 61071], [34753, 61072], [61073, 147473], [29927, 61074], 9575 [15835, 61075], [29046, 61076], [24740, 57702, 61077], [24988, 61078], 9576 [15569, 61079], 0, [24695, 61081], 61082, [32625, 61083], 0, 9577 [24809, 61086], [19326, 61087], [57344, 132423], [37595, 57345], 9578 [57346, 132575], [57347, 147397], [34124, 57348], [17077, 57349], 9579 [29679, 57350], [20917, 57351], [13897, 57352], [57353, 149826], 9580 [57354, 166372], [37700, 57355], [57356, 137691], [33518, 57357], 9581 [57358, 146632], [30780, 57359], [26436, 57360], [25311, 57361], 9582 [57362, 149811], [57363, 166314], [57364, 131744], [57365, 158643], 9583 [57366, 135941], [20395, 57367], [57368, 140525], [20488, 57369], 9584 [57370, 159017], [57371, 162436], [57372, 144896], [57373, 150193], 9585 [57374, 140563], 0, [57376, 131966], [24484, 57377], [57378, 131968], 9586 [57379, 131911], [28379, 57380], [57381, 132127], 20702, [20737, 57383], 9587 [13434, 57384], [20750, 57385], [39020, 57386], [14147, 57387], 9588 [33814, 57388], [57389, 149924], [57390, 132231], [20832, 57391], 9589 [57392, 144308], [20842, 57393], [57394, 134143], [57395, 139516], 9590 [57396, 131813], [57397, 140592], [57398, 132494], [57399, 143923], 9591 [57400, 137603], [23426, 57401], [34685, 57402], [57403, 132531], 9592 [57404, 146585], [20914, 57405], [20920, 57406], [40244, 57407], 9593 [20937, 57408], [20943, 57409], [20945, 57410], [15580, 57411], 9594 [20947, 57412], [57413, 150182], [20915, 57414], 0, 0, [20973, 57417], 9595 [33741, 57418], [26942, 57419], [57420, 145197], [24443, 57421], 9596 [21003, 57422], [21030, 57423], [21052, 57424], [21173, 57425], 9597 [21079, 57426], [21140, 57427], [21177, 57428], [21189, 57429], 9598 [31765, 57430], [34114, 57431], [21216, 57432], [34317, 57433], 9599 [57434, 158483], 0, [57436, 166622], [21833, 57437], [28377, 57438], 9600 [57439, 147328], [57440, 133460], [57441, 147436], [21299, 57442], 0, 9601 [57444, 134114], [27851, 57445], [57446, 136998], [26651, 57447], 9602 [29653, 57448], [24650, 57449], [16042, 57450], [14540, 57451], 9603 [57452, 136936], [29149, 57453], [17570, 57454], [21357, 57455], 9604 [21364, 57456], [57457, 165547], [21374, 57458], 0, [57460, 136598], 9605 [57461, 136723], [30694, 57462], [21395, 57463], [57464, 166555], 9606 [21408, 57465], [21419, 57466], [21422, 57467], [29607, 57468], 9607 [57469, 153458], [16217, 57470], [29596, 57471], [21441, 57472], 9608 [21445, 57473], [27721, 57474], [20041, 57475], [22526, 57476], 9609 [21465, 57477], [15019, 57478], [57479, 134031], [21472, 57480], 9610 [57481, 147435], [57482, 142755], [21494, 57483], [57484, 134263], 9611 [21523, 57485], [28793, 57486], [21803, 57487], [26199, 57488], 9612 [27995, 57489], [21613, 57490], [57491, 158547], [57492, 134516], 9613 [21853, 57493], [21647, 57494], [21668, 57495], [18342, 57496], 9614 [57497, 136973], [57498, 134877], [15796, 57499], [57500, 134477], 9615 [57501, 166332], [57502, 140952], [21831, 57503], [19693, 57504], 9616 [21551, 57505], [29719, 57506], [21894, 57507], [21929, 57508], 0, 9617 [57510, 137431], [57511, 147514], [17746, 57512], [57513, 148533], 9618 [26291, 57514], [57515, 135348], [22071, 57516], [26317, 57517], 9619 [57518, 144010], [26276, 57519], 0, [22093, 57521], [22095, 57522], 9620 [30961, 57523], [22257, 57524], [38791, 57525], [21502, 57526], 9621 [22272, 57527], [22255, 57528], [22253, 57529], [57530, 166758], 9622 [13859, 57531], [57532, 135759], [22342, 57533], [57534, 147877], 9623 [27758, 57535], [28811, 57536], [22338, 57537], [14001, 57538], 9624 [57539, 158846], [22502, 57540], [57541, 136214], [22531, 57542], 9625 [57543, 136276], [57544, 148323], [22566, 57545], [57546, 150517], 0, 9626 [22698, 57548], [13665, 57549], [22752, 57550], [22748, 57551], 9627 [57552, 135740], [22779, 57553], [23551, 57554], [22339, 57555], 9628 [57556, 172368], [57557, 148088], [37843, 57558], [13729, 57559], 9629 [22815, 57560], [26790, 57561], [14019, 57562], [28249, 57563], 9630 [57564, 136766], [23076, 57565], 0, [57567, 136850], [34053, 57568], 9631 [22985, 57569], [57570, 134478], [57571, 158849], [57572, 159018], 9632 [57573, 137180], [23001, 57574], [57575, 137211], [57576, 137138], 9633 [57577, 159142], [28017, 57578], [57579, 137256], [57580, 136917], 9634 [23033, 57581], [57582, 159301], [23211, 57583], [23139, 57584], 9635 [14054, 57585], [57586, 149929], 0, [14088, 57588], [23190, 57589], 9636 [29797, 57590], [23251, 57591], [57592, 159649], [57593, 140628], 9637 [57595, 137489], [14130, 57596], [57597, 136888], [24195, 57598], 9638 [21200, 57599], [23414, 57600], [25992, 57601], [23420, 57602], 9639 [57603, 162318], [16388, 57604], [18525, 57605], [57606, 131588], 9640 [23509, 57607], [57609, 137780], [57610, 154060], [57611, 132517], 9641 [23539, 57612], [23453, 57613], [19728, 57614], [23557, 57615], 9642 [57616, 138052], [23571, 57617], [29646, 57618], [23572, 57619], 9643 [57620, 138405], [57621, 158504], [23625, 57622], [18653, 57623], 9644 [23685, 57624], [23785, 57625], [23791, 57626], [23947, 57627], 9645 [57628, 138745], [57629, 138807], [23824, 57630], [23832, 57631], 9646 [23878, 57632], [57633, 138916], [23738, 57634], [24023, 57635], 9647 [33532, 57636], [14381, 57637], [57638, 149761], [57639, 139337], 9648 [57640, 139635], [33415, 57641], [14390, 57642], [15298, 57643], 9649 [24110, 57644], [27274, 57645], 0, 57647, [57648, 148668], [57649, 134355], 9650 [21414, 57650], [20151, 57651], 0, [21416, 57653], [57654, 137073], 9651 [24073, 57655], 57656, [57657, 164994], [24313, 57658], [24315, 57659], 9652 [14496, 57660], [24316, 57661], [26686, 57662], [37915, 57663], 9653 [24333, 57664], [57665, 131521], [57666, 194708], [15070, 57667], 9654 [57669, 135994], [24378, 57670], [57671, 157832], [57672, 140240], 9655 [57674, 140401], [24419, 57675], [57677, 159342], [24434, 57678], 9656 [37696, 57679], [57680, 166454], [24487, 57681], [23990, 57682], 9657 [15711, 57683], [57684, 152144], [57685, 139114], [57686, 159992], 9658 [57687, 140904], [37334, 57688], [57689, 131742], [57690, 166441], 9659 [24625, 57691], [26245, 57692], [14691, 57694], [15815, 57695], 9660 [13881, 57696], [22416, 57697], [57698, 141236], [31089, 57699], 9661 [15936, 57700], [24734, 57701], 0, 0, [57704, 149890], [57705, 149903], 9662 [57706, 162387], [29860, 57707], [20705, 57708], [23200, 57709], 9663 [24932, 57710], [24898, 57712], [57713, 194726], [57714, 159442], 9664 [24961, 57715], [20980, 57716], [57717, 132694], [24967, 57718], 9665 [23466, 57719], [57720, 147383], [57721, 141407], [25043, 57722], 9666 [57723, 166813], [57724, 170333], [25040, 57725], [14642, 57726], 9667 [57727, 141696], [57728, 141505], [24611, 57729], [24924, 57730], 9668 [25886, 57731], [25483, 57732], [57733, 131352], [25285, 57734], 9669 [57735, 137072], [25301, 57736], [57737, 142861], [25452, 57738], 9670 [57739, 149983], [14871, 57740], [25656, 57741], [25592, 57742], 9671 [57743, 136078], [57744, 137212], [28554, 57746], [57747, 142902], 0, 9672 [57750, 153373], [25825, 57751], [25829, 57752], [38011, 57753], 9673 [14950, 57754], [25658, 57755], [14935, 57756], [25933, 57757], 9674 [28438, 57758], [57759, 150056], [57760, 150051], [25989, 57761], 9675 [25965, 57762], [25951, 57763], 0, [26037, 57765], [57766, 149824], 9676 [19255, 57767], [26065, 57768], [16600, 57769], [57770, 137257], 57771, 9677 [26083, 57772], [24543, 57773], [57774, 144384], [26136, 57775], 9678 [57776, 143863], [57777, 143864], [26180, 57778], [57779, 143780], 9679 [57780, 143781], [26187, 57781], [57782, 134773], [26215, 57783], 9680 [57784, 152038], [26227, 57785], 0, [57788, 143921], [57789, 165364], 9681 [57790, 143816], [57791, 152339], [30661, 57792], [57793, 141559], 9682 [39332, 57794], [26370, 57795], [57796, 148380], [57797, 150049], 9683 [27130, 57799], [57800, 145346], 0, [26471, 57802], [26466, 57803], 9684 [57804, 147917], [57805, 168173], [26583, 57806], [17641, 57807], 9685 [26658, 57808], [28240, 57809], [37436, 57810], [26625, 57811], 9686 [57812, 144358], [57813, 159136], [26717, 57814], [57815, 144495], 9687 [27105, 57816], [27147, 57817], [57818, 166623], [26995, 57819], 9688 [26819, 57820], [57821, 144845], [26881, 57822], [26880, 57823], 9689 [14849, 57825], [57826, 144956], [15232, 57827], [26540, 57828], 9690 [26977, 57829], [57830, 166474], [17148, 57831], [26934, 57832], 9691 [27032, 57833], [15265, 57834], [57835, 132041], [33635, 57836], 9692 [20624, 57837], [27129, 57838], [57839, 144985], [57840, 139562], 9693 [27205, 57841], [57842, 145155], [27293, 57843], [15347, 57844], 9694 [26545, 57845], [27336, 57846], [57847, 168348], [15373, 57848], 9695 [27421, 57849], [57850, 133411], [24798, 57851, 60308], [27445, 57852], 9696 [27508, 57853], [57854, 141261], [28341, 57855], [57856, 146139], 0, 9697 [57858, 137560], [14144, 57859], [21537, 57860], [57861, 146266], 9698 [27617, 57862], [57863, 147196], [27612, 57864], [27703, 57865], 9699 [57866, 140427], [57867, 149745], [57868, 158545], [27738, 57869], 9700 [33318, 57870], [27769, 57871], [57872, 146876], [17605, 57873], 9701 [57874, 146877], [57875, 147876], [57876, 149772], [57877, 149760], 9702 [57878, 146633], [14053, 57879], [15595, 57880], [57881, 134450], 9703 [39811, 57882], [57883, 143865], [57884, 140433], [32655, 57885], 9704 [26679, 57886], [57887, 159013], [57888, 159137], [57889, 159211], 9705 [28054, 57890], [27996, 57891], [28284, 57892], [28420, 57893], 9706 [57894, 149887], [57895, 147589], [57896, 159346], [34099, 57897], 9707 [57898, 159604], [20935, 57899], 0, 0, [33838, 57902], [57903, 166689], 0, 9708 [57905, 146991], [29779, 57906], [57907, 147330], [31180, 57908], 9709 [28239, 57909], [23185, 57910], [57911, 143435], [28664, 57912], 9710 [14093, 57913], [28573, 57914], [57915, 146992], [28410, 57916], 9711 [57917, 136343], [57918, 147517], [17749, 57919], [37872, 57920], 9712 [28484, 57921], [28508, 57922], [15694, 57923], [28532, 57924], 9713 [57925, 168304], [15675, 57926], [28575, 57927], [57928, 147780], 9714 [28627, 57929], [57930, 147601], [57931, 147797], [57932, 147513], 9715 [57933, 147440], [57934, 147380], [57935, 147775], [20959, 57936], 9716 [57937, 147798], [57938, 147799], [57939, 147776], [57940, 156125], 9717 [28747, 57941], [28798, 57942], [28839, 57943], 0, [28876, 57945], 9718 [28885, 57946], [28886, 57947], [28895, 57948], [16644, 57949], 9719 [15848, 57950], [29108, 57951], [29078, 57952], [57953, 148087], 9720 [28971, 57954], [28997, 57955], [23176, 57956], [29002, 57957], 0, 9721 [57960, 148325], [29007, 57961], [37730, 57962], [57963, 148161], 9722 [28972, 57964], [57965, 148570], [57966, 150055], [57967, 150050], 9723 [29114, 57968], [57969, 166888], [28861, 57970], [29198, 57971], 9724 [37954, 57972], [29205, 57973], [22801, 57974], [37955, 57975], 9725 [29220, 57976], [37697, 57977], [57978, 153093], [29230, 57979], 9726 [29248, 57980], [57981, 149876], [26813, 57982], [29269, 57983], 9727 [29271, 57984], [15957, 57985], [57986, 143428], [26637, 57987], 9728 [28477, 57988], [29314, 57989], 0, [29483, 57991], [57992, 149539], 9729 [57993, 165931], [18669, 57994], [57995, 165892], [29480, 57996], 9730 [29486, 57997], [29647, 57998], [29610, 57999], [58000, 134202], 9731 [58001, 158254], [29641, 58002], [29769, 58003], [58004, 147938], 9732 [58005, 136935], [58006, 150052], [26147, 58007], [14021, 58008], 9733 [58009, 149943], [58010, 149901], [58011, 150011], [29687, 58012], 9734 [29717, 58013], [26883, 58014], [58015, 150054], [29753, 58016], 9735 [16087, 58018], 0, [58020, 141485], [29792, 58021], [58022, 167602], 9736 [29767, 58023], [29668, 58024], [29814, 58025], [33721, 58026], 9737 [29804, 58027], [29812, 58029], [37873, 58030], [27180, 58031], 9738 [29826, 58032], [18771, 58033], [58034, 150156], [58035, 147807], 9739 [58036, 150137], [58037, 166799], [23366, 58038], [58039, 166915], 9740 [58040, 137374], [29896, 58041], [58042, 137608], [29966, 58043], 9741 [29982, 58045], [58046, 167641], [58047, 137803], [23511, 58048], 9742 [58049, 167596], [37765, 58050], [30029, 58051], [30026, 58052], 9743 [30055, 58053], [30062, 58054], [58055, 151426], [16132, 58056], 9744 [58057, 150803], [30094, 58058], [29789, 58059], [30110, 58060], 9745 [30132, 58061], [30210, 58062], [30252, 58063], [30289, 58064], 9746 [30287, 58065], [30319, 58066], 58067, [58068, 156661], [30352, 58069], 9747 [33263, 58070], [14328, 58071], [58072, 157969], [58073, 157966], 9748 [30369, 58074], [30373, 58075], [30391, 58076], [30412, 58077], 9749 [58078, 159647], [33890, 58079], [58080, 151709], [58081, 151933], 9750 [58082, 138780], [30494, 58083], [30502, 58084], [30528, 58085], 9751 [25775, 58086], [58087, 152096], [30552, 58088], [58089, 144044], 9752 [30639, 58090], [58091, 166244], [58092, 166248], [58093, 136897], 9753 [30708, 58094], 0, [26826, 58098], [30895, 58099], [30919, 58100], 9754 [30931, 58101], [38565, 58102], [31022, 58103], [58104, 153056], 9755 [30935, 58105], [31028, 58106], [30897, 58107], [58108, 161292], 9756 [36792, 58109], [34948, 58110], [58113, 140828], [31110, 58114], 9757 [35072, 58115], [26882, 58116], [31104, 58117], [58118, 153687], 9758 [31133, 58119], [58120, 162617], [31036, 58121], [31145, 58122], 9759 [28202, 58123], [58124, 160038], [16040, 58125], [31174, 58126], 9760 [58127, 168205], [31188, 58128], 0, [21797, 62526], 0, [62528, 134210], 9761 [62529, 134421], [62530, 151851], [21904, 62531], [62532, 142534], 9762 [14828, 62533], [62534, 131905], [36422, 62535], [62536, 150968], 9763 [62537, 169189], 0, [62539, 164030], [30586, 62540], [62541, 142392], 9764 [14900, 62542], [18389, 62543], [62544, 164189], [62545, 158194], 9765 [62546, 151018], [25821, 62547], [62548, 134524], [62549, 135092], 9766 [62550, 134357], 0, [25741, 62552], [36478, 62553], [62554, 134806], 0, 9767 [62556, 135012], [62557, 142505], [62558, 164438], [62559, 148691], 0, 9768 [62561, 134470], [62562, 170573], [62563, 164073], [18420, 62564], 9769 [62565, 151207], [62566, 142530], [39602, 62567], [14951, 62568], 9770 [62569, 169460], [16365, 62570], [13574, 62571], [62572, 152263], 9771 [62573, 169940], 0, [62575, 142660], [40302, 62576], [38933, 62577], 0, 9772 [17369, 62579], 0, [25780, 62581], [21731, 62582], 0, [62584, 142282], 0, 9773 [14843, 62586], 0, [62588, 157402], [62589, 157462], [62590, 162208], 9774 [25834, 62591], [62592, 151634], [62593, 134211], [36456, 62594], 0, 9775 [62596, 166732], [62597, 132913], 0, [18443, 62599], [62600, 131497], 9776 [16378, 62601], [22643, 62602], [62603, 142733], 0, [62605, 148936], 9777 [62606, 132348], [62607, 155799], [62608, 134988], 0, [21881, 62610], 0, 9778 [17338, 62612], 0, [19124, 62614], [62615, 141926], [62616, 135325], 9779 [33194, 62617], [39157, 62618], [62619, 134556], [25465, 62620], 9780 [14846, 62621], [62622, 141173], [36288, 62623], [22177, 62624], 9781 [25724, 62625], [15939, 62626], 0, [62628, 173569], [62629, 134665], 9782 [62630, 142031], 0, 0, [62633, 135368], [62634, 145858], [14738, 62635], 9783 [14854, 62636], [62637, 164507], [13688, 62638], [62639, 155209], 9784 [62640, 139463], 0, 0, [62643, 142514], [62644, 169760], [13500, 62645], 9785 [27709, 62646], [62647, 151099], 0, 0, [62650, 161140], [62651, 142987], 9786 [62652, 139784], [62653, 173659], [62654, 167117], [62655, 134778], 9787 [62656, 134196], [62683, 161337], [62684, 142286], [62687, 142417], 9788 [14872, 62689], [62691, 135367], [62693, 173618], [62695, 167122], 9789 [62696, 167321], [62697, 167114], [38314, 62698], 0, [62706, 161630], 9790 [28992, 62708], 0, [20822, 62385], 0, [20616, 62487], 0, [13459, 62489], 9791 [20870, 62491], [24130, 63037], [20997, 62495], [21031, 62436], 9792 [21113, 62497], 0, [13651, 62504], [21442, 62505], [21343, 62715], 0, 9793 [21823, 62520], 0, [21976, 59986], [13789, 62722], [22049, 63067], 0, 9794 [22100, 60044], [60148, 135291], 0, [60153, 135379], 0, [61095, 135934], 0, 9795 0, [14265, 60104], [23745, 61099], [23829, 63066], [23894, 63030], 9796 [14392, 63036], [20097, 62477], [24253, 63038], [14612, 63042], 9797 [25017, 63050], [25232, 63054], [25368, 63056], [25690, 63063], 9798 [25745, 62381], [33133, 62709], [33156, 59922], [33171, 59924], 9799 [26624, 63080], [15292, 63093], [29327, 60517], [29389, 59781], 0, 9800 [29497, 59785], [30018, 59811], [30172, 59817], [16320, 59818], 9801 [60278, 151205], [16343, 59820], 0, 30336, [30348, 59824, 151388], 9802 [16552, 59845], [30777, 59846], [16643, 59855], [31377, 59863], 9803 [31771, 59876], [31981, 59884], [32659, 62658], [32686, 59892], 0, 9804 [33535, 59936], [22623, 59981], [34482, 59960], 0, [34699, 59963], 9805 [35143, 59969], 0, [35369, 59972], 0, [36465, 59988], [60484, 164233], 9806 [36528, 59990], 0, [37214, 62443], [37260, 62441], [39182, 60051], 9807 [39196, 60054], 0, 0, [39809, 60066], [40384, 60080], [40339, 60078], 9808 [40620, 60085], [19857, 60540], 0, 37818, [40571, 60084], [28809, 63148], 9809 [29512, 59788], 0, [31129, 59858], [36791, 59997], 0, [39234, 60056], 9810 {s: 193}, 8364, {s: 4}, [12443, 63518], [12444, 63519], [11904, 63520], 9811 {f: 5, c: 62211}, [62216, 131340], 62217, [62218, 131281], [62219, 131277], 9812 {f: 2, c: 62220}, [62222, 131275], [62223, 139240], 62224, [62225, 131274], 9813 {f: 4, c: 62226}, [62230, 131342], {f: 2, c: 62231}, {f: 2, c: 62776}, 9814 [62778, 138177], [62779, 194680], [12205, 38737, 62780], [62781, 131206], 9815 [20059, 62782], [20155, 62783], [13630, 62784], [23587, 62785], 9816 [24401, 62786], [24516, 62787], [14586, 62788], [25164, 62789], 9817 [25909, 62790], [27514, 62791], [27701, 62792], [27706, 62793], 9818 [28780, 62794], [29227, 62795], [20012, 62796], [29357, 62797], 9819 [62798, 149737], [32594, 62799], [31035, 62800], [31993, 62801], 9820 [32595, 62802], [62803, 156266], [13505, 62804], [62806, 156491], 9821 [32770, 62807], [32896, 62808], [62809, 157202], [62810, 158033], 9822 [21341, 62811], [34916, 62812], [35265, 62813], [62814, 161970], 9823 [35744, 62815], [36125, 62816], [38021, 62817], [38264, 62818], 9824 [38271, 62819], [38376, 62820], [62821, 167439], [38886, 62822], 9825 [39029, 62823], [39118, 62824], [39134, 62825], [39267, 62826], 9826 [62827, 170000], [40060, 62828], [40479, 62829], [40644, 62830], 9827 [27503, 62831], [62832, 63751], [20023, 62833], [62834, 131207], 9828 [38429, 62835], [25143, 62836], [38050, 62837], [11908, 63521], 9829 [11910, 63522], [11911, 63523], [11912, 63524], [11914, 63525], 9830 [11916, 63526], [11917, 63527], [11925, 63528], [11932, 63529], 9831 [11941, 63531], [11943, 63532], [11946, 63533], [11948, 63534], 9832 [11950, 63535], [11958, 63536], [11964, 63537], [11966, 63538], 9833 [11978, 63540], [11980, 63541], [11981, 63542], [11983, 63543], 9834 [11990, 63544], [11991, 63545], [11998, 63546], [62368, 172969], 9835 [62369, 135493], [25866, 62371], [20029, 62374], [28381, 62375], 9836 [40270, 62376], [37343, 62377], [62380, 161589], [20250, 62382], 9837 [20264, 62383], [20392, 62384], [20852, 62386], [20892, 62387], 9838 [20964, 62388], [21153, 62389], [21160, 62390], [21307, 62391], 9839 [21326, 62392], [21457, 62393], [21464, 62394], [22242, 62395], 9840 [22768, 62396], [22788, 62397], [22791, 62398], [22834, 62399], 9841 [22836, 62400], [23398, 62401], [23454, 62402], [23455, 62403], 9842 [23706, 62404], [24198, 62405], [24635, 62406], [25993, 62407], 9843 [26622, 62408], [26628, 62409], [26725, 62410], [27982, 62411], 9844 [28860, 62412], [30005, 62413], [32420, 62414], [32428, 62415], 9845 [32442, 62416], [32455, 62417], [32463, 62418], [32479, 62419], 9846 [32518, 62420], [32567, 62421], [33402, 62422], [33487, 62423], 9847 [33647, 62424], [35270, 62425], [35774, 62426], [35810, 62427], 9848 [36710, 62428], [36711, 62429], [36718, 62430], [29713, 62431], 9849 [31996, 62432], [32205, 62433], [26950, 62434], [31433, 62435], 9850 [30904, 62442], [32956, 62444], [36107, 62446], [33014, 62447], 9851 [62448, 133607], [32927, 62451], [40647, 62452], [19661, 62453], 9852 [40393, 62454], [40460, 62455], [19518, 62456], [62457, 171510], 9853 [62458, 159758], [40458, 62459], [62460, 172339], [13761, 62461], 9854 [28314, 62463], [33342, 62464], [29977, 62465], [18705, 62467], 9855 [39532, 62468], [39567, 62469], [40857, 62470], [31111, 62471], 9856 [62472, 164972], [62473, 138698], [62474, 132560], [62475, 142054], 9857 [20004, 62476], [20096, 62478], [20103, 62479], [20159, 62480], 9858 [20203, 62481], [20279, 62482], [13388, 62483], [20413, 62484], 9859 [15944, 62485], [20483, 62486], [13437, 62488], [13477, 62490], 9860 [22789, 62492], [20955, 62493], [20988, 62494], [20105, 62496], 9861 [21136, 62498], [21287, 62499], [13767, 62500], [21417, 62501], 9862 [13649, 62502], [21424, 62503], [21539, 62506], [13677, 62507], 9863 [13682, 62508], [13953, 62509], [21651, 62510], [21667, 62511], 9864 [21684, 62512], [21689, 62513], [21712, 62514], [21743, 62515], 9865 [21784, 62516], [21795, 62517], [21800, 62518], [13720, 62519], 9866 [13733, 62521], [13759, 62522], [21975, 62523], [13765, 62524], 9867 [62525, 163204], [16467, 62538], [62551, 135412], [62555, 134155], 9868 [62574, 161992], [62580, 155813], [62583, 142668], [62585, 135287], 9869 [62587, 135279], [62595, 139681], [62609, 134550], [16571, 62611], 9870 [62631, 142537], [22098, 62641], [62642, 134961], [62657, 157724], 9871 [62659, 135375], [62660, 141315], [62661, 141625], [13819, 62662], 9872 [62663, 152035], [62664, 134796], [62665, 135053], [62666, 134826], 9873 [16275, 62667], [62668, 134960], [62669, 134471], [62670, 135503], 9874 [62671, 134732], [62673, 134827], [62674, 134057], [62675, 134472], 9875 [62676, 135360], [62677, 135485], [16377, 62678], [62679, 140950], 9876 [25650, 62680], [62681, 135085], [62682, 144372], [62685, 134526], 9877 [62686, 134527], [62688, 142421], [62690, 134808], [62692, 134958], 9878 [62694, 158544], [21708, 62699], [33476, 62700], [21945, 62701], 9879 [62703, 171715], [39974, 62704], [39606, 62705], [62707, 142830], 9880 [33004, 62710], [23580, 62711], [62712, 157042], [33076, 62713], 9881 [14231, 62714], [62716, 164029], [37302, 62717], [62718, 134906], 9882 [62719, 134671], [62720, 134775], [62721, 134907], [62723, 151019], 9883 [13833, 62724], [62725, 134358], [22191, 62726], [62727, 141237], 9884 [62728, 135369], [62729, 134672], [62730, 134776], [62731, 135288], 9885 [62732, 135496], [62733, 164359], [62734, 136277], [62735, 134777], 9886 [62736, 151120], [62737, 142756], [23124, 62738], [62739, 135197], 9887 [62740, 135198], [62741, 135413], [62742, 135414], [22428, 62743], 9888 [62744, 134673], [62745, 161428], [62746, 164557], [62747, 135093], 9889 [62748, 134779], [62749, 151934], [14083, 62750], [62751, 135094], 9890 [62752, 135552], [62753, 152280], [62754, 172733], [62755, 149978], 9891 [62756, 137274], [62757, 147831], [62758, 164476], [22681, 62759], 9892 [21096, 62760], [13850, 62761], [62762, 153405], [31666, 62763], 9893 [23400, 62764], [18432, 62765], [19244, 62766], [40743, 62767], 9894 [18919, 62768], [39967, 62769], [39821, 62770], [62771, 154484], 9895 [62772, 143677], [22011, 62773], [13810, 62774], [22153, 62775], 9896 [23870, 63028], [23880, 63029], [15868, 63031], [14351, 63032], 9897 [23972, 63033], [23993, 63034], [14368, 63035], [24357, 63039], 9898 [24451, 63040], [14600, 63041], [14655, 63043], [14669, 63044], 9899 [24791, 63045], [24893, 63046], [23781, 63047], [14729, 63048], 9900 [25015, 63049], [25039, 63051], [14776, 63052], [25132, 63053], 9901 [25317, 63055], [14840, 63057], [22193, 63058], [14851, 63059], 9902 [25570, 63060], [25595, 63061], [25607, 63062], [14923, 63064], 9903 [25792, 63065], [40863, 63068], [14999, 63069], [25990, 63070], 9904 [15037, 63071], [26111, 63072], [26195, 63073], [15090, 63074], 9905 [26258, 63075], [15138, 63076], [26390, 63077], [15170, 63078], 9906 [26532, 63079], [15192, 63081], [26698, 63082], [26756, 63083], 9907 [15218, 63084], [15217, 63085], [15227, 63086], [26889, 63087], 9908 [26947, 63088], [29276, 63089], [26980, 63090], [27039, 63091], 9909 [27013, 63092], [27094, 63094], [15325, 63095], [27237, 63096], 9910 [27252, 63097], [27249, 63098], [27266, 63099], [15340, 63100], 9911 [27289, 63101], [15346, 63102], [27307, 63103], [27317, 63104], 9912 [27348, 63105], [27382, 63106], [27521, 63107], [27585, 63108], 9913 [27626, 63109], [27765, 63110], [27818, 63111], [15563, 63112], 9914 [27906, 63113], [27910, 63114], [27942, 63115], [28033, 63116], 9915 [15599, 63117], [28068, 63118], [28081, 63119], [28181, 63120], 9916 [28184, 63121], [28201, 63122], [28294, 63123], [63124, 166336], 9917 [28347, 63125], [28386, 63126], [28378, 63127], [40831, 63128], 9918 [28392, 63129], [28393, 63130], [28452, 63131], [28468, 63132], 9919 [15686, 63133], [63134, 147265], [28545, 63135], [28606, 63136], 9920 [15722, 63137], [15733, 63138], [29111, 63139], [23705, 63140], 9921 [15754, 63141], [28716, 63142], [15761, 63143], [28752, 63144], 9922 [28756, 63145], [28783, 63146], [28799, 63147], [63149, 131877], 9923 [17345, 63150], [13809, 63151], [63152, 134872], [13902, 58134], 9924 [15789, 58172], [58173, 154725], [26237, 58183], [31860, 58188], 9925 [29837, 58197], [32402, 58215], [17667, 58232], [58260, 151480], 9926 [58270, 133901], [58277, 158474], [13438, 58311], [58317, 143087], 9927 [58325, 146613], [58343, 159385], [34673, 58364], [25537, 58385], 9928 [30583, 58387], [35210, 58390], [58406, 147343], [35660, 58415], 9929 [58440, 150729], [18730, 58464], [58471, 172052], [58472, 165564], 9930 [58473, 165121], [15088, 58490], [28815, 58511], [58529, 140922], 9931 [58637, 158120], [58646, 148043], [26760, 58662], [58664, 139611], 9932 [40802, 58702], [37830, 58793], [58802, 131967], [37734, 58888], 9933 [37519, 58901], [34324, 58954], [58986, 173147], [16784, 59010], 9934 [26511, 59045], [26654, 59048], [14435, 59051], [59077, 149996], 9935 [15129, 59128], [33942, 59176], [59241, 149858], [14818, 59254], 9936 [33920, 59259], [17262, 59328], [38769, 59402], [39323, 59427], 9937 [18733, 59499], [28439, 59703], [59704, 160009], [28838, 59746], 9938 [59752, 150095], [32357, 59753], [23855, 59755], [15859, 59756], 9939 [59758, 150109], [59759, 137183], [32164, 59760], [33830, 59761], 9940 [21637, 59762], [59763, 146170], [59765, 131604], [22398, 59766], 9941 [59767, 133333], [59768, 132633], [16357, 59769], [59770, 139166], 9942 [59771, 172726], [28675, 59772], [59773, 168283], [23920, 59774], 9943 [29583, 59775], [59777, 166489], [59778, 168992], [20424, 59779], 9944 [32743, 59780], [29456, 59782], [29496, 59784], [29505, 59787], 9945 [16041, 59789], [29173, 59792], [59793, 149746], [29665, 59794], 9946 [16074, 59796], [16081, 59798], [29721, 59801], [29726, 59802], 9947 [29727, 59803], [16098, 59804], [16112, 59805], [16116, 59806], 9948 [16122, 59807], [29907, 59808], [16142, 59809], [16211, 59810], 9949 [30061, 59812], [30066, 59813], [30093, 59814], [16252, 59815], 9950 [30152, 59816], [30285, 59819], [30324, 59821], [16348, 59822], 9951 [30330, 59823], [29064, 59825], [22051, 59826], [35200, 59827], 9952 [16413, 59829], [30531, 59830], [16441, 59831], [16453, 59833], 9953 [13787, 59834], [30616, 59835], [16490, 59836], [16495, 59837], 9954 [30654, 59839], [30667, 59840], [30744, 59842], [30748, 59844], 9955 [30791, 59847], [30801, 59848], [30822, 59849], [33864, 59850], 9956 [59851, 152885], [31027, 59852], [31026, 59854], [16649, 59856], 9957 [31121, 59857], [31238, 59860], [16743, 59862], [16818, 59864], 9958 [31420, 59865], [33401, 59866], [16836, 59867], [31439, 59868], 9959 [31451, 59869], [16847, 59870], [31586, 59872], [31596, 59873], 9960 [31611, 59874], [31762, 59875], [16992, 59877], [17018, 59878], 9961 [31867, 59879], [31900, 59880], [17036, 59881], [31928, 59882], 9962 [17044, 59883], [36755, 59885], [28864, 59886], [59887, 134351], 9963 [32207, 59888], [32212, 59889], [32208, 59890], [32253, 59891], 9964 [32692, 59893], [29343, 59894], [17303, 59895], [32800, 59896], 9965 [32805, 59897], [32814, 59899], [32817, 59900], [32852, 59901], 9966 [22452, 59903], [28832, 59904], [32951, 59905], [33001, 59906], 9967 [17389, 59907], [33036, 59908], [33038, 59910], [33042, 59911], 9968 [33044, 59913], [17409, 59914], [15161, 59915], [33110, 59916], 9969 [33113, 59917], [33114, 59918], [17427, 59919], [33148, 59921], 9970 [17445, 59923], [17453, 59925], [33189, 59926], [22511, 59927], 9971 [33217, 59928], [33252, 59929], [33364, 59930], [17551, 59931], 9972 [33398, 59933], [33482, 59934], [33496, 59935], [17584, 59937], 9973 [33623, 59938], [38505, 59939], [33797, 59941], [28917, 59942], 9974 [33892, 59943], [33928, 59945], [17668, 59946], [33982, 59947], 9975 [34017, 59948], [34040, 59949], [34064, 59950], [34104, 59951], 9976 [34130, 59952], [17723, 59953], [34159, 59954], [34160, 59955], 9977 [34272, 59956], [17783, 59957], [34418, 59958], [34450, 59959], 9978 [34543, 59961], [38469, 59962], [17926, 59964], [17943, 59965], 9979 [34990, 59966], [35071, 59967], [35108, 59968], [35217, 59970], 9980 [59971, 162151], [35384, 59973], [35476, 59974], [35508, 59975], 9981 [35921, 59976], [36052, 59977], [36082, 59978], [36124, 59979], 9982 [18328, 59980], [36291, 59982], [18413, 59983], [36410, 59985], 9983 [22356, 59987], [22005, 59989], [18487, 59991], [36558, 59992], 9984 [36578, 59993], [36580, 59994], [36589, 59995], [36594, 59996], 9985 [36801, 59998], [36810, 59999], [36812, 60000], [36915, 60001], 9986 [18605, 60003], [39136, 60004], [37395, 60005], [18718, 60006], 9987 [37416, 60007], [37464, 60008], [37483, 60009], [37553, 60010], 9988 [37550, 60011], [37567, 60012], [37603, 60013], [37611, 60014], 9989 [37619, 60015], [37620, 60016], [37629, 60017], [37699, 60018], 9990 [37764, 60019], [37805, 60020], [18757, 60021], [18769, 60022], 9991 [37911, 60024], [37917, 60026], [37933, 60027], [37950, 60028], 9992 [18794, 60029], [37972, 60030], [38009, 60031], [38189, 60032], 9993 [38306, 60033], [18855, 60034], [38388, 60035], [38451, 60036], 9994 [18917, 60037], [18980, 60039], [38720, 60040], [18997, 60041], 9995 [38834, 60042], [38850, 60043], [19172, 60045], [39097, 60047], 9996 [19225, 60048], [39153, 60049], [22596, 60050], [39193, 60052], 9997 [39223, 60055], [39261, 60057], [39266, 60058], [19312, 60059], 9998 [39365, 60060], [19357, 60061], [39484, 60062], [39695, 60063], 9999 [39785, 60065], [39901, 60067], [39921, 60068], [39924, 60069], 10000 [19565, 60070], [39968, 60071], [14191, 60072], [60073, 138178], 10001 [40265, 60074], [40702, 60076], [22096, 60077], [40381, 60079], 10002 [40444, 60081], [38134, 60082], [36790, 60083], [40625, 60086], 10003 [40637, 60087], [40646, 60088], [38108, 60089], [40674, 60090], 10004 [40689, 60091], [40696, 60092], [40772, 60094], [60095, 131220], 10005 [60096, 131767], [60097, 132000], [38083, 60099], [60101, 132311], 10006 [38081, 60103], [60105, 132565], [60106, 132629], [60107, 132726], 10007 [60108, 136890], [22359, 60109], [29043, 60110], [60111, 133826], 10008 [60112, 133837], [60113, 134079], [60115, 194619], [60116, 134091], 10009 [21662, 60117], [60118, 134139], [60119, 134203], [60120, 134227], 10010 [60121, 134245], [60122, 134268], [60124, 134285], [60126, 134325], 10011 [60127, 134365], [60128, 134381], [60129, 134511], [60130, 134578], 10012 [60131, 134600], [60135, 134660], [60136, 134670], [60137, 134871], 10013 [60138, 135056], [60139, 134957], [60140, 134771], [60142, 135100], 10014 [60144, 135260], [60145, 135247], [60146, 135286], [60149, 135304], 10015 [60150, 135318], [13895, 60151], [60152, 135359], [60154, 135471], 10016 [60155, 135483], [21348, 60156], [60158, 135907], [60159, 136053], 10017 [60160, 135990], [60162, 136567], [60163, 136729], [60164, 137155], 10018 [60165, 137159], [28859, 60167], [60168, 137261], [60169, 137578], 10019 [60170, 137773], [60171, 137797], [60172, 138282], [60173, 138352], 10020 [60174, 138412], [60175, 138952], [60177, 138965], [60178, 139029], 10021 [29080, 60179], [60181, 139333], [27113, 60182], [14024, 60183], 10022 [60184, 139900], [60185, 140247], [60186, 140282], [60187, 141098], 10023 [60188, 141425], [60189, 141647], [60191, 141671], [60192, 141715], 10024 [60193, 142037], [60195, 142056], [60197, 142094], [60199, 142143], 10025 [60202, 142412], [60204, 142472], [60205, 142519], [60206, 154600], 10026 [60207, 142600], [60208, 142610], [60209, 142775], [60210, 142741], 10027 [60211, 142914], [60212, 143220], [60213, 143308], [60214, 143411], 10028 [60215, 143462], [60216, 144159], [60217, 144350], [60222, 144743], 10029 [60223, 144883], [60227, 144922], [60228, 145174], [22709, 60231], 10030 [60234, 146087], [60237, 146961], [60238, 147129], [60243, 147737], 10031 [60245, 148206], [60246, 148237], [60248, 148276], [60249, 148374], 10032 [60258, 148484], [60259, 148694], [22408, 60260], [60261, 149108], 10033 [60263, 149295], [60271, 149522], [60272, 149755], [60273, 150037], 10034 [60275, 150208], [22885, 60277], [60279, 151430], [60282, 151596], 10035 [22335, 60284], [60286, 152217], [60287, 152601], [60291, 152646], 10036 [60292, 152686], [60296, 152895], [60298, 152926], [60300, 152930], 10037 [60301, 152934], [60302, 153543], [60304, 153693], [60309, 153859], 10038 [60312, 154286], [60313, 154505], [60314, 154630], [22433, 60316], 10039 [29009, 60317], [60319, 155906], [60322, 156082], [60325, 156674], 10040 [60326, 156746], [60330, 156804], [60334, 156808], [60336, 156946], 10041 [60338, 157119], [60339, 157365], [22201, 60347], [60349, 157436], 10042 [13848, 60355], [60357, 157593], [60358, 157806], [60360, 157790], 10043 [60362, 157895], [60366, 157990], [60368, 158009], [60371, 158202], 10044 [60373, 158253], [60378, 158260], [60379, 158555], [60383, 158621], 10045 [60385, 158884], [60388, 159150], [60392, 159819], [60393, 160205], 10046 [60395, 160384], [60396, 160389], [60399, 160395], [60401, 160486], 10047 [38047, 60404], [60405, 160848], [14009, 60416], [60424, 161740], 10048 [60425, 161880], [22230, 60426], [60435, 162269], [60441, 162301], 10049 [60442, 162314], [60443, 162571], [60444, 163174], [60448, 163849], 10050 [60459, 163875], [60463, 163912], [60466, 163971], [60479, 163984], 10051 [60480, 164084], [60481, 164142], [60483, 164175], [60485, 164271], 10052 [60486, 164378], [60487, 164614], [60488, 164655], [60489, 164746], 10053 [60491, 164968], [60492, 165546], [25574, 60494], [60495, 166230], 10054 [60498, 166328], [60500, 166375], [60502, 166376], [60503, 166726], 10055 [60504, 166868], [60506, 166921], [60508, 167877], [60509, 168172], 10056 [60511, 168208], [60512, 168252], [15863, 60513], [60514, 168286], 10057 [60515, 150218], [36816, 60516], [60519, 169191], [60521, 169392], 10058 [60522, 169400], [60523, 169778], [60524, 170193], [60525, 170313], 10059 [60526, 170346], [60527, 170435], [60528, 170536], [60529, 170766], 10060 [60530, 171354], [60531, 171419], [32415, 60532], [60533, 171768], 10061 [60534, 171811], [19620, 60535], [38215, 60536], [60537, 172691], 10062 [29090, 60538], [60539, 172799], [60542, 173515], [19868, 60543], 10063 [60544, 134300], [36798, 60545], [36794, 60547], [60548, 140464], 10064 [36793, 60549], [60550, 150163], [20202, 60555], [60557, 166700], 10065 [36480, 60560], [60561, 137205], [60563, 166764], [60564, 166809], 10066 [60566, 157359], [60568, 161365], [60570, 153141], [60571, 153942], 10067 [20122, 60572], [60573, 155265], [60576, 134765], [60579, 147080], 10068 [60580, 150686], [60583, 137206], [60584, 137339], [60587, 154698], 10069 [60589, 152337], [15814, 60590], [60596, 155352], [19996, 60600], 10070 [60601, 135146], [60602, 134473], [60603, 145082], [60638, 151880], 10071 [21982, 60644], [34694, 60672], [60676, 135361], [60679, 149254], 10072 [23440, 60680], [60682, 157843], [60684, 141044], [60685, 163119], 10073 [60686, 147875], [60687, 163187], [60688, 159440], [60689, 160438], 10074 [60691, 135641], [60693, 146684], [60694, 173737], [60695, 134828], 10075 [60698, 138402], [60700, 151490], [60702, 135147], [60706, 142752], 10076 [60710, 135148], [60711, 134666], [60714, 135149], [60717, 135559], 10077 [19994, 60721], [19972, 60722], [23309, 60724], [13996, 60727], 10078 [21373, 60729], [13989, 60730], [22682, 60732], [60733, 150382], 10079 [22442, 60736], [60737, 154261], [60738, 133497], [60741, 140389], 10080 [60746, 146686], [60747, 171824], [60749, 151465], [60750, 169374], 10081 [60753, 146870], [60755, 157619], [60756, 145184], [60759, 147191], 10082 [60760, 146988], [60785, 143578], [60789, 135849], [22439, 60790], 10083 [60791, 149859], [60794, 159918], [60801, 137068], [60806, 160100], 10084 [60809, 159010], [60810, 150242], [39963, 60837], [60838, 149822], 10085 [15878, 60846], [60881, 159011], [60887, 132092], [60891, 146685], 10086 [60893, 149785], [22394, 60904], [21722, 60912], [29050, 60928], 10087 [60949, 150135], [60955, 166490], [60962, 194624], [60976, 137275], 10088 [61000, 155993], [61014, 144373], [61019, 166850], [61024, 138566], 10089 [61054, 159441], [13877, 61065], [61084, 166701], [21024, 61088], 10090 [15384, 61089], [61090, 146631], [61091, 155351], [61092, 161366], 10091 [61093, 152881], [61094, 137540], [61096, 170243], [61097, 159196], 10092 [61098, 159917], [61100, 156077], [61101, 166415], [61102, 145015], 10093 [61103, 131310], [61104, 157766], [61105, 151310], [17762, 61106], 10094 [23327, 61107], [61108, 156492], [40784, 61109], [40614, 61110], 10095 [61111, 156267], [20962, 57415], [21314, 57416], [26285, 57520], 10096 [22620, 57547], [21843, 57566], [15749, 57594], [24928, 57608], 10097 [18606, 57668], [38845, 57676], [57693, 137335], [24755, 57703], 10098 [33828, 57711], [38932, 57748], [57749, 147596], [57764, 143486], 10099 [57787, 138813], [15147, 57798], [15666, 57824], [57857, 132021], 10100 [28801, 57944], [23708, 57959], [58017, 132547], [14128, 58028], 10101 [58096, 136054], [58097, 150034], [58111, 166699], [58112, 155779], 10102 [256, 62233], [193, 62234], [461, 62235], [192, 62236], [274, 62237], 10103 [201, 62238], [282, 62239], [200, 62240], [332, 62241], [211, 62242], 10104 [465, 62243], [210, 62244], 62245, [7870, 62246], 62247, [7872, 62248], 10105 [202, 62249], [257, 62250], [225, 62251], [462, 62252], [224, 62253], 10106 [593, 62254], [275, 62255], [233, 62256], [283, 62257], [232, 62258], 10107 [299, 62259], [237, 62260], [464, 62261], [236, 62262], [333, 62263], 10108 [243, 62264], [466, 62265], [242, 62266], [363, 62267], [250, 62268], 10109 [468, 62269], [249, 62270], [470, 62271], [472, 62272], [474, 62273], 10110 [476, 62274], [252, 62275], 62276, [7871, 62277], 62278, [7873, 62279], 10111 [234, 62280], [609, 62281], [643, 63551], [592, 63552], [603, 63553], 10112 [596, 63554], [629, 63555], [339, 63556], [248, 63557], [331, 63558], 10113 [650, 63559], [618, 63560], {f: 2, c: 62282}, [11933, 63530], 10114 [11974, 63539], [12003, 63547], 20539, 28158, [62841, 171123], 62842, 10115 [15817, 62843], 34959, [62845, 147790], 28791, 23797, [19232, 62848], 10116 [62849, 152013], [13657, 62850], [62851, 154928], 24866, [62853, 166450], 10117 36775, 37366, 29073, 26393, 29626, [62859, 144001], [62860, 172295], 10118 [15499, 62861], [62862, 137600], [19216, 62863], 30948, 29698, 20910, 10119 [62867, 165647], [16393, 62868], 27235, [62870, 172730], [16931, 62871], 10120 34319, 31274, [62875, 170311], [62876, 166634], 38741, 28749, 21284, 10121 [62880, 139390], 37876, 30425, [62883, 166371], 62884, 30685, 20131, 20464, 10122 20668, 20015, 20247, 62891, 21556, 32139, 22674, 22736, [62896, 138678], 10123 24210, 24217, 24514, [62900, 141074], 25995, [62902, 144377], 26905, 27203, 10124 [62905, 146531], 27903, 29184, [62909, 148741], 29580, [16091, 62911], 10125 [62912, 150035], 23317, 29881, 35715, [62916, 154788], [62917, 153237], 10126 31379, 31724, 31939, 32364, 33528, 34199, 62924, 34960, 62926, 36537, 10127 62928, 36815, 34143, 39392, 37409, 62933, [62934, 167353], [62935, 136255], 10128 [16497, 62936], [17058, 62937], 23066, 39016, 26475, [17014, 62944], 22333, 10129 34262, [62948, 149883], 33471, [62950, 160013], [19585, 62951], 10130 [62952, 159092], 23931, [62954, 158485], [62955, 159678], {f: 2, c: 62956}, 10131 23446, 62959, 32347], 10132 'Adobe-GB1': [{f: 95, c: 32}, {f: 3, c: 12288}, [183, 12539], 713, 711, 168, 10133 12291, 12293, 8212, 65374, 8214, [8230, 8943], {f: 2, c: 8216}, 10134 {f: 2, c: 8220}, {f: 2, c: 12308}, {f: 8, c: 12296}, {f: 2, c: 12310}, 10135 {f: 2, c: 12304}, 177, 215, 247, 8758, {f: 2, c: 8743}, 8721, 8719, 8746, 10136 8745, 8712, 8759, 8730, 8869, 8741, 8736, 8978, 8857, 8747, 8750, 8801, 10137 8780, 8776, 8765, 8733, 8800, {f: 2, c: 8814}, {f: 2, c: 8804}, 8734, 8757, 10138 8756, 9794, 9792, 176, {f: 2, c: 8242}, 8451, 65284, 164, {f: 2, c: 65504}, 10139 8240, 167, 8470, 9734, 9733, 9675, 9679, 9678, 9671, 9670, 9633, 9632, 10140 9651, 9650, 8251, 8594, {f: 2, c: 8592}, 8595, 12307, {f: 20, c: 9352}, 10141 {f: 20, c: 9332}, {f: 10, c: 9312}, {f: 10, c: 12832}, {f: 12, c: 8544}, 10142 {f: 3, c: 65281}, 65509, {f: 89, c: 65285}, 65507, {f: 83, c: 12353}, 10143 {f: 86, c: 12449}, {f: 17, c: 913}, {f: 7, c: 931}, {f: 17, c: 945}, 10144 {f: 7, c: 963}, {f: 7, c: 59277}, {f: 2, c: 65077}, {f: 2, c: 65081}, 10145 {f: 2, c: 65087}, {f: 2, c: 65085}, {f: 4, c: 65089}, {f: 2, c: 59284}, 10146 {f: 2, c: 65083}, {f: 2, c: 65079}, 65073, 59286, {f: 2, c: 65075}, 10147 {f: 6, c: 1040}, 1025, {f: 32, c: 1046}, 1105, {f: 26, c: 1078}, 257, 225, 10148 462, 224, 275, 233, 283, 232, 299, 237, 464, 236, 333, 243, 466, 242, 363, 10149 250, 468, 249, 470, 472, 474, 476, 252, 234, 593, 7743, 324, 328, 505, 609, 10150 {f: 37, c: 12549}, 0, {f: 76, c: 9472}, {s: 126}, 21834, 38463, 22467, 10151 25384, 21710, 21769, 21696, 30353, 30284, 34108, 30702, 33406, 30861, 10152 29233, 38552, 38797, 27688, 23433, 20474, 25353, 26263, 23736, 33018, 10153 26696, 32942, 26114, 30414, 20985, 25942, 29100, 32753, 34948, 20658, 10154 22885, 25034, 28595, 33453, 25420, 25170, 21485, 21543, 31494, 10155 [12043, 20843], 30116, 24052, 25300, 36299, 38774, 25226, 32793, 22365, 10156 38712, 32610, 29240, [12137, 30333], 26575, 30334, 25670, 20336, 36133, 10157 25308, 31255, 26001, 29677, 25644, 25203, 33324, 39041, 26495, 29256, 10158 25198, 25292, 20276, 29923, 21322, 21150, 32458, 37030, 24110, 26758, 10159 27036, 33152, 32465, 26834, 30917, 34444, 38225, 20621, 35876, 33502, 10160 32990, 21253, 35090, 21093, 34180, 38649, 20445, 22561, 39281, 23453, 10161 25265, 25253, 26292, 35961, 40077, 29190, 26479, 30865, 24754, 21329, 10162 21271, 36744, 32972, 36125, 38049, 20493, 29384, 22791, 24811, 28953, 10163 34987, 22868, 33519, 26412, 31528, 23849, 32503, 29997, 27893, 36454, 10164 36856, 36924, [12240, 40763], [12112, 27604], 37145, 31508, 24444, 30887, 10165 34006, 34109, 27605, 27609, 27606, 24065, 24199, 30201, 38381, 25949, 10166 24330, 24517, 36767, 22721, 33218, 36991, 38491, 38829, 36793, 32534, 10167 36140, 25153, 20415, 21464, 21342, {f: 2, c: 36776}, 36779, 36941, 26631, 10168 24426, 33176, 34920, 40150, 24971, 21035, 30250, 24428, 25996, 28626, 10169 28392, 23486, 25672, 20853, 20912, 26564, 19993, 31177, 39292, 28851, 10170 30149, 24182, 29627, 33760, 25773, 25320, 38069, 27874, 21338, 21187, 10171 25615, 38082, 31636, 20271, 24091, 33334, 33046, 33162, 28196, 27850, 10172 39539, 25429, [12056, 21340], 21754, 34917, 22496, 19981, 24067, 27493, 10173 31807, 37096, 24598, 25830, 29468, 35009, 26448, 25165, 36130, 30572, 10174 36393, 37319, 24425, 33756, 34081, 39184, 21442, 34453, 27531, 24813, 10175 24808, 28799, 33485, 33329, 20179, 27815, 34255, 25805, 31961, 27133, 10176 26361, 33609, 21397, 31574, 20391, 20876, 27979, 23618, 36461, 25554, 10177 21449, 33580, 33590, 26597, 30900, 25661, 23519, 23700, 24046, 35815, 10178 25286, 26612, 35962, 25600, 25530, 34633, 39307, 35863, 32544, 38130, 10179 20135, 38416, 39076, 26124, 29462, 22330, 23581, 24120, 38271, 20607, 10180 32928, [12058, 21378], 25950, 30021, 21809, 20513, 36229, 25220, 38046, 10181 26397, 22066, 28526, 24034, 21557, 28818, 36710, 25199, 25764, 25507, 10182 24443, 28552, 37108, [12162, 33251], [12192, 36784], 23576, 26216, 24561, 10183 27785, 38472, 36225, 34924, 25745, 31216, 22478, 27225, 25104, 21576, 10184 20056, 31243, 24809, 28548, 35802, 25215, 36894, 39563, 31204, 21507, 10185 30196, 25345, 21273, 27744, 36831, 24347, 39536, 32827, 40831, 20360, 10186 23610, [12186, 36196], 32709, 26021, 28861, 20805, 20914, [12173, 34411], 10187 23815, 23456, 25277, 37228, 30068, 36364, 31264, 24833, 31609, 20167, 10188 32504, 30597, 19985, 33261, 21021, 20986, 27249, 21416, 36487, 38148, 10189 38607, 28353, 38500, 26970, 30784, 20648, 30679, 25616, 35302, 22788, 10190 25571, 24029, 31359, 26941, 20256, 33337, 21912, 20018, 30126, 31383, 10191 24162, 24202, 38383, 21019, 21561, 28810, 25462, 38180, 22402, 26149, 10192 26943, 37255, 21767, 28147, 32431, 34850, 25139, 32496, 30133, 33576, 10193 30913, 38604, 36766, 24904, 29943, 35789, 27492, 21050, 36176, 27425, 10194 32874, 33905, 22257, 21254, 20174, 19995, 20945, 31895, 37259, 31751, 10195 20419, 36479, 31713, 31388, 25703, 23828, 20652, 33030, 30209, 31929, 10196 28140, 32736, 26449, 23384, [12072, 23544], 30923, 25774, 25619, 25514, 10197 25387, 38169, 25645, 36798, 31572, 30249, 25171, [12068, 22823], 21574, 10198 [12109, 27513], 20643, 25140, 24102, 27526, 20195, 36151, 34955, 24453, 10199 36910, 24608, 32829, 25285, 20025, 21333, 37112, 25528, 32966, 26086, 10200 27694, 20294, 24814, 28129, 35806, 24377, 34507, 24403, 25377, 20826, 10201 33633, 26723, [12049, 20992], 25443, 36424, 20498, 23707, 31095, 23548, 10202 21040, 31291, 24764, 36947, 30423, 24503, 24471, 30340, 36460, 28783, 10203 30331, 31561, 30634, 20979, 37011, 22564, 20302, 28404, 36842, 25932, 10204 31515, 29380, 28068, 32735, 23265, 25269, 24213, 22320, 33922, 31532, 10205 24093, 24351, 36882, 32532, 39072, 25474, 28359, 30872, 28857, 20856, 10206 38747, 22443, 30005, 20291, 30008, 24215, 24806, 22880, 28096, 27583, 10207 30857, 21500, 38613, 20939, 20993, 25481, 21514, 38035, 35843, 36300, 10208 29241, 30879, 34678, 36845, 35853, 21472, 19969, 30447, 21486, 38025, 10209 39030, [12237, 40718], 38189, 23450, 35746, 20002, 19996, 20908, 33891, 10210 25026, 21160, 26635, 20375, 24683, 20923, 27934, 20828, 25238, 10211 [12099, 26007], 38497, [12182, 35910], 36887, 30168, 37117, 30563, 27602, 10212 29322, 29420, 35835, 22581, 30585, 36172, 26460, 38208, 32922, 24230, 10213 28193, 22930, 31471, 30701, 38203, 27573, 26029, 32526, 22534, 20817, 10214 38431, 23545, 22697, 21544, 36466, 25958, 39039, 22244, 38045, 30462, 10215 36929, 25479, 21702, 22810, 22842, 22427, 36530, 26421, 36346, 33333, 10216 21057, 24816, 22549, 34558, 23784, 40517, 20420, 39069, 35769, 23077, 10217 24694, 21380, 25212, 36943, 37122, 39295, 24681, [12157, 32780], 10218 [12041, 20799], [12159, 32819], 23572, 39285, 27953, [12038, 20108], 36144, 10219 21457, 32602, 31567, 20240, 20047, 38400, 27861, 29648, 34281, 24070, 10220 30058, 32763, 27146, 30718, 38034, 32321, 20961, 28902, 21453, 36820, 10221 33539, 36137, 29359, 39277, 27867, 22346, 33459, [12101, 26041], 32938, 10222 25151, 38450, 22952, 20223, 35775, 32442, 25918, 33778, [12206, 38750], 10223 21857, 39134, 32933, 21290, 35837, 21536, 32954, 24223, 27832, 36153, 10224 33452, 37210, 21545, 27675, 20998, 32439, 22367, 28954, 27774, 31881, 10225 22859, 20221, 24575, 24868, 31914, 20016, 23553, 26539, 34562, 23792, 10226 38155, 39118, 30127, 28925, 36898, 20911, 32541, 35773, 22857, 20964, 10227 20315, 21542, 22827, 25975, 32932, 23413, 25206, 25282, 36752, 24133, 10228 27679, 31526, 20239, 20440, 26381, 28014, 28074, 31119, 34993, 24343, 10229 29995, 25242, 36741, 20463, 37340, 26023, 33071, 33105, 24220, 33104, 10230 36212, 21103, 35206, 36171, 22797, 20613, 20184, [12201, 38428], 10231 [12119, 29238], 33145, 36127, 23500, 35747, 38468, 22919, 32538, 21648, 10232 22134, 22030, 35813, 25913, 27010, 38041, 30422, 28297, [12082, 24178], 10233 [12130, 29976], 26438, 26577, 31487, 32925, 36214, 24863, 31174, 25954, 10234 36195, 20872, 21018, 38050, 32568, 32923, 32434, 23703, 28207, 26464, 10235 31705, 30347, [12220, 39640], 33167, 32660, 31957, 25630, 38224, 31295, 10236 21578, 21733, 27468, 25601, [12093, 25096], 40509, 33011, 30105, 21106, 10237 [12208, 38761], 33883, 26684, 34532, 38401, 38548, 38124, 20010, 21508, 10238 32473, 26681, 36319, 32789, 26356, 24218, 32697, 22466, 32831, 26775, 10239 [12079, 24037], 25915, 21151, 24685, 40858, 20379, 36524, 20844, 23467, 10240 [12088, 24339], 24041, 27742, 25329, 36129, 20849, 38057, 21246, 27807, 10241 33503, 29399, 22434, 26500, 36141, 22815, 36764, 33735, 21653, 31629, 10242 20272, 27837, 23396, 22993, [12238, 40723], 21476, 34506, [12219, 39592], 10243 [12181, 35895], 32929, 25925, 39038, 22266, 38599, 21038, [12128, 29916], 10244 21072, 23521, 25346, 35074, 20054, 25296, 24618, 26874, 20851, 23448, 10245 20896, 35266, 31649, 39302, 32592, 24815, 28748, 36143, 20809, 10246 [12084, 24191], 36891, 29808, 35268, 22317, 30789, 24402, 40863, 38394, 10247 36712, [12225, 39740], 35809, 30328, 26690, 26588, 36330, 36149, 21053, 10248 36746, 28378, 26829, 38149, 37101, 22269, 26524, 35065, 36807, 21704, 10249 39608, 23401, 28023, 27686, 20133, 23475, 39559, 37219, 25000, 37039, 10250 38889, 21547, 28085, 23506, 20989, 21898, 32597, 32752, 25788, 25421, 10251 26097, 25022, 24717, 28938, 27735, 27721, 22831, 26477, 33322, 22741, 10252 22158, 35946, 27627, 37085, 22909, 32791, 21495, 28009, 21621, 21917, 10253 33655, 33743, 26680, [12146, 31166], 21644, 20309, 21512, 30418, 35977, 10254 38402, 27827, 28088, 36203, 35088, 40548, 36154, 22079, [12234, 40657], 10255 30165, 24456, 29408, 24680, 21756, 20136, 27178, 34913, 24658, 36720, 10256 21700, 28888, 34425, 40511, 27946, 23439, 24344, 32418, 21897, 20399, 10257 29492, 21564, 21402, 20505, 21518, 21628, 20046, 24573, 29786, 22774, 10258 33899, 32993, 34676, 29392, 31946, 28246, 24359, 34382, 21804, 25252, 10259 20114, 27818, 25143, 33457, 21719, 21326, 29502, 28369, 30011, 21010, 10260 21270, 35805, 27088, 24458, 24576, 28142, 22351, 27426, 29615, 26707, 10261 36824, 32531, 25442, 24739, 21796, 30186, 35938, 28949, 28067, 23462, 10262 24187, 33618, 24908, 40644, 30970, 34647, 31783, 30343, 20976, 24822, 10263 29004, 26179, 24140, 24653, 35854, 28784, 25381, 36745, 24509, 24674, 10264 34516, 22238, 27585, 24724, 24935, 21321, 24800, 26214, 36159, 31229, 10265 20250, 28905, 27719, 35763, 35826, 32472, 33636, 26127, 23130, 39746, 10266 27985, 28151, 35905, 27963, 20249, [12117, 28779], 33719, 25110, 24785, 10267 38669, 36135, 31096, 20987, 22334, 22522, 26426, 30072, 31293, 31215, 10268 31637, 32908, 39269, 36857, 28608, 35749, 40481, 23020, 32489, 32521, 10269 21513, 26497, 26840, 36753, 31821, 38598, 21450, 24613, 30142, 27762, 10270 21363, 23241, 32423, 25380, [12047, 20960], 33034, [12080, 24049], 34015, 10271 25216, 20864, 23395, 20238, 31085, 21058, 24760, 27982, 23492, 23490, 10272 35745, 35760, 26082, 24524, 38469, 22931, 32487, 32426, 22025, 26551, 10273 22841, 20339, 23478, 21152, 33626, 39050, 36158, 30002, 38078, 20551, 10274 31292, 20215, 26550, 39550, 23233, 27516, 30417, 22362, 23574, 31546, 10275 38388, 29006, 20860, 32937, 33392, 22904, 32516, 33575, 26816, 26604, 10276 30897, 30839, 25315, 25441, 31616, 20461, 21098, 20943, 33616, 27099, 10277 37492, 36341, 36145, 35265, 38190, 31661, 20214, 20581, 33328, 21073, 10278 39279, 28176, 28293, 28071, 24314, 20725, 23004, 23558, 27974, 27743, 10279 30086, 33931, 26728, 22870, 35762, 21280, 37233, 38477, 34121, 26898, 10280 30977, 28966, 33014, 20132, 37066, 27975, 39556, 23047, 22204, 25605, 10281 38128, 30699, 20389, 33050, 29409, [12179, 35282], 39290, 32564, 32478, 10282 21119, 25945, 37237, 36735, 36739, 21483, 31382, 25581, 25509, 30342, 10283 31224, 34903, 38454, 25130, 21163, 33410, 26708, 26480, 25463, 30571, 10284 31469, 27905, 32467, 35299, 22992, 25106, 34249, 33445, 30028, 20511, 10285 20171, 30117, 35819, 23626, [12081, 24062], 31563, [12100, 26020], 10286 [12198, 37329], 20170, 27941, 35167, 32039, 38182, 20165, 35880, 36827, 10287 38771, 26187, 31105, 36817, 28908, 28024, 23613, 21170, 33606, 20834, 10288 33550, 30555, 26230, 40120, 20140, 24778, 31934, 31923, 32463, 20117, 10289 35686, 26223, 39048, 38745, 22659, 25964, 38236, 24452, 30153, 38742, 10290 31455, 31454, 20928, 28847, 31384, 25578, 31350, 32416, 29590, 10291 [12210, 38893], 20037, 28792, 20061, 37202, 21417, 25937, 26087, 10292 [12165, 33276], 33285, 21646, 23601, 30106, 38816, 25304, 29401, 30141, 10293 23621, 39545, 33738, 23616, 21632, 30697, 20030, 27822, 32858, 25298, 10294 25454, 24040, 20855, 36317, 36382, 38191, 20465, 21477, 24807, 28844, 10295 21095, 25424, 40515, 23071, 20518, 30519, 21367, 32482, 25733, 25899, 10296 25225, 25496, 20500, 29237, 35273, 20915, 35776, 32477, 22343, 33740, 10297 38055, 20891, 21531, 23803, 20426, 31459, 27994, 37089, 39567, 21888, 10298 21654, 21345, 21679, 24320, 25577, 26999, 20975, 24936, 21002, 22570, 10299 21208, 22350, 30733, 30475, 24247, 24951, 31968, 25179, 25239, 20130, 10300 28821, 32771, 25335, 28900, 38752, 22391, 33499, 26607, 26869, 30933, 10301 39063, 31185, 22771, 21683, 21487, 28212, 20811, 21051, 23458, 35838, 10302 32943, 21827, 22438, 24691, 22353, 21549, 31354, 24656, 23380, 25511, 10303 25248, [12061, 21475], 25187, 23495, 26543, 21741, 31391, 33510, 37239, 10304 24211, 35044, 22840, 22446, 25358, 36328, 33007, 22359, 31607, 20393, 10305 24555, 23485, 27454, 21281, 31568, 29378, 26694, 30719, 30518, 26103, 10306 20917, 20111, 30420, 23743, 31397, 33909, 22862, 39745, 20608, 39304, 10307 24871, 28291, 22372, 26118, 25414, 22256, 25324, 25193, 24275, 38420, 10308 22403, 25289, 21895, 34593, 33098, 36771, 21862, 33713, 26469, 36182, 10309 34013, 23146, 26639, 25318, 31726, 38417, 20848, 28572, 35888, 25597, 10310 35272, 25042, 32518, 28866, 28389, 29701, 27028, 29436, 24266, 37070, 10311 26391, 28010, 25438, 21171, 29282, [12156, 32769], 20332, 23013, 37226, 10312 28889, 28061, 21202, 20048, 38647, 38253, 34174, 30922, 32047, 20769, 10313 22418, 25794, 32907, 31867, 27882, 26865, 26974, 20919, 21400, 26792, 10314 29313, 40654, 31729, 29432, 31163, 28435, 29702, 26446, [12197, 37324], 10315 40100, 31036, 33673, 33620, 21519, 26647, 20029, 21385, 21169, 30782, 10316 21382, 21033, 20616, 20363, 20432, 30178, [12148, 31435], 31890, 27813, 10317 [12202, 38582], [12050, 21147], 29827, 21737, 20457, 32852, 33714, 36830, 10318 38256, 24265, 24604, 28063, 24088, 25947, 33080, 38142, 24651, 28860, 10319 32451, 31918, 20937, 26753, 31921, 33391, 20004, 36742, 37327, 26238, 10320 20142, 35845, 25769, 32842, 20698, 30103, 29134, 23525, 36797, 28518, 10321 20102, 25730, 38243, 24278, 26009, 21015, 35010, 28872, 21155, 29454, 10322 29747, 26519, 30967, 38678, 20020, 37051, 40158, 28107, 20955, 36161, 10323 21533, 25294, 29618, 33777, 38646, 40836, 38083, 20278, 32666, 20940, 10324 28789, 38517, 23725, 39046, 21478, 20196, 28316, 29705, 27060, 30827, 10325 39311, 30041, 21016, 30244, 27969, 26611, 20845, 40857, 32843, 21657, 10326 31548, 31423, 38534, 22404, 25314, 38471, 27004, 23044, 25602, 31699, 10327 28431, 38475, 33446, 21346, 39045, 24208, 28809, 25523, 21348, 34383, 10328 40065, 40595, 30860, 38706, 36335, 36162, [12229, 40575], 28510, 31108, 10329 24405, 38470, 25134, 39540, 21525, 38109, 20387, 26053, 23653, 23649, 10330 32533, 34385, 27695, 24459, 29575, 28388, 32511, 23782, 25371, 23402, 10331 28390, 21365, 20081, 25504, 30053, 25249, 36718, 20262, 20177, 27814, 10332 32438, 35770, 33821, 34746, 32599, 36923, 38179, 31657, 39585, 35064, 10333 33853, 27931, 39558, 32476, 22920, [12231, 40635], 29595, 30721, 34434, 10334 39532, 39554, 22043, 21527, 22475, 20080, 40614, 21334, 36808, 33033, 10335 30610, 39314, 34542, 28385, 34067, 26364, 24930, 28459, 35881, 33426, 10336 33579, 30450, 27667, 24537, 33725, 29483, 33541, 38170, [12113, 27611], 10337 [12141, 30683], 38086, 21359, 33538, 20882, 24125, 35980, 36152, 20040, 10338 29611, 26522, 26757, 37238, 38665, 29028, 27809, 30473, 23186, 38209, 10339 27599, 32654, 26151, 23504, 22969, 23194, 38376, 38391, 20204, 33804, 10340 33945, 27308, 30431, 38192, 29467, 26790, 23391, 30511, 37274, 38753, 10341 31964, 36855, 35868, 24357, [12150, 31859], 31192, 35269, 27852, 34588, 10342 23494, 24130, 26825, 30496, 32501, 20885, 20813, 21193, 23081, 32517, 10343 [12207, 38754], 33495, 25551, 30596, 34256, 31186, 28218, 24217, 22937, 10344 34065, 28781, 27665, 25279, [12139, 30399], 25935, 24751, 38397, 26126, 10345 34719, 40483, 38125, 21517, 21629, 35884, {f: 2, c: 25720}, 34321, 27169, 10346 33180, 30952, 25705, 39764, 25273, 26411, 33707, 22696, 40664, 27819, 10347 28448, 23518, 38476, 35851, 29279, 26576, 25287, 29281, 20137, 22982, 10348 27597, 22675, 26286, 24149, 21215, 24917, [12106, 26408], [12140, 30446], 10349 30566, 29287, 31302, 25343, 21738, 21584, 38048, 37027, 23068, 32435, 10350 27670, 20035, 22902, 32784, 22856, 21335, 30007, 38590, 22218, 25376, 10351 33041, 24700, 38393, 28118, 21602, 39297, 20869, 23273, 33021, 22958, 10352 38675, 20522, 27877, 23612, 25311, 20320, 21311, 33147, 36870, 28346, 10353 34091, 25288, 24180, 30910, 25781, 25467, 24565, 23064, 37247, 40479, 10354 23615, 25423, 32834, 23421, 21870, 38218, 38221, 28037, 24744, 26592, 10355 29406, 20957, 23425, 25319, 27870, [12124, 29275], 25197, 38062, 32445, 10356 33043, 27987, 20892, 24324, 22900, 21162, 24594, [12069, 22899], 26262, 10357 34384, 30111, 25386, 25062, 31983, 35834, 21734, 27431, 40485, 27572, 10358 34261, 21589, 20598, 27812, 21866, 36276, 29228, 24085, 24597, 29750, 10359 25293, 25490, 29260, 24472, 28227, 27966, 25856, 28504, 30424, 30928, 10360 30460, 30036, 21028, 21467, 20051, 24222, 26049, 32810, 32982, 25243, 10361 21638, 21032, 28846, 34957, 36305, 27873, 21624, 32986, 22521, 35060, 10362 36180, 38506, 37197, 20329, 27803, 21943, 30406, 30768, 25256, 28921, 10363 28558, 24429, 34028, 26842, 30844, 31735, 33192, 26379, 40527, 25447, 10364 30896, 22383, 30738, 38713, 25209, 25259, 21128, 29749, 27607, 21860, 10365 33086, 30130, [12138, 30382], 21305, 30174, 20731, 23617, 35692, 31687, 10366 20559, [12122, 29255], 39575, 39128, 28418, 29922, 31080, 25735, 30629, 10367 25340, 39057, 36139, 21697, 32856, 20050, 22378, 33529, 33805, 24179, 10368 20973, 29942, 35780, 23631, 22369, 27900, 39047, 23110, 30772, 39748, 10369 36843, 31893, 21078, 25169, 38138, 20166, 33670, 33889, 33769, 33970, 10370 22484, 26420, 22275, 26222, 28006, 35889, 26333, 28689, 26399, 27450, 10371 26646, 25114, 22971, 19971, 20932, 28422, 26578, 27791, 20854, 26827, 10372 22855, 27495, 30054, 23822, 33040, 40784, 26071, 31048, 31041, 39569, 10373 36215, 23682, 20062, 20225, 21551, 22865, 30732, 22120, [12115, 27668], 10374 36804, 24323, 27773, 27875, 35755, 25488, 24688, 27965, 29301, 25190, 10375 38030, 38085, 21315, 36801, 31614, 20191, 35878, 20094, 40660, 38065, 10376 38067, 21069, 28508, 36963, 27973, 35892, 22545, 23884, [12107, 27424], 10377 27465, 26538, 21595, 33108, 32652, 22681, 34103, 24378, 25250, 27207, 10378 38201, 25970, 24708, 26725, 30631, 20052, 20392, 24039, 38808, 25772, 10379 32728, 23789, 20431, 31373, 20999, 33540, 19988, 24623, 31363, 38054, 10380 20405, 20146, 31206, 29748, 21220, 33465, 25810, 31165, 23517, 27777, 10381 38738, 36731, 27682, 20542, 21375, 28165, 25806, 26228, 27696, 24773, 10382 39031, 35831, 24198, 29756, 31351, 31179, 19992, 37041, 29699, 27714, 10383 22234, 37195, 27845, 36235, 21306, 34502, 26354, 36527, 23624, 39537, 10384 28192, 21462, 23094, 40843, 36259, 21435, 22280, 39079, 26435, 37275, 10385 27849, 20840, 30154, 25331, [12125, 29356], 21048, 21149, 32570, 28820, 10386 30264, 21364, 40522, 27063, 30830, 38592, 35033, 32676, 28982, 29123, 10387 20873, 26579, 29924, 22756, 25880, 22199, 35753, 39286, 25200, 32469, 10388 24825, 28909, 22764, 20161, [12040, 20154], 24525, 38887, 20219, 35748, 10389 20995, 22922, 32427, 25172, 20173, [12103, 26085], 25102, 33592, 33993, 10390 33635, 34701, 29076, 28342, 23481, 32466, 20887, 25545, 26580, 10391 [12161, 32905], 33593, 34837, 20754, 23418, 22914, 36785, 20083, 27741, 10392 [12042, 20837], 35109, 36719, 38446, 34122, 29790, 38160, 38384, 28070, 10393 33509, 24369, 25746, 27922, 33832, 33134, 40131, 22622, 36187, 19977, 10394 21441, 20254, 25955, 26705, 21971, 20007, 25620, 39578, 25195, 23234, 10395 29791, [12170, 33394], 28073, 26862, 20711, 33678, 30722, 26432, 21049, 10396 27801, 32433, 20667, 21861, 29022, 31579, 26194, 29642, 33515, 26441, 10397 [12077, 23665], 21024, 29053, 34923, 38378, 38485, 25797, 36193, 33203, 10398 21892, 27733, 25159, 32558, 22674, 20260, 21830, 36175, 26188, 19978, 10399 23578, 35059, 26786, 25422, 31245, 28903, 33421, 21242, 38902, 23569, 10400 21736, 37045, 32461, 22882, 36170, 34503, [12166, 33292], 33293, 36198, 10401 25668, 23556, 24913, 28041, 31038, 35774, 30775, 30003, 21627, 20280, 10402 [12189, 36523], 28145, 23072, 32453, 31070, 27784, 23457, 23158, 29978, 10403 32958, 24910, 28183, 22768, [12131, 29983], 29989, 29298, 21319, 32499, 10404 30465, 30427, 21097, 32988, 22307, 24072, 22833, 29422, 26045, 28287, 10405 35799, [12075, 23608], 34417, [12055, 21313], [12143, 30707], 25342, 26102, 10406 20160, [12215, 39135], 34432, 23454, 35782, 21490, [12142, 30690], 20351, 10407 23630, 39542, 22987, 24335, [12144, 31034], [12064, 22763], 19990, 26623, 10408 20107, 25325, 35475, 36893, 21183, 26159, 21980, 22124, 36866, 20181, 10409 20365, 37322, 39280, [12114, 27663], 24066, 24643, 23460, 35270, 35797, 10410 25910, [12095, 25163], [12216, 39318], 23432, 23551, 25480, 21806, 21463, 10411 30246, 20861, 34092, 26530, 26803, 27530, 25234, 36755, 21460, 33298, 10412 28113, 30095, 20070, 36174, 23408, 29087, 34223, 26257, 26329, 32626, 10413 34560, [12233, 40653], [12239, 40736], 23646, 26415, 36848, 26641, 26463, 10414 25101, 31446, 22661, 24246, 25968, 28465, 24661, 21047, 32781, 25684, 10415 34928, 29993, 24069, 26643, 25332, 38684, 21452, 29245, 35841, 10416 [12116, 27700], 30561, 31246, 21550, 30636, 39034, 33308, 35828, 30805, 10417 26388, 28865, 26031, 25749, 22070, 24605, 31169, 21496, 19997, 27515, 10418 32902, 23546, 21987, 22235, 20282, 20284, 39282, 24051, 26494, 32824, 10419 24578, 39042, 36865, 23435, 35772, 35829, 25628, 33368, 25822, 22013, 10420 33487, 37221, 20439, 32032, 36895, 31903, 20723, 22609, 28335, 23487, 10421 35785, 32899, 37240, 33948, 31639, 34429, 38539, 38543, 32485, 39635, 10422 30862, 23681, 31319, 36930, 38567, 31071, 23385, 25439, 31499, 34001, 10423 26797, 21766, 32553, 29712, 32034, 38145, 25152, 22604, 20182, 23427, 10424 22905, 22612, 29549, 25374, 36427, 36367, 32974, 33492, 25260, 21488, 10425 27888, 37214, 22826, 24577, 27760, 22349, 25674, 36138, 30251, 28393, 10426 22363, 27264, 30192, 28525, 35885, 35848, 22374, 27631, 34962, 30899, 10427 25506, 21497, 28845, 27748, 22616, 25642, 22530, 26848, 33179, 21776, 10428 31958, 20504, 36538, 28108, 36255, 28907, 25487, 28059, 28372, 32486, 10429 33796, 26691, 36867, 28120, 38518, 35752, 22871, 29305, 34276, 33150, 10430 30140, 35466, 26799, 21076, 36386, 38161, 25552, 39064, 36420, 21884, 10431 20307, 26367, 22159, 24789, 28053, 21059, 23625, 22825, 28155, 22635, 10432 [12133, 30000], 29980, 24684, 33300, 33094, 25361, 26465, 36834, 30522, 10433 36339, 36148, 38081, 24086, 21381, 21548, 28867, 27712, 24311, 20572, 10434 20141, 24237, 25402, 33351, 36890, 26704, 37230, 30643, 21516, 38108, 10435 24420, 31461, 26742, 25413, 31570, 32479, 30171, 20599, 25237, 22836, 10436 36879, 20984, 31171, 31361, 22270, 24466, 36884, 28034, 23648, 10437 [12063, 22303], 21520, 20820, 28237, 22242, 25512, 39059, 33151, 34581, 10438 35114, 36864, 21534, 23663, 33216, 25302, 25176, 33073, 40501, 38464, 10439 39534, 39548, 26925, 22949, 25299, 21822, 25366, 21703, 34521, 27964, 10440 23043, [12129, 29926], 34972, 27498, 22806, 35916, 24367, 28286, 29609, 10441 39037, 20024, 28919, 23436, 30871, 25405, 26202, 30358, 24779, 23451, 10442 23113, 19975, 33109, 27754, 29579, 20129, 26505, [12153, 32593], 24448, 10443 26106, 26395, 24536, 22916, 23041, 24013, 24494, 21361, 38886, 36829, 10444 26693, 22260, 21807, 24799, 20026, 28493, 32500, 33479, 33806, 22996, 10445 20255, 20266, 23614, 32428, 26410, 34074, 21619, 30031, 32963, 21890, 10446 39759, 20301, 28205, 35859, 23561, 24944, 21355, 30239, 28201, 34442, 10447 [12098, 25991], 38395, 32441, 21563, 31283, 32010, 38382, 21985, 32705, 10448 29934, 25373, 34583, 28065, 31389, 25105, 26017, 21351, 25569, 27779, 10449 24043, 21596, 38056, 20044, 27745, 35820, 23627, [12102, 26080], 33436, 10450 26791, 21566, 21556, [12111, 27595], 27494, 20116, 25410, 21320, 33310, 10451 20237, 20398, 22366, 25098, 38654, 26212, 29289, 21247, 21153, 24735, 10452 35823, 26132, 29081, 26512, 35199, 30802, 30717, 26224, 22075, 21560, 10453 38177, 29306, 31232, 24687, 24076, 24713, 33181, [12067, 22805], 24796, 10454 29060, 28911, 28330, 27728, 29312, 27268, 34989, 24109, 20064, 23219, 10455 21916, 38115, 27927, 31995, 38553, 25103, 32454, 30606, 34430, 21283, 10456 38686, 36758, 26247, 23777, 20384, 29421, 19979, 21414, 22799, 21523, 10457 25472, 38184, 20808, 20185, 40092, 32420, 21688, 36132, 34900, 33335, 10458 38386, 28046, 24358, 23244, 26174, 38505, 29616, 29486, 21439, 33146, 10459 39301, 32673, 23466, 38519, 38480, 32447, 30456, 21410, 38262, 10460 [12217, 39321], 31665, 35140, 28248, 20065, 32724, 31077, 35814, 24819, 10461 21709, 20139, 39033, 24055, 27233, 20687, 21521, 35937, 33831, 30813, 10462 38660, 21066, 21742, 22179, 38144, 28040, 23477, 28102, 26195, 10463 [12073, 23567], 23389, 26657, 32918, 21880, 31505, 25928, 26964, 20123, 10464 27463, 34638, 38795, 21327, 25375, 25658, 37034, 26012, 32961, 35856, 10465 20889, 26800, 21368, 34809, 25032, 27844, 27899, 35874, 23633, 34218, 10466 33455, 38156, 27427, [12191, 36763], 26032, 24571, [12092, 24515], 20449, 10467 34885, 26143, 33125, 29481, 24826, 20852, 21009, 22411, 24418, 37026, 10468 [12175, 34892], 37266, 24184, 26447, 24615, 22995, 20804, 20982, 33016, 10469 21256, 27769, 38596, 29066, 20241, 20462, 32670, 26429, 21957, 38152, 10470 31168, 34966, 32483, 22687, 25100, 38656, 34394, 22040, 39035, 24464, 10471 35768, 33988, 37207, 21465, 26093, 24207, 30044, 24676, 32110, 23167, 10472 32490, 32493, 36713, 21927, 23459, 24748, 26059, [12126, 29572], 36873, 10473 30307, 30505, 32474, 38772, 34203, 23398, [12147, 31348], 38634, 10474 [12174, 34880], 21195, 29071, 24490, 26092, 35810, 23547, 39535, 24033, 10475 27529, 27739, 35757, 35759, 36874, 36805, 21387, 25276, 40486, 40493, 10476 21568, 20011, 33469, [12123, 29273], 34460, 23830, 34905, 28079, 38597, 10477 21713, 20122, 35766, 28937, 21693, 38409, 28895, 28153, 30416, 20005, 10478 30740, 34578, 23721, 24310, [12180, 35328], 39068, 38414, 28814, 27839, 10479 22852, 25513, 30524, 34893, 28436, 33395, 22576, 29141, 21388, 30746, 10480 38593, 21761, 24422, 28976, 23476, 35866, 39564, 27523, 22830, 40495, 10481 31207, 26472, 25196, 20335, 30113, [12154, 32650], 27915, 38451, 27687, 10482 20208, 30162, 20859, 26679, 28478, 36992, 33136, 22934, 29814, 25671, 10483 23591, 36965, 31377, 35875, 23002, 21676, 33280, 33647, 35201, 32768, 10484 26928, 22094, 32822, 29239, 37326, 20918, 20063, 39029, 25494, 19994, 10485 21494, 26355, 33099, 22812, 28082, [12032, 19968], 22777, 21307, 25558, 10486 38129, 20381, 20234, [12176, 34915], 39056, 22839, 36951, 31227, 20202, 10487 33008, 30097, 27778, 23452, 23016, 24413, 26885, 34433, 20506, 24050, 10488 [12036, 20057], 30691, 20197, 33402, 25233, 26131, [12194, 37009], 23673, 10489 20159, 24441, 33222, 36920, 32900, 30123, 20134, 35028, 24847, 27589, 10490 24518, 20041, 30410, 28322, 35811, 35758, 35850, 35793, 24322, 32764, 10491 32716, 32462, 33589, 33643, 22240, 27575, [12211, 38899], 38452, 23035, 10492 21535, 38134, 28139, 23493, 39278, 23609, 24341, 38544, 21360, 33521, 10493 27185, 23156, 40560, 24212, 32552, 33721, {f: 2, c: 33828}, 33639, 34631, 10494 36814, 36194, 30408, 24433, 39062, 30828, 26144, 21727, 25317, 20323, 10495 33219, 30152, 24248, 38605, 36362, 34553, 21647, 27891, 28044, 27704, 10496 24703, 21191, [12132, 29992], 24189, 20248, 24736, 24551, 23588, 30001, 10497 37038, 38080, 29369, 27833, 28216, [12195, 37193], 26377, 21451, 21491, 10498 20305, 37321, 35825, [12060, 21448], 24188, 36802, 28132, 20110, 30402, 10499 27014, 34398, 24858, 33286, 20313, 20446, 36926, 40060, 24841, 28189, 10500 28180, 38533, 20104, 23089, [12204, 38632], 19982, 23679, 31161, 23431, 10501 35821, [12155, 32701], [12127, 29577], 22495, 33419, 37057, 21505, 36935, 10502 21947, 23786, 24481, 24840, 27442, 29425, 32946, 35465, 28020, 23507, 10503 35029, 39044, 35947, 39533, 40499, 28170, 20900, 20803, 22435, 34945, 10504 21407, 25588, 36757, 22253, 21592, 22278, 29503, 28304, 32536, 36828, 10505 33489, 24895, 24616, 38498, [12104, 26352], 32422, 36234, 36291, 38053, 10506 23731, 31908, [12105, 26376], 24742, 38405, 32792, 20113, 37095, 21248, 10507 38504, 20801, 36816, 34164, 37213, 26197, 38901, 23381, 21277, 30776, 10508 26434, 26685, 21705, 28798, 23472, 36733, 20877, 22312, 21681, 25874, 10509 26242, 36190, 36163, 33039, 33900, 36973, 31967, 20991, 34299, 26531, 10510 26089, 28577, 34468, 36481, 22122, 36896, 30338, 28790, 29157, 36131, 10511 25321, 21017, 27901, 36156, 24590, 22686, 24974, 26366, 36192, 25166, 10512 21939, 28195, 26413, 36711, 38113, 38392, 30504, 26629, 27048, 21643, 10513 20045, 28856, 35784, 25688, 25995, 23429, 31364, 20538, 23528, 30651, 10514 27617, 35449, 31896, 27838, 30415, 26025, 36759, 23853, 23637, 34360, 10515 26632, 21344, 25112, 31449, 28251, 32509, 27167, 31456, 24432, 28467, 10516 24352, 25484, 28072, 26454, 19976, 24080, 36134, 20183, 32960, 30260, 10517 38556, 25307, 26157, 25214, 27836, 36213, 29031, 32617, 20806, 32903, 10518 21484, 36974, 25240, 21746, 34544, 36761, 32773, 38167, 34071, 36825, 10519 27993, 29645, 26015, 30495, 29956, 30759, 33275, 36126, 38024, 20390, 10520 26517, 30137, 35786, 38663, 25391, 38215, 38453, 33976, 25379, 30529, 10521 24449, 29424, 20105, 24596, 25972, 25327, 27491, 25919, 24103, 30151, 10522 37073, 35777, 33437, 26525, [12096, 25903], 21553, 34584, 30693, 32930, 10523 33026, 27713, 20043, 32455, 32844, 30452, 26893, 27542, 25191, 20540, 10524 20356, 22336, 25351, [12108, 27490], 36286, 21482, 26088, 32440, 24535, 10525 25370, 25527, [12164, 33267], 33268, 32622, 24092, 23769, 21046, 26234, 10526 31209, 31258, 36136, 28825, 30164, 28382, 27835, 31378, 20013, 30405, 10527 24544, 38047, 34935, 32456, 31181, 32959, 37325, 20210, 20247, 10528 [12168, 33311], 21608, 24030, 27954, 35788, 31909, 36724, 32920, 24090, 10529 21650, 30385, 23449, 26172, 39588, 29664, 26666, 34523, 26417, 29482, 10530 35832, 35803, 36880, [12149, 31481], 28891, 29038, 25284, 30633, 22065, 10531 20027, 33879, 26609, 21161, 34496, 36142, 38136, 31569, 20303, 27880, 10532 31069, 39547, 25235, [12118, 29226], 25341, 19987, 30742, 36716, 25776, 10533 36186, 31686, 26729, 24196, 35013, 22918, 25758, 22766, 29366, 26894, 10534 38181, 36861, 36184, 22368, 32512, 35846, 20934, 25417, 25305, 21331, 10535 26700, 29730, 33537, 37196, 21828, 30528, 28796, 27978, 20857, 21672, 10536 36164, 23039, 28363, 28100, 23388, 32043, 20180, 31869, 28371, 10537 [12070, 23376], [12163, 33258], 28173, 23383, 39683, 26837, 36394, 23447, 10538 32508, 24635, 32437, 37049, [12187, 36208], 22863, 25549, 31199, 10539 [12188, 36275], 21330, 26063, 31062, 35781, 38459, 32452, 38075, 32386, 10540 22068, 37257, 26368, 32618, 23562, 36981, 26152, 24038, 20304, 26590, 10541 20570, 20316, 22352, 24231, 20109, 19980, 20800, 19984, 24319, 21317, 10542 19989, 20120, 19998, [12224, 39730], 23404, 22121, [12033, 20008], 31162, 10543 [12035, 20031], [12052, 21269], 20039, 22829, [12120, 29243], 21358, 27664, 10544 22239, 32996, 39319, 27603, 30590, 40727, [12034, 20022], 20127, 40720, 10545 20060, 20073, 20115, 33416, 23387, 21868, 22031, 20164, 21389, 21405, 10546 21411, 21413, 21422, 38757, 36189, [12053, 21274], 21493, 21286, 21294, 10547 21310, 36188, 21350, 21347, 20994, 21000, 21006, 21037, 21043, 10548 {f: 2, c: 21055}, 21068, 21086, 21089, 21084, 33967, 21117, 21122, 21121, 10549 21136, 21139, [12044, 20866], 32596, 20155, 20163, 20169, 20162, 20200, 10550 20193, 20203, 20190, 20251, 20211, 20258, 20324, 20213, 20261, 20263, 10551 20233, 20267, 20318, 20327, 25912, 20314, 20317, 20319, 20311, 20274, 10552 20285, 20342, 20340, 20369, 20361, 20355, 20367, 20350, 20347, 20394, 10553 20348, 20396, 20372, 20454, 20456, 20458, 20421, 20442, 20451, 20444, 10554 20433, 20447, 20472, 20521, 20556, 20467, 20524, 20495, 20526, 20525, 10555 20478, 20508, 20492, 20517, 20520, 20606, 20547, 20565, 20552, 20558, 10556 20588, 20603, 20645, 20647, 20649, 20666, 20694, 20742, 20717, 20716, 10557 20710, 20718, 20743, 20747, 20189, 27709, 20312, 20325, 20430, 10558 [12245, 40864], 27718, 31860, 20846, 24061, 40649, 39320, 20865, 22804, 10559 [12051, 21241], 21261, 35335, 21264, 20971, 22809, 20821, [12039, 20128], 10560 20822, 20147, 34926, 34980, 20149, 33044, 35026, 31104, 23348, 34819, 10561 32696, [12046, 20907], 20913, 20925, 20924, 20935, [12045, 20886], 20898, 10562 20901, 35744, {f: 2, c: 35750}, 35754, {f: 2, c: 35764}, 35767, 10563 {f: 2, c: 35778}, 35787, 35791, 35790, {f: 3, c: 35794}, 35798, 10564 {f: 2, c: 35800}, 35804, {f: 2, c: 35807}, 35812, {f: 2, c: 35816}, 35822, 10565 35824, 35827, 35830, 35833, 35836, {f: 2, c: 35839}, 35842, 35844, 35847, 10566 35852, 35855, {f: 2, c: 35857}, {f: 3, c: 35860}, 35865, 35867, 35864, 10567 35869, {f: 3, c: 35871}, 35877, 35879, {f: 2, c: 35882}, {f: 2, c: 35886}, 10568 {f: 2, c: 35890}, {f: 2, c: 35893}, [12057, 21353], 21370, 38429, 38434, 10569 38433, 38449, 38442, 38461, 38460, 38466, 38473, 38484, 38495, 38503, 10570 38508, 38514, 38516, 38536, 38541, 38551, 38576, 37015, 37019, 37021, 10571 37017, 37036, 37025, 37044, 37043, 37046, 37050, 37048, 37040, 37071, 10572 37061, 37054, 37072, 37060, 37063, 37075, 37094, 37090, 37084, 37079, 10573 37083, 37099, 37103, 37118, 37124, 37154, 37150, 37155, 37169, 37167, 10574 37177, 37187, 37190, 21005, 22850, 21154, {f: 2, c: 21164}, 21182, 21759, 10575 21200, 21206, 21232, 21471, 29166, 30669, [12085, 24308], [12048, 20981], 10576 20988, [12223, 39727], [12059, 21430], 24321, 30042, 24047, 22348, 22441, 10577 22433, 22654, 22716, 22725, 22737, 22313, 22316, 22314, 22323, 22329, 10578 {f: 2, c: 22318}, 22364, 22331, 22338, 22377, 22405, 22379, 22406, 22396, 10579 22395, 22376, 22381, 22390, 22387, 22445, 22436, 22412, 22450, 22479, 10580 22439, 22452, 22419, 22432, 22485, 22488, 22490, 22489, 22482, 22456, 10581 22516, 22511, 22520, 22500, 22493, 22539, 22541, 22525, 22509, 22528, 10582 22558, 22553, 22596, 22560, 22629, 22636, 22657, 22665, 22682, 22656, 10583 39336, 40729, 25087, 33401, 33405, 33407, 33423, 33418, 33448, 33412, 10584 33422, 33425, 33431, 33433, 33451, 33464, 33470, 33456, 33480, 33482, 10585 33507, 33432, 33463, 33454, {f: 2, c: 33483}, 33473, 33449, 33460, 33441, 10586 33450, 33439, 33476, 33486, 33444, 33505, 33545, 33527, 33508, 33551, 10587 33543, 33500, 33524, 33490, 33496, 33548, 33531, 33491, 33553, 33562, 10588 33542, {f: 2, c: 33556}, 33504, 33493, 33564, 33617, {f: 2, c: 33627}, 10589 33544, 33682, 33596, 33588, 33585, 33691, 33630, 33583, 33615, 33607, 10590 33603, 33631, 33600, 33559, 33632, 33581, 33594, 33587, 33638, 33637, 10591 33640, 33563, 33641, 33644, 33642, {f: 2, c: 33645}, 33712, 33656, 10592 {f: 2, c: 33715}, 33696, 33706, 33683, 33692, 33669, 33660, 33718, 33705, 10593 33661, 33720, 33659, 33688, 33694, 33704, 33722, 33724, 33729, 33793, 10594 33765, 33752, 22535, 33816, 33803, 33757, 33789, 33750, 33820, 33848, 10595 33809, 33798, 33748, 33759, 33807, 33795, {f: 2, c: 33784}, 33770, 33733, 10596 33728, 33830, 33776, 33761, 33884, 33873, 33882, 33881, 33907, 10597 {f: 2, c: 33927}, 33914, 33929, 33912, 33852, 33862, 33897, 33910, 33932, 10598 33934, 33841, 33901, 33985, 33997, 34000, 34022, 33981, 34003, 33994, 10599 33983, 33978, 34016, 33953, 33977, 33972, 33943, 34021, 34019, 34060, 10600 29965, 34104, 34032, 34105, 34079, 34106, 34134, 34107, 34047, 34044, 10601 34137, 34120, 34152, 34148, 34142, 34170, 30626, 34115, 34162, 34171, 10602 34212, 34216, 34183, 34191, 34169, 34222, 34204, 34181, 34233, 34231, 10603 34224, 34259, 34241, 34268, 34303, 34343, 34309, 34345, 34326, 34364, 10604 [12086, 24318], 24328, 22844, 22849, 32823, 22869, 22874, 22872, 21263, 10605 [12074, 23586], 23589, 23596, 23604, 25164, 25194, 25247, 25275, 25290, 10606 25306, 25303, 25326, 25378, 25334, 25401, 25419, 25411, 25517, 25590, 10607 25457, 25466, 25486, 25524, 25453, 25516, 25482, 25449, 25518, 25532, 10608 25586, 25592, 25568, 25599, 25540, 25566, 25550, 25682, 25542, 25534, 10609 25669, 25665, 25611, 25627, 25632, 25612, 25638, 25633, 25694, 25732, 10610 25709, 25750, 25722, {f: 2, c: 25783}, 25753, 25786, 25792, 25808, 25815, 10611 25828, 25826, 25865, 25893, 25902, [12087, 24331], 24530, 29977, 24337, 10612 21343, 21489, 21501, 21481, 21480, 21499, 21522, 21526, 21510, 21579, 10613 {f: 3, c: 21586}, 21590, 21571, 21537, 21591, 21593, 21539, 21554, 21634, 10614 21652, 21623, 21617, 21604, {f: 2, c: 21658}, 21636, 21622, 21606, 21661, 10615 21712, 21677, 21698, 21684, 21714, 21671, 21670, {f: 2, c: 21715}, 21618, 10616 21667, 21717, 21691, 21695, 21708, {f: 2, c: 21721}, 21724, 10617 {f: 2, c: 21673}, 21668, 21725, 21711, 21726, 21787, 21735, 21792, 21757, 10618 21780, 21747, {f: 2, c: 21794}, 21775, 21777, 21799, 21802, 21863, 21903, 10619 21941, 21833, 21869, 21825, 21845, 21823, 21840, 21820, 21815, 21846, 10620 {f: 3, c: 21877}, 21811, 21808, 21852, 21899, 21970, 21891, 21937, 21945, 10621 21896, 21889, 21919, 21886, 21974, 21905, 21883, 21983, {f: 2, c: 21949}, 10622 21908, 21913, 21994, 22007, 21961, 22047, 21969, {f: 2, c: 21995}, 21972, 10623 21990, 21981, 21956, 21999, 21989, {f: 2, c: 22002}, {f: 2, c: 21964}, 10624 21992, 22005, 21988, 36756, 22046, 22024, 22028, 22017, 22052, 22051, 10625 22014, 22016, 22055, 22061, 22104, 22073, 22103, 22060, 22093, 22114, 10626 22105, 22108, 22092, 22100, 22150, 22116, 22129, 22123, {f: 2, c: 22139}, 10627 22149, 22163, 22191, 22228, [12062, 22231], 22237, 22241, 22261, 22251, 10628 22265, 22271, 22276, 22282, 22281, 22300, 24079, 24089, 24084, 24081, 10629 24113, {f: 2, c: 24123}, 24119, 24132, 24148, 24155, 24158, 24161, 23692, 10630 23674, 23693, 23696, 23702, 23688, {f: 2, c: 23704}, 23697, 23706, 23708, 10631 23733, 23714, 23741, 23724, 23723, 23729, 23715, 23745, 23735, 23748, 10632 23762, 23780, 23755, 23781, {f: 2, c: 23810}, 23847, 23846, 23854, 23844, 10633 23838, 23814, 23835, 23896, 23870, 23860, 23869, 23916, 23899, 23919, 10634 23901, 23915, 23883, 23882, 23913, 23924, 23938, 23961, 23965, 35955, 10635 23991, 24005, [12091, 24435], 24439, 24450, 24455, 24457, 24460, 24469, 10636 24473, 24476, 24488, 24493, 24501, 24508, 34914, [12090, 24417], 29357, 10637 29360, 29364, {f: 2, c: 29367}, 29379, 29377, 29390, 29389, 29394, 29416, 10638 29423, 29417, 29426, 29428, 29431, 29441, 29427, 29443, {f: 2, c: 29434}, 10639 29463, 29459, 29473, 29450, 29470, 29469, 29461, 29474, 29497, 29477, 10640 29484, 29496, 29489, 29520, 29517, 29527, 29536, 29548, 29551, 29566, 10641 [12167, 33307], 22821, 39143, 22820, [12065, 22786], 39267, 10642 {f: 6, c: 39271}, 39284, 39287, 39293, 39296, 39300, 39303, 39306, 39309, 10643 {f: 2, c: 39312}, {f: 3, c: 39315}, 24192, 24209, 24203, 24214, 24229, 10644 24224, 24249, 24245, 24254, 24243, 36179, 24274, 24273, 24283, 24296, 10645 24298, 33210, 24516, 24521, 24534, 24527, 24579, 24558, 24580, 24545, 10646 24548, 24574, {f: 2, c: 24581}, 24554, 24557, 24568, 24601, 24629, 24614, 10647 24603, 24591, 24589, 24617, 24619, 24586, 24639, 24609, {f: 2, c: 24696}, 10648 24699, 24698, 24642, 24682, 24701, 24726, 24730, 24749, 24733, 24707, 10649 24722, 24716, 24731, 24812, 24763, 24753, 24797, 24792, 24774, 24794, 10650 24756, 24864, 24870, 24853, 24867, 24820, 24832, 24846, 24875, 24906, 10651 24949, 25004, 24980, 24999, 25015, 25044, 25077, 24541, 38579, 38377, 10652 38379, 38385, 38387, {f: 2, c: 38389}, 38396, 38398, {f: 2, c: 38403}, 10653 38406, 38408, {f: 4, c: 38410}, 38415, 38418, {f: 3, c: 38421}, 10654 {f: 2, c: 38425}, 20012, [12121, 29247], 25109, 27701, 27732, 27740, 27722, 10655 27811, 27781, 27792, 27796, 27788, {f: 2, c: 27752}, 27764, 27766, 27782, 10656 27817, 27856, 27860, 27821, {f: 2, c: 27895}, 27889, 27863, 27826, 27872, 10657 27862, 27898, 27883, 27886, 27825, 27859, 27887, 27902, 27961, 27943, 10658 27916, 27971, 27976, 27911, 27908, 27929, 27918, 27947, 27981, 27950, 10659 27957, 27930, 27983, 27986, 27988, 27955, 28049, 28015, 28062, 28064, 10660 27998, {f: 2, c: 28051}, 27996, 28000, 28028, 28003, 28186, 28103, 28101, 10661 28126, 28174, 28095, 28128, 28177, 28134, 28125, 28121, 28182, 28075, 10662 28172, 28078, 28203, 28270, 28238, 28267, 28338, 28255, 28294, 10663 {f: 2, c: 28243}, 28210, 28197, 28228, 28383, 28337, 28312, 28384, 28461, 10664 28386, 28325, 28327, 28349, 28347, 28343, 28375, 28340, 28367, 28303, 10665 28354, 28319, 28514, {f: 2, c: 28486}, 28452, 28437, 28409, 28463, 28470, 10666 28491, 28532, 28458, 28425, 28457, 28553, 28557, 28556, 28536, 28530, 10667 28540, 28538, 28625, 28617, 28583, 28601, 28598, 28610, 28641, 28654, 10668 28638, 28640, 28655, 28698, 28707, 28699, 28729, 28725, 28751, 28766, 10669 [12071, 23424], 23428, 23445, 23443, 23461, 23480, 29999, 39582, 25652, 10670 23524, 23534, 35120, 23536, 36423, 35591, 36790, 36819, 36821, 36837, 10671 36846, 36836, 36841, 36838, 36851, 36840, 36869, 36868, 36875, 36902, 10672 36881, 36877, 36886, 36897, {f: 2, c: 36917}, 36909, 36911, 36932, 10673 {f: 2, c: 36945}, 36944, 36968, 36952, 36962, 36955, 26297, 36980, 36989, 10674 36994, 37000, 36995, 37003, [12089, 24400], 24407, 24406, 24408, 23611, 10675 21675, 23632, 23641, 23409, 23651, 23654, 32700, 24362, 24361, 24365, 10676 33396, 24380, 39739, [12076, 23662], 22913, 22915, 22925, {f: 2, c: 22953}, 10677 22947, 22935, 22986, 22955, 22942, 22948, 22994, 22962, 22959, 22999, 10678 22974, {f: 2, c: 23045}, 23005, 23048, 23011, 23000, 23033, 23052, 23049, 10679 23090, 23092, 23057, 23075, 23059, 23104, 23143, 23114, 23125, 23100, 10680 23138, 23157, 33004, 23210, 23195, 23159, 23162, 23230, 23275, 23218, 10681 23250, 23252, 23224, 23264, 23267, 23281, 23254, 23270, 23256, 23260, 10682 23305, 23319, 23318, 23346, 23351, 23360, 23573, 23580, 23386, 23397, 10683 23411, 23377, 23379, 23394, 39541, {f: 2, c: 39543}, 39546, 39551, 39549, 10684 {f: 2, c: 39552}, 39557, 39560, 39562, 39568, {f: 2, c: 39570}, 39574, 10685 39576, {f: 3, c: 39579}, {f: 2, c: 39583}, {f: 2, c: 39586}, 39589, 39591, 10686 32415, 32417, 32419, 32421, {f: 2, c: 32424}, 32429, 32432, 32446, 10687 {f: 3, c: 32448}, 32457, {f: 2, c: 32459}, 32464, 32468, 32471, 32475, 10688 {f: 2, c: 32480}, 32488, 32491, {f: 2, c: 32494}, {f: 2, c: 32497}, 32525, 10689 32502, {f: 2, c: 32506}, 32510, {f: 3, c: 32513}, {f: 2, c: 32519}, 10690 {f: 2, c: 32523}, 32527, {f: 2, c: 32529}, 32535, 32537, 32540, 32539, 10691 32543, {f: 7, c: 32545}, {f: 4, c: 32554}, {f: 5, c: 32559}, 32565, 10692 [12083, 24186], 30079, [12078, 24027], 30014, 37013, 29582, 29585, 29614, 10693 29602, 29599, 29647, 29634, 29649, 29623, 29619, 29632, 29641, 29640, 10694 29669, 29657, 39036, 29706, 29673, 29671, 29662, 29626, 29682, 29711, 10695 29738, 29787, 29734, 29733, 29736, 29744, 29742, 29740, 29723, 29722, 10696 29761, 29788, 29783, 29781, 29785, 29815, 29805, 29822, 29852, 29838, 10697 {f: 2, c: 29824}, 29831, 29835, 29854, {f: 2, c: 29864}, 29840, 29863, 10698 29906, 29882, {f: 3, c: 38890}, 26444, 26451, 26462, 26440, 26473, 26533, 10699 26503, 26474, 26483, 26520, 26535, 26485, 26536, 26526, 26541, 26507, 10700 26487, 26492, 26608, 26633, 26584, 26634, 26601, 26544, 26636, 26585, 10701 26549, 26586, 26547, 26589, 26624, 26563, 26552, 26594, 26638, 26561, 10702 26621, {f: 2, c: 26674}, {f: 2, c: 26720}, 26702, 26722, 26692, 26724, 10703 26755, 26653, 26709, 26726, 26689, 26727, 26688, 26686, 26698, 26697, 10704 26665, 26805, 26767, 26740, 26743, 26771, 26731, 26818, 26990, 26876, 10705 {f: 2, c: 26911}, 26873, 26916, 26864, 26891, 26881, 26967, 26851, 26896, 10706 26993, 26937, 26976, 26946, 26973, 27012, 26987, 27008, 27032, 27000, 10707 26932, 27084, {f: 2, c: 27015}, 27086, 27017, 26982, 26979, 27001, 27035, 10708 27047, 27067, 27051, 27053, 27092, 27057, 27073, 27082, 27103, 27029, 10709 27104, 27021, 27135, 27183, 27117, {f: 2, c: 27159}, 27237, 27122, 27204, 10710 27198, 27296, 27216, 27227, 27189, 27278, 27257, 27197, 27176, 27224, 10711 27260, 27281, 27280, 27305, 27287, 27307, 29495, 29522, {f: 2, c: 27521}, 10712 27527, 27524, {f: 2, c: 27538}, 27533, {f: 2, c: 27546}, 27553, 27562, 10713 36715, 36717, {f: 3, c: 36721}, {f: 2, c: 36725}, 36728, 36727, 10714 {f: 2, c: 36729}, 36732, 36734, {f: 2, c: 36737}, 36740, 36743, 36747, 10715 {f: 3, c: 36749}, 36760, 36762, 36558, 25099, 25111, 25115, 25119, 25122, 10716 25121, 25125, 25124, 25132, 33255, 29935, 29940, 29951, 29967, 29969, 10717 29971, [12097, 25908], {f: 3, c: 26094}, 26122, 26137, 26482, 26115, 26133, 10718 26112, 28805, 26359, 26141, 26164, 26161, 26166, 26165, 32774, 26207, 10719 26196, 26177, 26191, 26198, 26209, 26199, 26231, 26244, 26252, 26279, 10720 26269, 26302, {f: 2, c: 26331}, 26342, 26345, {f: 2, c: 36146}, 36150, 10721 36155, 36157, 36160, {f: 2, c: 36165}, {f: 2, c: 36168}, 36167, 36173, 10722 36181, 36185, 35271, {f: 3, c: 35274}, {f: 4, c: 35278}, 29294, 29343, 10723 29277, 29286, 29295, {f: 2, c: 29310}, 29316, 29323, 29325, 29327, 29330, 10724 25352, 25394, 25520, 25663, 25816, 32772, 27626, 27635, 27645, 27637, 10725 27641, 27653, 27655, 27654, 27661, 27669, {f: 3, c: 27672}, 27681, 27689, 10726 27684, 27690, 27698, 25909, 25941, 25963, 29261, 29266, 29270, 29232, 10727 34402, 21014, 32927, 32924, 32915, 32956, 26378, 32957, 32945, 32939, 10728 32941, 32948, 32951, {f: 4, c: 32999}, 32987, 32962, 32964, 32985, 32973, 10729 32983, 26384, 32989, 33003, 33009, 33012, 33005, {f: 2, c: 33037}, 33010, 10730 33020, 26389, 33042, 35930, 33078, 33054, 33068, 33048, 33074, 33096, 10731 33100, 33107, 33140, {f: 2, c: 33113}, 33137, 33120, 33129, 10732 {f: 2, c: 33148}, 33133, 33127, 22605, 23221, 33160, 33154, 33169, 28373, 10733 33187, 33194, 33228, 26406, 33226, 33211, 33217, 33190, 27428, 27447, 10734 27449, 27459, 27462, 27481, {f: 3, c: 39121}, 39125, {f: 2, c: 39129}, 10735 [12110, 27571], 24384, 27586, 35315, 26000, 40785, 26003, 26044, 26054, 10736 26052, 26051, 26060, 26062, 26066, 26070, 28800, 28828, 28822, 28829, 10737 28859, 28864, 28855, 28843, 28849, 28904, 28874, 28944, 28947, 28950, 10738 28975, 28977, 29043, 29020, 29032, 28997, 29042, 29002, 29048, 29050, 10739 29080, 29107, 29109, 29096, 29088, 29152, 29140, 29159, 29177, 29213, 10740 29224, 28780, 28952, 29030, 29113, 25150, 25149, 25155, {f: 2, c: 25160}, 10741 31035, 31040, 31046, 31049, {f: 2, c: 31067}, 31059, 31066, 31074, 31063, 10742 31072, 31087, 31079, 31098, 31109, 31114, 31130, 31143, 31155, 24529, 10743 24528, 24636, 24669, 24666, 24679, 24641, 24665, 24675, 24747, 24838, 10744 24845, 24925, 25001, 24989, 25035, 25041, 25094, 32896, [12160, 32895], 10745 27795, 27894, 28156, 30710, 30712, 30720, 30729, {f: 2, c: 30743}, 30737, 10746 26027, 30765, {f: 2, c: 30748}, {f: 3, c: 30777}, 30751, 30780, 30757, 10747 30764, 30755, 30761, 30798, 30829, {f: 2, c: 30806}, 30758, 30800, 30791, 10748 30796, 30826, 30875, 30867, 30874, 30855, 30876, 30881, 30883, 30898, 10749 30905, 30885, 30932, 30937, 30921, 30956, 30962, 30981, 30964, 30995, 10750 31012, 31006, 31028, 40859, [12235, 40697], {f: 2, c: 40699}, 30449, 30468, 10751 30477, 30457, {f: 2, c: 30471}, 30490, 30498, 30489, 30509, 30502, 30517, 10752 30520, {f: 2, c: 30544}, 30535, 30531, 30554, 30568, 30562, 30565, 30591, 10753 30605, 30589, 30592, 30604, 30609, {f: 2, c: 30623}, 30640, 30645, 30653, 10754 30010, 30016, 30030, 30027, 30024, 30043, 30066, 30073, 30083, 32600, 10755 32609, 32607, 35400, 32616, 32628, 32625, 32633, 32641, 32638, 30413, 10756 30437, 34866, {f: 3, c: 38021}, 38027, 38026, {f: 2, c: 38028}, 10757 {f: 2, c: 38031}, 38036, 38039, 38037, {f: 3, c: 38042}, {f: 2, c: 38051}, 10758 38059, 38058, 38061, 38060, {f: 2, c: 38063}, 38066, 38068, 10759 {f: 5, c: 38070}, {f: 2, c: 38076}, 38079, 38084, {f: 7, c: 38088}, 10760 {f: 3, c: 38096}, {f: 3, c: 38101}, 38105, 38104, 38107, {f: 3, c: 38110}, 10761 38114, {f: 2, c: 38116}, {f: 2, c: 38119}, 38122, 38121, 38123, 10762 {f: 2, c: 38126}, {f: 3, c: 38131}, 38135, 38137, {f: 2, c: 38140}, 38143, 10763 38147, 38146, {f: 2, c: 38150}, {f: 2, c: 38153}, {f: 3, c: 38157}, 10764 {f: 5, c: 38162}, 38168, 38171, {f: 3, c: 38173}, 38178, {f: 2, c: 38186}, 10765 38185, 38188, {f: 2, c: 38193}, 38196, {f: 3, c: 38198}, 38204, 10766 {f: 2, c: 38206}, 38210, 38197, {f: 3, c: 38212}, 38217, 38220, 10767 {f: 2, c: 38222}, {f: 3, c: 38226}, {f: 4, c: 38230}, 38235, 10768 {f: 2, c: 38238}, 38237, {f: 2, c: 38241}, {f: 9, c: 38244}, 38255, 10769 {f: 3, c: 38257}, 38202, 30695, 30700, 38601, 31189, 31213, 31203, 31211, 10770 31238, 23879, 31235, 31234, 31262, 31252, 31289, 31287, 31313, 40655, 10771 39333, 31344, 30344, 30350, 30355, 30361, 30372, 29918, 29920, 29996, 10772 40480, 40482, {f: 5, c: 40488}, 40498, 40497, 40502, 40504, 40503, 10773 {f: 2, c: 40505}, 40510, {f: 2, c: 40513}, 40516, {f: 4, c: 40518}, 10774 {f: 2, c: 40523}, 40526, 40529, 40533, 40535, {f: 3, c: 40538}, 40542, 10775 40547, {f: 7, c: 40550}, 40561, 40557, 40563, [12135, 30098], 30100, 30102, 10776 30112, 30109, 30124, 30115, {f: 2, c: 30131}, 30136, 30148, 30129, 30128, 10777 30147, 30146, 30166, 30157, 30179, 30184, 30182, 30180, 30187, 30183, 10778 30211, 30193, 30204, 30207, 30224, 30208, 30213, 30220, 30231, 30218, 10779 30245, 30232, 30229, 30233, 30235, 30268, 30242, 30240, 30272, 30253, 10780 30256, 30271, 30261, 30275, 30270, 30259, 30285, 30302, 30292, 30300, 10781 30294, 30315, 30319, 32714, 31462, {f: 2, c: 31352}, 31360, 31366, 31368, 10782 31381, 31398, 31392, 31404, 31400, 31405, 31411, 34916, 34921, 34930, 10783 34941, 34943, 34946, 34978, 35014, 34999, 35004, 35017, 35042, 35022, 10784 35043, 35045, 35057, 35098, 35068, 35048, 35070, 35056, 35105, 35097, 10785 35091, 35099, 35082, 35124, 35115, 35126, 35137, 35174, 35195, 10786 [12134, 30091], 32997, 30386, 30388, 30684, [12158, 32786], 32788, 32790, 10787 32796, 32800, 32802, {f: 3, c: 32805}, 32809, 32808, 32817, 32779, 32821, 10788 32835, 32838, 32845, 32850, 32873, 32881, 35203, 39032, 39040, 39043, 10789 39049, {f: 2, c: 39052}, 39055, 39060, {f: 2, c: 39066}, {f: 2, c: 39070}, 10790 {f: 2, c: 39073}, {f: 2, c: 39077}, [12172, 34381], 34388, 34412, 34414, 10791 34431, 34426, 34428, 34427, 34472, 34445, 34443, 34476, 34461, 34471, 10792 34467, 34474, 34451, 34473, 34486, 34500, 34485, 34510, 34480, 34490, 10793 34481, 34479, 34505, 34511, 34484, 34537, {f: 2, c: 34545}, 34541, 34547, 10794 34512, 34579, 34526, 34548, 34527, 34520, 34513, 34563, 34567, 34552, 10795 34568, 34570, 34573, 34569, 34595, 34619, 34590, 34597, 34606, 34586, 10796 34622, 34632, 34612, 34609, 34601, 34615, 34623, 34690, 34594, 10797 {f: 2, c: 34685}, 34683, 34656, 34672, 34636, 34670, 34699, 34643, 34659, 10798 34684, 34660, 34649, 34661, 34707, 34735, 34728, 34770, 34758, 34696, 10799 34693, 34733, 34711, 34691, 34731, 34789, 34732, 34741, 34739, 34763, 10800 34771, 34749, 34769, 34752, 34762, 34779, 34794, 34784, 34798, 34838, 10801 34835, 34814, 34826, 34843, 34849, 34873, 34876, [12152, 32566], 32578, 10802 {f: 2, c: 32580}, 33296, 31482, 31485, 31496, {f: 2, c: 31491}, 31509, 10803 31498, 31531, 31503, 31559, 31544, 31530, 31513, 31534, 31537, 31520, 10804 31525, 31524, 31539, 31550, 31518, 31576, 31578, 31557, 31605, 31564, 10805 31581, 31584, 31598, 31611, 31586, 31602, 31601, 31632, {f: 2, c: 31654}, 10806 31672, 31660, 31645, 31656, 31621, 31658, 31644, 31650, 31659, 31668, 10807 31697, 31681, 31692, 31709, 31706, {f: 2, c: 31717}, 31722, 31756, 31742, 10808 31740, 31759, 31766, 31755, 31775, 31786, 31782, 31800, 31809, 31808, 10809 33278, {f: 2, c: 33281}, 33284, 33260, 34884, {f: 3, c: 33313}, 33325, 10810 33327, 33320, 33323, 33336, 33339, {f: 2, c: 33331}, 33342, 33348, 33353, 10811 33355, 33359, 33370, 33375, 33384, 34942, 34949, 34952, 35032, 35039, 10812 35166, 32669, 32671, 32679, {f: 2, c: 32687}, 32690, 31868, 25929, 31889, 10813 31901, 31900, 31902, 31906, 31922, {f: 2, c: 31932}, 31937, 31943, 10814 {f: 2, c: 31948}, 31944, 31941, 31959, 31976, [12169, 33390], 26280, 32703, 10815 32718, 32725, 32741, 32737, 32742, 32745, 32750, 32755, [12151, 31992], 10816 32119, 32166, 32174, 32327, 32411, 40632, 40628, 36211, 36228, 36244, 10817 36241, 36273, 36199, 36205, 35911, 35913, 37194, 37200, {f: 2, c: 37198}, 10818 37220, 37218, 37217, 37232, 37225, 37231, {f: 2, c: 37245}, 37234, 37236, 10819 37241, 37260, 37253, 37264, 37261, 37265, {f: 2, c: 37282}, 37290, 10820 {f: 3, c: 37293}, 37301, 37300, 37306, [12183, 35925], 40574, 36280, 36331, 10821 36357, 36441, 36457, 36277, 36287, 36284, 36282, 36292, {f: 2, c: 36310}, 10822 36314, 36318, {f: 2, c: 36302}, 36315, 36294, 36332, {f: 2, c: 36343}, 10823 36323, 36345, 36347, 36324, 36361, 36349, 36372, 36381, 36383, 36396, 10824 36398, 36387, 36399, 36410, 36416, 36409, 36405, 36413, 36401, 36425, 10825 {f: 2, c: 36417}, {f: 2, c: 36433}, 36426, 36464, 36470, 36476, 36463, 10826 36468, 36485, 36495, 36500, 36496, 36508, 36510, [12184, 35960], 35970, 10827 35978, 35973, 35992, 35988, 26011, 35286, 35294, 35290, 35292, 35301, 10828 35307, 35311, 35390, 35622, 38739, 38633, 38643, 38639, 38662, 38657, 10829 38664, 38671, 38670, 38698, 38701, 38704, 38718, 40832, 40835, 10830 {f: 6, c: 40837}, 40844, 40702, 40715, 40717, [12203, 38585], 10831 {f: 2, c: 38588}, 38606, 38610, 30655, 38624, 37518, 37550, 37576, 37694, 10832 37738, 37834, 37775, 37950, 37995, 40063, 40066, {f: 4, c: 40069}, 31267, 10833 40075, 40078, {f: 3, c: 40080}, {f: 2, c: 40084}, {f: 2, c: 40090}, 10834 {f: 6, c: 40094}, {f: 5, c: 40101}, 40107, {f: 2, c: 40109}, 10835 {f: 8, c: 40112}, {f: 4, c: 40122}, {f: 4, c: 40132}, {f: 7, c: 40138}, 10836 {f: 3, c: 40147}, {f: 3, c: 40151}, {f: 2, c: 40156}, 40159, 40162, 38780, 10837 38789, {f: 2, c: 38801}, 38804, 38831, 38827, 38819, 38834, 38836, 39601, 10838 39600, 39607, 40536, 39606, 39610, 39612, 39617, 39616, 39621, 39618, 10839 {f: 2, c: 39627}, 39633, 39749, 39747, 39751, 39753, 39752, 39757, 39761, 10840 39144, 39181, 39214, 39253, 39252, [12221, 39647], 39649, 39654, 39663, 10841 39659, 39675, 39661, 39673, 39688, 39695, 39699, 39711, 39715, 10842 {f: 2, c: 40637}, 32315, 40578, {f: 2, c: 40583}, 40587, 40594, 37846, 10843 40605, 40607, {f: 3, c: 40667}, 40672, 40671, 40674, 40681, 40679, 40677, 10844 40682, 40687, 40738, 40748, 40751, 40761, 40759, {f: 2, c: 40765}, 40772, 10845 12295, {s: 13}, 30362, 34297, 31001, 24859, 39599, 35158, 22761, 32631, 10846 25850, 25943, 38930, 36774, 32070, 24171, 32129, 37770, 35607, 39165, 10847 23542, 22577, 39825, 36649, [12185, 35997], 37575, 29437, 20633, 24970, 10848 32179, 31558, 30050, 25987, 24163, 38281, 37002, 32232, 36022, 35722, 10849 36783, 36782, 27161, 40009, 30303, 28693, 28657, 36051, 25839, 39173, 10850 25765, 37474, 37457, 39361, 35036, 36001, 21443, 34870, 27544, 24922, 10851 24920, 29158, 33980, 33369, 20489, 28356, 21408, 20596, 28204, 23652, 10852 35435, 25881, 25723, 34796, 39262, 35730, 32399, 37855, 29987, 38369, 10853 39019, 22580, 22039, [12199, 38263], 20767, 33144, 24288, 26274, 37396, 10854 [12190, 36554], 24505, 22645, 38515, 35183, 31281, 25074, 35488, 39425, 10855 36978, 39347, [12242, 40786], 29118, 34909, 34802, 23541, 30087, 36490, 10856 31820, 32162, 37276, 37604, 38619, 30990, 20786, 35320, 34389, 20659, 10857 30241, 38358, 21109, 37656, 32020, 32189, 36781, 35422, 36060, 32880, 10858 24478, 21474, 36517, 31428, 37679, 36948, 24118, 36024, 25812, 21934, 10859 37170, 25763, 33213, 24986, 35477, 24392, 30070, 25803, 40680, 34153, 10860 27284, 25623, 23798, 31153, 23566, 29128, 37159, 25973, 28364, 36958, 10861 32224, 39003, 40670, 22666, 38651, 28593, 37347, 35519, 35548, 37336, 10862 38914, 37664, 35330, 26481, 21205, 26847, 20941, [12222, 39717], 29346, 10863 29544, 35712, 36077, 37709, 37723, 26039, 32222, 38538, 23565, 22136, 10864 38931, 37389, 22890, 22702, 40285, 38989, 35355, 24801, 39187, 20818, 10865 29246, 39180, 36019, 30332, 32624, 38309, 31020, 37353, 29033, 31684, 10866 36009, 39151, 35370, 32033, [12214, 39131], 35513, 24290, 36027, 32027, 10867 22707, 22894, 24996, 31966, 35920, 26963, 37586, [12213, 39080], 30219, 10868 39342, 32299, 35575, 40179, 33178, 36667, 25771, 36628, 36070, 24489, 10869 36000, 35331, 23142, 32283, 35442, 37411, 33995, 24185, 36245, 36123, 10870 23713, 21083, 37628, 32177, 23831, 37804, 25841, 40255, 38307, 37499, 10871 20491, 32102, 40852, 38799, 36002, 37390, 28317, 27083, 36092, 34865, 10872 39015, 21102, 38364, 35264, 39208, 24931, 36011, 24291, 35215, 27512, 10873 [12244, 40860], 38312, 36556, 35437, 27331, 36020, 21130, 36645, 37707, 10874 22283, 36942, 39405, 38867, 28450, 34399, 38305, 40372, 36032, 36703, 10875 40251, 32005, 22778, 35703, 28396, 22057, 33775, 30059, 21123, 35441, 10876 25079, 22750, 27489, 29872, 36996, 32233, 35594, 25582, 36637, 36036, 10877 31330, 26371, 29172, 21295, 35569, 35496, 32362, 33911, 28222, 29554, 10878 36008, 31117, 25802, 27231, 31309, 39249, 35663, 40388, 32318, 32221, 10879 26997, 36655, 32026, 25824, 24190, 34186, 21137, 28639, 35336, 35352, 10880 38555, 32380, 32000, 22846, 33698, 38960, 36040, 37440, 20729, 39381, 10881 27570, 30435, 22533, 31627, 38291, 33393, 32216, 32365, 27298, 40572, 10882 25536, 25791, 31777, 20745, 34214, 27323, 37970, 36368, 36068, 10883 [12178, 35211], 37749, 33382, 21133, 39198, 28472, 28666, 28567, 23559, 10884 28479, 34083, 27123, 22892, 35611, 37292, 33184, 28550, 39509, 23308, 10885 25898, 37496, 30703, 20709, 39171, 32371, 32094, 36686, 36611, 38542, 10886 31680, 28500, 32080, 35489, 32202, 37670, 20677, 35641, 36914, 29180, 10887 30433, 21185, 33686, 39912, 39514, 32147, 38968, 37857, 24465, 30169, 10888 31478, 31998, 33290, 39378, 33289, 25818, 37624, 25084, 21127, 40273, 10889 32121, 35258, 35363, 32118, 37406, 36557, 39423, 38283, 20977, 38982, 10890 27579, 35506, 22718, 25031, 25715, 24235, 35122, 35463, 22602, 20744, 10891 23532, 31014, 26336, 34407, 24011, 31418, 39243, 28528, 25844, 38346, 10892 34847, 33240, 33802, 20358, 36084, 34253, 27396, 25876, 31811, 38348, 10893 34349, 28734, 35733, 25900, 35261, 25078, 32412, 29211, 28651, 25736, 10894 21214, 28551, 27138, 37939, 22744, 39006, 31852, 38626, 28757, 35023, 10895 39881, 31150, 40599, 21426, 21237, 31019, 27511, 28701, 38584, 20486, 10896 32879, 34030, 36899, 37934, 24976, 28451, 31806, 25986, 33225, 37832, 10897 25088, 29001, 32244, 31975, 20841, 36635, 35538, 30274, 36988, 37904, 10898 29557, 33256, 37168, 40023, 36035, 40801, 37428, 38728, 23994, 38936, 10899 39230, 21129, [12243, 40845], 32894, 22184, 31840, 22751, 25871, 38580, 10900 27155, 23105, 25695, 31757, 34310, 30439, 39025, 24300, 29200, 25796, 10901 28407, 34396, 39791, 36034, 37682, 38520, 39522, 37569, 23650, 32311, 10902 24942, 28670, 32209, 24018, 25891, 23423, 28772, 20098, 25476, 36650, 10903 20523, 20374, 28138, 32184, 35542, 34367, 32645, 37007, 38012, 31854, 10904 39486, 39409, 32097, 23229, 29802, 30908, 34718, [12218, 39340], 39393, 10905 21966, 36023, [12230, 40613], 36067, 36993, 30622, 39237, 34875, 28415, 10906 35646, 37672, 37466, 36031, 37762, [12200, 38272], 24758, 20497, 37683, 10907 22818, 35598, 24396, 35219, 32191, 32236, 24287, 28357, 25003, 38313, 10908 40180, 37528, 35628, 35584, 30045, 37385, 32013, 38627, 25747, 33126, 10909 24817, 39719, 39186, 25836, 33193, 25862, 37312, [12227, 40165], 32886, 10910 22169, 38007, 37811, 27320, 29552, 23527, 25840, 28632, 37397, 32016, 10911 33215, 28611, 36786, 30247, 35582, 27472, 40407, 27590, 22036, 28442, 10912 30436, 40848, 36064, 22132, 40300, 39449, 39108, 38971, 36007, 34315, 10913 24977, 35413, 28497, 38935, 25778, 37610, 20693, 27192, 35676, 33229, 10914 [12241, 40778], 39438, 35912, 21843, 27683, 35350, 29309, 37370, 37467, 10915 36983, 31805, 35609, 37666, 37463, 28154, 35700, 22649, 27085, 21958, 10916 22715, 34196, 25654, 37740, 27211, 21932, 20689, 32761, 31429, 31434, 10917 27453, 35242, 23522, 36629, 27691, 20670, 38915, 35531, 24950, 29898, 10918 31406, 36264, 21312, 36544, 39493, 40818, 39028, 27402, 21240, 40306, 10919 30906, 35731, 39250, 25854, 32350, 29105, 38860, 35469, 32009, 27054, 10920 32104, 36575, 37613, 38287, 28516, 28753, 34217, 39955, 36093, 20632, 10921 21930, 39479, 25475, 28544, 27578, 32023, 31721, 26348, 38275, 38493, 10922 36109, 32341, 20663, 36062, 29138, 32057, 36050, 25448, 25885, 25086, 10923 35373, 32051, 23529, 23352, 33102, 28402, 32882, 32361, 21213, 32854, 10924 24107, 29509, 28629, 35433, 26178, 34645, 23526, 35672, 39387, 21218, 10925 36969, 37323, 39166, 35222, 35430, 22781, 29560, 27166, 36664, 26360, 10926 36118, 23660, 34899, 27193, 31466, 25976, 24101, 38617, 35504, 38918, 10927 35500, 30889, 29197, 32114, 39164, 39686, 32883, 24939, 38924, 35359, 10928 35494, 25851, 34311, 35380, 32901, 38614, 38568, 32143, 27506, 23403, 10929 25613, 32302, 29795, 37782, 29562, 25787, 33274, 24907, 25892, 36010, 10930 30321, 28760, 22727, 35674, 35527, 22022, 28271, 29145, 28644, 32295, 10931 35342, 39472, 35588, 37563, 38988, 39636, 26781, 36028, 37941, 24307, 10932 32893, 28916, 37509, 32113, 38957, 22294, 22615, 22296, 38973, 40213, 10933 39345, 39389, 27234, 31402, 35178, 24398, 28771, 38929, 33836, 32178, 10934 [12209, 38859], 36949, 22285, 29234, 28656, 32173, 33894, 20553, 20702, 10935 32239, 35586, 34907, 32862, 32011, 31337, 21839, 25790, 34680, 28198, 10936 31401, 21978, 37794, 28879, 35491, 28961, 34154, 22626, 38695, 21209, 10937 35492, 37675, 29351, 35186, 32722, 37521, 25138, 32048, 34662, 36676, 10938 23805, 20448, 29433, 22151, 37697, 39854, 32406, 36066, 37532, 38289, 10939 39023, 38570, 29694, 29563, 32291, 39201, 25010, 32171, 38002, 37129, 10940 35443, 38911, 38917, 34157, 22210, 37559, 26313, 22063, 21332, 25406, 10941 33029, 35559, 23531, 28681, 35613, 37573, 37313, 33288, 37561, 32137, 10942 38920, 35377, 32210, 32396, 36562, 25080, 36984, 30316, 32098, 23416, 10943 21211, 35426, 23563, 39348, 35347, 35338, 36956, 22739, 40201, 40232, 10944 21854, 20126, 35357, 38329, 40573, 22196, 38996, 38331, 33399, 21421, 10945 30831, 35578, 39511, 40230, 26954, 25562, 30221, 38525, 30306, 39178, 10946 27171, 22575, 35617, 34277, 29242, [12212, 38913], 26989, 33865, 37291, 10947 37541, 38948, 36986, 20736, 34811, 34269, 20740, 25014, 32681, 35427, 10948 35696, 35516, 35695, 32377, 34093, 38512, 37504, 39154, 38577, 27387, 10949 23344, 40441, 25033, 32403, 29801, 34722, 29151, 29074, 34821, 36111, 10950 31310, 21938, 25793, 20653, 30320, 36404, 20778, 24962, 37109, 37438, 10951 29494, 35480, 36671, 39192, [12226, 39770], 28417, 33287, 23996, 35486, 10952 39729, 29508, 35709, 38928, 39341, 40219, 28149, 36677, 22290, 21729, 10953 22291, 32227, 36960, 39000, 32004, 36493, 38000, 38322, 38642, 37142, 10954 38549, 36939, 34292, 37270, 26248, 38620, 36617, 25890, 26283, 36106, 10955 36124, 33247, 38015, 26839, 31432, 36012, 25799, 21063, 28580, 36042, 10956 36104, 36555, 37720, 38296, 35408, 40779, 20661, 27656, 30430, 26028, 10957 36670, 23940, 26855, 25136, 32187, 24373, 28466, 24115, 36076, 33081, 10958 36249, 34756, 36685, 37754, 36889, 35998, 37341, 20597, 35386, 37806, 10959 38499, 24128, 30309, 37165, 35657, 32340, 32887, 22519, 34937, 32025, 10960 25711, 25842, 24159, 36074, 28399, 37912, 32066, 31278, 33131, 34886, 10961 35589, 36600, 30394, 26205, 39519, 35576, 35461, 29165, 30682, 22225, 10962 36015, 37956, 31689, 39376, 23560, 30938, 36681, 36090, 27137, 33674, 10963 35037, 22941, 22767, 29376, 37648, 36101, 22684, 32180, 35524, 28310, 10964 28609, 36039, 28460, 32156, 32317, 32305, 37138, 35419, 32068, 38013, 10965 21959, 21401, 21428, 38760, 36107, 21293, 21297, 36094, 21060, 21132, 10966 21108, 20660, 20480, 20630, 20757, 20738, 20756, 20796, 20791, 20712, 10967 20674, 20795, 20752, 20794, 20681, 31988, 40652, 22213, 40172, 35131, 10968 33248, 35329, 35344, 35340, 35349, 35635, 35406, 35365, 35393, 35382, 10969 35398, 35412, 35416, 35410, 35462, 35460, 35455, 35440, 35452, 35445, 10970 35436, 35438, 35533, 35554, 35425, 35482, 35493, {f: 2, c: 35473}, 35535, 10971 35537, 35529, 35547, 35543, 35522, 35510, 35574, 35563, 35604, 35585, 10972 35556, 35565, 35580, 35571, 35558, 35566, 35550, 35624, 35740, 35606, 10973 35610, 35600, 35627, 35629, 35670, 35673, 35662, 35742, 35691, 35734, 10974 38488, 37178, 37140, 37172, 37087, 37174, 37126, 37192, 33467, 21233, 10975 24048, 22538, 22745, 22754, 22752, 22746, 22497, 22607, 22550, 22610, 10976 22557, 22628, 34188, 34131, 34294, 33703, 33799, 34031, 33511, 34338, 10977 34086, 22603, 29026, 34136, 34045, 34126, 34184, 34234, 29334, 28366, 10978 34113, 34254, 34130, 33984, 33874, 33892, 33940, 33845, 34207, 34133, 10979 40367, 33939, 32264, 34118, 34146, 34078, 39488, 34362, 37795, 34167, 10980 34334, 34298, 34308, 34282, 34330, 22889, 23607, 25451, 25718, 25759, 10981 25681, 25692, 25779, 25860, 25878, 25847, 25852, 25883, 22064, 22072, 10982 22216, 22182, 21764, 21692, 22144, 22109, 22112, 22069, 22006, 22118, 10983 22130, 22156, 22117, 22044, 22062, 21993, 22038, 22208, 22029, 22195, 10984 22209, 22127, 36705, 22198, 22165, 22279, 24131, 24172, 24152, 24151, 10985 23943, 23796, 23888, 23852, 23975, 23968, 23959, 23821, 23992, 23937, 10986 24020, 24480, 29559, 29505, 29546, 29499, 29547, 29568, 29564, 39136, 10987 39219, 39145, 39228, {f: 2, c: 39146}, 39149, 39156, 39177, 39185, 39195, 10988 39223, 39231, 39235, {f: 3, c: 39240}, 39244, 39266, 24289, 36065, 25082, 10989 25006, 24938, 24894, 24757, 24884, 25036, 24927, 25064, 24827, 24887, 10990 24818, 24947, 24860, 24978, 38274, 38278, 38344, 38286, 38292, 38284, 10991 38373, 38317, 38315, 39726, 38316, 38334, 38326, 39721, 38335, 38333, 10992 38332, 38339, 38347, 38356, 38352, 38357, 38366, 28739, 28505, 28711, 10993 28696, 28668, 28039, 28025, 28254, 28590, 28687, 28408, 28527, 28150, 10994 28543, 28678, 28576, 28683, 28775, 28740, 28677, 28535, 28704, 28703, 10995 28722, 28712, 28765, 39467, 36999, 36885, 37008, 23656, 24371, 23285, 10996 23255, 23296, 23149, 23304, 23372, 23207, 23291, 23307, 23329, 23338, 10997 23321, 39380, 39391, 39385, 39478, 39515, 39377, 39384, 39501, 39498, 10998 39394, 39530, 39439, 39437, 39429, 39490, 39469, 39446, 39489, 39470, 10999 39480, {f: 2, c: 39491}, 39503, 39525, 39524, 31993, 32006, 32002, 11000 {f: 2, c: 32007}, 32394, 32028, 32021, 32019, 32058, 32050, 32049, 32272, 11001 32060, 32064, 32063, 32093, 32078, 32115, 32134, 32131, 32136, 32190, 11002 32186, 32203, 32212, 32196, 32158, 32172, 32185, 32163, 32176, 32199, 11003 32217, 32215, 32249, 32242, 32354, 32230, 32246, 32241, 32267, 32225, 11004 32265, 32285, 32287, 32286, 32301, 32266, 32273, 32381, 32313, 32309, 11005 32306, 32326, 32325, 32392, 32346, 32338, 32366, 32382, 32368, 32367, 11006 32408, 29859, 29771, 29903, 38922, 29885, 29759, 29833, 29862, 29908, 11007 29914, 38873, 38878, 38876, 27050, 27370, 26776, 26838, 27141, 26783, 11008 27355, 27379, 27368, 27359, 27273, 26895, 27208, 26984, 27071, 27194, 11009 27292, 27410, 27422, 27357, 27111, 27407, 27414, 27372, 27354, 27384, 11010 27315, 27367, 27299, 27347, 27358, 27556, 27550, 27566, 27563, 27567, 11011 36564, 36571, 36594, 36603, 36708, 36601, 36604, 36587, 36580, 36706, 11012 36602, 36606, 36618, 36615, 36613, 36626, 36646, {f: 2, c: 36638}, 36636, 11013 36659, 36678, 36692, 25108, 25127, 29964, 26311, 26308, 26249, 26326, 11014 36033, 36016, 36026, 36029, 36100, 36018, 36037, 36112, 36049, 36058, 11015 36053, 36075, 36071, 36091, 35224, 35244, 35233, 35263, 35238, 35247, 11016 35250, 35255, 27647, 27660, 27692, 29272, 26407, 33110, 33242, 33051, 11017 33214, 33121, 33231, 27487, {f: 2, c: 39086}, 39094, 39100, 39110, 39112, 11018 36674, 40783, 26005, 29036, 29010, 29079, 29121, 29148, 29182, 31152, 11019 31118, 31146, 25055, 24932, 25059, 25095, 28585, 30959, 30893, 30824, 11020 30904, 31018, 31025, 30820, 30973, 30951, 30947, 40853, 30616, 30558, 11021 30652, 32646, 32648, {f: 3, c: 37330}, 37337, 37335, 37333, 37367, 37351, 11022 37348, 37702, 37365, 37369, 37384, 37414, 37445, 37393, 37392, 37377, 11023 37415, 37380, 37413, 37376, 37434, 37478, 37431, 37427, 37461, 37437, 11024 37432, 37470, {f: 2, c: 37484}, 37439, 37984, 37424, 37449, 37448, 37453, 11025 37422, 37433, 37944, 37548, 37536, 37498, 37546, 37614, 37583, 37891, 11026 37603, 37946, 37553, 37542, 37799, 37526, 37580, 37545, 37877, 37523, 11027 37503, 37801, 37530, 37658, 37547, 37507, 37899, 37544, 37539, 37906, 11028 37688, 37617, 37847, 37605, 37616, 37615, 37608, 37564, 37597, 37622, 11029 {f: 2, c: 37926}, 37571, 37599, 37606, 37650, 37638, 37737, 37659, 37696, 11030 37633, 37653, 37678, 37699, {f: 2, c: 37639}, 37663, 37657, 37733, 37703, 11031 37750, 37716, 37732, 37802, 37744, 37764, 37860, 37848, 37928, 37767, 11032 37836, 37784, 37816, 37823, 37798, 37808, 37813, 37964, 37858, 11033 {f: 2, c: 37852}, 37837, 37854, 37827, 37831, 37841, 37908, 37917, 37879, 11034 37989, 37907, 37997, 37920, 38009, 37881, 37913, 37962, 37938, 37951, 11035 37972, 37987, 37758, 31329, 40169, 40182, 40199, 40198, 40227, 40327, 11036 40469, 40221, 40223, 40421, 40239, 40409, 40240, 40258, 40478, 40275, 11037 40477, 40288, 40274, 40435, 40284, 40289, 40339, 40298, 40303, 40329, 11038 40344, 40346, 40384, 40357, 40361, 40386, 40380, 40474, 40403, 40410, 11039 40431, 40422, 40434, 40440, 40460, 40442, 40475, 30308, 30296, 30311, 11040 30210, {f: 2, c: 30278}, 30281, 30238, 30267, {f: 2, c: 30317}, 30313, 11041 30322, 31431, 31414, 35168, 35123, 35165, 35143, 35128, 35172, 30392, 11042 32814, 32812, 32889, 32885, 38919, {f: 2, c: 38926}, 38945, 38940, 28481, 11043 38950, 38967, 38990, 38995, 39027, 39010, 39001, 39013, 39020, 39024, 11044 34787, 34822, 34566, 34851, 34806, 34554, 34799, 34692, 34832, 34760, 11045 34833, 34747, 34766, 32588, 31716, 31591, 31849, 31731, 31744, 31691, 11046 31836, 31774, 31787, 31779, 31850, 31839, 33380, 33387, 35018, 32677, 11047 31986, 31990, 31965, 32310, 40617, 36274, 37317, 37315, 40570, 36489, 11048 36428, 36498, 36474, 36437, 36506, 36491, 36499, 36497, 36513, 36451, 11049 36522, 36518, 35316, 35318, 38746, 38722, 38717, 38724, 40788, 40799, 11050 40793, 40800, 40796, 40806, 40812, 40810, 40823, [12236, 40701], 40703, 11051 40713, 35726, 38014, 37864, 39799, 39796, 39809, 39811, 39822, 40056, 11052 31308, 39826, 40031, 39824, 39853, 39834, 39850, 39838, 40045, 39851, 11053 39837, 40024, 39873, 40058, 39985, 39993, 39971, 39991, 39872, 39882, 11054 39879, 39933, 39894, {f: 2, c: 39914}, 39905, 39908, 39911, 39901, 39906, 11055 39920, 39899, 39924, 39892, 40029, 39944, 39952, 39949, 39954, 39945, 11056 39935, 39968, 39986, 39981, 39976, 39973, 39977, 39987, 39998, 40008, 11057 39995, 39989, 40005, 40022, 40020, 40018, 40039, 38851, 38845, 38857, 11058 40379, 39631, 39638, 39637, 39768, 39758, 39255, 39260, 39714, 40695, 11059 40690, 35180, 38342, 37686, 24390, 34068, 32404, 40803, 22137, 40725, 11060 22081, 39662, 35079, 31296, 39091, 38308, 39693, 36852, 24409, 31339, 11061 39138, 20642, 34193, 20760, 25458, 21067, 30543, 32397, 26310, 30637, 11062 [12228, 40565], 22217, 40692, 28635, 25054, 30663, 28720, 40629, 34890, 11063 38370, 38854, 31844, 32308, 38822, 40623, 22220, 39089, 27311, 32590, 11064 31984, 20418, 32363, 40569, 22190, 39706, 33903, 31142, 31858, 39634, 11065 38587, 32251, 35069, 30787, {f: 10, c: 8560}, {f: 2, c: 714}, 729, 8211, 11066 8213, 8229, 8245, 8453, 8457, {f: 4, c: 8598}, 8725, 8735, 8739, 8786, 11067 {f: 2, c: 8806}, 8895, {f: 36, c: 9552}, {f: 15, c: 9601}, {f: 3, c: 9619}, 11068 {f: 2, c: 9660}, {f: 4, c: 9698}, 9737, 8853, 12306, {f: 2, c: 12317}, 11069 {f: 9, c: 12321}, 12963, {f: 2, c: 13198}, {f: 3, c: 13212}, 13217, 13252, 11070 13262, {f: 2, c: 13265}, 13269, 65072, 65506, 65508, 8481, 12849, 8208, 11071 12540, {f: 2, c: 12443}, {f: 2, c: 12541}, 12294, {f: 2, c: 12445}, 11072 {f: 10, c: 65097}, {f: 4, c: 65108}, {f: 14, c: 65113}, {f: 4, c: 65128}, 11073 12350, {f: 12, c: 12272}, 19970, {f: 3, c: 19972}, 19983, 19986, 19991, 11074 {f: 3, c: 19999}, 20003, 20006, 20009, {f: 2, c: 20014}, 20017, 20019, 11075 20021, 20023, 20028, {f: 3, c: 20032}, 20036, 20038, 20042, 20049, 20053, 11076 20055, {f: 2, c: 20058}, {f: 4, c: 20066}, {f: 2, c: 20071}, 11077 {f: 6, c: 20074}, 20082, {f: 10, c: 20084}, {f: 3, c: 20095}, 11078 {f: 2, c: 20099}, [12037, 20101], 20103, 20106, 20112, {f: 2, c: 20118}, 11079 20121, {f: 2, c: 20124}, 20131, 20138, {f: 3, c: 20143}, 20148, 11080 {f: 4, c: 20150}, {f: 3, c: 20156}, 20168, 20172, {f: 2, c: 20175}, 20178, 11081 {f: 3, c: 20186}, 20192, 20194, {f: 2, c: 20198}, 20201, {f: 3, c: 20205}, 11082 20209, 20212, {f: 3, c: 20216}, 20220, 20222, 20224, {f: 7, c: 20226}, 11083 {f: 2, c: 20235}, {f: 5, c: 20242}, {f: 2, c: 20252}, 20257, 20259, 11084 {f: 2, c: 20264}, {f: 3, c: 20268}, 20273, 20275, 20277, 20279, 20281, 11085 20283, {f: 5, c: 20286}, {f: 2, c: 20292}, {f: 6, c: 20295}, 20306, 20308, 11086 20310, {f: 2, c: 20321}, 20326, 20328, {f: 2, c: 20330}, {f: 2, c: 20333}, 11087 {f: 2, c: 20337}, 20341, {f: 4, c: 20343}, 20349, {f: 3, c: 20352}, 20357, 11088 20359, 20362, 20364, 20366, 20368, {f: 2, c: 20370}, 20373, 11089 {f: 3, c: 20376}, 20380, {f: 2, c: 20382}, {f: 2, c: 20385}, 20388, 20395, 11090 20397, {f: 5, c: 20400}, {f: 9, c: 20406}, {f: 2, c: 20416}, 11091 {f: 4, c: 20422}, {f: 3, c: 20427}, {f: 5, c: 20434}, 20441, 20443, 20450, 11092 {f: 2, c: 20452}, 20455, {f: 2, c: 20459}, 20464, 20466, {f: 4, c: 20468}, 11093 20473, {f: 3, c: 20475}, 20479, {f: 5, c: 20481}, {f: 2, c: 20487}, 20490, 11094 20494, 20496, 20499, {f: 3, c: 20501}, 20507, {f: 2, c: 20509}, 20512, 11095 {f: 3, c: 20514}, 20519, {f: 11, c: 20527}, 20539, 20541, {f: 4, c: 20543}, 11096 {f: 3, c: 20548}, {f: 2, c: 20554}, 20557, {f: 5, c: 20560}, 11097 {f: 4, c: 20566}, 20571, {f: 8, c: 20573}, {f: 6, c: 20582}, 11098 {f: 7, c: 20589}, {f: 3, c: 20600}, {f: 2, c: 20604}, {f: 4, c: 20609}, 11099 {f: 2, c: 20614}, {f: 4, c: 20617}, {f: 8, c: 20622}, 20631, 11100 {f: 8, c: 20634}, 20644, 20646, {f: 2, c: 20650}, {f: 4, c: 20654}, 20662, 11101 {f: 2, c: 20664}, {f: 2, c: 20668}, {f: 3, c: 20671}, {f: 2, c: 20675}, 11102 {f: 3, c: 20678}, {f: 5, c: 20682}, 20688, {f: 3, c: 20690}, 11103 {f: 3, c: 20695}, {f: 3, c: 20699}, {f: 6, c: 20703}, {f: 3, c: 20713}, 11104 {f: 4, c: 20719}, 20724, {f: 3, c: 20726}, 20730, {f: 4, c: 20732}, 20737, 11105 20739, 20741, 20746, {f: 4, c: 20748}, 20753, 20755, {f: 2, c: 20758}, 11106 {f: 6, c: 20761}, 20768, {f: 8, c: 20770}, {f: 7, c: 20779}, 11107 {f: 4, c: 20787}, {f: 2, c: 20792}, {f: 2, c: 20797}, 20802, 20807, 20810, 11108 20812, {f: 3, c: 20814}, 20819, {f: 3, c: 20823}, 20827, {f: 5, c: 20829}, 11109 {f: 2, c: 20835}, {f: 2, c: 20838}, 20842, 20847, 20850, 20858, 11110 {f: 2, c: 20862}, {f: 2, c: 20867}, {f: 2, c: 20870}, {f: 2, c: 20874}, 11111 {f: 4, c: 20878}, {f: 2, c: 20883}, 20888, 20890, {f: 3, c: 20893}, 20897, 11112 20899, {f: 5, c: 20902}, {f: 2, c: 20909}, 20916, {f: 3, c: 20920}, 11113 {f: 2, c: 20926}, {f: 3, c: 20929}, 20933, 20936, 20938, 20942, 20944, 11114 {f: 9, c: 20946}, 20956, {f: 2, c: 20958}, {f: 2, c: 20962}, 11115 {f: 6, c: 20965}, 20972, 20974, 20978, 20980, 20983, 20990, 11116 {f: 2, c: 20996}, 21001, {f: 2, c: 21003}, {f: 2, c: 21007}, 11117 {f: 3, c: 21011}, 21020, {f: 2, c: 21022}, {f: 3, c: 21025}, 11118 {f: 3, c: 21029}, 21034, 21036, 21039, {f: 2, c: 21041}, {f: 2, c: 21044}, 11119 21052, 21054, {f: 2, c: 21061}, {f: 2, c: 21064}, {f: 2, c: 21070}, 11120 {f: 2, c: 21074}, 21077, {f: 4, c: 21079}, 21085, {f: 2, c: 21087}, 11121 {f: 3, c: 21090}, 21094, 21096, {f: 3, c: 21099}, {f: 2, c: 21104}, 21107, 11122 {f: 7, c: 21110}, 21118, 21120, {f: 3, c: 21124}, 21131, {f: 2, c: 21134}, 11123 21138, {f: 7, c: 21140}, 21148, {f: 4, c: 21156}, {f: 3, c: 21166}, 11124 {f: 10, c: 21172}, 21184, 21186, {f: 3, c: 21188}, 21192, 21194, 11125 {f: 4, c: 21196}, 21201, {f: 2, c: 21203}, 21207, 21210, 21212, 11126 {f: 2, c: 21216}, 21219, {f: 11, c: 21221}, {f: 3, c: 21234}, 11127 {f: 2, c: 21238}, {f: 3, c: 21243}, {f: 4, c: 21249}, 21255, 11128 {f: 4, c: 21257}, 21262, {f: 4, c: 21265}, 21272, {f: 2, c: 21275}, 11129 {f: 2, c: 21278}, 21282, {f: 2, c: 21284}, {f: 3, c: 21287}, 11130 {f: 2, c: 21291}, 21296, {f: 6, c: 21298}, [12054, 21304], 11131 {f: 2, c: 21308}, 21314, 21316, 21318, {f: 3, c: 21323}, 21328, 11132 {f: 2, c: 21336}, 21339, 21341, 21349, 21352, 21354, {f: 2, c: 21356}, 11133 21362, 21366, 21369, {f: 4, c: 21371}, {f: 2, c: 21376}, 21379, 11134 {f: 2, c: 21383}, 21386, {f: 7, c: 21390}, {f: 2, c: 21398}, 11135 {f: 2, c: 21403}, 21406, 21409, 21412, 21415, {f: 3, c: 21418}, 11136 {f: 3, c: 21423}, 21427, 21429, {f: 4, c: 21431}, {f: 3, c: 21436}, 21440, 11137 {f: 4, c: 21444}, {f: 3, c: 21454}, {f: 2, c: 21458}, 21461, 21466, 11138 {f: 3, c: 21468}, 21473, 21479, 21492, 21498, {f: 3, c: 21502}, 21506, 11139 21509, 21511, 21515, 21524, {f: 3, c: 21528}, 21532, 21538, 11140 {f: 2, c: 21540}, 21546, 21552, 21555, {f: 2, c: 21558}, 21562, 21565, 11141 21567, {f: 2, c: 21569}, {f: 2, c: 21572}, 21575, 21577, {f: 4, c: 21580}, 11142 21585, 21594, {f: 5, c: 21597}, 21603, 21605, 21607, {f: 8, c: 21609}, 11143 21620, {f: 2, c: 21625}, {f: 2, c: 21630}, 21633, 21635, 21637, 11144 {f: 4, c: 21639}, 21645, 21649, 21651, {f: 2, c: 21655}, 21660, 11145 {f: 5, c: 21662}, 21669, 21678, 21680, 21682, {f: 3, c: 21685}, 11146 {f: 2, c: 21689}, 21694, 21699, 21701, {f: 2, c: 21706}, 21718, 21720, 11147 21723, 21728, {f: 3, c: 21730}, {f: 2, c: 21739}, {f: 3, c: 21743}, 11148 {f: 6, c: 21748}, 21755, 21758, 21760, {f: 2, c: 21762}, 21765, 21768, 11149 {f: 5, c: 21770}, {f: 2, c: 21778}, {f: 6, c: 21781}, {f: 4, c: 21788}, 11150 21793, {f: 2, c: 21797}, {f: 2, c: 21800}, 21803, 21805, 21810, 11151 {f: 3, c: 21812}, {f: 4, c: 21816}, 21821, 21824, 21826, 21829, 11152 {f: 2, c: 21831}, {f: 4, c: 21835}, {f: 2, c: 21841}, 21844, 11153 {f: 5, c: 21847}, 21853, {f: 2, c: 21855}, {f: 2, c: 21858}, 11154 {f: 2, c: 21864}, 21867, {f: 6, c: 21871}, {f: 2, c: 21881}, 21885, 21887, 11155 {f: 2, c: 21893}, {f: 3, c: 21900}, 21904, {f: 2, c: 21906}, 11156 {f: 3, c: 21909}, {f: 2, c: 21914}, 21918, {f: 7, c: 21920}, 11157 {f: 2, c: 21928}, 21931, 21933, {f: 2, c: 21935}, 21940, 21942, 21944, 11158 21946, 21948, {f: 5, c: 21951}, 21960, {f: 2, c: 21962}, {f: 2, c: 21967}, 11159 21973, {f: 3, c: 21975}, 21979, 21982, 21984, 21986, 21991, 11160 {f: 2, c: 21997}, {f: 2, c: 22000}, 22004, {f: 5, c: 22008}, 22015, 11161 {f: 4, c: 22018}, 22023, {f: 2, c: 22026}, {f: 4, c: 22032}, 22037, 11162 {f: 2, c: 22041}, 22045, {f: 3, c: 22048}, {f: 2, c: 22053}, 22056, 11163 {f: 2, c: 22058}, 22067, 22071, 22074, {f: 3, c: 22076}, 22080, 11164 {f: 10, c: 22082}, {f: 5, c: 22095}, {f: 2, c: 22101}, {f: 2, c: 22106}, 11165 {f: 2, c: 22110}, 22113, 22115, 22119, {f: 2, c: 22125}, 22128, 22131, 11166 22133, 22135, 22138, {f: 3, c: 22141}, {f: 4, c: 22145}, {f: 4, c: 22152}, 11167 22157, {f: 3, c: 22160}, 22164, {f: 3, c: 22166}, {f: 9, c: 22170}, 11168 {f: 2, c: 22180}, 22183, {f: 5, c: 22185}, {f: 3, c: 22192}, 22197, 11169 {f: 4, c: 22200}, {f: 3, c: 22205}, {f: 2, c: 22211}, {f: 2, c: 22214}, 11170 22219, {f: 4, c: 22221}, {f: 2, c: 22226}, {f: 2, c: 22229}, 11171 {f: 2, c: 22232}, 22236, 22243, {f: 6, c: 22245}, 22252, {f: 2, c: 22254}, 11172 {f: 2, c: 22258}, {f: 3, c: 22262}, {f: 2, c: 22267}, {f: 3, c: 22272}, 11173 22277, 22284, {f: 4, c: 22286}, {f: 2, c: 22292}, 22295, {f: 3, c: 22297}, 11174 {f: 2, c: 22301}, {f: 3, c: 22304}, {f: 4, c: 22308}, 22315, 11175 {f: 2, c: 22321}, {f: 5, c: 22324}, {f: 2, c: 22332}, 22335, 22337, 11176 {f: 4, c: 22339}, {f: 2, c: 22344}, 22347, {f: 5, c: 22354}, 11177 {f: 2, c: 22360}, {f: 2, c: 22370}, 22373, 22375, 22380, 22382, 11178 {f: 3, c: 22384}, {f: 2, c: 22388}, {f: 3, c: 22392}, {f: 5, c: 22397}, 11179 {f: 4, c: 22407}, {f: 5, c: 22413}, {f: 7, c: 22420}, {f: 4, c: 22428}, 11180 22437, 22440, 22442, 22444, {f: 3, c: 22447}, 22451, {f: 3, c: 22453}, 11181 {f: 9, c: 22457}, {f: 7, c: 22468}, {f: 2, c: 22476}, {f: 2, c: 22480}, 11182 22483, {f: 2, c: 22486}, {f: 2, c: 22491}, 22494, {f: 2, c: 22498}, 11183 {f: 8, c: 22501}, 22510, {f: 4, c: 22512}, {f: 2, c: 22517}, 11184 {f: 2, c: 22523}, {f: 2, c: 22526}, 22529, {f: 2, c: 22531}, 11185 {f: 2, c: 22536}, 22540, {f: 3, c: 22542}, {f: 3, c: 22546}, 11186 {f: 2, c: 22551}, {f: 3, c: 22554}, 22559, {f: 2, c: 22562}, 11187 {f: 5, c: 22565}, {f: 4, c: 22571}, {f: 2, c: 22578}, {f: 14, c: 22582}, 11188 {f: 5, c: 22597}, 22606, 22608, 22611, {f: 2, c: 22613}, {f: 5, c: 22617}, 11189 {f: 3, c: 22623}, 22627, {f: 5, c: 22630}, {f: 8, c: 22637}, 11190 {f: 3, c: 22646}, {f: 4, c: 22650}, 22655, 22658, 22660, {f: 3, c: 22662}, 11191 {f: 7, c: 22667}, {f: 5, c: 22676}, 22683, 22685, {f: 8, c: 22688}, 11192 {f: 4, c: 22698}, {f: 4, c: 22703}, {f: 7, c: 22708}, 22717, 11193 {f: 2, c: 22719}, {f: 3, c: 22722}, 22726, {f: 9, c: 22728}, 22738, 22740, 11194 {f: 2, c: 22742}, {f: 3, c: 22747}, 22753, 22755, {f: 4, c: 22757}, 22762, 11195 22765, {f: 2, c: 22769}, {f: 2, c: 22772}, {f: 2, c: 22775}, 11196 {f: 2, c: 22779}, {f: 4, c: 22782}, 22787, {f: 2, c: 22789}, 11197 {f: 2, c: 22792}, [12066, 22794], {f: 2, c: 22795}, 22798, 11198 {f: 4, c: 22800}, {f: 2, c: 22807}, 22811, {f: 2, c: 22813}, 11199 {f: 2, c: 22816}, 22819, 22822, 22824, 22828, 22832, {f: 2, c: 22834}, 11200 {f: 2, c: 22837}, 22843, 22845, {f: 2, c: 22847}, 22851, {f: 2, c: 22853}, 11201 22858, {f: 2, c: 22860}, 22864, {f: 2, c: 22866}, 22873, {f: 5, c: 22875}, 11202 22881, {f: 2, c: 22883}, {f: 3, c: 22886}, 22891, 22893, {f: 4, c: 22895}, 11203 22901, 22903, {f: 3, c: 22906}, {f: 3, c: 22910}, 22917, 22921, 11204 {f: 2, c: 22923}, {f: 4, c: 22926}, {f: 2, c: 22932}, 22936, 11205 {f: 3, c: 22938}, {f: 4, c: 22943}, {f: 2, c: 22950}, {f: 2, c: 22956}, 11206 {f: 2, c: 22960}, {f: 6, c: 22963}, 22970, {f: 2, c: 22972}, 11207 {f: 7, c: 22975}, {f: 3, c: 22983}, {f: 4, c: 22988}, {f: 2, c: 22997}, 11208 23001, 23003, {f: 5, c: 23006}, 23012, {f: 2, c: 23014}, {f: 3, c: 23017}, 11209 {f: 12, c: 23021}, 23034, {f: 3, c: 23036}, 23040, 23042, {f: 2, c: 23050}, 11210 {f: 4, c: 23053}, 23058, {f: 4, c: 23060}, {f: 3, c: 23065}, 11211 {f: 2, c: 23069}, {f: 2, c: 23073}, 23076, {f: 3, c: 23078}, 11212 {f: 7, c: 23082}, 23091, 23093, {f: 5, c: 23095}, {f: 3, c: 23101}, 11213 {f: 4, c: 23106}, {f: 2, c: 23111}, {f: 10, c: 23115}, {f: 4, c: 23126}, 11214 {f: 7, c: 23131}, {f: 3, c: 23139}, {f: 2, c: 23144}, {f: 2, c: 23147}, 11215 {f: 6, c: 23150}, {f: 2, c: 23160}, {f: 4, c: 23163}, {f: 18, c: 23168}, 11216 {f: 7, c: 23187}, {f: 11, c: 23196}, {f: 2, c: 23208}, {f: 7, c: 23211}, 11217 23220, {f: 2, c: 23222}, {f: 4, c: 23225}, {f: 2, c: 23231}, 11218 {f: 6, c: 23235}, {f: 2, c: 23242}, {f: 5, c: 23245}, 23251, 23253, 11219 {f: 3, c: 23257}, {f: 3, c: 23261}, 23266, {f: 2, c: 23268}, 11220 {f: 2, c: 23271}, 23274, {f: 5, c: 23276}, {f: 3, c: 23282}, 11221 {f: 5, c: 23286}, {f: 4, c: 23292}, {f: 7, c: 23297}, 23306, 11222 {f: 9, c: 23309}, 23320, {f: 7, c: 23322}, {f: 8, c: 23330}, 11223 {f: 5, c: 23339}, 23345, 23347, {f: 2, c: 23349}, {f: 7, c: 23353}, 11224 {f: 11, c: 23361}, {f: 3, c: 23373}, 23378, 23382, 23390, {f: 2, c: 23392}, 11225 {f: 2, c: 23399}, {f: 3, c: 23405}, 23410, 23412, {f: 2, c: 23414}, 23417, 11226 {f: 2, c: 23419}, 23422, 23426, 23430, 23434, {f: 2, c: 23437}, 11227 {f: 3, c: 23440}, 23444, 23446, 23455, {f: 3, c: 23463}, {f: 4, c: 23468}, 11228 {f: 2, c: 23473}, 23479, {f: 3, c: 23482}, {f: 2, c: 23488}, 23491, 11229 {f: 4, c: 23496}, {f: 3, c: 23501}, 23505, {f: 9, c: 23508}, 23520, 23523, 11230 23530, 23533, 23535, {f: 4, c: 23537}, 23543, {f: 2, c: 23549}, 23552, 11231 {f: 2, c: 23554}, 23557, 23564, 23568, {f: 2, c: 23570}, 23575, 23577, 11232 23579, {f: 4, c: 23582}, 23587, 23590, {f: 4, c: 23592}, {f: 4, c: 23597}, 11233 {f: 2, c: 23602}, {f: 2, c: 23605}, {f: 2, c: 23619}, {f: 2, c: 23622}, 11234 {f: 2, c: 23628}, {f: 3, c: 23634}, {f: 3, c: 23638}, {f: 4, c: 23642}, 11235 23647, 23655, {f: 3, c: 23657}, 23661, 23664, {f: 7, c: 23666}, 11236 {f: 4, c: 23675}, 23680, {f: 5, c: 23683}, {f: 3, c: 23689}, 11237 {f: 2, c: 23694}, {f: 2, c: 23698}, 23701, {f: 4, c: 23709}, 11238 {f: 5, c: 23716}, 23722, {f: 3, c: 23726}, 23730, 23732, 23734, 11239 {f: 4, c: 23737}, 23742, 23744, {f: 2, c: 23746}, {f: 6, c: 23749}, 11240 {f: 6, c: 23756}, {f: 6, c: 23763}, {f: 7, c: 23770}, {f: 2, c: 23778}, 11241 23783, 23785, {f: 2, c: 23787}, {f: 2, c: 23790}, {f: 3, c: 23793}, 23797, 11242 {f: 4, c: 23799}, 23804, {f: 4, c: 23806}, {f: 2, c: 23812}, 11243 {f: 5, c: 23816}, {f: 5, c: 23823}, 23829, {f: 3, c: 23832}, 11244 {f: 2, c: 23836}, {f: 5, c: 23839}, 23845, 23848, {f: 2, c: 23850}, 11245 {f: 5, c: 23855}, {f: 8, c: 23861}, {f: 8, c: 23871}, {f: 2, c: 23880}, 11246 {f: 3, c: 23885}, {f: 7, c: 23889}, {f: 2, c: 23897}, 23900, 11247 {f: 11, c: 23902}, 23914, {f: 2, c: 23917}, {f: 4, c: 23920}, 11248 {f: 12, c: 23925}, 23939, {f: 2, c: 23941}, {f: 15, c: 23944}, 23960, 11249 {f: 3, c: 23962}, {f: 2, c: 23966}, {f: 6, c: 23969}, {f: 15, c: 23976}, 11250 23993, 23995, {f: 8, c: 23997}, {f: 5, c: 24006}, 24012, {f: 4, c: 24014}, 11251 24019, {f: 6, c: 24021}, 24028, {f: 2, c: 24031}, {f: 2, c: 24035}, 24042, 11252 {f: 2, c: 24044}, {f: 2, c: 24053}, {f: 5, c: 24056}, {f: 2, c: 24063}, 11253 24068, 24071, {f: 3, c: 24073}, {f: 2, c: 24077}, {f: 2, c: 24082}, 24087, 11254 {f: 7, c: 24094}, {f: 3, c: 24104}, 24108, {f: 2, c: 24111}, 24114, 11255 {f: 2, c: 24116}, {f: 2, c: 24121}, {f: 2, c: 24126}, 24129, 11256 {f: 6, c: 24134}, {f: 7, c: 24141}, 24150, {f: 2, c: 24153}, 11257 {f: 2, c: 24156}, 24160, {f: 7, c: 24164}, {f: 5, c: 24173}, 24181, 24183, 11258 {f: 3, c: 24193}, 24197, {f: 2, c: 24200}, {f: 3, c: 24204}, 24210, 24216, 11259 24219, 24221, {f: 4, c: 24225}, {f: 3, c: 24232}, 24236, {f: 5, c: 24238}, 11260 24244, {f: 4, c: 24250}, {f: 10, c: 24255}, {f: 6, c: 24267}, 11261 {f: 2, c: 24276}, {f: 4, c: 24279}, {f: 3, c: 24284}, {f: 4, c: 24292}, 11262 24297, 24299, {f: 6, c: 24301}, 24309, {f: 2, c: 24312}, {f: 3, c: 24315}, 11263 {f: 3, c: 24325}, 24329, {f: 3, c: 24332}, 24336, 24338, 24340, 24342, 11264 {f: 2, c: 24345}, {f: 3, c: 24348}, {f: 4, c: 24353}, 24360, 11265 {f: 2, c: 24363}, 24366, 24368, 24370, 24372, {f: 3, c: 24374}, 24379, 11266 {f: 3, c: 24381}, {f: 5, c: 24385}, 24391, {f: 3, c: 24393}, 24397, 24399, 11267 24401, 24404, {f: 3, c: 24410}, {f: 3, c: 24414}, 24419, 24421, 11268 {f: 2, c: 24423}, 24427, {f: 2, c: 24430}, 24434, {f: 3, c: 24436}, 24440, 11269 24442, {f: 3, c: 24445}, 24451, 24454, {f: 3, c: 24461}, {f: 2, c: 24467}, 11270 24470, {f: 2, c: 24474}, 24477, 24479, {f: 6, c: 24482}, {f: 2, c: 24491}, 11271 {f: 6, c: 24495}, 24502, 24504, {f: 2, c: 24506}, {f: 5, c: 24510}, 11272 {f: 2, c: 24519}, {f: 2, c: 24522}, 24526, {f: 3, c: 24531}, 11273 {f: 3, c: 24538}, {f: 2, c: 24542}, {f: 2, c: 24546}, {f: 2, c: 24549}, 11274 {f: 2, c: 24552}, 24556, {f: 2, c: 24559}, {f: 3, c: 24562}, 11275 {f: 2, c: 24566}, {f: 2, c: 24569}, 24572, {f: 3, c: 24583}, 11276 {f: 2, c: 24587}, {f: 2, c: 24592}, 24595, {f: 2, c: 24599}, 24602, 11277 {f: 2, c: 24606}, {f: 3, c: 24610}, {f: 3, c: 24620}, {f: 5, c: 24624}, 11278 {f: 5, c: 24630}, {f: 2, c: 24637}, 24640, {f: 7, c: 24644}, 24652, 11279 {f: 2, c: 24654}, 24657, {f: 2, c: 24659}, {f: 3, c: 24662}, 11280 {f: 2, c: 24667}, {f: 4, c: 24670}, {f: 2, c: 24677}, 24686, 11281 {f: 2, c: 24689}, {f: 2, c: 24692}, 24695, 24702, {f: 3, c: 24704}, 11282 {f: 4, c: 24709}, {f: 2, c: 24714}, {f: 4, c: 24718}, 24723, 24725, 11283 {f: 3, c: 24727}, 24732, 24734, {f: 2, c: 24737}, {f: 2, c: 24740}, 24743, 11284 {f: 2, c: 24745}, 24750, 24752, 24755, 24759, {f: 2, c: 24761}, 11285 {f: 8, c: 24765}, {f: 3, c: 24775}, {f: 5, c: 24780}, {f: 3, c: 24786}, 11286 {f: 2, c: 24790}, 24793, 24795, 24798, {f: 4, c: 24802}, 24810, 24821, 11287 {f: 2, c: 24823}, {f: 4, c: 24828}, {f: 4, c: 24834}, 24839, 11288 {f: 3, c: 24842}, {f: 5, c: 24848}, {f: 4, c: 24854}, {f: 2, c: 24861}, 11289 {f: 2, c: 24865}, 24869, {f: 3, c: 24872}, {f: 8, c: 24876}, 11290 {f: 2, c: 24885}, {f: 6, c: 24888}, {f: 8, c: 24896}, 24905, 24909, 11291 {f: 2, c: 24911}, {f: 3, c: 24914}, {f: 2, c: 24918}, 24921, 11292 {f: 2, c: 24923}, 24926, {f: 2, c: 24928}, {f: 2, c: 24933}, 24937, 11293 {f: 2, c: 24940}, 24943, {f: 2, c: 24945}, 24948, {f: 10, c: 24952}, 11294 {f: 7, c: 24963}, {f: 2, c: 24972}, 24975, 24979, {f: 5, c: 24981}, 11295 {f: 2, c: 24987}, {f: 6, c: 24990}, {f: 2, c: 24997}, 25002, 25005, 11296 {f: 3, c: 25007}, {f: 3, c: 25011}, {f: 6, c: 25016}, {f: 3, c: 25023}, 11297 {f: 4, c: 25027}, {f: 4, c: 25037}, 25043, {f: 9, c: 25045}, 11298 {f: 3, c: 25056}, {f: 2, c: 25060}, 25063, {f: 9, c: 25065}, 11299 {f: 2, c: 25075}, 25081, 25083, 25085, {f: 5, c: 25089}, 25097, 25107, 11300 25113, {f: 3, c: 25116}, 25120, 25123, 25126, {f: 2, c: 25128}, 25131, 11301 25133, 25135, 25137, 25141, [12094, 25142], {f: 5, c: 25144}, 25154, 11302 {f: 3, c: 25156}, 25162, {f: 2, c: 25167}, {f: 3, c: 25173}, 11303 {f: 2, c: 25177}, {f: 7, c: 25180}, {f: 2, c: 25188}, 25192, 11304 {f: 2, c: 25201}, {f: 2, c: 25204}, {f: 2, c: 25207}, {f: 2, c: 25210}, 11305 25213, {f: 3, c: 25217}, {f: 4, c: 25221}, {f: 6, c: 25227}, 25236, 25241, 11306 {f: 3, c: 25244}, 25251, {f: 2, c: 25254}, {f: 2, c: 25257}, 11307 {f: 4, c: 25261}, {f: 3, c: 25266}, {f: 3, c: 25270}, 25274, 25278, 11308 {f: 2, c: 25280}, 25283, 25291, 25295, 25297, 25301, {f: 2, c: 25309}, 11309 {f: 2, c: 25312}, 25316, {f: 2, c: 25322}, 25328, 25330, 25333, 11310 {f: 4, c: 25336}, 25344, {f: 4, c: 25347}, {f: 4, c: 25354}, 11311 {f: 2, c: 25359}, {f: 4, c: 25362}, {f: 3, c: 25367}, 25372, 11312 {f: 2, c: 25382}, 25385, {f: 3, c: 25388}, {f: 2, c: 25392}, 11313 {f: 6, c: 25395}, {f: 2, c: 25403}, {f: 3, c: 25407}, 25412, 11314 {f: 2, c: 25415}, 25418, {f: 4, c: 25425}, {f: 8, c: 25430}, 25440, 11315 {f: 3, c: 25444}, 25450, 25452, {f: 2, c: 25455}, {f: 3, c: 25459}, 11316 {f: 2, c: 25464}, {f: 4, c: 25468}, 25473, {f: 2, c: 25477}, 25483, 25485, 11317 25489, {f: 3, c: 25491}, 25495, {f: 7, c: 25497}, 25505, 25508, 25510, 11318 25515, 25519, {f: 2, c: 25521}, {f: 2, c: 25525}, 25529, 25531, 25533, 11319 25535, {f: 3, c: 25537}, 25541, {f: 2, c: 25543}, {f: 3, c: 25546}, 25553, 11320 {f: 3, c: 25555}, {f: 3, c: 25559}, {f: 3, c: 25563}, 25567, 25570, 11321 {f: 5, c: 25572}, {f: 2, c: 25579}, {f: 3, c: 25583}, 25587, 25589, 25591, 11322 {f: 4, c: 25593}, 25598, {f: 2, c: 25603}, {f: 5, c: 25606}, 25614, 11323 {f: 2, c: 25617}, {f: 2, c: 25621}, {f: 3, c: 25624}, 25629, 25631, 11324 {f: 4, c: 25634}, {f: 3, c: 25639}, 25643, {f: 6, c: 25646}, 25653, 11325 {f: 3, c: 25655}, {f: 2, c: 25659}, 25662, 25664, {f: 2, c: 25666}, 25673, 11326 {f: 6, c: 25675}, 25683, {f: 3, c: 25685}, {f: 3, c: 25689}, 25693, 11327 {f: 7, c: 25696}, 25704, {f: 3, c: 25706}, 25710, {f: 3, c: 25712}, 11328 {f: 2, c: 25716}, 25719, {f: 6, c: 25724}, 25731, 25734, {f: 8, c: 25737}, 11329 25748, {f: 2, c: 25751}, {f: 4, c: 25754}, {f: 3, c: 25760}, 11330 {f: 3, c: 25766}, 25770, 25775, 25777, 25780, 25782, 25785, 25789, 25795, 11331 25798, {f: 2, c: 25800}, 25804, 25807, 25809, 25811, {f: 2, c: 25813}, 11332 25817, {f: 3, c: 25819}, 25823, 25825, 25827, 25829, {f: 5, c: 25831}, 11333 {f: 2, c: 25837}, 25843, {f: 2, c: 25845}, {f: 2, c: 25848}, 25853, 25855, 11334 {f: 3, c: 25857}, 25861, {f: 2, c: 25863}, {f: 5, c: 25866}, 11335 {f: 2, c: 25872}, 25875, 25877, 25879, 25882, 25884, {f: 4, c: 25886}, 11336 {f: 4, c: 25894}, 25901, {f: 4, c: 25904}, 25911, 25914, {f: 2, c: 25916}, 11337 {f: 5, c: 25920}, {f: 2, c: 25926}, {f: 2, c: 25930}, {f: 2, c: 25933}, 11338 25936, {f: 3, c: 25938}, 25944, 25946, 25948, {f: 3, c: 25951}, 11339 {f: 2, c: 25956}, {f: 4, c: 25959}, {f: 3, c: 25965}, 25969, 25971, 25974, 11340 {f: 9, c: 25977}, {f: 3, c: 25988}, {f: 3, c: 25992}, {f: 3, c: 25997}, 11341 26002, 26004, 26006, 26008, 26010, {f: 2, c: 26013}, 26016, 11342 {f: 2, c: 26018}, 26022, 26024, 26026, 26030, {f: 6, c: 26033}, 26040, 11343 {f: 2, c: 26042}, {f: 3, c: 26046}, 26050, {f: 4, c: 26055}, 26061, 11344 {f: 2, c: 26064}, {f: 3, c: 26067}, {f: 8, c: 26072}, 26081, 11345 {f: 2, c: 26083}, {f: 2, c: 26090}, {f: 4, c: 26098}, {f: 2, c: 26104}, 11346 {f: 5, c: 26107}, 26113, {f: 2, c: 26116}, {f: 3, c: 26119}, 26123, 26125, 11347 {f: 3, c: 26128}, {f: 3, c: 26134}, {f: 3, c: 26138}, 26142, 11348 {f: 4, c: 26145}, 26150, {f: 4, c: 26153}, 26158, 26160, {f: 2, c: 26162}, 11349 {f: 5, c: 26167}, 26173, {f: 2, c: 26175}, {f: 7, c: 26180}, 11350 {f: 2, c: 26189}, {f: 2, c: 26192}, {f: 2, c: 26200}, {f: 2, c: 26203}, 11351 26206, 26208, {f: 2, c: 26210}, 26213, 26215, {f: 5, c: 26217}, 11352 {f: 3, c: 26225}, 26229, {f: 2, c: 26232}, {f: 3, c: 26235}, 11353 {f: 3, c: 26239}, 26243, {f: 2, c: 26245}, {f: 2, c: 26250}, 11354 {f: 4, c: 26253}, {f: 4, c: 26258}, {f: 5, c: 26264}, {f: 4, c: 26270}, 11355 {f: 4, c: 26275}, {f: 2, c: 26281}, {f: 2, c: 26284}, {f: 5, c: 26287}, 11356 {f: 4, c: 26293}, {f: 4, c: 26298}, {f: 5, c: 26303}, 26309, 26312, 11357 {f: 12, c: 26314}, {f: 2, c: 26327}, 26330, {f: 2, c: 26334}, 11358 {f: 5, c: 26337}, {f: 2, c: 26343}, {f: 2, c: 26346}, {f: 3, c: 26349}, 11359 26353, {f: 2, c: 26357}, {f: 2, c: 26362}, 26365, {f: 2, c: 26369}, 11360 {f: 4, c: 26372}, 26380, {f: 2, c: 26382}, {f: 3, c: 26385}, 26390, 11361 {f: 3, c: 26392}, 26396, 26398, {f: 6, c: 26400}, 26409, 26414, 26416, 11362 {f: 2, c: 26418}, {f: 4, c: 26422}, {f: 2, c: 26427}, {f: 2, c: 26430}, 11363 26433, {f: 2, c: 26436}, 26439, {f: 2, c: 26442}, 26445, 26450, 11364 {f: 2, c: 26452}, {f: 5, c: 26455}, 26461, {f: 3, c: 26466}, 11365 {f: 2, c: 26470}, {f: 2, c: 26475}, 26478, 26484, 26486, {f: 4, c: 26488}, 11366 26493, 26496, {f: 2, c: 26498}, {f: 2, c: 26501}, 26504, 26506, 11367 {f: 4, c: 26508}, {f: 4, c: 26513}, 26518, 26521, 26523, {f: 3, c: 26527}, 11368 26532, 26534, 26537, 26540, 26542, {f: 2, c: 26545}, 26548, 11369 {f: 8, c: 26553}, 26562, {f: 10, c: 26565}, {f: 3, c: 26581}, 26587, 26591, 11370 26593, {f: 2, c: 26595}, {f: 3, c: 26598}, {f: 2, c: 26602}, 11371 {f: 2, c: 26605}, 26610, {f: 8, c: 26613}, 26622, {f: 4, c: 26625}, 26630, 11372 26637, 26640, 26642, {f: 2, c: 26644}, {f: 5, c: 26648}, {f: 3, c: 26654}, 11373 {f: 7, c: 26658}, {f: 7, c: 26667}, {f: 3, c: 26676}, {f: 2, c: 26682}, 11374 26687, 26695, 26699, 26701, 26703, 26706, {f: 10, c: 26710}, 26730, 11375 {f: 8, c: 26732}, 26741, {f: 9, c: 26744}, 26754, 26756, {f: 8, c: 26759}, 11376 {f: 3, c: 26768}, {f: 3, c: 26772}, {f: 4, c: 26777}, 26782, 11377 {f: 2, c: 26784}, {f: 3, c: 26787}, {f: 4, c: 26793}, 26798, 11378 {f: 2, c: 26801}, 26804, {f: 10, c: 26806}, 26817, {f: 6, c: 26819}, 26826, 11379 26828, {f: 4, c: 26830}, {f: 2, c: 26835}, 26841, {f: 4, c: 26843}, 11380 {f: 2, c: 26849}, {f: 3, c: 26852}, {f: 6, c: 26856}, 26863, 11381 {f: 3, c: 26866}, {f: 3, c: 26870}, 26875, {f: 4, c: 26877}, 11382 {f: 3, c: 26882}, {f: 5, c: 26886}, 26892, 26897, {f: 12, c: 26899}, 11383 {f: 3, c: 26913}, {f: 8, c: 26917}, {f: 2, c: 26926}, {f: 3, c: 26929}, 11384 {f: 4, c: 26933}, {f: 3, c: 26938}, 26942, {f: 2, c: 26944}, 11385 {f: 7, c: 26947}, {f: 8, c: 26955}, {f: 2, c: 26965}, {f: 2, c: 26968}, 11386 {f: 2, c: 26971}, 26975, {f: 2, c: 26977}, {f: 2, c: 26980}, 26983, 11387 {f: 2, c: 26985}, 26988, {f: 2, c: 26991}, {f: 3, c: 26994}, 26998, 11388 {f: 2, c: 27002}, {f: 3, c: 27005}, 27009, 27011, 27013, {f: 3, c: 27018}, 11389 {f: 6, c: 27022}, {f: 2, c: 27030}, {f: 2, c: 27033}, {f: 10, c: 27037}, 11390 27049, 27052, {f: 2, c: 27055}, {f: 2, c: 27058}, {f: 2, c: 27061}, 11391 {f: 3, c: 27064}, {f: 3, c: 27068}, 27072, {f: 8, c: 27074}, 27087, 11392 {f: 3, c: 27089}, {f: 6, c: 27093}, {f: 3, c: 27100}, {f: 6, c: 27105}, 11393 {f: 5, c: 27112}, {f: 4, c: 27118}, {f: 9, c: 27124}, 27134, 27136, 11394 {f: 2, c: 27139}, {f: 4, c: 27142}, {f: 8, c: 27147}, {f: 3, c: 27156}, 11395 {f: 4, c: 27162}, 27168, 27170, {f: 4, c: 27172}, 27177, {f: 4, c: 27179}, 11396 27184, {f: 3, c: 27186}, {f: 2, c: 27190}, {f: 2, c: 27195}, 11397 {f: 5, c: 27199}, {f: 2, c: 27205}, {f: 2, c: 27209}, {f: 4, c: 27212}, 11398 {f: 7, c: 27217}, 27226, {f: 3, c: 27228}, 27232, {f: 2, c: 27235}, 11399 {f: 11, c: 27238}, {f: 7, c: 27250}, {f: 2, c: 27258}, {f: 3, c: 27261}, 11400 {f: 3, c: 27265}, {f: 4, c: 27269}, {f: 4, c: 27274}, 27279, 11401 {f: 2, c: 27282}, {f: 2, c: 27285}, {f: 4, c: 27288}, {f: 3, c: 27293}, 11402 27297, {f: 5, c: 27300}, 27306, {f: 2, c: 27309}, {f: 3, c: 27312}, 11403 {f: 4, c: 27316}, {f: 2, c: 27321}, {f: 7, c: 27324}, {f: 15, c: 27332}, 11404 {f: 6, c: 27348}, 27356, {f: 7, c: 27360}, 27369, 27371, {f: 6, c: 27373}, 11405 {f: 4, c: 27380}, {f: 2, c: 27385}, {f: 8, c: 27388}, {f: 5, c: 27397}, 11406 {f: 4, c: 27403}, {f: 2, c: 27408}, {f: 3, c: 27411}, {f: 7, c: 27415}, 11407 27423, {f: 2, c: 27429}, {f: 10, c: 27432}, {f: 4, c: 27443}, 27448, 11408 {f: 2, c: 27451}, {f: 4, c: 27455}, {f: 2, c: 27460}, 27464, 11409 {f: 2, c: 27466}, {f: 3, c: 27469}, {f: 8, c: 27473}, {f: 5, c: 27482}, 11410 27488, {f: 2, c: 27496}, {f: 7, c: 27499}, {f: 4, c: 27507}, 27514, 11411 {f: 4, c: 27517}, 27525, 27528, 27532, {f: 4, c: 27534}, {f: 2, c: 27540}, 11412 27543, 27545, {f: 2, c: 27548}, {f: 2, c: 27551}, {f: 2, c: 27554}, 11413 {f: 5, c: 27557}, {f: 2, c: 27564}, {f: 2, c: 27568}, 27574, 11414 {f: 2, c: 27576}, {f: 3, c: 27580}, 27584, {f: 2, c: 27587}, 11415 {f: 4, c: 27591}, 27596, 27598, {f: 2, c: 27600}, 27608, 27610, 11416 {f: 5, c: 27612}, {f: 8, c: 27618}, {f: 3, c: 27628}, {f: 3, c: 27632}, 11417 27636, {f: 3, c: 27638}, {f: 3, c: 27642}, 27646, {f: 5, c: 27648}, 11418 {f: 3, c: 27657}, 27662, 27666, 27671, {f: 3, c: 27676}, 27680, 27685, 11419 27693, 27697, 27699, {f: 2, c: 27702}, {f: 4, c: 27705}, {f: 2, c: 27710}, 11420 {f: 3, c: 27715}, 27720, {f: 5, c: 27723}, {f: 3, c: 27729}, 27734, 11421 {f: 3, c: 27736}, {f: 2, c: 27746}, {f: 3, c: 27749}, {f: 5, c: 27755}, 11422 27761, 27763, 27765, {f: 2, c: 27767}, {f: 3, c: 27770}, {f: 2, c: 27775}, 11423 27780, 27783, {f: 2, c: 27786}, {f: 2, c: 27789}, {f: 2, c: 27793}, 11424 {f: 4, c: 27797}, 27802, {f: 3, c: 27804}, 27808, 27810, 27816, 27820, 11425 {f: 2, c: 27823}, {f: 4, c: 27828}, 27834, {f: 4, c: 27840}, 11426 {f: 3, c: 27846}, 27851, {f: 3, c: 27853}, {f: 2, c: 27857}, 11427 {f: 3, c: 27864}, {f: 2, c: 27868}, 27871, 27876, {f: 2, c: 27878}, 27881, 11428 {f: 2, c: 27884}, 27890, 27892, 27897, {f: 2, c: 27903}, {f: 2, c: 27906}, 11429 {f: 2, c: 27909}, {f: 3, c: 27912}, 27917, {f: 3, c: 27919}, 11430 {f: 4, c: 27923}, 27928, {f: 2, c: 27932}, {f: 6, c: 27935}, 27942, 11431 {f: 2, c: 27944}, {f: 2, c: 27948}, {f: 2, c: 27951}, 27956, 11432 {f: 3, c: 27958}, 27962, {f: 2, c: 27967}, 27970, 27972, 27977, 27980, 11433 27984, {f: 4, c: 27989}, 27995, 27997, 27999, {f: 2, c: 28001}, 11434 {f: 2, c: 28004}, {f: 2, c: 28007}, {f: 3, c: 28011}, {f: 4, c: 28016}, 11435 {f: 2, c: 28021}, {f: 2, c: 28026}, {f: 5, c: 28029}, {f: 2, c: 28035}, 11436 28038, {f: 2, c: 28042}, 28045, {f: 2, c: 28047}, 28050, {f: 5, c: 28054}, 11437 28060, 28066, 28069, {f: 2, c: 28076}, {f: 2, c: 28080}, {f: 2, c: 28083}, 11438 {f: 2, c: 28086}, {f: 6, c: 28089}, {f: 3, c: 28097}, {f: 3, c: 28104}, 11439 {f: 4, c: 28109}, {f: 4, c: 28114}, 28119, {f: 3, c: 28122}, 28127, 11440 {f: 2, c: 28130}, 28133, {f: 3, c: 28135}, 28141, {f: 2, c: 28143}, 28146, 11441 28148, 28152, {f: 8, c: 28157}, {f: 4, c: 28166}, 28171, 28175, 11442 {f: 2, c: 28178}, 28181, {f: 2, c: 28184}, {f: 2, c: 28187}, 11443 {f: 2, c: 28190}, 28194, {f: 2, c: 28199}, 28202, 28206, {f: 2, c: 28208}, 11444 28211, {f: 3, c: 28213}, 28217, {f: 3, c: 28219}, {f: 4, c: 28223}, 11445 {f: 8, c: 28229}, {f: 4, c: 28239}, 28245, 28247, {f: 2, c: 28249}, 11446 {f: 2, c: 28252}, {f: 11, c: 28256}, {f: 2, c: 28268}, {f: 14, c: 28272}, 11447 {f: 3, c: 28288}, 28292, {f: 2, c: 28295}, {f: 5, c: 28298}, 11448 {f: 5, c: 28305}, 28311, {f: 3, c: 28313}, 28318, {f: 2, c: 28320}, 11449 {f: 2, c: 28323}, 28326, {f: 2, c: 28328}, {f: 4, c: 28331}, 28336, 28339, 11450 28341, {f: 2, c: 28344}, 28348, {f: 3, c: 28350}, 28355, 28358, 11451 {f: 3, c: 28360}, 28365, 28368, 28370, 28374, {f: 2, c: 28376}, 11452 {f: 3, c: 28379}, 28387, 28391, {f: 2, c: 28394}, {f: 2, c: 28397}, 11453 {f: 2, c: 28400}, 28403, {f: 2, c: 28405}, {f: 5, c: 28410}, 28416, 11454 {f: 3, c: 28419}, {f: 2, c: 28423}, {f: 5, c: 28426}, {f: 3, c: 28432}, 11455 {f: 4, c: 28438}, {f: 5, c: 28443}, 28449, {f: 4, c: 28453}, 28462, 28464, 11456 {f: 2, c: 28468}, 28471, {f: 5, c: 28473}, 28480, {f: 4, c: 28482}, 11457 {f: 3, c: 28488}, 28492, {f: 3, c: 28494}, {f: 2, c: 28498}, 11458 {f: 3, c: 28501}, {f: 2, c: 28506}, 28509, {f: 3, c: 28511}, 28515, 28517, 11459 {f: 6, c: 28519}, 28529, 28531, {f: 2, c: 28533}, 28537, 28539, 11460 {f: 2, c: 28541}, {f: 3, c: 28545}, 28549, {f: 2, c: 28554}, 11461 {f: 8, c: 28559}, {f: 4, c: 28568}, {f: 3, c: 28573}, {f: 2, c: 28578}, 11462 {f: 2, c: 28581}, 28584, {f: 4, c: 28586}, {f: 2, c: 28591}, 28594, 11463 {f: 2, c: 28596}, {f: 2, c: 28599}, {f: 6, c: 28602}, {f: 5, c: 28612}, 11464 {f: 7, c: 28618}, {f: 2, c: 28627}, {f: 2, c: 28630}, {f: 2, c: 28633}, 11465 {f: 2, c: 28636}, {f: 2, c: 28642}, {f: 6, c: 28645}, {f: 2, c: 28652}, 11466 {f: 8, c: 28658}, 28667, 28669, {f: 6, c: 28671}, {f: 2, c: 28679}, 28682, 11467 {f: 3, c: 28684}, 28688, {f: 3, c: 28690}, {f: 2, c: 28694}, 28697, 28700, 11468 28702, {f: 2, c: 28705}, {f: 3, c: 28708}, {f: 7, c: 28713}, 28721, 11469 {f: 2, c: 28723}, {f: 3, c: 28726}, {f: 4, c: 28730}, {f: 4, c: 28735}, 11470 {f: 7, c: 28741}, {f: 2, c: 28749}, 28752, {f: 3, c: 28754}, 11471 {f: 2, c: 28758}, {f: 4, c: 28761}, {f: 4, c: 28767}, {f: 2, c: 28773}, 11472 {f: 3, c: 28776}, 28782, {f: 4, c: 28785}, 28791, {f: 3, c: 28793}, 28797, 11473 {f: 4, c: 28801}, {f: 3, c: 28806}, {f: 3, c: 28811}, {f: 3, c: 28815}, 11474 28819, {f: 2, c: 28823}, {f: 2, c: 28826}, {f: 13, c: 28830}, 28848, 28850, 11475 {f: 3, c: 28852}, 28858, {f: 2, c: 28862}, {f: 4, c: 28868}, 28873, 11476 {f: 4, c: 28875}, {f: 8, c: 28880}, 28890, {f: 3, c: 28892}, 11477 {f: 4, c: 28896}, 28901, 28906, 28910, {f: 4, c: 28912}, {f: 2, c: 28917}, 11478 28920, {f: 3, c: 28922}, {f: 11, c: 28926}, {f: 5, c: 28939}, 11479 {f: 2, c: 28945}, 28948, 28951, {f: 6, c: 28955}, {f: 4, c: 28962}, 11480 {f: 8, c: 28967}, {f: 4, c: 28978}, {f: 14, c: 28983}, {f: 3, c: 28998}, 11481 29003, 29005, {f: 3, c: 29007}, {f: 9, c: 29011}, 29021, {f: 3, c: 29023}, 11482 29027, 29029, {f: 2, c: 29034}, 29037, {f: 3, c: 29039}, {f: 4, c: 29044}, 11483 29049, {f: 2, c: 29051}, {f: 6, c: 29054}, {f: 5, c: 29061}, 11484 {f: 4, c: 29067}, {f: 2, c: 29072}, 29075, {f: 2, c: 29077}, 11485 {f: 5, c: 29082}, {f: 7, c: 29089}, {f: 3, c: 29097}, {f: 4, c: 29101}, 11486 29106, 29108, {f: 3, c: 29110}, {f: 4, c: 29114}, {f: 2, c: 29119}, 29122, 11487 {f: 4, c: 29124}, {f: 5, c: 29129}, {f: 3, c: 29135}, 29139, 11488 {f: 3, c: 29142}, {f: 2, c: 29146}, {f: 2, c: 29149}, {f: 4, c: 29153}, 11489 {f: 5, c: 29160}, {f: 5, c: 29167}, {f: 4, c: 29173}, {f: 2, c: 29178}, 11490 29181, {f: 7, c: 29183}, {f: 6, c: 29191}, {f: 2, c: 29198}, 11491 {f: 10, c: 29201}, 29212, {f: 10, c: 29214}, 29225, 29227, 11492 {f: 3, c: 29229}, {f: 2, c: 29235}, 29244, {f: 7, c: 29248}, 11493 {f: 3, c: 29257}, {f: 4, c: 29262}, {f: 3, c: 29267}, 29271, 29274, 29276, 11494 29278, 29280, {f: 3, c: 29283}, 29288, {f: 4, c: 29290}, {f: 2, c: 29296}, 11495 {f: 2, c: 29299}, {f: 3, c: 29302}, {f: 2, c: 29307}, {f: 2, c: 29314}, 11496 {f: 5, c: 29317}, 29324, 29326, {f: 2, c: 29328}, {f: 3, c: 29331}, 11497 {f: 8, c: 29335}, {f: 2, c: 29344}, {f: 4, c: 29347}, {f: 4, c: 29352}, 11498 29358, {f: 3, c: 29361}, 29365, {f: 6, c: 29370}, {f: 3, c: 29381}, 11499 {f: 4, c: 29385}, 29391, 29393, {f: 4, c: 29395}, 29400, {f: 4, c: 29402}, 11500 29407, {f: 6, c: 29410}, {f: 2, c: 29418}, {f: 2, c: 29429}, 11501 {f: 3, c: 29438}, 29442, {f: 6, c: 29444}, {f: 3, c: 29451}, 11502 {f: 4, c: 29455}, 29460, {f: 3, c: 29464}, {f: 2, c: 29471}, 11503 {f: 2, c: 29475}, {f: 3, c: 29478}, 29485, {f: 2, c: 29487}, 11504 {f: 2, c: 29490}, 29493, 29498, {f: 2, c: 29500}, 29504, {f: 2, c: 29506}, 11505 {f: 7, c: 29510}, {f: 2, c: 29518}, 29521, {f: 4, c: 29523}, 11506 {f: 8, c: 29528}, {f: 7, c: 29537}, 29545, 29550, 29553, {f: 2, c: 29555}, 11507 29558, 29561, 29565, 29567, {f: 3, c: 29569}, {f: 2, c: 29573}, 29576, 11508 29578, {f: 2, c: 29580}, {f: 2, c: 29583}, {f: 4, c: 29586}, 11509 {f: 4, c: 29591}, {f: 3, c: 29596}, {f: 2, c: 29600}, {f: 6, c: 29603}, 11510 29610, {f: 2, c: 29612}, 29617, {f: 3, c: 29620}, {f: 2, c: 29624}, 11511 {f: 4, c: 29628}, 29633, {f: 5, c: 29635}, {f: 2, c: 29643}, 29646, 11512 {f: 7, c: 29650}, {f: 4, c: 29658}, 29663, {f: 4, c: 29665}, 29670, 29672, 11513 {f: 3, c: 29674}, {f: 4, c: 29678}, {f: 11, c: 29683}, {f: 4, c: 29695}, 11514 29700, {f: 2, c: 29703}, {f: 4, c: 29707}, {f: 9, c: 29713}, 11515 {f: 6, c: 29724}, {f: 2, c: 29731}, 29735, 29737, 29739, 29741, 29743, 11516 {f: 2, c: 29745}, {f: 5, c: 29751}, {f: 2, c: 29757}, 29760, 11517 {f: 9, c: 29762}, {f: 9, c: 29772}, 29782, 29784, 29789, {f: 3, c: 29792}, 11518 {f: 5, c: 29796}, {f: 2, c: 29803}, {f: 2, c: 29806}, {f: 5, c: 29809}, 11519 {f: 6, c: 29816}, 29823, 29826, {f: 3, c: 29828}, 29832, 29834, 11520 {f: 2, c: 29836}, 29839, {f: 11, c: 29841}, 29853, {f: 4, c: 29855}, 11521 {f: 2, c: 29860}, {f: 6, c: 29866}, {f: 9, c: 29873}, {f: 2, c: 29883}, 11522 {f: 12, c: 29886}, {f: 4, c: 29899}, {f: 2, c: 29904}, 29907, 11523 {f: 5, c: 29909}, 29915, 29917, 29919, 29921, 29925, {f: 7, c: 29927}, 11524 {f: 4, c: 29936}, 29941, {f: 7, c: 29944}, {f: 4, c: 29952}, 11525 {f: 7, c: 29957}, 29966, 29968, 29970, {f: 4, c: 29972}, 29979, 11526 {f: 2, c: 29981}, {f: 3, c: 29984}, 29988, {f: 2, c: 29990}, 29994, 29998, 11527 30004, 30006, 30009, {f: 2, c: 30012}, 30015, {f: 4, c: 30017}, 11528 {f: 2, c: 30022}, {f: 2, c: 30025}, 30029, {f: 4, c: 30032}, 11529 {f: 4, c: 30037}, {f: 4, c: 30046}, {f: 2, c: 30051}, {f: 3, c: 30055}, 11530 {f: 6, c: 30060}, 30067, 30069, 30071, {f: 5, c: 30074}, {f: 3, c: 30080}, 11531 {f: 2, c: 30084}, {f: 3, c: 30088}, {f: 3, c: 30092}, 30096, 30099, 30101, 11532 30104, {f: 2, c: 30107}, 30110, 30114, {f: 5, c: 30118}, 30125, 11533 {f: 2, c: 30134}, {f: 2, c: 30138}, {f: 3, c: 30143}, 30150, 11534 {f: 2, c: 30155}, {f: 4, c: 30158}, 30163, 30167, 30170, {f: 2, c: 30172}, 11535 {f: 3, c: 30175}, 30181, 30185, {f: 4, c: 30188}, {f: 2, c: 30194}, 11536 {f: 4, c: 30197}, {f: 2, c: 30202}, {f: 2, c: 30205}, 30212, 11537 {f: 4, c: 30214}, {f: 2, c: 30222}, {f: 4, c: 30225}, 30230, 30234, 11538 {f: 2, c: 30236}, 30243, 30248, 30252, {f: 2, c: 30254}, {f: 2, c: 30257}, 11539 {f: 2, c: 30262}, {f: 2, c: 30265}, 30269, 30273, {f: 2, c: 30276}, 30280, 11540 {f: 2, c: 30282}, {f: 6, c: 30286}, 30293, 30295, {f: 3, c: 30297}, 30301, 11541 {f: 2, c: 30304}, 30310, 30312, 30314, {f: 3, c: 30323}, [12136, 30326], 11542 30327, {f: 2, c: 30329}, {f: 3, c: 30335}, 30339, 30341, {f: 2, c: 30345}, 11543 {f: 2, c: 30348}, {f: 2, c: 30351}, 30354, {f: 2, c: 30356}, 11544 {f: 2, c: 30359}, {f: 9, c: 30363}, {f: 9, c: 30373}, {f: 2, c: 30383}, 11545 30387, {f: 3, c: 30389}, 30393, {f: 4, c: 30395}, {f: 2, c: 30400}, 11546 {f: 2, c: 30403}, 30407, 30409, {f: 2, c: 30411}, 30419, 30421, 11547 {f: 2, c: 30425}, {f: 2, c: 30428}, 30432, 30434, 30438, {f: 6, c: 30440}, 11548 30448, 30451, {f: 3, c: 30453}, {f: 2, c: 30458}, 30461, {f: 2, c: 30463}, 11549 {f: 2, c: 30466}, {f: 2, c: 30469}, 30474, 30476, {f: 11, c: 30478}, 11550 {f: 4, c: 30491}, 30497, {f: 3, c: 30499}, 30503, {f: 3, c: 30506}, 30510, 11551 {f: 5, c: 30512}, 30521, 30523, {f: 3, c: 30525}, 30530, {f: 3, c: 30532}, 11552 {f: 7, c: 30536}, {f: 8, c: 30546}, {f: 2, c: 30556}, {f: 2, c: 30559}, 11553 30564, 30567, {f: 2, c: 30569}, {f: 12, c: 30573}, {f: 3, c: 30586}, 11554 {f: 3, c: 30593}, {f: 6, c: 30598}, {f: 2, c: 30607}, {f: 5, c: 30611}, 11555 {f: 5, c: 30617}, 30625, {f: 2, c: 30627}, 30630, 30632, 30635, 11556 {f: 2, c: 30638}, {f: 2, c: 30641}, 30644, {f: 5, c: 30646}, 30654, 11557 {f: 7, c: 30656}, {f: 5, c: 30664}, {f: 9, c: 30670}, {f: 2, c: 30680}, 11558 {f: 5, c: 30685}, 30692, 30694, 30696, 30698, {f: 3, c: 30704}, 11559 {f: 2, c: 30708}, 30711, {f: 4, c: 30713}, {f: 6, c: 30723}, 11560 {f: 2, c: 30730}, {f: 3, c: 30734}, 30739, 30741, 30745, 30747, 30750, 11561 {f: 3, c: 30752}, 30756, 30760, {f: 2, c: 30762}, {f: 2, c: 30766}, 11562 {f: 3, c: 30769}, {f: 2, c: 30773}, 30781, 30783, {f: 2, c: 30785}, 30788, 11563 30790, {f: 4, c: 30792}, 30797, 30799, 30801, {f: 2, c: 30803}, 11564 {f: 5, c: 30808}, {f: 6, c: 30814}, {f: 3, c: 30821}, 30825, 11565 {f: 7, c: 30832}, {f: 4, c: 30840}, {f: 10, c: 30845}, 30856, 11566 {f: 2, c: 30858}, {f: 2, c: 30863}, 30866, {f: 3, c: 30868}, 30873, 11567 {f: 2, c: 30877}, 30880, 30882, 30884, 30886, 30888, {f: 3, c: 30890}, 11568 {f: 2, c: 30894}, {f: 3, c: 30901}, 30907, 30909, {f: 2, c: 30911}, 11569 {f: 3, c: 30914}, {f: 3, c: 30918}, {f: 4, c: 30924}, {f: 3, c: 30929}, 11570 {f: 3, c: 30934}, {f: 8, c: 30939}, {f: 3, c: 30948}, {f: 3, c: 30953}, 11571 {f: 2, c: 30957}, {f: 2, c: 30960}, 30963, {f: 2, c: 30965}, 11572 {f: 2, c: 30968}, {f: 2, c: 30971}, {f: 3, c: 30974}, {f: 3, c: 30978}, 11573 {f: 8, c: 30982}, {f: 4, c: 30991}, {f: 5, c: 30996}, {f: 4, c: 31002}, 11574 {f: 5, c: 31007}, 31013, {f: 3, c: 31015}, {f: 4, c: 31021}, 11575 {f: 2, c: 31026}, {f: 5, c: 31029}, 31037, 31039, {f: 4, c: 31042}, 31047, 11576 {f: 9, c: 31050}, {f: 2, c: 31060}, {f: 2, c: 31064}, 31073, 11577 {f: 2, c: 31075}, 31078, {f: 4, c: 31081}, 31086, {f: 7, c: 31088}, 31097, 11578 {f: 5, c: 31099}, {f: 2, c: 31106}, {f: 4, c: 31110}, {f: 2, c: 31115}, 11579 {f: 10, c: 31120}, {f: 11, c: 31131}, {f: 2, c: 31144}, {f: 3, c: 31147}, 11580 31151, 31154, {f: 4, c: 31156}, [12145, 31160], 31164, 31167, 31170, 11581 {f: 2, c: 31172}, {f: 2, c: 31175}, 31178, 31180, {f: 3, c: 31182}, 11582 {f: 2, c: 31187}, {f: 2, c: 31190}, {f: 6, c: 31193}, {f: 3, c: 31200}, 11583 31205, 31208, 31210, 31212, 31214, {f: 7, c: 31217}, {f: 2, c: 31225}, 11584 31228, {f: 2, c: 31230}, 31233, {f: 2, c: 31236}, {f: 4, c: 31239}, 31244, 11585 {f: 5, c: 31247}, {f: 2, c: 31253}, {f: 2, c: 31256}, {f: 3, c: 31259}, 11586 31263, {f: 2, c: 31265}, {f: 10, c: 31268}, {f: 2, c: 31279}, 31282, 11587 {f: 3, c: 31284}, 31288, 31290, 31294, {f: 5, c: 31297}, {f: 5, c: 31303}, 11588 {f: 2, c: 31311}, {f: 5, c: 31314}, {f: 9, c: 31320}, {f: 6, c: 31331}, 11589 31338, {f: 4, c: 31340}, {f: 3, c: 31345}, 31349, {f: 4, c: 31355}, 31362, 11590 31365, 31367, {f: 4, c: 31369}, {f: 3, c: 31374}, {f: 2, c: 31379}, 11591 {f: 3, c: 31385}, 31390, {f: 4, c: 31393}, 31399, 31403, {f: 4, c: 31407}, 11592 {f: 2, c: 31412}, {f: 3, c: 31415}, {f: 4, c: 31419}, {f: 4, c: 31424}, 11593 31430, 31433, {f: 10, c: 31436}, {f: 2, c: 31447}, {f: 4, c: 31450}, 11594 {f: 2, c: 31457}, 31460, {f: 3, c: 31463}, {f: 2, c: 31467}, 31470, 11595 {f: 6, c: 31472}, {f: 2, c: 31479}, {f: 2, c: 31483}, 31486, 11596 {f: 3, c: 31488}, 31493, 31495, 31497, {f: 3, c: 31500}, 31504, 11597 {f: 2, c: 31506}, {f: 3, c: 31510}, 31514, {f: 2, c: 31516}, 31519, 11598 {f: 3, c: 31521}, 31527, 31529, 31533, {f: 2, c: 31535}, 31538, 11599 {f: 4, c: 31540}, 31545, 31547, 31549, {f: 6, c: 31551}, 31560, 31562, 11600 {f: 2, c: 31565}, 31571, 31573, 31575, 31577, 31580, {f: 2, c: 31582}, 11601 31585, {f: 4, c: 31587}, {f: 6, c: 31592}, {f: 2, c: 31599}, 11602 {f: 2, c: 31603}, 31606, 31608, 31610, {f: 2, c: 31612}, 31615, 11603 {f: 4, c: 31617}, {f: 5, c: 31622}, 31628, {f: 2, c: 31630}, 11604 {f: 3, c: 31633}, 31638, {f: 4, c: 31640}, {f: 3, c: 31646}, 11605 {f: 3, c: 31651}, {f: 3, c: 31662}, {f: 2, c: 31666}, {f: 3, c: 31669}, 11606 {f: 7, c: 31673}, {f: 2, c: 31682}, 31685, 31688, 31690, {f: 4, c: 31693}, 11607 31698, {f: 5, c: 31700}, {f: 2, c: 31707}, {f: 3, c: 31710}, 11608 {f: 2, c: 31714}, {f: 2, c: 31719}, {f: 3, c: 31723}, {f: 2, c: 31727}, 11609 31730, {f: 3, c: 31732}, {f: 4, c: 31736}, 31741, 31743, {f: 6, c: 31745}, 11610 {f: 3, c: 31752}, 31758, {f: 6, c: 31760}, {f: 7, c: 31767}, 31776, 31778, 11611 {f: 2, c: 31780}, {f: 2, c: 31784}, {f: 12, c: 31788}, {f: 4, c: 31801}, 11612 31810, {f: 8, c: 31812}, {f: 14, c: 31822}, {f: 2, c: 31837}, 11613 {f: 3, c: 31841}, {f: 4, c: 31845}, 31851, 31853, {f: 3, c: 31855}, 11614 {f: 6, c: 31861}, {f: 11, c: 31870}, {f: 7, c: 31882}, {f: 2, c: 31891}, 11615 31894, {f: 3, c: 31897}, {f: 2, c: 31904}, 31907, {f: 4, c: 31910}, 11616 {f: 3, c: 31915}, {f: 2, c: 31919}, {f: 5, c: 31924}, {f: 2, c: 31930}, 11617 {f: 2, c: 31935}, {f: 3, c: 31938}, 31942, 31945, 31947, {f: 7, c: 31950}, 11618 31960, {f: 2, c: 31962}, {f: 6, c: 31969}, {f: 6, c: 31977}, 31985, 31987, 11619 31989, 31991, 31994, {f: 2, c: 31996}, 31999, 32001, 32003, 32012, 11620 {f: 2, c: 32014}, {f: 2, c: 32017}, 32022, 32024, {f: 3, c: 32029}, 11621 {f: 4, c: 32035}, {f: 3, c: 32040}, {f: 3, c: 32044}, {f: 5, c: 32052}, 11622 32059, {f: 2, c: 32061}, 32065, 32067, 32069, {f: 7, c: 32071}, 32079, 11623 {f: 12, c: 32081}, {f: 2, c: 32095}, {f: 3, c: 32099}, 32103, 11624 {f: 5, c: 32105}, {f: 2, c: 32111}, {f: 2, c: 32116}, 32120, 11625 {f: 7, c: 32122}, 32130, {f: 2, c: 32132}, 32135, {f: 5, c: 32138}, 11626 {f: 3, c: 32144}, {f: 8, c: 32148}, 32157, {f: 3, c: 32159}, 11627 {f: 2, c: 32164}, {f: 4, c: 32167}, 32175, {f: 3, c: 32181}, 32188, 11628 {f: 4, c: 32192}, {f: 2, c: 32197}, {f: 2, c: 32200}, {f: 5, c: 32204}, 11629 32211, {f: 2, c: 32213}, {f: 3, c: 32218}, 32223, 32226, {f: 2, c: 32228}, 11630 32231, {f: 2, c: 32234}, {f: 2, c: 32237}, 32240, 32243, 32245, 11631 {f: 2, c: 32247}, 32250, {f: 12, c: 32252}, {f: 4, c: 32268}, 11632 {f: 9, c: 32274}, 32284, {f: 3, c: 32288}, {f: 3, c: 32292}, 11633 {f: 3, c: 32296}, 32300, {f: 2, c: 32303}, 32307, 32312, 32314, 32316, 11634 {f: 2, c: 32319}, {f: 3, c: 32322}, {f: 10, c: 32328}, 32339, 11635 {f: 4, c: 32342}, {f: 3, c: 32347}, {f: 3, c: 32351}, {f: 6, c: 32355}, 11636 32364, {f: 2, c: 32369}, {f: 5, c: 32372}, {f: 2, c: 32378}, 11637 {f: 3, c: 32383}, {f: 5, c: 32387}, 32393, 32395, 32398, {f: 3, c: 32400}, 11638 32405, 32407, {f: 2, c: 32409}, {f: 2, c: 32413}, 32430, 32436, 11639 {f: 2, c: 32443}, 32470, 32484, 32492, 32505, 32522, 32528, 32542, 32567, 11640 32569, {f: 7, c: 32571}, 32579, {f: 6, c: 32582}, 32589, 32591, 11641 {f: 2, c: 32594}, 32598, 32601, {f: 4, c: 32603}, 32608, {f: 5, c: 32611}, 11642 {f: 3, c: 32619}, 32623, 32627, {f: 2, c: 32629}, 32632, {f: 4, c: 32634}, 11643 {f: 2, c: 32639}, {f: 3, c: 32642}, 32647, 32649, 32651, 32653, 11644 {f: 5, c: 32655}, {f: 5, c: 32661}, {f: 2, c: 32667}, 32672, 11645 {f: 2, c: 32674}, 32678, 32680, {f: 5, c: 32682}, 32689, {f: 5, c: 32691}, 11646 {f: 2, c: 32698}, 32702, 32704, {f: 3, c: 32706}, {f: 4, c: 32710}, 32715, 11647 32717, {f: 3, c: 32719}, 32723, {f: 2, c: 32726}, {f: 6, c: 32729}, 11648 {f: 3, c: 32738}, {f: 2, c: 32743}, {f: 4, c: 32746}, 32751, 32754, 11649 {f: 5, c: 32756}, 32762, {f: 3, c: 32765}, 32770, {f: 4, c: 32775}, 11650 {f: 2, c: 32782}, 32785, 32787, {f: 2, c: 32794}, {f: 3, c: 32797}, 32801, 11651 {f: 2, c: 32803}, 32811, 32813, {f: 2, c: 32815}, 32818, 32820, 11652 {f: 2, c: 32825}, 32828, 32830, {f: 2, c: 32832}, {f: 2, c: 32836}, 11653 {f: 3, c: 32839}, {f: 4, c: 32846}, 32851, 32853, 32855, 32857, 11654 {f: 3, c: 32859}, {f: 10, c: 32863}, {f: 4, c: 32875}, 32884, 32888, 11655 {f: 3, c: 32890}, {f: 2, c: 32897}, 32904, 32906, {f: 6, c: 32909}, 11656 {f: 2, c: 32916}, 32919, 32921, 32926, 32931, {f: 3, c: 32934}, 32940, 11657 32944, 32947, {f: 2, c: 32949}, {f: 2, c: 32952}, 32955, 32965, 11658 {f: 5, c: 32967}, {f: 7, c: 32975}, 32984, {f: 2, c: 32991}, 11659 {f: 2, c: 32994}, 32998, 33006, 33013, 33015, 33017, 33019, 11660 {f: 4, c: 33022}, {f: 2, c: 33027}, {f: 2, c: 33031}, {f: 2, c: 33035}, 11661 33045, 33047, 33049, {f: 2, c: 33052}, {f: 13, c: 33055}, {f: 2, c: 33069}, 11662 33072, {f: 3, c: 33075}, 33079, {f: 4, c: 33082}, {f: 7, c: 33087}, 33095, 11663 33097, 33101, 33103, 33106, {f: 2, c: 33111}, {f: 5, c: 33115}, 11664 {f: 3, c: 33122}, 33128, 33130, 33132, 33135, {f: 2, c: 33138}, 11665 {f: 3, c: 33141}, 33153, {f: 5, c: 33155}, 33161, {f: 4, c: 33163}, 33168, 11666 {f: 6, c: 33170}, 33177, {f: 2, c: 33182}, {f: 2, c: 33185}, 11667 {f: 2, c: 33188}, 33191, {f: 8, c: 33195}, {f: 6, c: 33204}, 33212, 11668 {f: 2, c: 33220}, {f: 2, c: 33223}, 33227, 33230, {f: 8, c: 33232}, 33241, 11669 {f: 4, c: 33243}, {f: 2, c: 33249}, {f: 3, c: 33252}, 33257, 33259, 11670 {f: 5, c: 33262}, {f: 5, c: 33269}, 33277, 33279, 33283, 33291, 11671 {f: 2, c: 33294}, 33297, 33299, {f: 6, c: 33301}, 33309, 33312, 11672 {f: 4, c: 33316}, 33321, 33326, 33330, 33338, {f: 2, c: 33340}, 11673 {f: 5, c: 33343}, {f: 2, c: 33349}, 33352, 33354, {f: 3, c: 33356}, 11674 {f: 8, c: 33360}, {f: 4, c: 33371}, {f: 4, c: 33376}, 33381, 33383, 11675 {f: 2, c: 33385}, {f: 2, c: 33388}, {f: 2, c: 33397}, [12171, 33400], 11676 {f: 2, c: 33403}, {f: 2, c: 33408}, 33411, {f: 3, c: 33413}, 33417, 33420, 11677 33424, {f: 4, c: 33427}, {f: 2, c: 33434}, 33438, 33440, {f: 2, c: 33442}, 11678 33447, 33458, {f: 2, c: 33461}, 33466, 33468, {f: 2, c: 33471}, 11679 {f: 2, c: 33474}, {f: 2, c: 33477}, 33481, 33488, 33494, {f: 2, c: 33497}, 11680 33501, 33506, {f: 3, c: 33512}, {f: 3, c: 33516}, 33520, {f: 2, c: 33522}, 11681 {f: 2, c: 33525}, 33528, 33530, {f: 5, c: 33532}, {f: 2, c: 33546}, 33549, 11682 33552, {f: 2, c: 33554}, 33558, {f: 2, c: 33560}, {f: 10, c: 33565}, 11683 {f: 2, c: 33577}, 33582, 33584, 33586, 33591, 33595, {f: 3, c: 33597}, 11684 {f: 2, c: 33601}, {f: 2, c: 33604}, 33608, {f: 5, c: 33610}, 33619, 11685 {f: 5, c: 33621}, 33629, 33634, {f: 7, c: 33648}, {f: 2, c: 33657}, 11686 {f: 7, c: 33662}, {f: 2, c: 33671}, {f: 3, c: 33675}, {f: 3, c: 33679}, 11687 {f: 2, c: 33684}, 33687, {f: 2, c: 33689}, 33693, 33695, 33697, 11688 {f: 4, c: 33699}, {f: 4, c: 33708}, 33717, 33723, {f: 2, c: 33726}, 11689 {f: 3, c: 33730}, 33734, {f: 2, c: 33736}, 33739, {f: 2, c: 33741}, 11690 {f: 4, c: 33744}, 33749, 33751, {f: 3, c: 33753}, 33758, {f: 3, c: 33762}, 11691 {f: 3, c: 33766}, {f: 4, c: 33771}, {f: 5, c: 33779}, {f: 3, c: 33786}, 11692 {f: 3, c: 33790}, 33794, 33797, {f: 2, c: 33800}, 33808, {f: 6, c: 33810}, 11693 {f: 3, c: 33817}, {f: 6, c: 33822}, {f: 3, c: 33833}, {f: 4, c: 33837}, 11694 {f: 3, c: 33842}, {f: 2, c: 33846}, {f: 3, c: 33849}, {f: 8, c: 33854}, 11695 {f: 2, c: 33863}, {f: 7, c: 33866}, {f: 4, c: 33875}, 33880, 11696 {f: 4, c: 33885}, 33890, 33893, {f: 2, c: 33895}, 33898, 33902, 33904, 11697 33906, 33908, 33913, {f: 7, c: 33915}, {f: 4, c: 33923}, 33930, 33933, 11698 {f: 4, c: 33935}, {f: 2, c: 33941}, 33944, {f: 2, c: 33946}, 11699 {f: 4, c: 33949}, {f: 13, c: 33954}, {f: 2, c: 33968}, 33971, 11700 {f: 3, c: 33973}, 33979, 33982, {f: 2, c: 33986}, {f: 4, c: 33989}, 33996, 11701 {f: 2, c: 33998}, 34002, {f: 2, c: 34004}, {f: 6, c: 34007}, 34014, 11702 {f: 2, c: 34017}, 34020, {f: 5, c: 34023}, 34029, {f: 11, c: 34033}, 34046, 11703 {f: 12, c: 34048}, {f: 4, c: 34061}, 34066, {f: 2, c: 34069}, 11704 {f: 2, c: 34072}, {f: 3, c: 34075}, 34080, 34082, {f: 2, c: 34084}, 11705 {f: 4, c: 34087}, {f: 9, c: 34094}, {f: 3, c: 34110}, 34114, 11706 {f: 2, c: 34116}, 34119, {f: 3, c: 34123}, {f: 3, c: 34127}, 34132, 34135, 11707 {f: 4, c: 34138}, {f: 3, c: 34143}, 34147, {f: 3, c: 34149}, 11708 {f: 2, c: 34155}, {f: 4, c: 34158}, 34163, {f: 2, c: 34165}, 34168, 11709 {f: 2, c: 34172}, {f: 5, c: 34175}, 34182, 34185, 34187, {f: 2, c: 34189}, 11710 34192, {f: 2, c: 34194}, {f: 6, c: 34197}, {f: 2, c: 34205}, 11711 {f: 4, c: 34208}, 34213, 34215, {f: 3, c: 34219}, {f: 6, c: 34225}, 34232, 11712 {f: 6, c: 34235}, {f: 7, c: 34242}, {f: 3, c: 34250}, {f: 2, c: 34257}, 11713 34260, {f: 6, c: 34262}, {f: 6, c: 34270}, {f: 3, c: 34278}, 11714 {f: 9, c: 34283}, 34293, {f: 2, c: 34295}, {f: 3, c: 34300}, 11715 {f: 4, c: 34304}, {f: 3, c: 34312}, {f: 5, c: 34316}, {f: 4, c: 34322}, 11716 {f: 3, c: 34327}, {f: 3, c: 34331}, {f: 3, c: 34335}, {f: 4, c: 34339}, 11717 34344, {f: 3, c: 34346}, {f: 10, c: 34350}, 34361, 34363, {f: 2, c: 34365}, 11718 {f: 13, c: 34368}, {f: 2, c: 34386}, {f: 4, c: 34390}, 34395, 34397, 11719 {f: 2, c: 34400}, {f: 4, c: 34403}, {f: 3, c: 34408}, 34413, 11720 {f: 2, c: 34415}, {f: 7, c: 34418}, {f: 7, c: 34435}, {f: 5, c: 34446}, 11721 34452, {f: 6, c: 34454}, {f: 5, c: 34462}, {f: 2, c: 34469}, 34475, 11722 {f: 2, c: 34477}, {f: 2, c: 34482}, {f: 3, c: 34487}, {f: 5, c: 34491}, 11723 {f: 3, c: 34497}, 34501, 34504, {f: 2, c: 34508}, {f: 2, c: 34514}, 11724 {f: 3, c: 34517}, 34522, {f: 2, c: 34524}, {f: 4, c: 34528}, 11725 {f: 4, c: 34533}, {f: 3, c: 34538}, 34543, {f: 3, c: 34549}, 11726 {f: 3, c: 34555}, 34559, 34561, {f: 2, c: 34564}, {f: 2, c: 34571}, 11727 {f: 4, c: 34574}, 34580, 34582, 34585, 34587, 34589, {f: 2, c: 34591}, 11728 34596, {f: 3, c: 34598}, {f: 4, c: 34602}, {f: 2, c: 34607}, 11729 {f: 2, c: 34610}, {f: 2, c: 34613}, {f: 3, c: 34616}, {f: 2, c: 34620}, 11730 {f: 7, c: 34624}, {f: 2, c: 34634}, 34637, {f: 4, c: 34639}, 34644, 34646, 11731 34648, {f: 6, c: 34650}, {f: 2, c: 34657}, {f: 7, c: 34663}, 34671, 11732 {f: 3, c: 34673}, 34677, 34679, {f: 2, c: 34681}, {f: 3, c: 34687}, 11733 {f: 2, c: 34694}, {f: 2, c: 34697}, 34700, {f: 5, c: 34702}, 11734 {f: 3, c: 34708}, {f: 6, c: 34712}, {f: 2, c: 34720}, {f: 5, c: 34723}, 11735 {f: 2, c: 34729}, 34734, {f: 3, c: 34736}, 34740, {f: 4, c: 34742}, 34748, 11736 {f: 2, c: 34750}, {f: 3, c: 34753}, 34757, 34759, 34761, {f: 2, c: 34764}, 11737 {f: 2, c: 34767}, {f: 7, c: 34772}, {f: 4, c: 34780}, {f: 2, c: 34785}, 11738 34788, {f: 4, c: 34790}, 34795, 34797, {f: 2, c: 34800}, {f: 3, c: 34803}, 11739 {f: 2, c: 34807}, 34810, {f: 2, c: 34812}, {f: 4, c: 34815}, 34820, 11740 {f: 3, c: 34823}, {f: 5, c: 34827}, 34834, 34836, {f: 4, c: 34839}, 11741 {f: 3, c: 34844}, 34848, {f: 13, c: 34852}, {f: 3, c: 34867}, 11742 {f: 2, c: 34871}, 34874, {f: 3, c: 34877}, {f: 3, c: 34881}, 11743 {f: 3, c: 34887}, 34891, {f: 5, c: 34894}, {f: 2, c: 34901}, 34904, 34906, 11744 34908, {f: 3, c: 34910}, {f: 2, c: 34918}, 34922, 34925, 34927, 34929, 11745 {f: 4, c: 34931}, 34936, {f: 3, c: 34938}, 34944, 34947, {f: 2, c: 34950}, 11746 {f: 2, c: 34953}, 34956, {f: 4, c: 34958}, {f: 3, c: 34963}, 11747 {f: 5, c: 34967}, {f: 5, c: 34973}, 34979, {f: 6, c: 34981}, 34988, 11748 {f: 3, c: 34990}, {f: 5, c: 34994}, {f: 4, c: 35000}, {f: 4, c: 35005}, 11749 {f: 2, c: 35011}, {f: 2, c: 35015}, {f: 3, c: 35019}, {f: 2, c: 35024}, 11750 35027, {f: 2, c: 35030}, {f: 2, c: 35034}, 35038, {f: 2, c: 35040}, 11751 {f: 2, c: 35046}, {f: 7, c: 35049}, 35058, {f: 3, c: 35061}, 11752 {f: 2, c: 35066}, {f: 3, c: 35071}, {f: 4, c: 35075}, {f: 2, c: 35080}, 11753 {f: 5, c: 35083}, 35089, {f: 5, c: 35092}, {f: 5, c: 35100}, 11754 {f: 3, c: 35106}, {f: 4, c: 35110}, {f: 4, c: 35116}, 35121, 35125, 35127, 11755 {f: 2, c: 35129}, {f: 5, c: 35132}, {f: 2, c: 35138}, {f: 2, c: 35141}, 11756 {f: 14, c: 35144}, {f: 6, c: 35159}, {f: 3, c: 35169}, 35173, 11757 {f: 3, c: 35175}, 35179, {f: 2, c: 35181}, {f: 2, c: 35184}, 11758 {f: 8, c: 35187}, {f: 2, c: 35196}, [12177, 35198], 35200, 35202, 11759 {f: 2, c: 35204}, {f: 4, c: 35207}, {f: 3, c: 35212}, {f: 3, c: 35216}, 11760 {f: 2, c: 35220}, 35223, {f: 8, c: 35225}, {f: 4, c: 35234}, 11761 {f: 3, c: 35239}, 35243, {f: 2, c: 35245}, {f: 2, c: 35248}, 11762 {f: 4, c: 35251}, {f: 2, c: 35256}, {f: 2, c: 35259}, 35262, 35267, 35277, 11763 {f: 3, c: 35283}, {f: 3, c: 35287}, 35291, 35293, {f: 4, c: 35295}, 35300, 11764 {f: 4, c: 35303}, {f: 3, c: 35308}, {f: 3, c: 35312}, 35317, 35319, 11765 {f: 7, c: 35321}, {f: 3, c: 35332}, 35337, 35339, 35341, 35343, 11766 {f: 2, c: 35345}, 35348, 35351, {f: 2, c: 35353}, 35356, 35358, 11767 {f: 3, c: 35360}, 35364, {f: 4, c: 35366}, {f: 2, c: 35371}, 11768 {f: 3, c: 35374}, {f: 2, c: 35378}, 35381, {f: 3, c: 35383}, 11769 {f: 3, c: 35387}, {f: 2, c: 35391}, {f: 4, c: 35394}, 35399, 11770 {f: 5, c: 35401}, 35407, 35409, 35411, {f: 2, c: 35414}, {f: 2, c: 35417}, 11771 {f: 2, c: 35420}, {f: 2, c: 35423}, {f: 2, c: 35428}, {f: 2, c: 35431}, 11772 35434, 35439, 35444, {f: 3, c: 35446}, {f: 2, c: 35450}, {f: 2, c: 35453}, 11773 {f: 4, c: 35456}, 35464, {f: 2, c: 35467}, {f: 3, c: 35470}, 35476, 11774 {f: 2, c: 35478}, 35481, {f: 3, c: 35483}, 35487, 35490, 35495, 11775 {f: 3, c: 35497}, {f: 3, c: 35501}, 35505, {f: 3, c: 35507}, 11776 {f: 2, c: 35511}, {f: 2, c: 35514}, {f: 2, c: 35517}, {f: 2, c: 35520}, 11777 35523, {f: 2, c: 35525}, 35528, 35530, 35532, 35534, 35536, 11778 {f: 3, c: 35539}, {f: 3, c: 35544}, 35549, {f: 3, c: 35551}, 35555, 35557, 11779 {f: 3, c: 35560}, 35564, {f: 2, c: 35567}, 35570, {f: 2, c: 35572}, 35577, 11780 35579, 35581, 35583, 35587, 35590, {f: 2, c: 35592}, {f: 3, c: 35595}, 11781 35599, {f: 3, c: 35601}, 35605, 35608, 35612, {f: 3, c: 35614}, 11782 {f: 4, c: 35618}, 35623, {f: 2, c: 35625}, {f: 5, c: 35630}, 11783 {f: 5, c: 35636}, {f: 4, c: 35642}, {f: 10, c: 35647}, {f: 4, c: 35658}, 11784 {f: 6, c: 35664}, 35671, 35675, {f: 9, c: 35677}, {f: 4, c: 35687}, 11785 {f: 2, c: 35693}, {f: 3, c: 35697}, {f: 2, c: 35701}, {f: 5, c: 35704}, 11786 {f: 2, c: 35710}, {f: 9, c: 35713}, {f: 3, c: 35723}, {f: 3, c: 35727}, 11787 35732, {f: 5, c: 35735}, 35741, 35743, 35756, 35761, 35771, 35783, 35792, 11788 35818, 35849, 35870, {f: 9, c: 35896}, {f: 4, c: 35906}, {f: 2, c: 35914}, 11789 {f: 3, c: 35917}, {f: 4, c: 35921}, {f: 4, c: 35926}, {f: 6, c: 35931}, 11790 {f: 7, c: 35939}, {f: 7, c: 35948}, {f: 4, c: 35956}, {f: 7, c: 35963}, 11791 {f: 2, c: 35971}, {f: 3, c: 35974}, 35979, {f: 7, c: 35981}, 11792 {f: 3, c: 35989}, {f: 4, c: 35993}, 35999, {f: 4, c: 36003}, 11793 {f: 2, c: 36013}, 36017, 36021, 36025, 36030, 36038, 36041, 11794 {f: 6, c: 36043}, 36052, {f: 4, c: 36054}, 36059, 36061, 36063, 36069, 11795 {f: 2, c: 36072}, {f: 6, c: 36078}, {f: 5, c: 36085}, {f: 5, c: 36095}, 11796 {f: 2, c: 36102}, 36105, 36108, 36110, {f: 5, c: 36113}, {f: 4, c: 36119}, 11797 36128, {f: 2, c: 36177}, 36183, 36191, 36197, {f: 3, c: 36200}, 36204, 11798 {f: 2, c: 36206}, {f: 2, c: 36209}, {f: 9, c: 36216}, {f: 2, c: 36226}, 11799 {f: 4, c: 36230}, {f: 5, c: 36236}, {f: 2, c: 36242}, {f: 3, c: 36246}, 11800 {f: 5, c: 36250}, {f: 3, c: 36256}, {f: 4, c: 36260}, {f: 8, c: 36265}, 11801 {f: 2, c: 36278}, 36281, 36283, 36285, {f: 3, c: 36288}, 36293, 11802 {f: 4, c: 36295}, 36301, 36304, {f: 4, c: 36306}, {f: 2, c: 36312}, 36316, 11803 {f: 3, c: 36320}, {f: 3, c: 36325}, 36329, {f: 2, c: 36333}, 11804 {f: 3, c: 36336}, 36340, 36342, 36348, {f: 7, c: 36350}, {f: 3, c: 36358}, 11805 36363, {f: 2, c: 36365}, {f: 3, c: 36369}, {f: 8, c: 36373}, 11806 {f: 2, c: 36384}, {f: 5, c: 36388}, 36395, 36397, 36400, {f: 2, c: 36402}, 11807 {f: 3, c: 36406}, {f: 2, c: 36411}, {f: 2, c: 36414}, 36419, 11808 {f: 2, c: 36421}, {f: 4, c: 36429}, {f: 2, c: 36435}, {f: 3, c: 36438}, 11809 {f: 9, c: 36442}, {f: 2, c: 36452}, {f: 2, c: 36455}, {f: 2, c: 36458}, 11810 36462, 36465, 36467, 36469, {f: 3, c: 36471}, 36475, {f: 2, c: 36477}, 11811 36480, {f: 3, c: 36482}, 36486, 36488, 36492, 36494, {f: 5, c: 36501}, 11812 36507, 36509, {f: 2, c: 36511}, {f: 3, c: 36514}, {f: 3, c: 36519}, 11813 {f: 2, c: 36525}, {f: 2, c: 36528}, {f: 7, c: 36531}, {f: 5, c: 36539}, 11814 {f: 9, c: 36545}, {f: 3, c: 36559}, 36563, {f: 6, c: 36565}, 11815 {f: 3, c: 36572}, {f: 4, c: 36576}, {f: 6, c: 36581}, {f: 6, c: 36588}, 11816 {f: 5, c: 36595}, 36605, {f: 4, c: 36607}, 36612, 36614, 36616, 11817 {f: 7, c: 36619}, 36627, {f: 5, c: 36630}, {f: 5, c: 36640}, 11818 {f: 2, c: 36647}, {f: 4, c: 36651}, {f: 3, c: 36656}, {f: 4, c: 36660}, 11819 {f: 2, c: 36665}, {f: 2, c: 36668}, {f: 2, c: 36672}, 36675, 11820 {f: 2, c: 36679}, {f: 3, c: 36682}, {f: 5, c: 36687}, {f: 10, c: 36693}, 11821 36704, 36707, 36709, 36714, 36736, 36748, 36754, 36765, {f: 3, c: 36768}, 11822 {f: 2, c: 36772}, 36775, 36778, 36780, {f: 2, c: 36787}, [12193, 36789], 11823 {f: 2, c: 36791}, {f: 3, c: 36794}, {f: 2, c: 36799}, 36803, 36806, 11824 {f: 5, c: 36809}, 36815, 36818, {f: 2, c: 36822}, 36826, {f: 2, c: 36832}, 11825 36835, 36839, 36844, 36847, {f: 2, c: 36849}, {f: 2, c: 36853}, 11826 {f: 3, c: 36858}, {f: 2, c: 36862}, {f: 2, c: 36871}, 36876, 36878, 36883, 11827 36888, 36892, {f: 2, c: 36900}, {f: 6, c: 36903}, {f: 2, c: 36912}, 11828 {f: 2, c: 36915}, 36919, {f: 2, c: 36921}, 36925, {f: 2, c: 36927}, 36931, 11829 {f: 2, c: 36933}, {f: 3, c: 36936}, 36940, 36950, {f: 2, c: 36953}, 36957, 11830 36959, 36961, 36964, {f: 2, c: 36966}, {f: 3, c: 36970}, {f: 3, c: 36975}, 11831 36979, 36982, 36985, 36987, 36990, {f: 2, c: 36997}, 37001, 11832 {f: 3, c: 37004}, 37010, 37012, 37014, 37016, 37018, 37020, 11833 {f: 3, c: 37022}, {f: 2, c: 37028}, {f: 3, c: 37031}, 37035, 37037, 37042, 11834 37047, {f: 2, c: 37052}, {f: 2, c: 37055}, {f: 2, c: 37058}, 37062, 11835 {f: 2, c: 37064}, {f: 3, c: 37067}, 37074, {f: 3, c: 37076}, 11836 {f: 3, c: 37080}, 37086, 37088, {f: 3, c: 37091}, {f: 2, c: 37097}, 37100, 11837 37102, {f: 4, c: 37104}, {f: 2, c: 37110}, {f: 4, c: 37113}, 11838 {f: 3, c: 37119}, 37123, 37125, {f: 2, c: 37127}, {f: 8, c: 37130}, 37139, 11839 37141, {f: 2, c: 37143}, {f: 4, c: 37146}, {f: 3, c: 37151}, 11840 {f: 3, c: 37156}, {f: 5, c: 37160}, 37166, 37171, 37173, {f: 2, c: 37175}, 11841 {f: 8, c: 37179}, {f: 2, c: 37188}, 37191, 37201, {f: 4, c: 37203}, 11842 {f: 2, c: 37208}, {f: 2, c: 37211}, {f: 2, c: 37215}, {f: 3, c: 37222}, 11843 37227, 37229, 37235, {f: 3, c: 37242}, {f: 5, c: 37248}, 37254, 37256, 11844 37258, {f: 2, c: 37262}, {f: 3, c: 37267}, {f: 3, c: 37271}, 11845 {f: 5, c: 37277}, {f: 6, c: 37284}, {f: 4, c: 37296}, {f: 4, c: 37302}, 11846 {f: 5, c: 37307}, 37314, 37316, [12196, 37318], 37320, 37328, 37334, 11847 {f: 2, c: 37338}, {f: 5, c: 37342}, {f: 2, c: 37349}, 37352, 11848 {f: 11, c: 37354}, 37366, 37368, {f: 5, c: 37371}, {f: 2, c: 37378}, 11849 {f: 3, c: 37381}, {f: 3, c: 37386}, 37391, {f: 2, c: 37394}, 11850 {f: 8, c: 37398}, {f: 4, c: 37407}, 37412, {f: 6, c: 37416}, 37423, 11851 {f: 2, c: 37425}, {f: 2, c: 37429}, {f: 2, c: 37435}, {f: 4, c: 37441}, 11852 {f: 2, c: 37446}, {f: 3, c: 37450}, {f: 3, c: 37454}, {f: 3, c: 37458}, 11853 37462, {f: 2, c: 37464}, {f: 2, c: 37468}, {f: 3, c: 37471}, 11854 {f: 3, c: 37475}, {f: 5, c: 37479}, {f: 6, c: 37486}, {f: 3, c: 37493}, 11855 37497, {f: 3, c: 37500}, {f: 2, c: 37505}, 37508, {f: 8, c: 37510}, 11856 {f: 2, c: 37519}, 37522, {f: 2, c: 37524}, 37527, 37529, 37531, 11857 {f: 3, c: 37533}, {f: 2, c: 37537}, 37540, 37543, 37549, {f: 2, c: 37551}, 11858 {f: 5, c: 37554}, 37560, 37562, {f: 4, c: 37565}, 37570, 37572, 37574, 11859 {f: 3, c: 37577}, {f: 2, c: 37581}, {f: 2, c: 37584}, {f: 10, c: 37587}, 11860 37598, {f: 3, c: 37600}, 37607, 37609, {f: 2, c: 37611}, {f: 4, c: 37618}, 11861 37623, {f: 3, c: 37625}, {f: 4, c: 37629}, {f: 4, c: 37634}, 11862 {f: 7, c: 37641}, 37649, {f: 2, c: 37651}, {f: 2, c: 37654}, 11863 {f: 3, c: 37660}, 37665, {f: 3, c: 37667}, 37671, {f: 2, c: 37673}, 11864 {f: 2, c: 37676}, {f: 2, c: 37680}, {f: 2, c: 37684}, 37687, 11865 {f: 5, c: 37689}, 37695, 37698, {f: 2, c: 37700}, {f: 3, c: 37704}, 37708, 11866 {f: 6, c: 37710}, {f: 3, c: 37717}, {f: 2, c: 37721}, {f: 8, c: 37724}, 11867 {f: 3, c: 37734}, 37739, {f: 3, c: 37741}, {f: 4, c: 37745}, 11868 {f: 3, c: 37751}, {f: 3, c: 37755}, {f: 3, c: 37759}, 37763, 11869 {f: 2, c: 37765}, {f: 2, c: 37768}, {f: 4, c: 37771}, {f: 6, c: 37776}, 11870 37783, {f: 9, c: 37785}, {f: 2, c: 37796}, 37800, 37803, 37805, 37807, 11871 {f: 2, c: 37809}, 37812, {f: 2, c: 37814}, {f: 6, c: 37817}, 11872 {f: 3, c: 37824}, {f: 3, c: 37828}, 37833, 37835, {f: 3, c: 37838}, 11873 {f: 4, c: 37842}, {f: 3, c: 37849}, 37856, 37859, {f: 3, c: 37861}, 11874 {f: 12, c: 37865}, 37878, 37880, {f: 9, c: 37882}, {f: 7, c: 37892}, 11875 {f: 4, c: 37900}, 37905, {f: 3, c: 37909}, {f: 3, c: 37914}, 11876 {f: 2, c: 37918}, {f: 5, c: 37921}, {f: 5, c: 37929}, {f: 3, c: 37935}, 11877 37940, {f: 2, c: 37942}, 37945, {f: 3, c: 37947}, {f: 4, c: 37952}, 11878 {f: 5, c: 37957}, 37963, {f: 5, c: 37965}, 37971, {f: 11, c: 37973}, 11879 {f: 2, c: 37985}, 37988, {f: 5, c: 37990}, 37996, {f: 2, c: 37998}, 38001, 11880 {f: 4, c: 38003}, 38008, {f: 2, c: 38010}, {f: 5, c: 38016}, 38033, 38038, 11881 38040, 38087, 38095, {f: 2, c: 38099}, 38106, 38118, 38139, 38172, 38176, 11882 38183, 38195, 38205, 38211, 38216, 38219, 38229, 38234, 38240, 38254, 11883 {f: 2, c: 38260}, {f: 7, c: 38264}, 38273, {f: 2, c: 38276}, 11884 {f: 2, c: 38279}, 38282, 38285, 38288, 38290, {f: 3, c: 38293}, 11885 {f: 8, c: 38297}, 38306, {f: 2, c: 38310}, 38314, {f: 4, c: 38318}, 11886 {f: 3, c: 38323}, {f: 2, c: 38327}, 38330, {f: 3, c: 38336}, 11887 {f: 2, c: 38340}, 38343, 38345, {f: 3, c: 38349}, {f: 3, c: 38353}, 11888 {f: 5, c: 38359}, 38365, {f: 2, c: 38367}, {f: 2, c: 38371}, 11889 {f: 2, c: 38374}, 38380, 38399, 38407, 38419, 38424, 38427, 38430, 38432, 11890 {f: 7, c: 38435}, {f: 3, c: 38443}, {f: 2, c: 38447}, {f: 4, c: 38455}, 11891 38462, 38465, 38467, 38474, {f: 2, c: 38478}, {f: 3, c: 38481}, 11892 {f: 2, c: 38486}, {f: 2, c: 38489}, 38492, 38494, 38496, {f: 2, c: 38501}, 11893 38507, {f: 3, c: 38509}, 38513, {f: 4, c: 38521}, {f: 7, c: 38526}, 38535, 11894 38537, 38540, {f: 3, c: 38545}, 38550, 38554, {f: 10, c: 38557}, 38569, 11895 {f: 5, c: 38571}, 38578, 38581, 38583, 38586, 38591, {f: 2, c: 38594}, 11896 38600, {f: 2, c: 38602}, {f: 2, c: 38608}, {f: 2, c: 38611}, 11897 {f: 2, c: 38615}, 38618, {f: 3, c: 38621}, 38625, {f: 4, c: 38628}, 11898 {f: 4, c: 38635}, {f: 2, c: 38640}, {f: 2, c: 38644}, 38648, 38650, 11899 {f: 2, c: 38652}, 38655, {f: 2, c: 38658}, 38661, {f: 3, c: 38666}, 11900 {f: 3, c: 38672}, {f: 2, c: 38676}, {f: 5, c: 38679}, 38685, 11901 {f: 8, c: 38687}, {f: 2, c: 38696}, {f: 2, c: 38699}, {f: 2, c: 38702}, 11902 38705, {f: 5, c: 38707}, {f: 3, c: 38714}, {f: 3, c: 38719}, 38723, 11903 {f: 3, c: 38725}, {f: 8, c: 38729}, [12205, 38737], {f: 2, c: 38740}, 11904 {f: 2, c: 38743}, {f: 2, c: 38748}, 38751, {f: 2, c: 38755}, 11905 {f: 2, c: 38758}, {f: 9, c: 38762}, 38773, {f: 5, c: 38775}, 11906 {f: 8, c: 38781}, {f: 5, c: 38790}, 38796, 38798, 38800, 38803, 11907 {f: 3, c: 38805}, {f: 7, c: 38809}, {f: 2, c: 38817}, {f: 2, c: 38820}, 11908 {f: 4, c: 38823}, 38828, 38830, {f: 2, c: 38832}, 38835, {f: 8, c: 38837}, 11909 {f: 5, c: 38846}, {f: 2, c: 38852}, {f: 2, c: 38855}, 38858, 11910 {f: 6, c: 38861}, {f: 5, c: 38868}, {f: 2, c: 38874}, 38877, 11911 {f: 7, c: 38879}, 38888, {f: 5, c: 38894}, 38900, {f: 8, c: 38903}, 38912, 11912 38916, 38921, 38923, 38925, {f: 3, c: 38932}, {f: 3, c: 38937}, 11913 {f: 4, c: 38941}, {f: 2, c: 38946}, 38949, {f: 6, c: 38951}, 11914 {f: 2, c: 38958}, {f: 6, c: 38961}, {f: 2, c: 38969}, 38972, 11915 {f: 8, c: 38974}, {f: 5, c: 38983}, {f: 4, c: 38991}, {f: 3, c: 38997}, 11916 39002, {f: 2, c: 39004}, {f: 3, c: 39007}, {f: 2, c: 39011}, 39014, 11917 {f: 3, c: 39016}, {f: 2, c: 39021}, 39026, 39051, 39054, 39058, 39061, 11918 39065, 39075, {f: 5, c: 39081}, 39088, 39090, {f: 2, c: 39092}, 11919 {f: 5, c: 39095}, {f: 7, c: 39101}, 39109, 39111, {f: 5, c: 39113}, 11920 {f: 2, c: 39119}, 39124, {f: 2, c: 39126}, {f: 2, c: 39132}, 39137, 11921 {f: 4, c: 39139}, 39148, 39150, {f: 2, c: 39152}, 39155, {f: 7, c: 39157}, 11922 {f: 4, c: 39167}, 39172, {f: 3, c: 39174}, 39179, {f: 2, c: 39182}, 11923 {f: 4, c: 39188}, {f: 2, c: 39193}, {f: 2, c: 39196}, {f: 2, c: 39199}, 11924 {f: 6, c: 39202}, {f: 5, c: 39209}, {f: 4, c: 39215}, {f: 3, c: 39220}, 11925 {f: 4, c: 39224}, 39229, {f: 3, c: 39232}, 39236, {f: 2, c: 39238}, 11926 {f: 4, c: 39245}, 39251, 39254, {f: 4, c: 39256}, 39261, {f: 3, c: 39263}, 11927 39268, 39270, 39283, {f: 2, c: 39288}, 39291, 39294, {f: 2, c: 39298}, 11928 39305, 39308, 39310, {f: 11, c: 39322}, {f: 2, c: 39334}, {f: 3, c: 39337}, 11929 {f: 2, c: 39343}, 39346, {f: 12, c: 39349}, {f: 14, c: 39362}, 39379, 11930 {f: 2, c: 39382}, 39386, 39388, 39390, 39392, {f: 10, c: 39395}, 11931 {f: 3, c: 39406}, {f: 13, c: 39410}, 39424, {f: 3, c: 39426}, 11932 {f: 7, c: 39430}, {f: 6, c: 39440}, {f: 2, c: 39447}, {f: 17, c: 39450}, 11933 39468, 39471, {f: 5, c: 39473}, {f: 5, c: 39481}, 39487, {f: 4, c: 39494}, 11934 {f: 2, c: 39499}, 39502, {f: 5, c: 39504}, 39510, {f: 2, c: 39512}, 11935 {f: 3, c: 39516}, {f: 2, c: 39520}, 39523, {f: 4, c: 39526}, 39531, 39538, 11936 39555, 39561, {f: 2, c: 39565}, {f: 2, c: 39572}, 39577, 39590, 11937 {f: 6, c: 39593}, {f: 4, c: 39602}, 39609, 39611, {f: 3, c: 39613}, 11938 {f: 2, c: 39619}, {f: 5, c: 39622}, {f: 2, c: 39629}, 39632, 39639, 11939 {f: 6, c: 39641}, 39648, {f: 4, c: 39650}, {f: 4, c: 39655}, 39660, 11940 {f: 9, c: 39664}, 39674, {f: 7, c: 39676}, {f: 2, c: 39684}, 39687, 11941 {f: 4, c: 39689}, 39694, {f: 3, c: 39696}, {f: 6, c: 39700}, 11942 {f: 4, c: 39707}, {f: 2, c: 39712}, 39716, 39718, 39720, {f: 4, c: 39722}, 11943 39728, {f: 8, c: 39731}, {f: 4, c: 39741}, 39750, {f: 3, c: 39754}, 39760, 11944 {f: 2, c: 39762}, {f: 3, c: 39765}, 39769, {f: 20, c: 39771}, 11945 {f: 4, c: 39792}, {f: 2, c: 39797}, {f: 9, c: 39800}, 39810, 11946 {f: 10, c: 39812}, 39823, {f: 7, c: 39827}, {f: 2, c: 39835}, 11947 {f: 11, c: 39839}, 39852, {f: 17, c: 39855}, {f: 5, c: 39874}, 39880, 11948 {f: 9, c: 39883}, 39893, {f: 4, c: 39895}, 39900, {f: 3, c: 39902}, 39907, 11949 {f: 2, c: 39909}, 39913, {f: 4, c: 39916}, {f: 3, c: 39921}, 11950 {f: 8, c: 39925}, 39934, {f: 8, c: 39936}, {f: 3, c: 39946}, 11951 {f: 2, c: 39950}, 39953, {f: 12, c: 39956}, {f: 2, c: 39969}, 39972, 11952 {f: 2, c: 39974}, {f: 3, c: 39978}, {f: 3, c: 39982}, 39988, 39990, 39992, 11953 39994, {f: 2, c: 39996}, {f: 6, c: 39999}, {f: 2, c: 40006}, 11954 {f: 8, c: 40010}, 40019, 40021, {f: 4, c: 40025}, 40030, {f: 7, c: 40032}, 11955 {f: 5, c: 40040}, {f: 10, c: 40046}, 40057, 40059, {f: 2, c: 40061}, 40064, 11956 {f: 2, c: 40067}, {f: 2, c: 40073}, 40076, 40079, 40083, {f: 4, c: 40086}, 11957 40093, 40106, 40108, 40111, 40121, {f: 5, c: 40126}, {f: 2, c: 40136}, 11958 {f: 2, c: 40145}, {f: 2, c: 40154}, {f: 2, c: 40160}, {f: 2, c: 40163}, 11959 {f: 3, c: 40166}, {f: 2, c: 40170}, {f: 6, c: 40173}, 40181, 11960 {f: 15, c: 40183}, 40200, {f: 11, c: 40202}, {f: 5, c: 40214}, 40220, 11961 40222, {f: 3, c: 40224}, {f: 2, c: 40228}, 40231, {f: 6, c: 40233}, 11962 {f: 10, c: 40241}, {f: 3, c: 40252}, {f: 2, c: 40256}, {f: 14, c: 40259}, 11963 {f: 8, c: 40276}, {f: 2, c: 40286}, {f: 8, c: 40290}, 40299, 11964 {f: 2, c: 40301}, {f: 2, c: 40304}, {f: 20, c: 40307}, 40328, 11965 {f: 9, c: 40330}, {f: 4, c: 40340}, 40345, {f: 10, c: 40347}, 11966 {f: 3, c: 40358}, {f: 5, c: 40362}, {f: 4, c: 40368}, {f: 6, c: 40373}, 11967 {f: 3, c: 40381}, 40385, 40387, {f: 14, c: 40389}, {f: 3, c: 40404}, 40408, 11968 {f: 10, c: 40411}, {f: 8, c: 40423}, {f: 2, c: 40432}, {f: 4, c: 40436}, 11969 {f: 17, c: 40443}, {f: 8, c: 40461}, {f: 4, c: 40470}, 40476, 40484, 40487, 11970 40494, 40496, 40500, {f: 2, c: 40507}, 40512, 40525, 40528, 11971 {f: 3, c: 40530}, 40534, 40537, 40541, {f: 4, c: 40543}, 40549, 11972 {f: 2, c: 40558}, 40562, 40564, {f: 3, c: 40566}, 40571, {f: 2, c: 40576}, 11973 {f: 4, c: 40579}, {f: 2, c: 40585}, {f: 6, c: 40588}, {f: 3, c: 40596}, 11974 {f: 5, c: 40600}, 40606, {f: 5, c: 40608}, {f: 2, c: 40615}, 11975 {f: 5, c: 40618}, {f: 4, c: 40624}, {f: 2, c: 40630}, {f: 2, c: 40633}, 11976 40636, {f: 4, c: 40639}, [12232, 40643], {f: 4, c: 40645}, 11977 {f: 2, c: 40650}, 40656, {f: 2, c: 40658}, {f: 3, c: 40661}, 11978 {f: 2, c: 40665}, 40673, {f: 2, c: 40675}, 40678, {f: 4, c: 40683}, 11979 {f: 2, c: 40688}, 40691, {f: 2, c: 40693}, 40696, 40698, {f: 9, c: 40704}, 11980 40714, 40716, 40719, {f: 2, c: 40721}, 40724, 40726, 40728, 11981 {f: 6, c: 40730}, 40737, {f: 9, c: 40739}, {f: 2, c: 40749}, 11982 {f: 7, c: 40752}, 40760, 40762, 40764, {f: 5, c: 40767}, {f: 5, c: 40773}, 11983 {f: 3, c: 40780}, 40787, {f: 4, c: 40789}, {f: 2, c: 40794}, 11984 {f: 2, c: 40797}, 40802, {f: 2, c: 40804}, {f: 3, c: 40807}, 40811, 11985 {f: 5, c: 40813}, {f: 4, c: 40819}, {f: 7, c: 40824}, {f: 2, c: 40833}, 11986 {f: 2, c: 40846}, {f: 3, c: 40849}, {f: 3, c: 40854}, {f: 2, c: 40861}, 11987 {f: 5, c: 40865}, 63788, {f: 3, c: 64013}, 64017, {f: 2, c: 64019}, 64024, 11988 {f: 3, c: 64031}, {f: 2, c: 64035}, {f: 3, c: 64039}, 11905, 11989 [59414, 131207], [59415, 131209], [59416, 131276], 11908, 13427, 13383, 11990 11912, 11915, 59422, 13726, 13850, 13838, 11916, 11927, 14702, 14616, 11991 59430, 14799, 14815, 14963, 14800, {f: 2, c: 59435}, 15182, 15470, 15584, 11992 11943, [59441, 136663], 59442, 11946, 16470, 16735, 11950, 17207, 11955, 11993 {f: 2, c: 11958}, [59451, 141711], 17329, 17324, 11963, 17373, 17622, 11994 18017, 17996, [59459, 132361], 18211, 18217, 18300, 18317, 11978, 18759, 11995 18810, 18813, {f: 2, c: 18818}, {f: 2, c: 18821}, 18847, 18843, 18871, 11996 18870, [59476, 133533], [59477, 147966], 19619, {f: 3, c: 19615}, 19575, 11997 19618, {f: 7, c: 19731}, 19886, 59492, {s: 226}, 8364, 165, 0, 0, 12351, 11998 {s: 17}, 12436, {s: 14}, 12535, 12537, 12536, 12538, 0, {f: 3, c: 12339}, 11999 {f: 3, c: 12344}, {f: 3, c: 12586}, {f: 24, c: 12704}, 11904, 12000 {f: 2, c: 11906}, {f: 3, c: 11909}, {f: 2, c: 11913}, {f: 10, c: 11917}, 12001 {f: 2, c: 11928}, {f: 12, c: 11931}, {f: 2, c: 11944}, {f: 3, c: 11947}, 12002 {f: 4, c: 11951}, {f: 2, c: 11956}, {f: 3, c: 11960}, {f: 14, c: 11964}, 12003 {f: 41, c: 11979}, {f: 71, c: 13312}, {f: 43, c: 13384}, 12004 {f: 298, c: 13428}, {f: 111, c: 13727}, {f: 11, c: 13839}, 12005 {f: 765, c: 13851}, {f: 85, c: 14617}, {f: 96, c: 14703}, 12006 {f: 14, c: 14801}, {f: 147, c: 14816}, {f: 218, c: 14964}, 12007 {f: 287, c: 15183}, {f: 113, c: 15471}, {f: 885, c: 15585}, 12008 {f: 264, c: 16471}, {f: 471, c: 16736}, {f: 116, c: 17208}, 12009 {f: 4, c: 17325}, {f: 43, c: 17330}, {f: 248, c: 17374}, 12010 {f: 373, c: 17623}, {f: 20, c: 17997}, {f: 193, c: 18018}, 12011 {f: 5, c: 18212}, {f: 82, c: 18218}, {f: 16, c: 18301}, {f: 441, c: 18318}, 12012 {f: 50, c: 18760}, {f: 2, c: 18811}, {f: 4, c: 18814}, 18820, 12013 {f: 20, c: 18823}, {f: 3, c: 18844}, {f: 22, c: 18848}, {f: 703, c: 18872}, 12014 {f: 39, c: 19576}, {f: 111, c: 19620}, {f: 148, c: 19738}, 12015 {f: 7, c: 19887}] 12016 }; 12017 12018 12019 /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 12020 /* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ 12021 12022 'use strict'; 12023 12024 var ColorSpace = (function ColorSpaceClosure() { 12025 // Constructor should define this.numComps, this.defaultColor, this.name 12026 function ColorSpace() { 12027 error('should not call ColorSpace constructor'); 12028 } 12029 12030 ColorSpace.prototype = { 12031 // Input: array of size numComps representing color component values 12032 // Output: array of rgb values, each value ranging from [0.1] 12033 getRgb: function ColorSpace_getRgb(color) { 12034 error('Should not call ColorSpace.getRgb: ' + color); 12035 }, 12036 // Input: Uint8Array of component values, each value scaled to [0,255] 12037 // Output: Uint8Array of rgb values, each value scaled to [0,255] 12038 getRgbBuffer: function ColorSpace_getRgbBuffer(input) { 12039 error('Should not call ColorSpace.getRgbBuffer: ' + input); 12040 } 12041 }; 12042 12043 ColorSpace.parse = function ColorSpace_parse(cs, xref, res) { 12044 var IR = ColorSpace.parseToIR(cs, xref, res); 12045 if (IR instanceof AlternateCS) 12046 return IR; 12047 12048 return ColorSpace.fromIR(IR); 12049 }; 12050 12051 ColorSpace.fromIR = function ColorSpace_fromIR(IR) { 12052 var name = isArray(IR) ? IR[0] : IR; 12053 12054 switch (name) { 12055 case 'DeviceGrayCS': 12056 return new DeviceGrayCS(); 12057 case 'DeviceRgbCS': 12058 return new DeviceRgbCS(); 12059 case 'DeviceCmykCS': 12060 return new DeviceCmykCS(); 12061 case 'PatternCS': 12062 var basePatternCS = IR[1]; 12063 if (basePatternCS) 12064 basePatternCS = ColorSpace.fromIR(basePatternCS); 12065 return new PatternCS(basePatternCS); 12066 case 'IndexedCS': 12067 var baseIndexedCS = IR[1]; 12068 var hiVal = IR[2]; 12069 var lookup = IR[3]; 12070 return new IndexedCS(ColorSpace.fromIR(baseIndexedCS), hiVal, lookup); 12071 case 'AlternateCS': 12072 var numComps = IR[1]; 12073 var alt = IR[2]; 12074 var tintFnIR = IR[3]; 12075 12076 return new AlternateCS(numComps, ColorSpace.fromIR(alt), 12077 PDFFunction.fromIR(tintFnIR)); 12078 case 'LabCS': 12079 var whitePoint = IR[1].WhitePoint; 12080 var blackPoint = IR[1].BlackPoint; 12081 var range = IR[1].Range; 12082 return new LabCS(whitePoint, blackPoint, range); 12083 default: 12084 error('Unkown name ' + name); 12085 } 12086 return null; 12087 }; 12088 12089 ColorSpace.parseToIR = function ColorSpace_parseToIR(cs, xref, res) { 12090 if (isName(cs)) { 12091 var colorSpaces = res.get('ColorSpace'); 12092 if (isDict(colorSpaces)) { 12093 var refcs = colorSpaces.get(cs.name); 12094 if (refcs) 12095 cs = refcs; 12096 } 12097 } 12098 12099 cs = xref.fetchIfRef(cs); 12100 var mode; 12101 12102 if (isName(cs)) { 12103 mode = cs.name; 12104 this.mode = mode; 12105 12106 switch (mode) { 12107 case 'DeviceGray': 12108 case 'G': 12109 return 'DeviceGrayCS'; 12110 case 'DeviceRGB': 12111 case 'RGB': 12112 return 'DeviceRgbCS'; 12113 case 'DeviceCMYK': 12114 case 'CMYK': 12115 return 'DeviceCmykCS'; 12116 case 'Pattern': 12117 return ['PatternCS', null]; 12118 default: 12119 error('unrecognized colorspace ' + mode); 12120 } 12121 } else if (isArray(cs)) { 12122 mode = cs[0].name; 12123 this.mode = mode; 12124 12125 switch (mode) { 12126 case 'DeviceGray': 12127 case 'G': 12128 return 'DeviceGrayCS'; 12129 case 'DeviceRGB': 12130 case 'RGB': 12131 return 'DeviceRgbCS'; 12132 case 'DeviceCMYK': 12133 case 'CMYK': 12134 return 'DeviceCmykCS'; 12135 case 'CalGray': 12136 return 'DeviceGrayCS'; 12137 case 'CalRGB': 12138 return 'DeviceRgbCS'; 12139 case 'ICCBased': 12140 var stream = xref.fetchIfRef(cs[1]); 12141 var dict = stream.dict; 12142 var numComps = dict.get('N'); 12143 if (numComps == 1) 12144 return 'DeviceGrayCS'; 12145 if (numComps == 3) 12146 return 'DeviceRgbCS'; 12147 if (numComps == 4) 12148 return 'DeviceCmykCS'; 12149 break; 12150 case 'Pattern': 12151 var basePatternCS = cs[1]; 12152 if (basePatternCS) 12153 basePatternCS = ColorSpace.parseToIR(basePatternCS, xref, res); 12154 return ['PatternCS', basePatternCS]; 12155 case 'Indexed': 12156 case 'I': 12157 var baseIndexedCS = ColorSpace.parseToIR(cs[1], xref, res); 12158 var hiVal = cs[2] + 1; 12159 var lookup = xref.fetchIfRef(cs[3]); 12160 return ['IndexedCS', baseIndexedCS, hiVal, lookup]; 12161 case 'Separation': 12162 case 'DeviceN': 12163 var name = cs[1]; 12164 var numComps = 1; 12165 if (isName(name)) 12166 numComps = 1; 12167 else if (isArray(name)) 12168 numComps = name.length; 12169 var alt = ColorSpace.parseToIR(cs[2], xref, res); 12170 var tintFnIR = PDFFunction.getIR(xref, xref.fetchIfRef(cs[3])); 12171 return ['AlternateCS', numComps, alt, tintFnIR]; 12172 case 'Lab': 12173 var params = cs[1].getAll(); 12174 return ['LabCS', params]; 12175 default: 12176 error('unimplemented color space object "' + mode + '"'); 12177 } 12178 } else { 12179 error('unrecognized color space object: "' + cs + '"'); 12180 } 12181 return null; 12182 }; 12183 /** 12184 * Checks if a decode map matches the default decode map for a color space. 12185 * This handles the general decode maps where there are two values per 12186 * component. e.g. [0, 1, 0, 1, 0, 1] for a RGB color. 12187 * This does not handle Lab, Indexed, or Pattern decode maps since they are 12188 * slightly different. 12189 * @param {Array} decode Decode map (usually from an image). 12190 * @param {Number} n Number of components the color space has. 12191 */ 12192 ColorSpace.isDefaultDecode = function ColorSpace_isDefaultDecode(decode, n) { 12193 if (!decode) 12194 return true; 12195 12196 if (n * 2 !== decode.length) { 12197 warning('The decode map is not the correct length'); 12198 return true; 12199 } 12200 for (var i = 0, ii = decode.length; i < ii; i += 2) { 12201 if (decode[i] != 0 || decode[i + 1] != 1) 12202 return false; 12203 } 12204 return true; 12205 }; 12206 12207 return ColorSpace; 12208 })(); 12209 12210 /** 12211 * Alternate color space handles both Separation and DeviceN color spaces. A 12212 * Separation color space is actually just a DeviceN with one color component. 12213 * Both color spaces use a tinting function to convert colors to a base color 12214 * space. 12215 */ 12216 var AlternateCS = (function AlternateCSClosure() { 12217 function AlternateCS(numComps, base, tintFn) { 12218 this.name = 'Alternate'; 12219 this.numComps = numComps; 12220 this.defaultColor = []; 12221 for (var i = 0; i < numComps; ++i) 12222 this.defaultColor.push(1); 12223 this.base = base; 12224 this.tintFn = tintFn; 12225 } 12226 12227 AlternateCS.prototype = { 12228 getRgb: function AlternateCS_getRgb(color) { 12229 var tinted = this.tintFn(color); 12230 return this.base.getRgb(tinted); 12231 }, 12232 getRgbBuffer: function AlternateCS_getRgbBuffer(input, bits) { 12233 var tintFn = this.tintFn; 12234 var base = this.base; 12235 var scale = 1 / ((1 << bits) - 1); 12236 var length = input.length; 12237 var pos = 0; 12238 var baseNumComps = base.numComps; 12239 var baseBuf = new Uint8Array(baseNumComps * length); 12240 var numComps = this.numComps; 12241 var scaled = []; 12242 12243 for (var i = 0; i < length; i += numComps) { 12244 for (var z = 0; z < numComps; ++z) 12245 scaled[z] = input[i + z] * scale; 12246 12247 var tinted = tintFn(scaled); 12248 for (var j = 0; j < baseNumComps; ++j) 12249 baseBuf[pos++] = 255 * tinted[j]; 12250 } 12251 return base.getRgbBuffer(baseBuf, 8); 12252 }, 12253 isDefaultDecode: function AlternateCS_isDefaultDecode(decodeMap) { 12254 return ColorSpace.isDefaultDecode(decodeMap, this.numComps); 12255 } 12256 }; 12257 12258 return AlternateCS; 12259 })(); 12260 12261 var PatternCS = (function PatternCSClosure() { 12262 function PatternCS(baseCS) { 12263 this.name = 'Pattern'; 12264 this.base = baseCS; 12265 } 12266 PatternCS.prototype = {}; 12267 12268 return PatternCS; 12269 })(); 12270 12271 var IndexedCS = (function IndexedCSClosure() { 12272 function IndexedCS(base, highVal, lookup) { 12273 this.name = 'Indexed'; 12274 this.numComps = 1; 12275 this.defaultColor = [0]; 12276 this.base = base; 12277 this.highVal = highVal; 12278 12279 var baseNumComps = base.numComps; 12280 var length = baseNumComps * highVal; 12281 var lookupArray = new Uint8Array(length); 12282 12283 if (isStream(lookup)) { 12284 var bytes = lookup.getBytes(length); 12285 lookupArray.set(bytes); 12286 } else if (isString(lookup)) { 12287 for (var i = 0; i < length; ++i) 12288 lookupArray[i] = lookup.charCodeAt(i); 12289 } else { 12290 error('Unrecognized lookup table: ' + lookup); 12291 } 12292 this.lookup = lookupArray; 12293 } 12294 12295 IndexedCS.prototype = { 12296 getRgb: function IndexedCS_getRgb(color) { 12297 var numComps = this.base.numComps; 12298 var start = color[0] * numComps; 12299 var c = []; 12300 12301 for (var i = start, ii = start + numComps; i < ii; ++i) 12302 c.push(this.lookup[i]); 12303 12304 return this.base.getRgb(c); 12305 }, 12306 getRgbBuffer: function IndexedCS_getRgbBuffer(input) { 12307 var base = this.base; 12308 var numComps = base.numComps; 12309 var lookup = this.lookup; 12310 var length = input.length; 12311 var baseBuf = new Uint8Array(length * numComps); 12312 var baseBufPos = 0; 12313 12314 for (var i = 0; i < length; ++i) { 12315 var lookupPos = input[i] * numComps; 12316 for (var j = 0; j < numComps; ++j) { 12317 baseBuf[baseBufPos++] = lookup[lookupPos + j]; 12318 } 12319 } 12320 12321 return base.getRgbBuffer(baseBuf, 8); 12322 }, 12323 isDefaultDecode: function IndexedCS_isDefaultDecode(decodeMap) { 12324 // indexed color maps shouldn't be changed 12325 return true; 12326 } 12327 }; 12328 return IndexedCS; 12329 })(); 12330 12331 var DeviceGrayCS = (function DeviceGrayCSClosure() { 12332 function DeviceGrayCS() { 12333 this.name = 'DeviceGray'; 12334 this.numComps = 1; 12335 this.defaultColor = [0]; 12336 } 12337 12338 DeviceGrayCS.prototype = { 12339 getRgb: function DeviceGrayCS_getRgb(color) { 12340 var c = color[0]; 12341 return [c, c, c]; 12342 }, 12343 getRgbBuffer: function DeviceGrayCS_getRgbBuffer(input, bits) { 12344 var scale = 255 / ((1 << bits) - 1); 12345 var length = input.length; 12346 var rgbBuf = new Uint8Array(length * 3); 12347 for (var i = 0, j = 0; i < length; ++i) { 12348 var c = (scale * input[i]) | 0; 12349 rgbBuf[j++] = c; 12350 rgbBuf[j++] = c; 12351 rgbBuf[j++] = c; 12352 } 12353 return rgbBuf; 12354 }, 12355 isDefaultDecode: function DeviceGrayCS_isDefaultDecode(decodeMap) { 12356 return ColorSpace.isDefaultDecode(decodeMap, this.numComps); 12357 } 12358 }; 12359 return DeviceGrayCS; 12360 })(); 12361 12362 var DeviceRgbCS = (function DeviceRgbCSClosure() { 12363 function DeviceRgbCS() { 12364 this.name = 'DeviceRGB'; 12365 this.numComps = 3; 12366 this.defaultColor = [0, 0, 0]; 12367 } 12368 DeviceRgbCS.prototype = { 12369 getRgb: function DeviceRgbCS_getRgb(color) { 12370 return color; 12371 }, 12372 getRgbBuffer: function DeviceRgbCS_getRgbBuffer(input, bits) { 12373 if (bits == 8) 12374 return input; 12375 var scale = 255 / ((1 << bits) - 1); 12376 var i, length = input.length; 12377 var rgbBuf = new Uint8Array(length); 12378 for (i = 0; i < length; ++i) 12379 rgbBuf[i] = (scale * input[i]) | 0; 12380 return rgbBuf; 12381 }, 12382 isDefaultDecode: function DeviceRgbCS_isDefaultDecode(decodeMap) { 12383 return ColorSpace.isDefaultDecode(decodeMap, this.numComps); 12384 } 12385 }; 12386 return DeviceRgbCS; 12387 })(); 12388 12389 var DeviceCmykCS = (function DeviceCmykCSClosure() { 12390 function DeviceCmykCS() { 12391 this.name = 'DeviceCMYK'; 12392 this.numComps = 4; 12393 this.defaultColor = [0, 0, 0, 1]; 12394 } 12395 DeviceCmykCS.prototype = { 12396 getRgb: function DeviceCmykCS_getRgb(color) { 12397 var c = color[0], m = color[1], y = color[2], k = color[3]; 12398 12399 // CMYK -> CMY: http://www.easyrgb.com/index.php?X=MATH&H=14#text14 12400 c = (c * (1 - k) + k); 12401 m = (m * (1 - k) + k); 12402 y = (y * (1 - k) + k); 12403 12404 // CMY -> RGB: http://www.easyrgb.com/index.php?X=MATH&H=12#text12 12405 var r = (1 - c); 12406 var g = (1 - m); 12407 var b = (1 - y); 12408 12409 return [r, g, b]; 12410 }, 12411 getRgbBuffer: function DeviceCmykCS_getRgbBuffer(colorBuf, bits) { 12412 var scale = 1 / ((1 << bits) - 1); 12413 var length = colorBuf.length / 4; 12414 var rgbBuf = new Uint8Array(length * 3); 12415 var rgbBufPos = 0; 12416 var colorBufPos = 0; 12417 12418 for (var i = 0; i < length; i++) { 12419 var cmyk = []; 12420 for (var j = 0; j < 4; ++j) 12421 cmyk.push(scale * colorBuf[colorBufPos++]); 12422 12423 var rgb = this.getRgb(cmyk); 12424 for (var j = 0; j < 3; ++j) 12425 rgbBuf[rgbBufPos++] = Math.round(rgb[j] * 255); 12426 } 12427 12428 return rgbBuf; 12429 }, 12430 isDefaultDecode: function DeviceCmykCS_isDefaultDecode(decodeMap) { 12431 return ColorSpace.isDefaultDecode(decodeMap, this.numComps); 12432 } 12433 }; 12434 12435 return DeviceCmykCS; 12436 })(); 12437 12438 // 12439 // LabCS: Based on "PDF Reference, Sixth Ed", p.250 12440 // 12441 var LabCS = (function LabCSClosure() { 12442 function LabCS(whitePoint, blackPoint, range) { 12443 this.name = 'Lab'; 12444 this.numComps = 3; 12445 this.defaultColor = [0, 0, 0]; 12446 12447 if (!whitePoint) 12448 error('WhitePoint missing - required for color space Lab'); 12449 blackPoint = blackPoint || [0, 0, 0]; 12450 range = range || [-100, 100, -100, 100]; 12451 12452 // Translate args to spec variables 12453 this.XW = whitePoint[0]; 12454 this.YW = whitePoint[1]; 12455 this.ZW = whitePoint[2]; 12456 this.amin = range[0]; 12457 this.amax = range[1]; 12458 this.bmin = range[2]; 12459 this.bmax = range[3]; 12460 12461 // These are here just for completeness - the spec doesn't offer any 12462 // formulas that use BlackPoint in Lab 12463 this.XB = blackPoint[0]; 12464 this.YB = blackPoint[1]; 12465 this.ZB = blackPoint[2]; 12466 12467 // Validate vars as per spec 12468 if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) 12469 error('Invalid WhitePoint components, no fallback available'); 12470 12471 if (this.XB < 0 || this.YB < 0 || this.ZB < 0) { 12472 warn('Invalid BlackPoint, falling back to default'); 12473 this.XB = this.YB = this.ZB = 0; 12474 } 12475 12476 if (this.amin > this.amax || this.bmin > this.bmax) { 12477 warn('Invalid Range, falling back to defaults'); 12478 this.amin = -100; 12479 this.amax = 100; 12480 this.bmin = -100; 12481 this.bmax = 100; 12482 } 12483 }; 12484 12485 // Function g(x) from spec 12486 function g(x) { 12487 if (x >= 6 / 29) 12488 return x * x * x; 12489 else 12490 return (108 / 841) * (x - 4 / 29); 12491 } 12492 12493 LabCS.prototype = { 12494 getRgb: function LabCS_getRgb(color) { 12495 // Ls,as,bs <---> L*,a*,b* in the spec 12496 var Ls = color[0], as = color[1], bs = color[2]; 12497 12498 // Adjust limits of 'as' and 'bs' 12499 as = as > this.amax ? this.amax : as; 12500 as = as < this.amin ? this.amin : as; 12501 bs = bs > this.bmax ? this.bmax : bs; 12502 bs = bs < this.bmin ? this.bmin : bs; 12503 12504 // Computes intermediate variables X,Y,Z as per spec 12505 var M = (Ls + 16) / 116; 12506 var L = M + (as / 500); 12507 var N = M - (bs / 200); 12508 var X = this.XW * g(L); 12509 var Y = this.YW * g(M); 12510 var Z = this.ZW * g(N); 12511 12512 // XYZ to RGB 3x3 matrix, from: 12513 // http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html#RTFToC18 12514 var XYZtoRGB = [3.240479, -1.537150, -0.498535, 12515 -0.969256, 1.875992, 0.041556, 12516 0.055648, -0.204043, 1.057311]; 12517 12518 return Util.apply3dTransform(XYZtoRGB, [X, Y, Z]); 12519 }, 12520 getRgbBuffer: function LabCS_getRgbBuffer(input, bits) { 12521 if (bits == 8) 12522 return input; 12523 var scale = 255 / ((1 << bits) - 1); 12524 var i, length = input.length / 3; 12525 var rgbBuf = new Uint8Array(length); 12526 12527 var j = 0; 12528 for (i = 0; i < length; ++i) { 12529 // Convert L*, a*, s* into RGB 12530 var rgb = this.getRgb([input[i], input[i + 1], input[i + 2]]); 12531 rgbBuf[j++] = rgb[0]; 12532 rgbBuf[j++] = rgb[1]; 12533 rgbBuf[j++] = rgb[2]; 12534 } 12535 12536 return rgbBuf; 12537 }, 12538 isDefaultDecode: function LabCS_isDefaultDecode(decodeMap) { 12539 // From Table 90 in Adobe's: 12540 // "Document management - Portable document format", 1st ed, 2008 12541 if (decodeMap[0] === 0 && decodeMap[1] === 100 && 12542 decodeMap[2] === this.amin && decodeMap[3] === this.amax && 12543 decodeMap[4] === this.bmin && decodeMap[5] === this.bmax) 12544 return true; 12545 else 12546 return false; 12547 } 12548 }; 12549 return LabCS; 12550 })(); 12551 12552 /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 12553 /* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ 12554 12555 'use strict'; 12556 12557 var ARCFourCipher = (function ARCFourCipherClosure() { 12558 function ARCFourCipher(key) { 12559 this.a = 0; 12560 this.b = 0; 12561 var s = new Uint8Array(256); 12562 var i, j = 0, tmp, keyLength = key.length; 12563 for (i = 0; i < 256; ++i) 12564 s[i] = i; 12565 for (i = 0; i < 256; ++i) { 12566 tmp = s[i]; 12567 j = (j + tmp + key[i % keyLength]) & 0xFF; 12568 s[i] = s[j]; 12569 s[j] = tmp; 12570 } 12571 this.s = s; 12572 } 12573 12574 ARCFourCipher.prototype = { 12575 encryptBlock: function ARCFourCipher_encryptBlock(data) { 12576 var i, n = data.length, tmp, tmp2; 12577 var a = this.a, b = this.b, s = this.s; 12578 var output = new Uint8Array(n); 12579 for (i = 0; i < n; ++i) { 12580 a = (a + 1) & 0xFF; 12581 tmp = s[a]; 12582 b = (b + tmp) & 0xFF; 12583 tmp2 = s[b]; 12584 s[a] = tmp2; 12585 s[b] = tmp; 12586 output[i] = data[i] ^ s[(tmp + tmp2) & 0xFF]; 12587 } 12588 this.a = a; 12589 this.b = b; 12590 return output; 12591 } 12592 }; 12593 ARCFourCipher.prototype.decryptBlock = ARCFourCipher.prototype.encryptBlock; 12594 12595 return ARCFourCipher; 12596 })(); 12597 12598 var calculateMD5 = (function calculateMD5Closure() { 12599 var r = new Uint8Array([ 12600 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 12601 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 12602 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 12603 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21]); 12604 12605 var k = new Int32Array([ 12606 -680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426, 12607 -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162, 12608 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632, 12609 643717713, -373897302, -701558691, 38016083, -660478335, -405537848, 12610 568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784, 12611 1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556, 12612 -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222, 12613 -722521979, 76029189, -640364487, -421815835, 530742520, -995338651, 12614 -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606, 12615 -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649, 12616 -145523070, -1120210379, 718787259, -343485551]); 12617 12618 function hash(data, offset, length) { 12619 var h0 = 1732584193, h1 = -271733879, h2 = -1732584194, h3 = 271733878; 12620 // pre-processing 12621 var paddedLength = (length + 72) & ~63; // data + 9 extra bytes 12622 var padded = new Uint8Array(paddedLength); 12623 var i, j, n; 12624 for (i = 0; i < length; ++i) 12625 padded[i] = data[offset++]; 12626 padded[i++] = 0x80; 12627 n = paddedLength - 8; 12628 while (i < n) 12629 padded[i++] = 0; 12630 padded[i++] = (length << 3) & 0xFF; 12631 padded[i++] = (length >> 5) & 0xFF; 12632 padded[i++] = (length >> 13) & 0xFF; 12633 padded[i++] = (length >> 21) & 0xFF; 12634 padded[i++] = (length >>> 29) & 0xFF; 12635 padded[i++] = 0; 12636 padded[i++] = 0; 12637 padded[i++] = 0; 12638 // chunking 12639 // TODO ArrayBuffer ? 12640 var w = new Int32Array(16); 12641 for (i = 0; i < paddedLength;) { 12642 for (j = 0; j < 16; ++j, i += 4) { 12643 w[j] = (padded[i] | (padded[i + 1] << 8) | 12644 (padded[i + 2] << 16) | (padded[i + 3] << 24)); 12645 } 12646 var a = h0, b = h1, c = h2, d = h3, f, g; 12647 for (j = 0; j < 64; ++j) { 12648 if (j < 16) { 12649 f = (b & c) | ((~b) & d); 12650 g = j; 12651 } else if (j < 32) { 12652 f = (d & b) | ((~d) & c); 12653 g = (5 * j + 1) & 15; 12654 } else if (j < 48) { 12655 f = b ^ c ^ d; 12656 g = (3 * j + 5) & 15; 12657 } else { 12658 f = c ^ (b | (~d)); 12659 g = (7 * j) & 15; 12660 } 12661 var tmp = d, rotateArg = (a + f + k[j] + w[g]) | 0, rotate = r[j]; 12662 d = c; 12663 c = b; 12664 b = (b + ((rotateArg << rotate) | (rotateArg >>> (32 - rotate)))) | 0; 12665 a = tmp; 12666 } 12667 h0 = (h0 + a) | 0; 12668 h1 = (h1 + b) | 0; 12669 h2 = (h2 + c) | 0; 12670 h3 = (h3 + d) | 0; 12671 } 12672 return new Uint8Array([ 12673 h0 & 0xFF, (h0 >> 8) & 0xFF, (h0 >> 16) & 0xFF, (h0 >>> 24) & 0xFF, 12674 h1 & 0xFF, (h1 >> 8) & 0xFF, (h1 >> 16) & 0xFF, (h1 >>> 24) & 0xFF, 12675 h2 & 0xFF, (h2 >> 8) & 0xFF, (h2 >> 16) & 0xFF, (h2 >>> 24) & 0xFF, 12676 h3 & 0xFF, (h3 >> 8) & 0xFF, (h3 >> 16) & 0xFF, (h3 >>> 24) & 0xFF 12677 ]); 12678 } 12679 return hash; 12680 })(); 12681 12682 var NullCipher = (function NullCipherClosure() { 12683 function NullCipher() { 12684 } 12685 12686 NullCipher.prototype = { 12687 decryptBlock: function NullCipher_decryptBlock(data) { 12688 return data; 12689 } 12690 }; 12691 12692 return NullCipher; 12693 })(); 12694 12695 var AES128Cipher = (function AES128CipherClosure() { 12696 var rcon = new Uint8Array([ 12697 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 12698 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 12699 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 12700 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 12701 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 12702 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 12703 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 12704 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 12705 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 12706 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 12707 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 12708 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 12709 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 12710 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 12711 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 12712 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 12713 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 12714 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 12715 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 12716 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 12717 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 12718 0x74, 0xe8, 0xcb, 0x8d]); 12719 12720 var s = new Uint8Array([ 12721 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 12722 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 12723 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 12724 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 12725 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 12726 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 12727 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 12728 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 12729 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 12730 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 12731 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 12732 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 12733 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 12734 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 12735 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 12736 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 12737 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 12738 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 12739 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 12740 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 12741 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 12742 0xb0, 0x54, 0xbb, 0x16]); 12743 12744 var inv_s = new Uint8Array([ 12745 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 12746 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 12747 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 12748 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 12749 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 12750 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 12751 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 12752 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 12753 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 12754 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 12755 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 12756 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 12757 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 12758 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 12759 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 12760 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 12761 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 12762 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 12763 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 12764 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 12765 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 12766 0x55, 0x21, 0x0c, 0x7d]); 12767 12768 var mix = new Uint32Array([ 12769 0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 12770 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 12771 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 12772 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 12773 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 12774 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 12775 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 12776 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 12777 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 12778 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 12779 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 12780 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 12781 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 12782 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 12783 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 12784 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 12785 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 12786 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 12787 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 12788 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 12789 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 12790 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 12791 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 12792 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 12793 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 12794 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 12795 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 12796 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 12797 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 12798 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 12799 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 12800 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 12801 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 12802 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 12803 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 12804 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 12805 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 12806 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 12807 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 12808 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 12809 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 12810 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 12811 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3]); 12812 12813 function expandKey128(cipherKey) { 12814 var b = 176, result = new Uint8Array(b); 12815 result.set(cipherKey); 12816 for (var j = 16, i = 1; j < b; ++i) { 12817 // RotWord 12818 var t1 = result[j - 3], t2 = result[j - 2], 12819 t3 = result[j - 1], t4 = result[j - 4]; 12820 // SubWord 12821 t1 = s[t1]; t2 = s[t2]; t3 = s[t3]; t4 = s[t4]; 12822 // Rcon 12823 t1 = t1 ^ rcon[i]; 12824 for (var n = 0; n < 4; ++n) { 12825 result[j] = (t1 ^= result[j - 16]); j++; 12826 result[j] = (t2 ^= result[j - 16]); j++; 12827 result[j] = (t3 ^= result[j - 16]); j++; 12828 result[j] = (t4 ^= result[j - 16]); j++; 12829 } 12830 } 12831 return result; 12832 } 12833 12834 function decrypt128(input, key) { 12835 var state = new Uint8Array(16); 12836 state.set(input); 12837 var i, j, k; 12838 var t, u, v; 12839 // AddRoundKey 12840 for (j = 0, k = 160; j < 16; ++j, ++k) 12841 state[j] ^= key[k]; 12842 for (i = 9; i >= 1; --i) { 12843 // InvShiftRows 12844 t = state[13]; state[13] = state[9]; state[9] = state[5]; 12845 state[5] = state[1]; state[1] = t; 12846 t = state[14]; u = state[10]; state[14] = state[6]; 12847 state[10] = state[2]; state[6] = t; state[2] = u; 12848 t = state[15]; u = state[11]; v = state[7]; state[15] = state[3]; 12849 state[11] = t; state[7] = u; state[3] = v; 12850 // InvSubBytes 12851 for (j = 0; j < 16; ++j) 12852 state[j] = inv_s[state[j]]; 12853 // AddRoundKey 12854 for (j = 0, k = i * 16; j < 16; ++j, ++k) 12855 state[j] ^= key[k]; 12856 // InvMixColumns 12857 for (j = 0; j < 16; j += 4) { 12858 var s0 = mix[state[j]], s1 = mix[state[j + 1]], 12859 s2 = mix[state[j + 2]], s3 = mix[state[j + 3]]; 12860 t = (s0 ^ (s1 >>> 8) ^ (s1 << 24) ^ (s2 >>> 16) ^ (s2 << 16) ^ 12861 (s3 >>> 24) ^ (s3 << 8)); 12862 state[j] = (t >>> 24) & 0xFF; 12863 state[j + 1] = (t >> 16) & 0xFF; 12864 state[j + 2] = (t >> 8) & 0xFF; 12865 state[j + 3] = t & 0xFF; 12866 } 12867 } 12868 // InvShiftRows 12869 t = state[13]; state[13] = state[9]; state[9] = state[5]; 12870 state[5] = state[1]; state[1] = t; 12871 t = state[14]; u = state[10]; state[14] = state[6]; 12872 state[10] = state[2]; state[6] = t; state[2] = u; 12873 t = state[15]; u = state[11]; v = state[7]; state[15] = state[3]; 12874 state[11] = t; state[7] = u; state[3] = v; 12875 for (j = 0; j < 16; ++j) { 12876 // InvSubBytes 12877 state[j] = inv_s[state[j]]; 12878 // AddRoundKey 12879 state[j] ^= key[j]; 12880 } 12881 return state; 12882 } 12883 12884 function AES128Cipher(key) { 12885 this.key = expandKey128(key); 12886 this.buffer = new Uint8Array(16); 12887 this.bufferPosition = 0; 12888 } 12889 12890 function decryptBlock2(data) { 12891 var i, j, ii, sourceLength = data.length, 12892 buffer = this.buffer, bufferLength = this.bufferPosition, 12893 result = [], iv = this.iv; 12894 for (i = 0; i < sourceLength; ++i) { 12895 buffer[bufferLength] = data[i]; 12896 ++bufferLength; 12897 if (bufferLength < 16) 12898 continue; 12899 // buffer is full, decrypting 12900 var plain = decrypt128(buffer, this.key); 12901 // xor-ing the IV vector to get plain text 12902 for (j = 0; j < 16; ++j) 12903 plain[j] ^= iv[j]; 12904 iv = buffer; 12905 result.push(plain); 12906 buffer = new Uint8Array(16); 12907 bufferLength = 0; 12908 } 12909 // saving incomplete buffer 12910 this.buffer = buffer; 12911 this.bufferLength = bufferLength; 12912 this.iv = iv; 12913 if (result.length == 0) 12914 return new Uint8Array([]); 12915 if (result.length == 1) 12916 return result[0]; 12917 // combining plain text blocks into one 12918 var output = new Uint8Array(16 * result.length); 12919 for (i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) 12920 output.set(result[i], j); 12921 return output; 12922 } 12923 12924 AES128Cipher.prototype = { 12925 decryptBlock: function AES128Cipher_decryptBlock(data) { 12926 var i, sourceLength = data.length; 12927 var buffer = this.buffer, bufferLength = this.bufferPosition; 12928 // waiting for IV values -- they are at the start of the stream 12929 for (i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength) 12930 buffer[bufferLength] = data[i]; 12931 if (bufferLength < 16) { 12932 // need more data 12933 this.bufferLength = bufferLength; 12934 return new Uint8Array([]); 12935 } 12936 this.iv = buffer; 12937 this.buffer = new Uint8Array(16); 12938 this.bufferLength = 0; 12939 // starting decryption 12940 this.decryptBlock = decryptBlock2; 12941 return this.decryptBlock(data.subarray(16)); 12942 } 12943 }; 12944 12945 return AES128Cipher; 12946 })(); 12947 12948 var CipherTransform = (function CipherTransformClosure() { 12949 function CipherTransform(stringCipherConstructor, streamCipherConstructor) { 12950 this.stringCipherConstructor = stringCipherConstructor; 12951 this.streamCipherConstructor = streamCipherConstructor; 12952 } 12953 CipherTransform.prototype = { 12954 createStream: function CipherTransform_createStream(stream) { 12955 var cipher = new this.streamCipherConstructor(); 12956 return new DecryptStream(stream, 12957 function cipherTransformDecryptStream(data) { 12958 return cipher.decryptBlock(data); 12959 } 12960 ); 12961 }, 12962 decryptString: function CipherTransform_decryptString(s) { 12963 var cipher = new this.stringCipherConstructor(); 12964 var data = stringToBytes(s); 12965 data = cipher.decryptBlock(data); 12966 return bytesToString(data); 12967 } 12968 }; 12969 return CipherTransform; 12970 })(); 12971 12972 var CipherTransformFactory = (function CipherTransformFactoryClosure() { 12973 function prepareKeyData(fileId, password, ownerPassword, userPassword, 12974 flags, revision, keyLength, encryptMetadata) { 12975 var defaultPasswordBytes = new Uint8Array([ 12976 0x28, 0xBF, 0x4E, 0x5E, 0x4E, 0x75, 0x8A, 0x41, 12977 0x64, 0x00, 0x4E, 0x56, 0xFF, 0xFA, 0x01, 0x08, 12978 0x2E, 0x2E, 0x00, 0xB6, 0xD0, 0x68, 0x3E, 0x80, 12979 0x2F, 0x0C, 0xA9, 0xFE, 0x64, 0x53, 0x69, 0x7A]); 12980 var hashData = new Uint8Array(100), i = 0, j, n; 12981 if (password) { 12982 n = Math.min(32, password.length); 12983 for (; i < n; ++i) 12984 hashData[i] = password[i]; 12985 } 12986 j = 0; 12987 while (i < 32) { 12988 hashData[i++] = defaultPasswordBytes[j++]; 12989 } 12990 // as now the padded password in the hashData[0..i] 12991 for (j = 0, n = ownerPassword.length; j < n; ++j) 12992 hashData[i++] = ownerPassword[j]; 12993 hashData[i++] = flags & 0xFF; 12994 hashData[i++] = (flags >> 8) & 0xFF; 12995 hashData[i++] = (flags >> 16) & 0xFF; 12996 hashData[i++] = (flags >>> 24) & 0xFF; 12997 for (j = 0, n = fileId.length; j < n; ++j) 12998 hashData[i++] = fileId[j]; 12999 if (revision >= 4 && !encryptMetadata) { 13000 hashData[i++] = 0xFF; 13001 hashData[i++] = 0xFF; 13002 hashData[i++] = 0xFF; 13003 hashData[i++] = 0xFF; 13004 } 13005 var hash = calculateMD5(hashData, 0, i); 13006 var keyLengthInBytes = keyLength >> 3; 13007 if (revision >= 3) { 13008 for (j = 0; j < 50; ++j) { 13009 hash = calculateMD5(hash, 0, keyLengthInBytes); 13010 } 13011 } 13012 var encryptionKey = hash.subarray(0, keyLengthInBytes); 13013 var cipher, checkData; 13014 13015 if (revision >= 3) { 13016 // padded password in hashData, we can use this array for user 13017 // password check 13018 i = 32; 13019 for (j = 0, n = fileId.length; j < n; ++j) 13020 hashData[i++] = fileId[j]; 13021 cipher = new ARCFourCipher(encryptionKey); 13022 var checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i)); 13023 n = encryptionKey.length; 13024 var derivedKey = new Uint8Array(n), k; 13025 for (j = 1; j <= 19; ++j) { 13026 for (k = 0; k < n; ++k) 13027 derivedKey[k] = encryptionKey[k] ^ j; 13028 cipher = new ARCFourCipher(derivedKey); 13029 checkData = cipher.encryptBlock(checkData); 13030 } 13031 } else { 13032 cipher = new ARCFourCipher(encryptionKey); 13033 checkData = cipher.encryptBlock(hashData.subarray(0, 32)); 13034 } 13035 for (j = 0, n = checkData.length; j < n; ++j) { 13036 if (userPassword[j] != checkData[j]) 13037 error('incorrect password'); 13038 } 13039 return encryptionKey; 13040 } 13041 13042 var identityName = new Name('Identity'); 13043 13044 function CipherTransformFactory(dict, fileId, password) { 13045 var filter = dict.get('Filter'); 13046 if (!isName(filter) || filter.name != 'Standard') 13047 error('unknown encryption method'); 13048 this.dict = dict; 13049 var algorithm = dict.get('V'); 13050 if (!isInt(algorithm) || 13051 (algorithm != 1 && algorithm != 2 && algorithm != 4)) 13052 error('unsupported encryption algorithm'); 13053 this.algorithm = algorithm; 13054 var keyLength = dict.get('Length') || 40; 13055 if (!isInt(keyLength) || 13056 keyLength < 40 || (keyLength % 8) != 0) 13057 error('invalid key length'); 13058 // prepare keys 13059 var ownerPassword = stringToBytes(dict.get('O')); 13060 var userPassword = stringToBytes(dict.get('U')); 13061 var flags = dict.get('P'); 13062 var revision = dict.get('R'); 13063 var encryptMetadata = 13064 dict.get('EncryptMetadata') !== false; // makes true as default value 13065 var fileIdBytes = stringToBytes(fileId); 13066 var passwordBytes; 13067 if (password) 13068 passwordBytes = stringToBytes(password); 13069 13070 this.encryptionKey = prepareKeyData(fileIdBytes, passwordBytes, 13071 ownerPassword, userPassword, 13072 flags, revision, 13073 keyLength, encryptMetadata); 13074 if (algorithm == 4) { 13075 this.cf = dict.get('CF'); 13076 this.stmf = dict.get('StmF') || identityName; 13077 this.strf = dict.get('StrF') || identityName; 13078 this.eff = dict.get('EFF') || this.strf; 13079 } 13080 } 13081 13082 function buildObjectKey(num, gen, encryptionKey, isAes) { 13083 var key = new Uint8Array(encryptionKey.length + 9), i, n; 13084 for (i = 0, n = encryptionKey.length; i < n; ++i) 13085 key[i] = encryptionKey[i]; 13086 key[i++] = num & 0xFF; 13087 key[i++] = (num >> 8) & 0xFF; 13088 key[i++] = (num >> 16) & 0xFF; 13089 key[i++] = gen & 0xFF; 13090 key[i++] = (gen >> 8) & 0xFF; 13091 if (isAes) { 13092 key[i++] = 0x73; 13093 key[i++] = 0x41; 13094 key[i++] = 0x6C; 13095 key[i++] = 0x54; 13096 } 13097 var hash = calculateMD5(key, 0, i); 13098 return hash.subarray(0, Math.min(encryptionKey.length + 5, 16)); 13099 } 13100 13101 function buildCipherConstructor(cf, name, num, gen, key) { 13102 var cryptFilter = cf.get(name.name); 13103 var cfm; 13104 if (cryptFilter != null) 13105 cfm = cryptFilter.get('CFM'); 13106 if (!cfm || cfm.name == 'None') { 13107 return function cipherTransformFactoryBuildCipherConstructorNone() { 13108 return new NullCipher(); 13109 }; 13110 } 13111 if ('V2' == cfm.name) { 13112 return function cipherTransformFactoryBuildCipherConstructorV2() { 13113 return new ARCFourCipher( 13114 buildObjectKey(num, gen, key, false)); 13115 }; 13116 } 13117 if ('AESV2' == cfm.name) { 13118 return function cipherTransformFactoryBuildCipherConstructorAESV2() { 13119 return new AES128Cipher( 13120 buildObjectKey(num, gen, key, true)); 13121 }; 13122 } 13123 error('Unknown crypto method'); 13124 } 13125 13126 CipherTransformFactory.prototype = { 13127 createCipherTransform: 13128 function CipherTransformFactory_createCipherTransform(num, gen) { 13129 if (this.algorithm == 4) { 13130 return new CipherTransform( 13131 buildCipherConstructor(this.cf, this.stmf, 13132 num, gen, this.encryptionKey), 13133 buildCipherConstructor(this.cf, this.strf, 13134 num, gen, this.encryptionKey)); 13135 } 13136 // algorithms 1 and 2 13137 var key = buildObjectKey(num, gen, this.encryptionKey, false); 13138 var cipherConstructor = function buildCipherCipherConstructor() { 13139 return new ARCFourCipher(key); 13140 }; 13141 return new CipherTransform(cipherConstructor, cipherConstructor); 13142 } 13143 }; 13144 13145 return CipherTransformFactory; 13146 })(); 13147 13148 13149 /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 13150 /* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ 13151 13152 'use strict'; 13153 13154 var PartialEvaluator = (function PartialEvaluatorClosure() { 13155 function PartialEvaluator(xref, handler, uniquePrefix) { 13156 this.state = new EvalState(); 13157 this.stateStack = []; 13158 13159 this.xref = xref; 13160 this.handler = handler; 13161 this.uniquePrefix = uniquePrefix; 13162 this.objIdCounter = 0; 13163 } 13164 13165 var OP_MAP = { 13166 // Graphics state 13167 w: 'setLineWidth', 13168 J: 'setLineCap', 13169 j: 'setLineJoin', 13170 M: 'setMiterLimit', 13171 d: 'setDash', 13172 ri: 'setRenderingIntent', 13173 i: 'setFlatness', 13174 gs: 'setGState', 13175 q: 'save', 13176 Q: 'restore', 13177 cm: 'transform', 13178 13179 // Path 13180 m: 'moveTo', 13181 l: 'lineTo', 13182 c: 'curveTo', 13183 v: 'curveTo2', 13184 y: 'curveTo3', 13185 h: 'closePath', 13186 re: 'rectangle', 13187 S: 'stroke', 13188 s: 'closeStroke', 13189 f: 'fill', 13190 F: 'fill', 13191 'f*': 'eoFill', 13192 B: 'fillStroke', 13193 'B*': 'eoFillStroke', 13194 b: 'closeFillStroke', 13195 'b*': 'closeEOFillStroke', 13196 n: 'endPath', 13197 13198 // Clipping 13199 W: 'clip', 13200 'W*': 'eoClip', 13201 13202 // Text 13203 BT: 'beginText', 13204 ET: 'endText', 13205 Tc: 'setCharSpacing', 13206 Tw: 'setWordSpacing', 13207 Tz: 'setHScale', 13208 TL: 'setLeading', 13209 Tf: 'setFont', 13210 Tr: 'setTextRenderingMode', 13211 Ts: 'setTextRise', 13212 Td: 'moveText', 13213 TD: 'setLeadingMoveText', 13214 Tm: 'setTextMatrix', 13215 'T*': 'nextLine', 13216 Tj: 'showText', 13217 TJ: 'showSpacedText', 13218 "'": 'nextLineShowText', 13219 '"': 'nextLineSetSpacingShowText', 13220 13221 // Type3 fonts 13222 d0: 'setCharWidth', 13223 d1: 'setCharWidthAndBounds', 13224 13225 // Color 13226 CS: 'setStrokeColorSpace', 13227 cs: 'setFillColorSpace', 13228 SC: 'setStrokeColor', 13229 SCN: 'setStrokeColorN', 13230 sc: 'setFillColor', 13231 scn: 'setFillColorN', 13232 G: 'setStrokeGray', 13233 g: 'setFillGray', 13234 RG: 'setStrokeRGBColor', 13235 rg: 'setFillRGBColor', 13236 K: 'setStrokeCMYKColor', 13237 k: 'setFillCMYKColor', 13238 13239 // Shading 13240 sh: 'shadingFill', 13241 13242 // Images 13243 BI: 'beginInlineImage', 13244 ID: 'beginImageData', 13245 EI: 'endInlineImage', 13246 13247 // XObjects 13248 Do: 'paintXObject', 13249 13250 // Marked content 13251 MP: 'markPoint', 13252 DP: 'markPointProps', 13253 BMC: 'beginMarkedContent', 13254 BDC: 'beginMarkedContentProps', 13255 EMC: 'endMarkedContent', 13256 13257 // Compatibility 13258 BX: 'beginCompat', 13259 EX: 'endCompat' 13260 }; 13261 13262 function splitCombinedOperations(operations) { 13263 // Two operations can be combined together, trying to find which two 13264 // operations were concatenated. 13265 for (var i = operations.length - 1; i > 0; i--) { 13266 var op1 = operations.substring(0, i), op2 = operations.substring(i); 13267 if (op1 in OP_MAP && op2 in OP_MAP) 13268 return [op1, op2]; // operations found 13269 } 13270 return null; 13271 } 13272 13273 PartialEvaluator.prototype = { 13274 getOperatorList: function PartialEvaluator_getOperatorList(stream, 13275 resources, 13276 dependency, 13277 queue) { 13278 13279 var self = this; 13280 var xref = this.xref; 13281 var handler = this.handler; 13282 var uniquePrefix = this.uniquePrefix || ''; 13283 13284 function insertDependency(depList) { 13285 fnArray.push('dependency'); 13286 argsArray.push(depList); 13287 for (var i = 0, ii = depList.length; i < ii; i++) { 13288 var dep = depList[i]; 13289 if (dependency.indexOf(dep) == -1) { 13290 dependency.push(depList[i]); 13291 } 13292 } 13293 } 13294 13295 function handleSetFont(fontName, font) { 13296 var loadedName = null; 13297 13298 var fontRes = resources.get('Font'); 13299 13300 assert(fontRes, 'fontRes not available'); 13301 13302 font = xref.fetchIfRef(font) || fontRes.get(fontName); 13303 assertWellFormed(isDict(font)); 13304 ++self.objIdCounter; 13305 if (!font.translated) { 13306 font.translated = self.translateFont(font, xref, resources, 13307 dependency); 13308 if (font.translated) { 13309 // keep track of each font we translated so the caller can 13310 // load them asynchronously before calling display on a page 13311 loadedName = 'font_' + uniquePrefix + self.objIdCounter; 13312 font.translated.properties.loadedName = loadedName; 13313 font.loadedName = loadedName; 13314 13315 var translated = font.translated; 13316 // Convert the file to an ArrayBuffer which will be turned back into 13317 // a Stream in the main thread. 13318 if (translated.file) 13319 translated.file = translated.file.getBytes(); 13320 if (translated.properties.file) { 13321 translated.properties.file = 13322 translated.properties.file.getBytes(); 13323 } 13324 13325 handler.send('obj', [ 13326 loadedName, 13327 'Font', 13328 translated.name, 13329 translated.file, 13330 translated.properties 13331 ]); 13332 } 13333 } 13334 loadedName = loadedName || font.loadedName; 13335 13336 // Ensure the font is ready before the font is set 13337 // and later on used for drawing. 13338 // OPTIMIZE: This should get insert to the operatorList only once per 13339 // page. 13340 insertDependency([loadedName]); 13341 return loadedName; 13342 } 13343 13344 function buildPaintImageXObject(image, inline) { 13345 var dict = image.dict; 13346 var w = dict.get('Width', 'W'); 13347 var h = dict.get('Height', 'H'); 13348 13349 var imageMask = dict.get('ImageMask', 'IM') || false; 13350 if (imageMask) { 13351 // This depends on a tmpCanvas beeing filled with the 13352 // current fillStyle, such that processing the pixel 13353 // data can't be done here. Instead of creating a 13354 // complete PDFImage, only read the information needed 13355 // for later. 13356 13357 var width = dict.get('Width', 'W'); 13358 var height = dict.get('Height', 'H'); 13359 var bitStrideLength = (width + 7) >> 3; 13360 var imgArray = image.getBytes(bitStrideLength * height); 13361 var decode = dict.get('Decode', 'D'); 13362 var inverseDecode = !!decode && decode[0] > 0; 13363 13364 fn = 'paintImageMaskXObject'; 13365 args = [imgArray, inverseDecode, width, height]; 13366 return; 13367 } 13368 13369 // If there is no imageMask, create the PDFImage and a lot 13370 // of image processing can be done here. 13371 var objId = 'img_' + uniquePrefix + (++self.objIdCounter); 13372 insertDependency([objId]); 13373 args = [objId, w, h]; 13374 13375 var softMask = dict.get('SMask', 'IM') || false; 13376 if (!softMask && image instanceof JpegStream && 13377 image.isNativelySupported(xref, resources)) { 13378 // These JPEGs don't need any more processing so we can just send it. 13379 fn = 'paintJpegXObject'; 13380 handler.send('obj', [objId, 'JpegStream', image.getIR()]); 13381 return; 13382 } 13383 13384 fn = 'paintImageXObject'; 13385 13386 PDFImage.buildImage(function(imageObj) { 13387 var drawWidth = imageObj.drawWidth; 13388 var drawHeight = imageObj.drawHeight; 13389 var imgData = { 13390 width: drawWidth, 13391 height: drawHeight, 13392 data: new Uint8Array(drawWidth * drawHeight * 4) 13393 }; 13394 var pixels = imgData.data; 13395 imageObj.fillRgbaBuffer(pixels, drawWidth, drawHeight); 13396 handler.send('obj', [objId, 'Image', imgData]); 13397 }, handler, xref, resources, image, inline); 13398 } 13399 13400 if (!queue) 13401 queue = {}; 13402 13403 if (!queue.argsArray) { 13404 queue.argsArray = []; 13405 } 13406 if (!queue.fnArray) { 13407 queue.fnArray = []; 13408 } 13409 13410 var fnArray = queue.fnArray, argsArray = queue.argsArray; 13411 var dependencyArray = dependency || []; 13412 13413 resources = resources || new Dict(); 13414 var xobjs = resources.get('XObject') || new Dict(); 13415 var patterns = resources.get('Pattern') || new Dict(); 13416 var parser = new Parser(new Lexer(stream), false, xref); 13417 var res = resources; 13418 var hasNextObj = false, nextObj; 13419 var args = [], obj; 13420 var TILING_PATTERN = 1, SHADING_PATTERN = 2; 13421 13422 while (true) { 13423 if (hasNextObj) { 13424 obj = nextObj; 13425 hasNextObj = false; 13426 } else { 13427 obj = parser.getObj(); 13428 if (isEOF(obj)) 13429 break; 13430 } 13431 13432 if (isCmd(obj)) { 13433 var cmd = obj.cmd; 13434 var fn = OP_MAP[cmd]; 13435 if (!fn) { 13436 // invalid content command, trying to recover 13437 var cmds = splitCombinedOperations(cmd); 13438 if (cmds) { 13439 cmd = cmds[0]; 13440 fn = OP_MAP[cmd]; 13441 // feeding other command on the next interation 13442 hasNextObj = true; 13443 nextObj = Cmd.get(cmds[1]); 13444 } 13445 } 13446 assertWellFormed(fn, 'Unknown command "' + cmd + '"'); 13447 // TODO figure out how to type-check vararg functions 13448 13449 if ((cmd == 'SCN' || cmd == 'scn') && !args[args.length - 1].code) { 13450 // compile tiling patterns 13451 var patternName = args[args.length - 1]; 13452 // SCN/scn applies patterns along with normal colors 13453 if (isName(patternName)) { 13454 var pattern = patterns.get(patternName.name); 13455 if (pattern) { 13456 var dict = isStream(pattern) ? pattern.dict : pattern; 13457 var typeNum = dict.get('PatternType'); 13458 13459 if (typeNum == TILING_PATTERN) { 13460 // Create an IR of the pattern code. 13461 var depIdx = dependencyArray.length; 13462 var operatorList = this.getOperatorList(pattern, 13463 dict.get('Resources') || resources, dependencyArray); 13464 13465 // Add the dependencies that are required to execute the 13466 // operatorList. 13467 insertDependency(dependencyArray.slice(depIdx)); 13468 13469 args = TilingPattern.getIR(operatorList, dict, args); 13470 } 13471 else if (typeNum == SHADING_PATTERN) { 13472 var shading = dict.get('Shading'); 13473 var matrix = dict.get('Matrix'); 13474 var pattern = Pattern.parseShading(shading, matrix, xref, 13475 res); 13476 args = pattern.getIR(); 13477 } else { 13478 error('Unkown PatternType ' + typeNum); 13479 } 13480 } 13481 } 13482 } else if (cmd == 'Do' && !args[0].code) { 13483 // eagerly compile XForm objects 13484 var name = args[0].name; 13485 var xobj = xobjs.get(name); 13486 if (xobj) { 13487 assertWellFormed(isStream(xobj), 'XObject should be a stream'); 13488 13489 var type = xobj.dict.get('Subtype'); 13490 assertWellFormed( 13491 isName(type), 13492 'XObject should have a Name subtype' 13493 ); 13494 13495 if ('Form' == type.name) { 13496 var matrix = xobj.dict.get('Matrix'); 13497 var bbox = xobj.dict.get('BBox'); 13498 13499 fnArray.push('paintFormXObjectBegin'); 13500 argsArray.push([matrix, bbox]); 13501 13502 // This adds the operatorList of the xObj to the current queue. 13503 var depIdx = dependencyArray.length; 13504 13505 // Pass in the current `queue` object. That means the `fnArray` 13506 // and the `argsArray` in this scope is reused and new commands 13507 // are added to them. 13508 this.getOperatorList(xobj, 13509 xobj.dict.get('Resources') || resources, 13510 dependencyArray, queue); 13511 13512 // Add the dependencies that are required to execute the 13513 // operatorList. 13514 insertDependency(dependencyArray.slice(depIdx)); 13515 13516 fn = 'paintFormXObjectEnd'; 13517 args = []; 13518 } else if ('Image' == type.name) { 13519 buildPaintImageXObject(xobj, false); 13520 } else { 13521 error('Unhandled XObject subtype ' + type.name); 13522 } 13523 } 13524 } else if (cmd == 'Tf') { // eagerly collect all fonts 13525 args[0] = handleSetFont(args[0].name); 13526 } else if (cmd == 'EI') { 13527 buildPaintImageXObject(args[0], true); 13528 } 13529 13530 switch (fn) { 13531 // Parse the ColorSpace data to a raw format. 13532 case 'setFillColorSpace': 13533 case 'setStrokeColorSpace': 13534 args = [ColorSpace.parseToIR(args[0], xref, resources)]; 13535 break; 13536 case 'shadingFill': 13537 var shadingRes = res.get('Shading'); 13538 if (!shadingRes) 13539 error('No shading resource found'); 13540 13541 var shading = shadingRes.get(args[0].name); 13542 if (!shading) 13543 error('No shading object found'); 13544 13545 var shadingFill = Pattern.parseShading(shading, null, xref, res); 13546 var patternIR = shadingFill.getIR(); 13547 args = [patternIR]; 13548 fn = 'shadingFill'; 13549 break; 13550 case 'setGState': 13551 var dictName = args[0]; 13552 var extGState = resources.get('ExtGState'); 13553 13554 if (!isDict(extGState) || !extGState.has(dictName.name)) 13555 break; 13556 13557 var gsState = extGState.get(dictName.name); 13558 13559 // This array holds the converted/processed state data. 13560 var gsStateObj = []; 13561 13562 gsState.forEach( 13563 function canvasGraphicsSetGStateForEach(key, value) { 13564 switch (key) { 13565 case 'Type': 13566 break; 13567 case 'LW': 13568 case 'LC': 13569 case 'LJ': 13570 case 'ML': 13571 case 'D': 13572 case 'RI': 13573 case 'FL': 13574 case 'CA': 13575 case 'ca': 13576 gsStateObj.push([key, value]); 13577 break; 13578 case 'Font': 13579 gsStateObj.push([ 13580 'Font', 13581 handleSetFont(null, value[0]), 13582 value[1] 13583 ]); 13584 break; 13585 case 'OP': 13586 case 'op': 13587 case 'OPM': 13588 case 'BG': 13589 case 'BG2': 13590 case 'UCR': 13591 case 'UCR2': 13592 case 'TR': 13593 case 'TR2': 13594 case 'HT': 13595 case 'SM': 13596 case 'SA': 13597 case 'BM': 13598 case 'SMask': 13599 case 'AIS': 13600 case 'TK': 13601 TODO('graphic state operator ' + key); 13602 break; 13603 default: 13604 warn('Unknown graphic state operator ' + key); 13605 break; 13606 } 13607 } 13608 ); 13609 args = [gsStateObj]; 13610 break; 13611 } // switch 13612 13613 fnArray.push(fn); 13614 argsArray.push(args); 13615 args = []; 13616 } else if (obj != null) { 13617 assertWellFormed(args.length <= 33, 'Too many arguments'); 13618 args.push(obj instanceof Dict ? obj.getAll() : obj); 13619 } 13620 } 13621 13622 return queue; 13623 }, 13624 13625 extractDataStructures: function 13626 partialEvaluatorExtractDataStructures(dict, baseDict, 13627 xref, properties) { 13628 // 9.10.2 13629 var toUnicode = dict.get('ToUnicode') || 13630 baseDict.get('ToUnicode'); 13631 if (toUnicode) 13632 properties.toUnicode = this.readToUnicode(toUnicode, xref, properties); 13633 13634 if (properties.composite) { 13635 // CIDSystemInfo helps to match CID to glyphs 13636 var cidSystemInfo = dict.get('CIDSystemInfo'); 13637 if (isDict(cidSystemInfo)) { 13638 properties.cidSystemInfo = { 13639 registry: cidSystemInfo.get('Registry'), 13640 ordering: cidSystemInfo.get('Ordering'), 13641 supplement: cidSystemInfo.get('Supplement') 13642 }; 13643 } 13644 13645 var cidToGidMap = dict.get('CIDToGIDMap'); 13646 if (isStream(cidToGidMap)) 13647 properties.cidToGidMap = this.readCidToGidMap(cidToGidMap); 13648 } 13649 13650 var flags = properties.flags; 13651 var differences = []; 13652 var baseEncoding = !!(flags & FontFlags.Symbolic) ? 13653 Encodings.symbolsEncoding : Encodings.StandardEncoding; 13654 var hasEncoding = dict.has('Encoding'); 13655 if (hasEncoding) { 13656 var encoding = dict.get('Encoding'); 13657 if (isDict(encoding)) { 13658 var baseName = encoding.get('BaseEncoding'); 13659 if (baseName) 13660 baseEncoding = Encodings[baseName.name]; 13661 else 13662 hasEncoding = false; // base encoding was not provided 13663 13664 // Load the differences between the base and original 13665 if (encoding.has('Differences')) { 13666 var diffEncoding = encoding.get('Differences'); 13667 var index = 0; 13668 for (var j = 0, jj = diffEncoding.length; j < jj; j++) { 13669 var data = diffEncoding[j]; 13670 if (isNum(data)) 13671 index = data; 13672 else 13673 differences[index++] = data.name; 13674 } 13675 } 13676 } else if (isName(encoding)) { 13677 baseEncoding = Encodings[encoding.name]; 13678 } else { 13679 error('Encoding is not a Name nor a Dict'); 13680 } 13681 } 13682 13683 properties.differences = differences; 13684 properties.baseEncoding = baseEncoding; 13685 properties.hasEncoding = hasEncoding; 13686 }, 13687 13688 readToUnicode: function PartialEvaluator_readToUnicode(toUnicode, xref, 13689 properties) { 13690 var cmapObj = toUnicode; 13691 var charToUnicode = []; 13692 if (isName(cmapObj)) { 13693 var isIdentityMap = cmapObj.name.substr(0, 9) == 'Identity-'; 13694 if (!isIdentityMap) 13695 error('ToUnicode file cmap translation not implemented'); 13696 } else if (isStream(cmapObj)) { 13697 var tokens = []; 13698 var token = ''; 13699 var beginArrayToken = {}; 13700 13701 var cmap = cmapObj.getBytes(cmapObj.length); 13702 for (var i = 0, ii = cmap.length; i < ii; i++) { 13703 var octet = cmap[i]; 13704 if (octet == 0x20 || octet == 0x0D || octet == 0x0A || 13705 octet == 0x3C || octet == 0x5B || octet == 0x5D) { 13706 switch (token) { 13707 case 'usecmap': 13708 error('usecmap is not implemented'); 13709 break; 13710 13711 case 'beginbfchar': 13712 case 'beginbfrange': 13713 case 'begincidchar': 13714 case 'begincidrange': 13715 token = ''; 13716 tokens = []; 13717 break; 13718 13719 case 'endcidrange': 13720 case 'endbfrange': 13721 for (var j = 0, jj = tokens.length; j < jj; j += 3) { 13722 var startRange = tokens[j]; 13723 var endRange = tokens[j + 1]; 13724 var code = tokens[j + 2]; 13725 if (code == 0xFFFF) { 13726 // CMap is broken, assuming code == startRange 13727 code = startRange; 13728 } 13729 if (isArray(code)) { 13730 var codeindex = 0; 13731 while (startRange <= endRange) { 13732 charToUnicode[startRange] = code[codeindex++]; 13733 ++startRange; 13734 } 13735 } else { 13736 while (startRange <= endRange) { 13737 charToUnicode[startRange] = code++; 13738 ++startRange; 13739 } 13740 } 13741 } 13742 break; 13743 13744 case 'endcidchar': 13745 case 'endbfchar': 13746 for (var j = 0, jj = tokens.length; j < jj; j += 2) { 13747 var index = tokens[j]; 13748 var code = tokens[j + 1]; 13749 charToUnicode[index] = code; 13750 } 13751 break; 13752 13753 case '': 13754 break; 13755 13756 default: 13757 if (token[0] >= '0' && token[0] <= '9') 13758 token = parseInt(token, 10); // a number 13759 tokens.push(token); 13760 token = ''; 13761 } 13762 switch (octet) { 13763 case 0x5B: 13764 // begin list parsing 13765 tokens.push(beginArrayToken); 13766 break; 13767 case 0x5D: 13768 // collect array items 13769 var items = [], item; 13770 while (tokens.length && 13771 (item = tokens.pop()) != beginArrayToken) 13772 items.unshift(item); 13773 tokens.push(items); 13774 break; 13775 } 13776 } else if (octet == 0x3E) { 13777 if (token.length) { 13778 // XXX guessing chars size by checking number size in the CMap 13779 if (token.length <= 2 && properties.composite) 13780 properties.wideChars = false; 13781 13782 if (token.length <= 4) { 13783 // parsing hex number 13784 tokens.push(parseInt(token, 16)); 13785 token = ''; 13786 } else { 13787 // parsing hex UTF-16BE numbers 13788 var str = []; 13789 for (var k = 0, kk = token.length; k < kk; k += 4) { 13790 var b = parseInt(token.substr(k, 4), 16); 13791 if (b <= 0x10) { 13792 k += 4; 13793 b = (b << 16) | parseInt(token.substr(k, 4), 16); 13794 b -= 0x10000; 13795 str.push(0xD800 | (b >> 10)); 13796 str.push(0xDC00 | (b & 0x3FF)); 13797 break; 13798 } 13799 str.push(b); 13800 } 13801 tokens.push(String.fromCharCode.apply(String, str)); 13802 token = ''; 13803 } 13804 } 13805 } else { 13806 token += String.fromCharCode(octet); 13807 } 13808 } 13809 } 13810 return charToUnicode; 13811 }, 13812 readCidToGidMap: function PartialEvaluator_readCidToGidMap(cidToGidStream) { 13813 // Extract the encoding from the CIDToGIDMap 13814 var glyphsData = cidToGidStream.getBytes(); 13815 13816 // Set encoding 0 to later verify the font has an encoding 13817 var result = []; 13818 for (var j = 0, jj = glyphsData.length; j < jj; j++) { 13819 var glyphID = (glyphsData[j++] << 8) | glyphsData[j]; 13820 if (glyphID == 0) 13821 continue; 13822 13823 var code = j >> 1; 13824 result[code] = glyphID; 13825 } 13826 return result; 13827 }, 13828 13829 extractWidths: function PartialEvaluator_extractWidths(dict, 13830 xref, 13831 descriptor, 13832 properties) { 13833 var glyphsWidths = []; 13834 var defaultWidth = 0; 13835 if (properties.composite) { 13836 defaultWidth = dict.get('DW') || 1000; 13837 13838 var widths = dict.get('W'); 13839 if (widths) { 13840 var start = 0, end = 0; 13841 for (var i = 0, ii = widths.length; i < ii; i++) { 13842 var code = widths[i]; 13843 if (isArray(code)) { 13844 for (var j = 0, jj = code.length; j < jj; j++) 13845 glyphsWidths[start++] = code[j]; 13846 start = 0; 13847 } else if (start) { 13848 var width = widths[++i]; 13849 for (var j = start; j <= code; j++) 13850 glyphsWidths[j] = width; 13851 start = 0; 13852 } else { 13853 start = code; 13854 } 13855 } 13856 } 13857 } else { 13858 var firstChar = properties.firstChar; 13859 var widths = dict.get('Widths'); 13860 if (widths) { 13861 var j = firstChar; 13862 for (var i = 0, ii = widths.length; i < ii; i++) 13863 glyphsWidths[j++] = widths[i]; 13864 defaultWidth = parseFloat(descriptor.get('MissingWidth')) || 0; 13865 } else { 13866 // Trying get the BaseFont metrics (see comment above). 13867 var baseFontName = dict.get('BaseFont'); 13868 if (isName(baseFontName)) { 13869 var metrics = this.getBaseFontMetrics(baseFontName.name); 13870 13871 glyphsWidths = metrics.widths; 13872 defaultWidth = metrics.defaultWidth; 13873 } 13874 } 13875 } 13876 13877 properties.defaultWidth = defaultWidth; 13878 properties.widths = glyphsWidths; 13879 }, 13880 13881 getBaseFontMetrics: function PartialEvaluator_getBaseFontMetrics(name) { 13882 var defaultWidth = 0, widths = []; 13883 var glyphWidths = Metrics[stdFontMap[name] || name]; 13884 if (isNum(glyphWidths)) { 13885 defaultWidth = glyphWidths; 13886 } else { 13887 widths = glyphWidths; 13888 } 13889 13890 return { 13891 defaultWidth: defaultWidth, 13892 widths: widths 13893 }; 13894 }, 13895 13896 translateFont: function PartialEvaluator_translateFont(dict, 13897 xref, 13898 resources, 13899 dependency) { 13900 var baseDict = dict; 13901 var type = dict.get('Subtype'); 13902 assertWellFormed(isName(type), 'invalid font Subtype'); 13903 13904 var composite = false; 13905 if (type.name == 'Type0') { 13906 // If font is a composite 13907 // - get the descendant font 13908 // - set the type according to the descendant font 13909 // - get the FontDescriptor from the descendant font 13910 var df = dict.get('DescendantFonts'); 13911 if (!df) 13912 return null; 13913 13914 dict = isArray(df) ? xref.fetchIfRef(df[0]) : df; 13915 13916 type = dict.get('Subtype'); 13917 assertWellFormed(isName(type), 'invalid font Subtype'); 13918 composite = true; 13919 } 13920 var maxCharIndex = composite ? 0xFFFF : 0xFF; 13921 13922 var descriptor = dict.get('FontDescriptor'); 13923 if (!descriptor) { 13924 if (type.name == 'Type3') { 13925 // FontDescriptor is only required for Type3 fonts when the document 13926 // is a tagged pdf. Create a barbebones one to get by. 13927 descriptor = new Dict(); 13928 descriptor.set('FontName', new Name(type.name)); 13929 } else { 13930 // Before PDF 1.5 if the font was one of the base 14 fonts, having a 13931 // FontDescriptor was not required. 13932 // This case is here for compatibility. 13933 var baseFontName = dict.get('BaseFont'); 13934 if (!isName(baseFontName)) 13935 return null; 13936 13937 // Using base font name as a font name. 13938 baseFontName = baseFontName.name.replace(/[,_]/g, '-'); 13939 var metrics = this.getBaseFontMetrics(baseFontName); 13940 13941 // Simulating descriptor flags attribute 13942 var fontNameWoStyle = baseFontName.split('-')[0]; 13943 var flags = (serifFonts[fontNameWoStyle] || 13944 (fontNameWoStyle.search(/serif/gi) != -1) ? FontFlags.Serif : 0) | 13945 (symbolsFonts[fontNameWoStyle] ? FontFlags.Symbolic : 13946 FontFlags.Nonsymbolic); 13947 13948 var properties = { 13949 type: type.name, 13950 widths: metrics.widths, 13951 defaultWidth: metrics.defaultWidth, 13952 flags: flags, 13953 firstChar: 0, 13954 lastChar: maxCharIndex 13955 }; 13956 this.extractDataStructures(dict, dict, xref, properties); 13957 13958 return { 13959 name: baseFontName, 13960 dict: baseDict, 13961 properties: properties 13962 }; 13963 } 13964 } 13965 13966 // According to the spec if 'FontDescriptor' is declared, 'FirstChar', 13967 // 'LastChar' and 'Widths' should exist too, but some PDF encoders seem 13968 // to ignore this rule when a variant of a standart font is used. 13969 // TODO Fill the width array depending on which of the base font this is 13970 // a variant. 13971 var firstChar = dict.get('FirstChar') || 0; 13972 var lastChar = dict.get('LastChar') || maxCharIndex; 13973 var fontName = descriptor.get('FontName'); 13974 // Some bad pdf's have a string as the font name. 13975 if (isString(fontName)) 13976 fontName = new Name(fontName); 13977 assertWellFormed(isName(fontName), 'invalid font name'); 13978 13979 var fontFile = descriptor.get('FontFile', 'FontFile2', 'FontFile3'); 13980 if (fontFile) { 13981 if (fontFile.dict) { 13982 var subtype = fontFile.dict.get('Subtype'); 13983 if (subtype) 13984 subtype = subtype.name; 13985 13986 var length1 = fontFile.dict.get('Length1'); 13987 13988 var length2 = fontFile.dict.get('Length2'); 13989 } 13990 } 13991 13992 var properties = { 13993 type: type.name, 13994 subtype: subtype, 13995 file: fontFile, 13996 length1: length1, 13997 length2: length2, 13998 composite: composite, 13999 wideChars: composite, 14000 fixedPitch: false, 14001 fontMatrix: dict.get('FontMatrix') || IDENTITY_MATRIX, 14002 firstChar: firstChar || 0, 14003 lastChar: lastChar || maxCharIndex, 14004 bbox: descriptor.get('FontBBox'), 14005 ascent: descriptor.get('Ascent'), 14006 descent: descriptor.get('Descent'), 14007 xHeight: descriptor.get('XHeight'), 14008 capHeight: descriptor.get('CapHeight'), 14009 flags: descriptor.get('Flags'), 14010 italicAngle: descriptor.get('ItalicAngle'), 14011 coded: false 14012 }; 14013 this.extractWidths(dict, xref, descriptor, properties); 14014 this.extractDataStructures(dict, baseDict, xref, properties); 14015 14016 if (type.name === 'Type3') { 14017 properties.coded = true; 14018 var charProcs = dict.get('CharProcs').getAll(); 14019 var fontResources = dict.get('Resources') || resources; 14020 properties.charProcOperatorList = {}; 14021 for (var key in charProcs) { 14022 var glyphStream = charProcs[key]; 14023 properties.charProcOperatorList[key] = 14024 this.getOperatorList(glyphStream, fontResources, dependency); 14025 } 14026 } 14027 14028 return { 14029 name: fontName.name, 14030 dict: baseDict, 14031 file: fontFile, 14032 properties: properties 14033 }; 14034 } 14035 }; 14036 14037 return PartialEvaluator; 14038 })(); 14039 14040 var EvalState = (function EvalStateClosure() { 14041 function EvalState() { 14042 // Are soft masks and alpha values shapes or opacities? 14043 this.alphaIsShape = false; 14044 this.fontSize = 0; 14045 this.textMatrix = IDENTITY_MATRIX; 14046 this.leading = 0; 14047 // Start of text line (in text coordinates) 14048 this.lineX = 0; 14049 this.lineY = 0; 14050 // Character and word spacing 14051 this.charSpacing = 0; 14052 this.wordSpacing = 0; 14053 this.textHScale = 1; 14054 // Color spaces 14055 this.fillColorSpace = null; 14056 this.strokeColorSpace = null; 14057 } 14058 EvalState.prototype = { 14059 }; 14060 return EvalState; 14061 })(); 14062 14063 14064 /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 14065 /* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ 14066 14067 'use strict'; 14068 14069 /** 14070 * Maximum time to wait for a font to be loaded by font-face rules. 14071 */ 14072 var kMaxWaitForFontFace = 1000; 14073 14074 // Unicode Private Use Area 14075 var kCmapGlyphOffset = 0xE000; 14076 var kSizeOfGlyphArea = 0x1900; 14077 var kSymbolicFontGlyphOffset = 0xF000; 14078 14079 // PDF Glyph Space Units are one Thousandth of a TextSpace Unit 14080 // except for Type 3 fonts 14081 var kPDFGlyphSpaceUnits = 1000; 14082 14083 // Until hinting is fully supported this constant can be used 14084 var kHintingEnabled = false; 14085 14086 var FontFlags = { 14087 FixedPitch: 1, 14088 Serif: 2, 14089 Symbolic: 4, 14090 Script: 8, 14091 Nonsymbolic: 32, 14092 Italic: 64, 14093 AllCap: 65536, 14094 SmallCap: 131072, 14095 ForceBold: 262144 14096 }; 14097 14098 var Encodings = { 14099 ExpertEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 14100 '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 14101 'space', 'exclamsmall', 'Hungarumlautsmall', '', 'dollaroldstyle', 14102 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', 14103 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma', 14104 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', 14105 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 14106 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon', 14107 'semicolon', 'commasuperior', 'threequartersemdash', 'periodsuperior', 14108 'questionsmall', '', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', 14109 'esuperior', '', '', 'isuperior', '', '', 'lsuperior', 'msuperior', 14110 'nsuperior', 'osuperior', '', '', 'rsuperior', 'ssuperior', 'tsuperior', 14111 '', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', '', 14112 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', 14113 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 14114 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 14115 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 14116 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 14117 'onefitted', 'rupiah', 'Tildesmall', '', '', '', '', '', '', '', '', '', 14118 '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 14119 '', '', '', '', '', '', 'exclamdownsmall', 'centoldstyle', 'Lslashsmall', 14120 '', '', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall', 14121 'Caronsmall', '', 'Dotaccentsmall', '', '', 'Macronsmall', '', '', 14122 'figuredash', 'hypheninferior', '', '', 'Ogoneksmall', 'Ringsmall', 14123 'Cedillasmall', '', '', '', 'onequarter', 'onehalf', 'threequarters', 14124 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths', 14125 'seveneighths', 'onethird', 'twothirds', '', '', 'zerosuperior', 14126 'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior', 14127 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', 14128 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior', 14129 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', 14130 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', 14131 'dollarinferior', 'periodinferior', 'commainferior', 'Agravesmall', 14132 'Aacutesmall', 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', 14133 'Aringsmall', 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall', 14134 'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall', 14135 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall', 14136 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall', 14137 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall', 14138 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall', 14139 'Ydieresissmall'], 14140 MacExpertEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', 14141 '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 14142 'space', 'exclamsmall', 'Hungarumlautsmall', 'centoldstyle', 14143 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 14144 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 14145 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle', 14146 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 14147 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 14148 'nineoldstyle', 'colon', 'semicolon', '', 'threequartersemdash', '', 14149 'questionsmall', '', '', '', '', 'Ethsmall', '', '', 'onequarter', 14150 'onehalf', 'threequarters', 'oneeighth', 'threeeighths', 'fiveeighths', 14151 'seveneighths', 'onethird', 'twothirds', '', '', '', '', '', '', 'ff', 14152 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', '', 'parenrightinferior', 14153 'Circumflexsmall', 'hypheninferior', 'Gravesmall', 'Asmall', 'Bsmall', 14154 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', 14155 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall', 14156 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall', 14157 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', 14158 'Tildesmall', '', '', 'asuperior', 'centsuperior', '', '', '', '', 14159 'Aacutesmall', 'Agravesmall', 'Acircumflexsmall', 'Adieresissmall', 14160 'Atildesmall', 'Aringsmall', 'Ccedillasmall', 'Eacutesmall', 'Egravesmall', 14161 'Ecircumflexsmall', 'Edieresissmall', 'Iacutesmall', 'Igravesmall', 14162 'Icircumflexsmall', 'Idieresissmall', 'Ntildesmall', 'Oacutesmall', 14163 'Ogravesmall', 'Ocircumflexsmall', 'Odieresissmall', 'Otildesmall', 14164 'Uacutesmall', 'Ugravesmall', 'Ucircumflexsmall', 'Udieresissmall', '', 14165 'eightsuperior', 'fourinferior', 'threeinferior', 'sixinferior', 14166 'eightinferior', 'seveninferior', 'Scaronsmall', '', 'centinferior', 14167 'twoinferior', '', 'Dieresissmall', '', 'Caronsmall', 'osuperior', 14168 'fiveinferior', '', 'commainferior', 'periodinferior', 'Yacutesmall', '', 14169 'dollarinferior', '', 'Thornsmall', '', 'nineinferior', 'zeroinferior', 14170 'Zcaronsmall', 'AEsmall', 'Oslashsmall', 'questiondownsmall', 14171 'oneinferior', 'Lslashsmall', '', '', '', '', '', '', 'Cedillasmall', '', 14172 '', '', '', '', 'OEsmall', 'figuredash', 'hyphensuperior', '', '', '', '', 14173 'exclamdownsmall', '', 'Ydieresissmall', '', 'onesuperior', 'twosuperior', 14174 'threesuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 14175 'sevensuperior', 'ninesuperior', 'zerosuperior', '', 'esuperior', 14176 'rsuperior', 'tsuperior', '', '', 'isuperior', 'ssuperior', 'dsuperior', 14177 '', '', '', '', '', 'lsuperior', 'Ogoneksmall', 'Brevesmall', 14178 'Macronsmall', 'bsuperior', 'nsuperior', 'msuperior', 'commasuperior', 14179 'periodsuperior', 'Dotaccentsmall', 'Ringsmall'], 14180 MacRomanEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 14181 '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 14182 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 14183 'ampersand', 'quotesingle', 'parenleft', 'parenright', 'asterisk', 'plus', 14184 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 14185 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 14186 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 14187 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 14188 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 14189 'asciicircum', 'underscore', 'grave', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 14190 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 14191 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', '', 14192 'Adieresis', 'Aring', 'Ccedilla', 'Eacute', 'Ntilde', 'Odieresis', 14193 'Udieresis', 'aacute', 'agrave', 'acircumflex', 'adieresis', 'atilde', 14194 'aring', 'ccedilla', 'eacute', 'egrave', 'ecircumflex', 'edieresis', 14195 'iacute', 'igrave', 'icircumflex', 'idieresis', 'ntilde', 'oacute', 14196 'ograve', 'ocircumflex', 'odieresis', 'otilde', 'uacute', 'ugrave', 14197 'ucircumflex', 'udieresis', 'dagger', 'degree', 'cent', 'sterling', 14198 'section', 'bullet', 'paragraph', 'germandbls', 'registered', 'copyright', 14199 'trademark', 'acute', 'dieresis', 'notequal', 'AE', 'Oslash', 'infinity', 14200 'plusminus', 'lessequal', 'greaterequal', 'yen', 'mu', 'partialdiff', 14201 'summation', 'product', 'pi', 'integral', 'ordfeminine', 'ordmasculine', 14202 'Omega', 'ae', 'oslash', 'questiondown', 'exclamdown', 'logicalnot', 14203 'radical', 'florin', 'approxequal', 'Delta', 'guillemotleft', 14204 'guillemotright', 'ellipsis', '', 'Agrave', 'Atilde', 'Otilde', 'OE', 14205 'oe', 'endash', 'emdash', 'quotedblleft', 'quotedblright', 'quoteleft', 14206 'quoteright', 'divide', 'lozenge', 'ydieresis', 'Ydieresis', 'fraction', 14207 'currency', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'daggerdbl', 14208 'periodcentered', 'quotesinglbase', 'quotedblbase', 'perthousand', 14209 'Acircumflex', 'Ecircumflex', 'Aacute', 'Edieresis', 'Egrave', 'Iacute', 14210 'Icircumflex', 'Idieresis', 'Igrave', 'Oacute', 'Ocircumflex', 'apple', 14211 'Ograve', 'Uacute', 'Ucircumflex', 'Ugrave', 'dotlessi', 'circumflex', 14212 'tilde', 'macron', 'breve', 'dotaccent', 'ring', 'cedilla', 'hungarumlaut', 14213 'ogonek', 'caron'], 14214 StandardEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 14215 '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 14216 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 14217 'ampersand', 'quoteright', 'parenleft', 'parenright', 'asterisk', 'plus', 14218 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 14219 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 14220 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 14221 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 14222 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 14223 'asciicircum', 'underscore', 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 14224 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 14225 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 14226 '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 14227 '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'exclamdown', 14228 'cent', 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', 14229 'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft', 14230 'guilsinglright', 'fi', 'fl', '', 'endash', 'dagger', 'daggerdbl', 14231 'periodcentered', '', 'paragraph', 'bullet', 'quotesinglbase', 14232 'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis', 14233 'perthousand', '', 'questiondown', '', 'grave', 'acute', 'circumflex', 14234 'tilde', 'macron', 'breve', 'dotaccent', 'dieresis', '', 'ring', 'cedilla', 14235 '', 'hungarumlaut', 'ogonek', 'caron', 'emdash', '', '', '', '', '', '', 14236 '', '', '', '', '', '', '', '', '', '', 'AE', '', 'ordfeminine', '', '', 14237 '', '', 'Lslash', 'Oslash', 'OE', 'ordmasculine', '', '', '', '', '', 'ae', 14238 '', '', '', 'dotlessi', '', '', 'lslash', 'oslash', 'oe', 'germandbls'], 14239 WinAnsiEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 14240 '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 14241 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 14242 'ampersand', 'quotesingle', 'parenleft', 'parenright', 'asterisk', 'plus', 14243 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 14244 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 14245 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 14246 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 14247 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 14248 'asciicircum', 'underscore', 'grave', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 14249 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 14250 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 14251 'bullet', 'Euro', 'bullet', 'quotesinglbase', 'florin', 'quotedblbase', 14252 'ellipsis', 'dagger', 'daggerdbl', 'circumflex', 'perthousand', 'Scaron', 14253 'guilsinglleft', 'OE', 'bullet', 'Zcaron', 'bullet', 'bullet', 'quoteleft', 14254 'quoteright', 'quotedblleft', 'quotedblright', 'bullet', 'endash', 14255 'emdash', 'tilde', 'trademark', 'scaron', 'guilsinglright', 'oe', 'bullet', 14256 'zcaron', 'Ydieresis', '', 'exclamdown', 'cent', 'sterling', 14257 'currency', 'yen', 'brokenbar', 'section', 'dieresis', 'copyright', 14258 'ordfeminine', 'guillemotleft', 'logicalnot', 'hyphen', 'registered', 14259 'macron', 'degree', 'plusminus', 'twosuperior', 'threesuperior', 'acute', 14260 'mu', 'paragraph', 'periodcentered', 'cedilla', 'onesuperior', 14261 'ordmasculine', 'guillemotright', 'onequarter', 'onehalf', 'threequarters', 14262 'questiondown', 'Agrave', 'Aacute', 'Acircumflex', 'Atilde', 'Adieresis', 14263 'Aring', 'AE', 'Ccedilla', 'Egrave', 'Eacute', 'Ecircumflex', 'Edieresis', 14264 'Igrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Eth', 'Ntilde', 'Ograve', 14265 'Oacute', 'Ocircumflex', 'Otilde', 'Odieresis', 'multiply', 'Oslash', 14266 'Ugrave', 'Uacute', 'Ucircumflex', 'Udieresis', 'Yacute', 'Thorn', 14267 'germandbls', 'agrave', 'aacute', 'acircumflex', 'atilde', 'adieresis', 14268 'aring', 'ae', 'ccedilla', 'egrave', 'eacute', 'ecircumflex', 'edieresis', 14269 'igrave', 'iacute', 'icircumflex', 'idieresis', 'eth', 'ntilde', 'ograve', 14270 'oacute', 'ocircumflex', 'otilde', 'odieresis', 'divide', 'oslash', 14271 'ugrave', 'uacute', 'ucircumflex', 'udieresis', 'yacute', 'thorn', 14272 'ydieresis'], 14273 symbolsEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 14274 '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 14275 'space', 'exclam', 'universal', 'numbersign', 'existential', 'percent', 14276 'ampersand', 'suchthat', 'parenleft', 'parenright', 'asteriskmath', 'plus', 14277 'comma', 'minus', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 14278 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 14279 'equal', 'greater', 'question', 'congruent', 'Alpha', 'Beta', 'Chi', 14280 'Delta', 'Epsilon', 'Phi', 'Gamma', 'Eta', 'Iota', 'theta1', 'Kappa', 14281 'Lambda', 'Mu', 'Nu', 'Omicron', 'Pi', 'Theta', 'Rho', 'Sigma', 'Tau', 14282 'Upsilon', 'sigma1', 'Omega', 'Xi', 'Psi', 'Zeta', 'bracketleft', 14283 'therefore', 'bracketright', 'perpendicular', 'underscore', 'radicalex', 14284 'alpha', 'beta', 'chi', 'delta', 'epsilon', 'phi', 'gamma', 'eta', 'iota', 14285 'phi1', 'kappa', 'lambda', 'mu', 'nu', 'omicron', 'pi', 'theta', 'rho', 14286 'sigma', 'tau', 'upsilon', 'omega1', 'omega', 'xi', 'psi', 'zeta', 14287 'braceleft', 'bar', 'braceright', 'similar', '', '', '', '', '', '', '', 14288 '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 14289 '', '', '', '', '', '', '', 'Euro', 'Upsilon1', 'minute', 'lessequal', 14290 'fraction', 'infinity', 'florin', 'club', 'diamond', 'heart', 'spade', 14291 'arrowboth', 'arrowleft', 'arrowup', 'arrowright', 'arrowdown', 'degree', 14292 'plusminus', 'second', 'greaterequal', 'multiply', 'proportional', 14293 'partialdiff', 'bullet', 'divide', 'notequal', 'equivalence', 14294 'approxequal', 'ellipsis', 'arrowvertex', 'arrowhorizex', 'carriagereturn', 14295 'aleph', 'Ifraktur', 'Rfraktur', 'weierstrass', 'circlemultiply', 14296 'circleplus', 'emptyset', 'intersection', 'union', 'propersuperset', 14297 'reflexsuperset', 'notsubset', 'propersubset', 'reflexsubset', 'element', 14298 'notelement', 'angle', 'gradient', 'registerserif', 'copyrightserif', 14299 'trademarkserif', 'product', 'radical', 'dotmath', 'logicalnot', 14300 'logicaland', 'logicalor', 'arrowdblboth', 'arrowdblleft', 'arrowdblup', 14301 'arrowdblright', 'arrowdbldown', 'lozenge', 'angleleft', 'registersans', 14302 'copyrightsans', 'trademarksans', 'summation', 'parenlefttp', 14303 'parenleftex', 'parenleftbt', 'bracketlefttp', 'bracketleftex', 14304 'bracketleftbt', 'bracelefttp', 'braceleftmid', 'braceleftbt', 'braceex', 14305 '', 'angleright', 'integral', 'integraltp', 'integralex', 'integralbt', 14306 'parenrighttp', 'parenrightex', 'parenrightbt', 'bracketrighttp', 14307 'bracketrightex', 'bracketrightbt', 'bracerighttp', 'bracerightmid', 14308 'bracerightbt'], 14309 zapfDingbatsEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', 14310 '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 14311 'space', 'a1', 'a2', 'a202', 'a3', 'a4', 'a5', 'a119', 'a118', 'a117', 14312 'a11', 'a12', 'a13', 'a14', 'a15', 'a16', 'a105', 'a17', 'a18', 'a19', 14313 'a20', 'a21', 'a22', 'a23', 'a24', 'a25', 'a26', 'a27', 'a28', 'a6', 'a7', 14314 'a8', 'a9', 'a10', 'a29', 'a30', 'a31', 'a32', 'a33', 'a34', 'a35', 'a36', 14315 'a37', 'a38', 'a39', 'a40', 'a41', 'a42', 'a43', 'a44', 'a45', 'a46', 14316 'a47', 'a48', 'a49', 'a50', 'a51', 'a52', 'a53', 'a54', 'a55', 'a56', 14317 'a57', 'a58', 'a59', 'a60', 'a61', 'a62', 'a63', 'a64', 'a65', 'a66', 14318 'a67', 'a68', 'a69', 'a70', 'a71', 'a72', 'a73', 'a74', 'a203', 'a75', 14319 'a204', 'a76', 'a77', 'a78', 'a79', 'a81', 'a82', 'a83', 'a84', 'a97', 14320 'a98', 'a99', 'a100', '', '', '', '', '', '', '', '', '', '', '', '', '', 14321 '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 14322 '', '', 'a101', 'a102', 'a103', 'a104', 'a106', 'a107', 'a108', 'a112', 14323 'a111', 'a110', 'a109', 'a120', 'a121', 'a122', 'a123', 'a124', 'a125', 14324 'a126', 'a127', 'a128', 'a129', 'a130', 'a131', 'a132', 'a133', 'a134', 14325 'a135', 'a136', 'a137', 'a138', 'a139', 'a140', 'a141', 'a142', 'a143', 14326 'a144', 'a145', 'a146', 'a147', 'a148', 'a149', 'a150', 'a151', 'a152', 14327 'a153', 'a154', 'a155', 'a156', 'a157', 'a158', 'a159', 'a160', 'a161', 14328 'a163', 'a164', 'a196', 'a165', 'a192', 'a166', 'a167', 'a168', 'a169', 14329 'a170', 'a171', 'a172', 'a173', 'a162', 'a174', 'a175', 'a176', 'a177', 14330 'a178', 'a179', 'a193', 'a180', 'a199', 'a181', 'a200', 'a182', '', 'a201', 14331 'a183', 'a184', 'a197', 'a185', 'a194', 'a198', 'a186', 'a195', 'a187', 14332 'a188', 'a189', 'a190', 'a191'] 14333 }; 14334 14335 /** 14336 * Hold a map of decoded fonts and of the standard fourteen Type1 14337 * fonts and their acronyms. 14338 */ 14339 var stdFontMap = { 14340 'ArialNarrow': 'Helvetica', 14341 'ArialNarrow-Bold': 'Helvetica-Bold', 14342 'ArialNarrow-BoldItalic': 'Helvetica-BoldOblique', 14343 'ArialNarrow-Italic': 'Helvetica-Oblique', 14344 'ArialBlack': 'Helvetica', 14345 'ArialBlack-Bold': 'Helvetica-Bold', 14346 'ArialBlack-BoldItalic': 'Helvetica-BoldOblique', 14347 'ArialBlack-Italic': 'Helvetica-Oblique', 14348 'Arial': 'Helvetica', 14349 'Arial-Bold': 'Helvetica-Bold', 14350 'Arial-BoldItalic': 'Helvetica-BoldOblique', 14351 'Arial-Italic': 'Helvetica-Oblique', 14352 'Arial-BoldItalicMT': 'Helvetica-BoldOblique', 14353 'Arial-BoldMT': 'Helvetica-Bold', 14354 'Arial-ItalicMT': 'Helvetica-Oblique', 14355 'ArialMT': 'Helvetica', 14356 'Courier-Bold': 'Courier-Bold', 14357 'Courier-BoldItalic': 'Courier-BoldOblique', 14358 'Courier-Italic': 'Courier-Oblique', 14359 'CourierNew': 'Courier', 14360 'CourierNew-Bold': 'Courier-Bold', 14361 'CourierNew-BoldItalic': 'Courier-BoldOblique', 14362 'CourierNew-Italic': 'Courier-Oblique', 14363 'CourierNewPS-BoldItalicMT': 'Courier-BoldOblique', 14364 'CourierNewPS-BoldMT': 'Courier-Bold', 14365 'CourierNewPS-ItalicMT': 'Courier-Oblique', 14366 'CourierNewPSMT': 'Courier', 14367 'Helvetica-Bold': 'Helvetica-Bold', 14368 'Helvetica-BoldItalic': 'Helvetica-BoldOblique', 14369 'Helvetica-Italic': 'Helvetica-Oblique', 14370 'Symbol-Bold': 'Symbol', 14371 'Symbol-BoldItalic': 'Symbol', 14372 'Symbol-Italic': 'Symbol', 14373 'TimesNewRoman': 'Times-Roman', 14374 'TimesNewRoman-Bold': 'Times-Bold', 14375 'TimesNewRoman-BoldItalic': 'Times-BoldItalic', 14376 'TimesNewRoman-Italic': 'Times-Italic', 14377 'TimesNewRomanPS': 'Times-Roman', 14378 'TimesNewRomanPS-Bold': 'Times-Bold', 14379 'TimesNewRomanPS-BoldItalic': 'Times-BoldItalic', 14380 'TimesNewRomanPS-BoldItalicMT': 'Times-BoldItalic', 14381 'TimesNewRomanPS-BoldMT': 'Times-Bold', 14382 'TimesNewRomanPS-Italic': 'Times-Italic', 14383 'TimesNewRomanPS-ItalicMT': 'Times-Italic', 14384 'TimesNewRomanPSMT': 'Times-Roman', 14385 'TimesNewRomanPSMT-Bold': 'Times-Bold', 14386 'TimesNewRomanPSMT-BoldItalic': 'Times-BoldItalic', 14387 'TimesNewRomanPSMT-Italic': 'Times-Italic' 14388 }; 14389 14390 /** 14391 * Holds the map of the non-standard fonts that might be included as a standard 14392 * fonts without glyph data. 14393 */ 14394 var nonStdFontMap = { 14395 'ComicSansMS': 'Comic Sans MS', 14396 'ComicSansMS-Bold': 'Comic Sans MS-Bold', 14397 'ComicSansMS-BoldItalic': 'Comic Sans MS-BoldItalic', 14398 'ComicSansMS-Italic': 'Comic Sans MS-Italic', 14399 'LucidaConsole': 'Courier', 14400 'LucidaConsole-Bold': 'Courier-Bold', 14401 'LucidaConsole-BoldItalic': 'Courier-BoldOblique', 14402 'LucidaConsole-Italic': 'Courier-Oblique' 14403 }; 14404 14405 var serifFonts = { 14406 'Adobe Jenson': true, 'Adobe Text': true, 'Albertus': true, 14407 'Aldus': true, 'Alexandria': true, 'Algerian': true, 14408 'American Typewriter': true, 'Antiqua': true, 'Apex': true, 14409 'Arno': true, 'Aster': true, 'Aurora': true, 14410 'Baskerville': true, 'Bell': true, 'Bembo': true, 14411 'Bembo Schoolbook': true, 'Benguiat': true, 'Berkeley Old Style': true, 14412 'Bernhard Modern': true, 'Berthold City': true, 'Bodoni': true, 14413 'Bauer Bodoni': true, 'Book Antiqua': true, 'Bookman': true, 14414 'Bordeaux Roman': true, 'Californian FB': true, 'Calisto': true, 14415 'Calvert': true, 'Capitals': true, 'Cambria': true, 14416 'Cartier': true, 'Caslon': true, 'Catull': true, 14417 'Centaur': true, 'Century Old Style': true, 'Century Schoolbook': true, 14418 'Chaparral': true, 'Charis SIL': true, 'Cheltenham': true, 14419 'Cholla Slab': true, 'Clarendon': true, 'Clearface': true, 14420 'Cochin': true, 'Colonna': true, 'Computer Modern': true, 14421 'Concrete Roman': true, 'Constantia': true, 'Cooper Black': true, 14422 'Corona': true, 'Ecotype': true, 'Egyptienne': true, 14423 'Elephant': true, 'Excelsior': true, 'Fairfield': true, 14424 'FF Scala': true, 'Folkard': true, 'Footlight': true, 14425 'FreeSerif': true, 'Friz Quadrata': true, 'Garamond': true, 14426 'Gentium': true, 'Georgia': true, 'Gloucester': true, 14427 'Goudy Old Style': true, 'Goudy Schoolbook': true, 'Goudy Pro Font': true, 14428 'Granjon': true, 'Guardian Egyptian': true, 'Heather': true, 14429 'Hercules': true, 'High Tower Text': true, 'Hiroshige': true, 14430 'Hoefler Text': true, 'Humana Serif': true, 'Imprint': true, 14431 'Ionic No. 5': true, 'Janson': true, 'Joanna': true, 14432 'Korinna': true, 'Lexicon': true, 'Liberation Serif': true, 14433 'Linux Libertine': true, 'Literaturnaya': true, 'Lucida': true, 14434 'Lucida Bright': true, 'Melior': true, 'Memphis': true, 14435 'Miller': true, 'Minion': true, 'Modern': true, 14436 'Mona Lisa': true, 'Mrs Eaves': true, 'MS Serif': true, 14437 'Museo Slab': true, 'New York': true, 'Nimbus Roman': true, 14438 'NPS Rawlinson Roadway': true, 'Palatino': true, 'Perpetua': true, 14439 'Plantin': true, 'Plantin Schoolbook': true, 'Playbill': true, 14440 'Poor Richard': true, 'Rawlinson Roadway': true, 'Renault': true, 14441 'Requiem': true, 'Rockwell': true, 'Roman': true, 14442 'Rotis Serif': true, 'Sabon': true, 'Scala': true, 14443 'Seagull': true, 'Sistina': true, 'Souvenir': true, 14444 'STIX': true, 'Stone Informal': true, 'Stone Serif': true, 14445 'Sylfaen': true, 'Times': true, 'Trajan': true, 14446 'Trinit': true, 'Trump Mediaeval': true, 'Utopia': true, 14447 'Vale Type': true, 'Bitstream Vera': true, 'Vera Serif': true, 14448 'Versailles': true, 'Wanted': true, 'Weiss': true, 14449 'Wide Latin': true, 'Windsor': true, 'XITS': true 14450 }; 14451 14452 var symbolsFonts = { 14453 'Dingbats': true, 'Symbol': true, 'ZapfDingbats': true 14454 }; 14455 14456 // Some characters, e.g. copyrightserif, mapped to the private use area and 14457 // might not be displayed using standard fonts. Mapping/hacking well-known chars 14458 // to the similar equivalents in the normal characters range. 14459 function mapPrivateUseChars(code) { 14460 switch (code) { 14461 case 0xF8E9: // copyrightsans 14462 case 0xF6D9: // copyrightserif 14463 return 0x00A9; // copyright 14464 default: 14465 return code; 14466 } 14467 } 14468 14469 var FontLoader = { 14470 listeningForFontLoad: false, 14471 14472 bind: function fontLoaderBind(fonts, callback) { 14473 function checkFontsLoaded() { 14474 for (var i = 0, ii = fonts.length; i < ii; i++) { 14475 var fontObj = fonts[i]; 14476 if (fontObj.loading) { 14477 return false; 14478 } 14479 } 14480 14481 PdfJS_window.document.documentElement.removeEventListener( 14482 'pdfjsFontLoad', checkFontsLoaded, false); 14483 14484 callback(); 14485 return true; 14486 } 14487 14488 var rules = [], names = [], fontsToLoad = []; 14489 var fontCreateTimer = 0; 14490 14491 for (var i = 0, ii = fonts.length; i < ii; i++) { 14492 var font = fonts[i]; 14493 14494 // Add the font to the DOM only once or skip if the font 14495 // is already loaded. 14496 if (font.attached || font.loading == false) { 14497 continue; 14498 } 14499 font.attached = true; 14500 14501 fontsToLoad.push(font); 14502 14503 var str = ''; 14504 var data = font.data; 14505 if (data) { 14506 var length = data.length; 14507 for (var j = 0; j < length; j++) 14508 str += String.fromCharCode(data[j]); 14509 14510 var rule = font.bindDOM(str); 14511 if (rule) { 14512 rules.push(rule); 14513 names.push(font.loadedName); 14514 } 14515 } 14516 } 14517 14518 this.listeningForFontLoad = false; 14519 if (!isWorker && rules.length) { 14520 FontLoader.prepareFontLoadEvent(rules, names, fontsToLoad); 14521 } 14522 14523 if (!checkFontsLoaded()) { 14524 PdfJS_window.document.documentElement.addEventListener( 14525 'pdfjsFontLoad', checkFontsLoaded, false); 14526 } 14527 }, 14528 // Set things up so that at least one pdfjsFontLoad event is 14529 // dispatched when all the @font-face |rules| for |names| have been 14530 // loaded in a subdocument. It's expected that the load of |rules| 14531 // has already started in this (outer) document, so that they should 14532 // be ordered before the load in the subdocument. 14533 prepareFontLoadEvent: function fontLoaderPrepareFontLoadEvent(rules, names, 14534 fonts) { 14535 /** Hack begin */ 14536 // There's no event when a font has finished downloading so the 14537 // following code is a dirty hack to 'guess' when a font is 14538 // ready. This code will be obsoleted by Mozilla bug 471915. 14539 // 14540 // The only reliable way to know if a font is loaded in Gecko 14541 // (at the moment) is document.onload in a document with 14542 // a @font-face rule defined in a "static" stylesheet. We use a 14543 // subdocument in an <iframe>, set up properly, to know when 14544 // our @font-face rule was loaded. However, the subdocument and 14545 // outer document can't share CSS rules, so the inner document 14546 // is only part of the puzzle. The second piece is an invisible 14547 // div created in order to force loading of the @font-face in 14548 // the *outer* document. (The font still needs to be loaded for 14549 // its metrics, for reflow). We create the div first for the 14550 // outer document, then create the iframe. Unless something 14551 // goes really wonkily, we expect the @font-face for the outer 14552 // document to be processed before the inner. That's still 14553 // fragile, but seems to work in practice. 14554 // 14555 // The postMessage() hackery was added to work around chrome bug 14556 // 82402. 14557 14558 // Validate the names parameter -- the values can used to construct HTML. 14559 if (!/^\w+$/.test(names.join(''))) { 14560 error('Invalid font name(s): ' + names.join()); 14561 14562 // Normally the error-function throws. But if a malicious code 14563 // intercepts the function call then the return is needed. 14564 return; 14565 } 14566 14567 var div = PdfJS_window.document.createElement('div'); 14568 div.setAttribute('style', 14569 'visibility: hidden;' + 14570 'width: 10px; height: 10px;' + 14571 'position: absolute; top: 0px; left: 0px;'); 14572 var html = ''; 14573 for (var i = 0, ii = names.length; i < ii; ++i) { 14574 html += '<span style="font-family:' + names[i] + '">Hi</span>'; 14575 } 14576 div.innerHTML = html; 14577 PdfJS_window.document.body.appendChild(div); 14578 14579 if (!this.listeningForFontLoad) { 14580 PdfJS_window.window.addEventListener( 14581 'message', 14582 function fontLoaderMessage(e) { 14583 var fontNames = JSON.parse(e.data); 14584 for (var i = 0, ii = fonts.length; i < ii; ++i) { 14585 var font = fonts[i]; 14586 font.loading = false; 14587 } 14588 var evt = PdfJS_window.document.createEvent('Events'); 14589 evt.initEvent('pdfjsFontLoad', true, false); 14590 PdfJS_window.document.documentElement.dispatchEvent(evt); 14591 }, 14592 false); 14593 this.listeningForFontLoad = true; 14594 } 14595 14596 // XXX we should have a time-out here too, and maybe fire 14597 // pdfjsFontLoadFailed? 14598 var src = '<!DOCTYPE HTML><html><head>'; 14599 src += '<style type="text/css">'; 14600 for (var i = 0, ii = rules.length; i < ii; ++i) { 14601 src += rules[i]; 14602 } 14603 src += '</style>'; 14604 src += '<script type="application/javascript">'; 14605 var fontNamesArray = ''; 14606 for (var i = 0, ii = names.length; i < ii; ++i) { 14607 fontNamesArray += '"' + names[i] + '", '; 14608 } 14609 src += ' var fontNames=[' + fontNamesArray + '];\n'; 14610 src += ' PdfJS_window.window.onload = function fontLoaderOnload() {\n'; 14611 src += ' parent.postMessage(JSON.stringify(fontNames), "*");\n'; 14612 src += ' }'; 14613 // Hack so the end script tag isn't counted if this is inline JS. 14614 src += '</scr' + 'ipt></head><body>'; 14615 for (var i = 0, ii = names.length; i < ii; ++i) { 14616 src += '<p style="font-family:\'' + names[i] + '\'">Hi</p>'; 14617 } 14618 src += '</body></html>'; 14619 var frame = PdfJS_window.document.createElement('iframe'); 14620 frame.src = 'data:text/html,' + src; 14621 frame.setAttribute('style', 14622 'visibility: hidden;' + 14623 'width: 10px; height: 10px;' + 14624 'position: absolute; top: 0px; left: 0px;'); 14625 PdfJS_window.document.body.appendChild(frame); 14626 /** Hack end */ 14627 } 14628 }; 14629 14630 var UnicodeRanges = [ 14631 { 'begin': 0x0000, 'end': 0x007F }, // Basic Latin 14632 { 'begin': 0x0080, 'end': 0x00FF }, // Latin-1 Supplement 14633 { 'begin': 0x0100, 'end': 0x017F }, // Latin Extended-A 14634 { 'begin': 0x0180, 'end': 0x024F }, // Latin Extended-B 14635 { 'begin': 0x0250, 'end': 0x02AF }, // IPA Extensions 14636 { 'begin': 0x02B0, 'end': 0x02FF }, // Spacing Modifier Letters 14637 { 'begin': 0x0300, 'end': 0x036F }, // Combining Diacritical Marks 14638 { 'begin': 0x0370, 'end': 0x03FF }, // Greek and Coptic 14639 { 'begin': 0x2C80, 'end': 0x2CFF }, // Coptic 14640 { 'begin': 0x0400, 'end': 0x04FF }, // Cyrillic 14641 { 'begin': 0x0530, 'end': 0x058F }, // Armenian 14642 { 'begin': 0x0590, 'end': 0x05FF }, // Hebrew 14643 { 'begin': 0xA500, 'end': 0xA63F }, // Vai 14644 { 'begin': 0x0600, 'end': 0x06FF }, // Arabic 14645 { 'begin': 0x07C0, 'end': 0x07FF }, // NKo 14646 { 'begin': 0x0900, 'end': 0x097F }, // Devanagari 14647 { 'begin': 0x0980, 'end': 0x09FF }, // Bengali 14648 { 'begin': 0x0A00, 'end': 0x0A7F }, // Gurmukhi 14649 { 'begin': 0x0A80, 'end': 0x0AFF }, // Gujarati 14650 { 'begin': 0x0B00, 'end': 0x0B7F }, // Oriya 14651 { 'begin': 0x0B80, 'end': 0x0BFF }, // Tamil 14652 { 'begin': 0x0C00, 'end': 0x0C7F }, // Telugu 14653 { 'begin': 0x0C80, 'end': 0x0CFF }, // Kannada 14654 { 'begin': 0x0D00, 'end': 0x0D7F }, // Malayalam 14655 { 'begin': 0x0E00, 'end': 0x0E7F }, // Thai 14656 { 'begin': 0x0E80, 'end': 0x0EFF }, // Lao 14657 { 'begin': 0x10A0, 'end': 0x10FF }, // Georgian 14658 { 'begin': 0x1B00, 'end': 0x1B7F }, // Balinese 14659 { 'begin': 0x1100, 'end': 0x11FF }, // Hangul Jamo 14660 { 'begin': 0x1E00, 'end': 0x1EFF }, // Latin Extended Additional 14661 { 'begin': 0x1F00, 'end': 0x1FFF }, // Greek Extended 14662 { 'begin': 0x2000, 'end': 0x206F }, // General Punctuation 14663 { 'begin': 0x2070, 'end': 0x209F }, // Superscripts And Subscripts 14664 { 'begin': 0x20A0, 'end': 0x20CF }, // Currency Symbol 14665 { 'begin': 0x20D0, 'end': 0x20FF }, // Combining Diacritical Marks For Symbols 14666 { 'begin': 0x2100, 'end': 0x214F }, // Letterlike Symbols 14667 { 'begin': 0x2150, 'end': 0x218F }, // Number Forms 14668 { 'begin': 0x2190, 'end': 0x21FF }, // Arrows 14669 { 'begin': 0x2200, 'end': 0x22FF }, // Mathematical Operators 14670 { 'begin': 0x2300, 'end': 0x23FF }, // Miscellaneous Technical 14671 { 'begin': 0x2400, 'end': 0x243F }, // Control Pictures 14672 { 'begin': 0x2440, 'end': 0x245F }, // Optical Character Recognition 14673 { 'begin': 0x2460, 'end': 0x24FF }, // Enclosed Alphanumerics 14674 { 'begin': 0x2500, 'end': 0x257F }, // Box Drawing 14675 { 'begin': 0x2580, 'end': 0x259F }, // Block Elements 14676 { 'begin': 0x25A0, 'end': 0x25FF }, // Geometric Shapes 14677 { 'begin': 0x2600, 'end': 0x26FF }, // Miscellaneous Symbols 14678 { 'begin': 0x2700, 'end': 0x27BF }, // Dingbats 14679 { 'begin': 0x3000, 'end': 0x303F }, // CJK Symbols And Punctuation 14680 { 'begin': 0x3040, 'end': 0x309F }, // Hiragana 14681 { 'begin': 0x30A0, 'end': 0x30FF }, // Katakana 14682 { 'begin': 0x3100, 'end': 0x312F }, // Bopomofo 14683 { 'begin': 0x3130, 'end': 0x318F }, // Hangul Compatibility Jamo 14684 { 'begin': 0xA840, 'end': 0xA87F }, // Phags-pa 14685 { 'begin': 0x3200, 'end': 0x32FF }, // Enclosed CJK Letters And Months 14686 { 'begin': 0x3300, 'end': 0x33FF }, // CJK Compatibility 14687 { 'begin': 0xAC00, 'end': 0xD7AF }, // Hangul Syllables 14688 { 'begin': 0xD800, 'end': 0xDFFF }, // Non-Plane 0 * 14689 { 'begin': 0x10900, 'end': 0x1091F }, // Phoenicia 14690 { 'begin': 0x4E00, 'end': 0x9FFF }, // CJK Unified Ideographs 14691 { 'begin': 0xE000, 'end': 0xF8FF }, // Private Use Area (plane 0) 14692 { 'begin': 0x31C0, 'end': 0x31EF }, // CJK Strokes 14693 { 'begin': 0xFB00, 'end': 0xFB4F }, // Alphabetic Presentation Forms 14694 { 'begin': 0xFB50, 'end': 0xFDFF }, // Arabic Presentation Forms-A 14695 { 'begin': 0xFE20, 'end': 0xFE2F }, // Combining Half Marks 14696 { 'begin': 0xFE10, 'end': 0xFE1F }, // Vertical Forms 14697 { 'begin': 0xFE50, 'end': 0xFE6F }, // Small Form Variants 14698 { 'begin': 0xFE70, 'end': 0xFEFF }, // Arabic Presentation Forms-B 14699 { 'begin': 0xFF00, 'end': 0xFFEF }, // Halfwidth And Fullwidth Forms 14700 { 'begin': 0xFFF0, 'end': 0xFFFF }, // Specials 14701 { 'begin': 0x0F00, 'end': 0x0FFF }, // Tibetan 14702 { 'begin': 0x0700, 'end': 0x074F }, // Syriac 14703 { 'begin': 0x0780, 'end': 0x07BF }, // Thaana 14704 { 'begin': 0x0D80, 'end': 0x0DFF }, // Sinhala 14705 { 'begin': 0x1000, 'end': 0x109F }, // Myanmar 14706 { 'begin': 0x1200, 'end': 0x137F }, // Ethiopic 14707 { 'begin': 0x13A0, 'end': 0x13FF }, // Cherokee 14708 { 'begin': 0x1400, 'end': 0x167F }, // Unified Canadian Aboriginal Syllabics 14709 { 'begin': 0x1680, 'end': 0x169F }, // Ogham 14710 { 'begin': 0x16A0, 'end': 0x16FF }, // Runic 14711 { 'begin': 0x1780, 'end': 0x17FF }, // Khmer 14712 { 'begin': 0x1800, 'end': 0x18AF }, // Mongolian 14713 { 'begin': 0x2800, 'end': 0x28FF }, // Braille Patterns 14714 { 'begin': 0xA000, 'end': 0xA48F }, // Yi Syllables 14715 { 'begin': 0x1700, 'end': 0x171F }, // Tagalog 14716 { 'begin': 0x10300, 'end': 0x1032F }, // Old Italic 14717 { 'begin': 0x10330, 'end': 0x1034F }, // Gothic 14718 { 'begin': 0x10400, 'end': 0x1044F }, // Deseret 14719 { 'begin': 0x1D000, 'end': 0x1D0FF }, // Byzantine Musical Symbols 14720 { 'begin': 0x1D400, 'end': 0x1D7FF }, // Mathematical Alphanumeric Symbols 14721 { 'begin': 0xFF000, 'end': 0xFFFFD }, // Private Use (plane 15) 14722 { 'begin': 0xFE00, 'end': 0xFE0F }, // Variation Selectors 14723 { 'begin': 0xE0000, 'end': 0xE007F }, // Tags 14724 { 'begin': 0x1900, 'end': 0x194F }, // Limbu 14725 { 'begin': 0x1950, 'end': 0x197F }, // Tai Le 14726 { 'begin': 0x1980, 'end': 0x19DF }, // New Tai Lue 14727 { 'begin': 0x1A00, 'end': 0x1A1F }, // Buginese 14728 { 'begin': 0x2C00, 'end': 0x2C5F }, // Glagolitic 14729 { 'begin': 0x2D30, 'end': 0x2D7F }, // Tifinagh 14730 { 'begin': 0x4DC0, 'end': 0x4DFF }, // Yijing Hexagram Symbols 14731 { 'begin': 0xA800, 'end': 0xA82F }, // Syloti Nagri 14732 { 'begin': 0x10000, 'end': 0x1007F }, // Linear B Syllabary 14733 { 'begin': 0x10140, 'end': 0x1018F }, // Ancient Greek Numbers 14734 { 'begin': 0x10380, 'end': 0x1039F }, // Ugaritic 14735 { 'begin': 0x103A0, 'end': 0x103DF }, // Old Persian 14736 { 'begin': 0x10450, 'end': 0x1047F }, // Shavian 14737 { 'begin': 0x10480, 'end': 0x104AF }, // Osmanya 14738 { 'begin': 0x10800, 'end': 0x1083F }, // Cypriot Syllabary 14739 { 'begin': 0x10A00, 'end': 0x10A5F }, // Kharoshthi 14740 { 'begin': 0x1D300, 'end': 0x1D35F }, // Tai Xuan Jing Symbols 14741 { 'begin': 0x12000, 'end': 0x123FF }, // Cuneiform 14742 { 'begin': 0x1D360, 'end': 0x1D37F }, // Counting Rod Numerals 14743 { 'begin': 0x1B80, 'end': 0x1BBF }, // Sundanese 14744 { 'begin': 0x1C00, 'end': 0x1C4F }, // Lepcha 14745 { 'begin': 0x1C50, 'end': 0x1C7F }, // Ol Chiki 14746 { 'begin': 0xA880, 'end': 0xA8DF }, // Saurashtra 14747 { 'begin': 0xA900, 'end': 0xA92F }, // Kayah Li 14748 { 'begin': 0xA930, 'end': 0xA95F }, // Rejang 14749 { 'begin': 0xAA00, 'end': 0xAA5F }, // Cham 14750 { 'begin': 0x10190, 'end': 0x101CF }, // Ancient Symbols 14751 { 'begin': 0x101D0, 'end': 0x101FF }, // Phaistos Disc 14752 { 'begin': 0x102A0, 'end': 0x102DF }, // Carian 14753 { 'begin': 0x1F030, 'end': 0x1F09F } // Domino Tiles 14754 ]; 14755 14756 var MacStandardGlyphOrdering = [ 14757 '.notdef', '.null', 'nonmarkingreturn', 'space', 'exclam', 'quotedbl', 14758 'numbersign', 'dollar', 'percent', 'ampersand', 'quotesingle', 'parenleft', 14759 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 14760 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 14761 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 14762 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 14763 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 14764 'backslash', 'bracketright', 'asciicircum', 'underscore', 'grave', 'a', 'b', 14765 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 14766 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 14767 'asciitilde', 'Adieresis', 'Aring', 'Ccedilla', 'Eacute', 'Ntilde', 14768 'Odieresis', 'Udieresis', 'aacute', 'agrave', 'acircumflex', 'adieresis', 14769 'atilde', 'aring', 'ccedilla', 'eacute', 'egrave', 'ecircumflex', 'edieresis', 14770 'iacute', 'igrave', 'icircumflex', 'idieresis', 'ntilde', 'oacute', 'ograve', 14771 'ocircumflex', 'odieresis', 'otilde', 'uacute', 'ugrave', 'ucircumflex', 14772 'udieresis', 'dagger', 'degree', 'cent', 'sterling', 'section', 'bullet', 14773 'paragraph', 'germandbls', 'registered', 'copyright', 'trademark', 'acute', 14774 'dieresis', 'notequal', 'AE', 'Oslash', 'infinity', 'plusminus', 'lessequal', 14775 'greaterequal', 'yen', 'mu', 'partialdiff', 'summation', 'product', 'pi', 14776 'integral', 'ordfeminine', 'ordmasculine', 'Omega', 'ae', 'oslash', 14777 'questiondown', 'exclamdown', 'logicalnot', 'radical', 'florin', 14778 'approxequal', 'Delta', 'guillemotleft', 'guillemotright', 'ellipsis', 14779 'nonbreakingspace', 'Agrave', 'Atilde', 'Otilde', 'OE', 'oe', 'endash', 14780 'emdash', 'quotedblleft', 'quotedblright', 'quoteleft', 'quoteright', 14781 'divide', 'lozenge', 'ydieresis', 'Ydieresis', 'fraction', 'currency', 14782 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'daggerdbl', 'periodcentered', 14783 'quotesinglbase', 'quotedblbase', 'perthousand', 'Acircumflex', 14784 'Ecircumflex', 'Aacute', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex', 14785 'Idieresis', 'Igrave', 'Oacute', 'Ocircumflex', 'apple', 'Ograve', 'Uacute', 14786 'Ucircumflex', 'Ugrave', 'dotlessi', 'circumflex', 'tilde', 'macron', 14787 'breve', 'dotaccent', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron', 14788 'Lslash', 'lslash', 'Scaron', 'scaron', 'Zcaron', 'zcaron', 'brokenbar', 14789 'Eth', 'eth', 'Yacute', 'yacute', 'Thorn', 'thorn', 'minus', 'multiply', 14790 'onesuperior', 'twosuperior', 'threesuperior', 'onehalf', 'onequarter', 14791 'threequarters', 'franc', 'Gbreve', 'gbreve', 'Idotaccent', 'Scedilla', 14792 'scedilla', 'Cacute', 'cacute', 'Ccaron', 'ccaron', 'dcroat']; 14793 14794 function getUnicodeRangeFor(value) { 14795 for (var i = 0, ii = UnicodeRanges.length; i < ii; i++) { 14796 var range = UnicodeRanges[i]; 14797 if (value >= range.begin && value < range.end) 14798 return i; 14799 } 14800 return -1; 14801 } 14802 14803 function isRTLRangeFor(value) { 14804 var range = UnicodeRanges[13]; 14805 if (value >= range.begin && value < range.end) 14806 return true; 14807 range = UnicodeRanges[11]; 14808 if (value >= range.begin && value < range.end) 14809 return true; 14810 return false; 14811 } 14812 14813 function isSpecialUnicode(unicode) { 14814 return (unicode <= 0x1F || (unicode >= 127 && unicode < kSizeOfGlyphArea)) || 14815 (unicode >= kCmapGlyphOffset && 14816 unicode < kCmapGlyphOffset + kSizeOfGlyphArea); 14817 } 14818 14819 /** 14820 * 'Font' is the class the outside world should use, it encapsulate all the font 14821 * decoding logics whatever type it is (assuming the font type is supported). 14822 * 14823 * For example to read a Type1 font and to attach it to the document: 14824 * var type1Font = new Font("MyFontName", binaryFile, propertiesObject); 14825 * type1Font.bind(); 14826 */ 14827 var Font = (function FontClosure() { 14828 function Font(name, file, properties) { 14829 this.name = name; 14830 this.coded = properties.coded; 14831 this.charProcOperatorList = properties.charProcOperatorList; 14832 this.sizes = []; 14833 14834 var names = name.split('+'); 14835 names = names.length > 1 ? names[1] : names[0]; 14836 names = names.split(/[-,_]/g)[0]; 14837 this.isSerifFont = !!(properties.flags & FontFlags.Serif); 14838 this.isSymbolicFont = !!(properties.flags & FontFlags.Symbolic); 14839 14840 var type = properties.type; 14841 this.type = type; 14842 14843 // If the font is to be ignored, register it like an already loaded font 14844 // to avoid the cost of waiting for it be be loaded by the platform. 14845 if (properties.ignore) { 14846 this.loadedName = this.isSerifFont ? 'serif' : 'sans-serif'; 14847 this.loading = false; 14848 return; 14849 } 14850 14851 this.differences = properties.differences; 14852 this.widths = properties.widths; 14853 this.defaultWidth = properties.defaultWidth; 14854 this.composite = properties.composite; 14855 this.wideChars = properties.wideChars; 14856 this.hasEncoding = properties.hasEncoding; 14857 14858 this.fontMatrix = properties.fontMatrix; 14859 this.widthMultiplier = 1.0; 14860 if (properties.type == 'Type3') { 14861 this.encoding = properties.baseEncoding; 14862 return; 14863 } 14864 14865 // Trying to fix encoding using glyph CIDSystemInfo. 14866 this.loadCidToUnicode(properties); 14867 14868 if (properties.toUnicode) 14869 this.toUnicode = properties.toUnicode; 14870 else 14871 this.rebuildToUnicode(properties); 14872 14873 this.toFontChar = this.buildToFontChar(this.toUnicode); 14874 14875 if (!file) { 14876 // The file data is not specified. Trying to fix the font name 14877 // to be used with the canvas.font. 14878 var fontName = name.replace(/[,_]/g, '-'); 14879 fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName; 14880 14881 this.bold = (fontName.search(/bold/gi) != -1); 14882 this.italic = (fontName.search(/oblique/gi) != -1) || 14883 (fontName.search(/italic/gi) != -1); 14884 14885 // Use 'name' instead of 'fontName' here because the original 14886 // name ArialBlack for example will be replaced by Helvetica. 14887 this.black = (name.search(/Black/g) != -1); 14888 14889 this.encoding = properties.baseEncoding; 14890 this.noUnicodeAdaptation = true; 14891 this.loadedName = fontName.split('-')[0]; 14892 this.loading = false; 14893 return; 14894 } 14895 14896 var data; 14897 switch (type) { 14898 case 'Type1': 14899 case 'CIDFontType0': 14900 this.mimetype = 'font/opentype'; 14901 14902 var subtype = properties.subtype; 14903 var cff = (subtype == 'Type1C' || subtype == 'CIDFontType0C') ? 14904 new CFFFont(file, properties) : new Type1Font(name, file, properties); 14905 14906 // Wrap the CFF data inside an OTF font file 14907 data = this.convert(name, cff, properties); 14908 break; 14909 14910 case 'TrueType': 14911 case 'CIDFontType2': 14912 this.mimetype = 'font/opentype'; 14913 14914 // Repair the TrueType file. It is can be damaged in the point of 14915 // view of the sanitizer 14916 data = this.checkAndRepair(name, file, properties); 14917 break; 14918 14919 default: 14920 warn('Font ' + properties.type + ' is not supported'); 14921 break; 14922 } 14923 14924 this.data = data; 14925 this.fontMatrix = properties.fontMatrix; 14926 this.widthMultiplier = !properties.fontMatrix ? 1.0 : 14927 1.0 / properties.fontMatrix[0]; 14928 this.encoding = properties.baseEncoding; 14929 this.loadedName = properties.loadedName; 14930 this.loading = true; 14931 }; 14932 14933 var numFonts = 0; 14934 function getUniqueName() { 14935 return 'pdfFont' + numFonts++; 14936 } 14937 14938 function stringToArray(str) { 14939 var array = []; 14940 for (var i = 0, ii = str.length; i < ii; ++i) 14941 array[i] = str.charCodeAt(i); 14942 14943 return array; 14944 }; 14945 14946 function arrayToString(arr) { 14947 var str = ''; 14948 for (var i = 0, ii = arr.length; i < ii; ++i) 14949 str += String.fromCharCode(arr[i]); 14950 14951 return str; 14952 }; 14953 14954 function int16(bytes) { 14955 return (bytes[0] << 8) + (bytes[1] & 0xff); 14956 }; 14957 14958 function int32(bytes) { 14959 return (bytes[0] << 24) + (bytes[1] << 16) + 14960 (bytes[2] << 8) + (bytes[3] & 0xff); 14961 }; 14962 14963 function getMaxPower2(number) { 14964 var maxPower = 0; 14965 var value = number; 14966 while (value >= 2) { 14967 value /= 2; 14968 maxPower++; 14969 } 14970 14971 value = 2; 14972 for (var i = 1; i < maxPower; i++) 14973 value *= 2; 14974 return value; 14975 }; 14976 14977 function string16(value) { 14978 return String.fromCharCode((value >> 8) & 0xff) + 14979 String.fromCharCode(value & 0xff); 14980 }; 14981 14982 function safeString16(value) { 14983 // clamp value to the 16-bit int range 14984 value = value > 0x7FFF ? 0x7FFF : value < -0x8000 ? -0x8000 : value; 14985 return String.fromCharCode((value >> 8) & 0xff) + 14986 String.fromCharCode(value & 0xff); 14987 }; 14988 14989 function string32(value) { 14990 return String.fromCharCode((value >> 24) & 0xff) + 14991 String.fromCharCode((value >> 16) & 0xff) + 14992 String.fromCharCode((value >> 8) & 0xff) + 14993 String.fromCharCode(value & 0xff); 14994 }; 14995 14996 function createOpenTypeHeader(sfnt, file, numTables) { 14997 // Windows hates the Mac TrueType sfnt version number 14998 if (sfnt == 'true') 14999 sfnt = string32(0x00010000); 15000 15001 // sfnt version (4 bytes) 15002 var header = sfnt; 15003 15004 // numTables (2 bytes) 15005 header += string16(numTables); 15006 15007 // searchRange (2 bytes) 15008 var tablesMaxPower2 = getMaxPower2(numTables); 15009 var searchRange = tablesMaxPower2 * 16; 15010 header += string16(searchRange); 15011 15012 // entrySelector (2 bytes) 15013 header += string16(Math.log(tablesMaxPower2) / Math.log(2)); 15014 15015 // rangeShift (2 bytes) 15016 header += string16(numTables * 16 - searchRange); 15017 15018 file.file += header; 15019 file.virtualOffset += header.length; 15020 }; 15021 15022 function createTableEntry(file, tag, data) { 15023 // offset 15024 var offset = file.virtualOffset; 15025 15026 // length 15027 var length = data.length; 15028 15029 // Per spec tables must be 4-bytes align so add padding as needed 15030 while (data.length & 3) 15031 data.push(0x00); 15032 15033 while (file.virtualOffset & 3) 15034 file.virtualOffset++; 15035 15036 // checksum 15037 var checksum = 0, n = data.length; 15038 for (var i = 0; i < n; i += 4) 15039 checksum = (checksum + int32([data[i], data[i + 1], data[i + 2], 15040 data[i + 3]])) | 0; 15041 15042 var tableEntry = (tag + string32(checksum) + 15043 string32(offset) + string32(length)); 15044 file.file += tableEntry; 15045 file.virtualOffset += data.length; 15046 }; 15047 15048 function getRanges(glyphs) { 15049 // Array.sort() sorts by characters, not numerically, so convert to an 15050 // array of characters. 15051 var codes = []; 15052 var length = glyphs.length; 15053 for (var n = 0; n < length; ++n) 15054 codes.push({ unicode: glyphs[n].unicode, code: n }); 15055 codes.sort(function fontGetRangesSort(a, b) { 15056 return a.unicode - b.unicode; 15057 }); 15058 15059 // Split the sorted codes into ranges. 15060 var ranges = []; 15061 for (var n = 0; n < length; ) { 15062 var start = codes[n].unicode; 15063 var codeIndices = [codes[n].code]; 15064 ++n; 15065 var end = start; 15066 while (n < length && end + 1 == codes[n].unicode) { 15067 codeIndices.push(codes[n].code); 15068 ++end; 15069 ++n; 15070 } 15071 ranges.push([start, end, codeIndices]); 15072 } 15073 15074 return ranges; 15075 }; 15076 15077 function createCMapTable(glyphs, deltas) { 15078 var ranges = getRanges(glyphs); 15079 15080 var numTables = 1; 15081 var cmap = '\x00\x00' + // version 15082 string16(numTables) + // numTables 15083 '\x00\x03' + // platformID 15084 '\x00\x01' + // encodingID 15085 string32(4 + numTables * 8); // start of the table record 15086 15087 var segCount = ranges.length + 1; 15088 var segCount2 = segCount * 2; 15089 var searchRange = getMaxPower2(segCount) * 2; 15090 var searchEntry = Math.log(segCount) / Math.log(2); 15091 var rangeShift = 2 * segCount - searchRange; 15092 15093 // Fill up the 4 parallel arrays describing the segments. 15094 var startCount = ''; 15095 var endCount = ''; 15096 var idDeltas = ''; 15097 var idRangeOffsets = ''; 15098 var glyphsIds = ''; 15099 var bias = 0; 15100 15101 if (deltas) { 15102 for (var i = 0; i < segCount - 1; i++) { 15103 var range = ranges[i]; 15104 var start = range[0]; 15105 var end = range[1]; 15106 var offset = (segCount - i) * 2 + bias * 2; 15107 bias += (end - start + 1); 15108 15109 startCount += string16(start); 15110 endCount += string16(end); 15111 idDeltas += string16(0); 15112 idRangeOffsets += string16(offset); 15113 15114 var codes = range[2]; 15115 for (var j = 0, jj = codes.length; j < jj; ++j) 15116 glyphsIds += string16(deltas[codes[j]]); 15117 } 15118 } else { 15119 for (var i = 0; i < segCount - 1; i++) { 15120 var range = ranges[i]; 15121 var start = range[0]; 15122 var end = range[1]; 15123 var startCode = range[2][0]; 15124 15125 startCount += string16(start); 15126 endCount += string16(end); 15127 idDeltas += string16((startCode - start + 1) & 0xFFFF); 15128 idRangeOffsets += string16(0); 15129 } 15130 } 15131 15132 endCount += '\xFF\xFF'; 15133 startCount += '\xFF\xFF'; 15134 idDeltas += '\x00\x01'; 15135 idRangeOffsets += '\x00\x00'; 15136 15137 var format314 = '\x00\x00' + // language 15138 string16(segCount2) + 15139 string16(searchRange) + 15140 string16(searchEntry) + 15141 string16(rangeShift) + 15142 endCount + '\x00\x00' + startCount + 15143 idDeltas + idRangeOffsets + glyphsIds; 15144 15145 return stringToArray(cmap + 15146 '\x00\x04' + // format 15147 string16(format314.length + 4) + // length 15148 format314); 15149 }; 15150 15151 function createOS2Table(properties, charstrings, override) { 15152 override = override || { 15153 unitsPerEm: 0, 15154 yMax: 0, 15155 yMin: 0, 15156 ascent: 0, 15157 descent: 0 15158 }; 15159 15160 var ulUnicodeRange1 = 0; 15161 var ulUnicodeRange2 = 0; 15162 var ulUnicodeRange3 = 0; 15163 var ulUnicodeRange4 = 0; 15164 15165 var firstCharIndex = null; 15166 var lastCharIndex = 0; 15167 15168 if (charstrings) { 15169 for (var i = 0; i < charstrings.length; ++i) { 15170 var code = charstrings[i].unicode; 15171 if (firstCharIndex > code || !firstCharIndex) 15172 firstCharIndex = code; 15173 if (lastCharIndex < code) 15174 lastCharIndex = code; 15175 15176 var position = getUnicodeRangeFor(code); 15177 if (position < 32) { 15178 ulUnicodeRange1 |= 1 << position; 15179 } else if (position < 64) { 15180 ulUnicodeRange2 |= 1 << position - 32; 15181 } else if (position < 96) { 15182 ulUnicodeRange3 |= 1 << position - 64; 15183 } else if (position < 123) { 15184 ulUnicodeRange4 |= 1 << position - 96; 15185 } else { 15186 error('Unicode ranges Bits > 123 are reserved for internal usage'); 15187 } 15188 } 15189 } else { 15190 // TODO 15191 firstCharIndex = 0; 15192 lastCharIndex = 255; 15193 } 15194 15195 var unitsPerEm = override.unitsPerEm || kPDFGlyphSpaceUnits; 15196 var typoAscent = override.ascent || properties.ascent; 15197 var typoDescent = override.descent || properties.descent; 15198 var winAscent = override.yMax || typoAscent; 15199 var winDescent = -override.yMin || -typoDescent; 15200 15201 // if there is a units per em value but no other override 15202 // then scale the calculated ascent 15203 if (unitsPerEm != kPDFGlyphSpaceUnits && 15204 'undefined' == typeof(override.ascent)) { 15205 // if the font units differ to the PDF glyph space units 15206 // then scale up the values 15207 typoAscent = Math.round(typoAscent * unitsPerEm / kPDFGlyphSpaceUnits); 15208 typoDescent = Math.round(typoDescent * unitsPerEm / kPDFGlyphSpaceUnits); 15209 winAscent = typoAscent; 15210 winDescent = -typoDescent; 15211 } 15212 15213 return '\x00\x03' + // version 15214 '\x02\x24' + // xAvgCharWidth 15215 '\x01\xF4' + // usWeightClass 15216 '\x00\x05' + // usWidthClass 15217 '\x00\x00' + // fstype (0 to let the font loads via font-face on IE) 15218 '\x02\x8A' + // ySubscriptXSize 15219 '\x02\xBB' + // ySubscriptYSize 15220 '\x00\x00' + // ySubscriptXOffset 15221 '\x00\x8C' + // ySubscriptYOffset 15222 '\x02\x8A' + // ySuperScriptXSize 15223 '\x02\xBB' + // ySuperScriptYSize 15224 '\x00\x00' + // ySuperScriptXOffset 15225 '\x01\xDF' + // ySuperScriptYOffset 15226 '\x00\x31' + // yStrikeOutSize 15227 '\x01\x02' + // yStrikeOutPosition 15228 '\x00\x00' + // sFamilyClass 15229 '\x00\x00\x06' + 15230 String.fromCharCode(properties.fixedPitch ? 0x09 : 0x00) + 15231 '\x00\x00\x00\x00\x00\x00' + // Panose 15232 string32(ulUnicodeRange1) + // ulUnicodeRange1 (Bits 0-31) 15233 string32(ulUnicodeRange2) + // ulUnicodeRange2 (Bits 32-63) 15234 string32(ulUnicodeRange3) + // ulUnicodeRange3 (Bits 64-95) 15235 string32(ulUnicodeRange4) + // ulUnicodeRange4 (Bits 96-127) 15236 '\x2A\x32\x31\x2A' + // achVendID 15237 string16(properties.italicAngle ? 1 : 0) + // fsSelection 15238 string16(firstCharIndex || 15239 properties.firstChar) + // usFirstCharIndex 15240 string16(lastCharIndex || properties.lastChar) + // usLastCharIndex 15241 string16(typoAscent) + // sTypoAscender 15242 string16(typoDescent) + // sTypoDescender 15243 '\x00\x64' + // sTypoLineGap (7%-10% of the unitsPerEM value) 15244 string16(winAscent) + // usWinAscent 15245 string16(winDescent) + // usWinDescent 15246 '\x00\x00\x00\x00' + // ulCodePageRange1 (Bits 0-31) 15247 '\x00\x00\x00\x00' + // ulCodePageRange2 (Bits 32-63) 15248 string16(properties.xHeight) + // sxHeight 15249 string16(properties.capHeight) + // sCapHeight 15250 string16(0) + // usDefaultChar 15251 string16(firstCharIndex || properties.firstChar) + // usBreakChar 15252 '\x00\x03'; // usMaxContext 15253 }; 15254 15255 function createPostTable(properties) { 15256 var angle = Math.floor(properties.italicAngle * (Math.pow(2, 16))); 15257 return '\x00\x03\x00\x00' + // Version number 15258 string32(angle) + // italicAngle 15259 '\x00\x00' + // underlinePosition 15260 '\x00\x00' + // underlineThickness 15261 string32(properties.fixedPitch) + // isFixedPitch 15262 '\x00\x00\x00\x00' + // minMemType42 15263 '\x00\x00\x00\x00' + // maxMemType42 15264 '\x00\x00\x00\x00' + // minMemType1 15265 '\x00\x00\x00\x00'; // maxMemType1 15266 }; 15267 15268 function createNameTable(name) { 15269 var strings = [ 15270 'Original licence', // 0.Copyright 15271 name, // 1.Font family 15272 'Unknown', // 2.Font subfamily (font weight) 15273 'uniqueID', // 3.Unique ID 15274 name, // 4.Full font name 15275 'Version 0.11', // 5.Version 15276 '', // 6.Postscript name 15277 'Unknown', // 7.Trademark 15278 'Unknown', // 8.Manufacturer 15279 'Unknown' // 9.Designer 15280 ]; 15281 15282 // Mac want 1-byte per character strings while Windows want 15283 // 2-bytes per character, so duplicate the names table 15284 var stringsUnicode = []; 15285 for (var i = 0, ii = strings.length; i < ii; i++) { 15286 var str = strings[i]; 15287 15288 var strUnicode = ''; 15289 for (var j = 0, jj = str.length; j < jj; j++) 15290 strUnicode += string16(str.charCodeAt(j)); 15291 stringsUnicode.push(strUnicode); 15292 } 15293 15294 var names = [strings, stringsUnicode]; 15295 var platforms = ['\x00\x01', '\x00\x03']; 15296 var encodings = ['\x00\x00', '\x00\x01']; 15297 var languages = ['\x00\x00', '\x04\x09']; 15298 15299 var namesRecordCount = strings.length * platforms.length; 15300 var nameTable = 15301 '\x00\x00' + // format 15302 string16(namesRecordCount) + // Number of names Record 15303 string16(namesRecordCount * 12 + 6); // Storage 15304 15305 // Build the name records field 15306 var strOffset = 0; 15307 for (var i = 0, ii = platforms.length; i < ii; i++) { 15308 var strs = names[i]; 15309 for (var j = 0, jj = strs.length; j < jj; j++) { 15310 var str = strs[j]; 15311 var nameRecord = 15312 platforms[i] + // platform ID 15313 encodings[i] + // encoding ID 15314 languages[i] + // language ID 15315 string16(j) + // name ID 15316 string16(str.length) + 15317 string16(strOffset); 15318 nameTable += nameRecord; 15319 strOffset += str.length; 15320 } 15321 } 15322 15323 nameTable += strings.join('') + stringsUnicode.join(''); 15324 return nameTable; 15325 } 15326 15327 Font.prototype = { 15328 name: null, 15329 font: null, 15330 mimetype: null, 15331 encoding: null, 15332 15333 checkAndRepair: function Font_checkAndRepair(name, font, properties) { 15334 function readTableEntry(file) { 15335 var tag = file.getBytes(4); 15336 tag = String.fromCharCode(tag[0]) + 15337 String.fromCharCode(tag[1]) + 15338 String.fromCharCode(tag[2]) + 15339 String.fromCharCode(tag[3]); 15340 15341 var checksum = int32(file.getBytes(4)); 15342 var offset = int32(file.getBytes(4)); 15343 var length = int32(file.getBytes(4)); 15344 15345 // Read the table associated data 15346 var previousPosition = file.pos; 15347 file.pos = file.start ? file.start : 0; 15348 file.skip(offset); 15349 var data = file.getBytes(length); 15350 file.pos = previousPosition; 15351 15352 if (tag == 'head') { 15353 // clearing checksum adjustment 15354 data[8] = data[9] = data[10] = data[11] = 0; 15355 data[17] |= 0x20; //Set font optimized for cleartype flag 15356 } 15357 15358 return { 15359 tag: tag, 15360 checksum: checksum, 15361 length: length, 15362 offset: offset, 15363 data: data 15364 }; 15365 }; 15366 15367 function readOpenTypeHeader(ttf) { 15368 return { 15369 version: arrayToString(ttf.getBytes(4)), 15370 numTables: int16(ttf.getBytes(2)), 15371 searchRange: int16(ttf.getBytes(2)), 15372 entrySelector: int16(ttf.getBytes(2)), 15373 rangeShift: int16(ttf.getBytes(2)) 15374 }; 15375 }; 15376 15377 function createGlyphNameMap(glyphs, ids, properties) { 15378 var glyphNames = properties.glyphNames; 15379 if (!glyphNames) { 15380 properties.glyphNameMap = {}; 15381 return; 15382 } 15383 var glyphsLength = glyphs.length; 15384 var glyphNameMap = {}; 15385 var encoding = []; 15386 for (var i = 0; i < glyphsLength; ++i) { 15387 var glyphName = glyphNames[ids[i]]; 15388 if (!glyphName) 15389 continue; 15390 var unicode = glyphs[i].unicode; 15391 glyphNameMap[glyphName] = unicode; 15392 var code = glyphs[i].code; 15393 encoding[code] = glyphName; 15394 } 15395 properties.glyphNameMap = glyphNameMap; 15396 if (!properties.hasEncoding) 15397 properties.baseEncoding = encoding; 15398 } 15399 15400 function readCMapTable(cmap, font) { 15401 var start = (font.start ? font.start : 0) + cmap.offset; 15402 font.pos = start; 15403 15404 var version = int16(font.getBytes(2)); 15405 var numRecords = int16(font.getBytes(2)); 15406 15407 var records = []; 15408 for (var i = 0; i < numRecords; i++) { 15409 records.push({ 15410 platformID: int16(font.getBytes(2)), 15411 encodingID: int16(font.getBytes(2)), 15412 offset: int32(font.getBytes(4)) 15413 }); 15414 } 15415 15416 // Check that table are sorted by platformID then encodingID, 15417 records.sort(function fontReadCMapTableSort(a, b) { 15418 return ((a.platformID << 16) + a.encodingID) - 15419 ((b.platformID << 16) + b.encodingID); 15420 }); 15421 15422 var tables = [records[0]]; 15423 for (var i = 1; i < numRecords; i++) { 15424 // The sanitizer will drop the font if 2 tables have the same 15425 // platformID and the same encodingID, this will be correct for 15426 // most cases but if the font has been made for Mac it could 15427 // exist a few platformID: 1, encodingID: 0 but with a different 15428 // language field and that's correct. But the sanitizer does not 15429 // seem to support this case. 15430 var current = records[i]; 15431 var previous = records[i - 1]; 15432 if (((current.platformID << 16) + current.encodingID) <= 15433 ((previous.platformID << 16) + previous.encodingID)) 15434 continue; 15435 tables.push(current); 15436 } 15437 15438 var missing = numRecords - tables.length; 15439 if (missing) { 15440 numRecords = tables.length; 15441 var data = string16(version) + string16(numRecords); 15442 15443 for (var i = 0; i < numRecords; i++) { 15444 var table = tables[i]; 15445 data += string16(table.platformID) + 15446 string16(table.encodingID) + 15447 string32(table.offset); 15448 } 15449 15450 for (var i = 0, ii = data.length; i < ii; i++) 15451 cmap.data[i] = data.charCodeAt(i); 15452 } 15453 15454 for (var i = 0; i < numRecords; i++) { 15455 var table = tables[i]; 15456 font.pos = start + table.offset; 15457 15458 var format = int16(font.getBytes(2)); 15459 var length = int16(font.getBytes(2)); 15460 var language = int16(font.getBytes(2)); 15461 15462 if (format == 0) { 15463 // Characters below 0x20 are controls characters that are hardcoded 15464 // into the platform so if some characters in the font are assigned 15465 // under this limit they will not be displayed so let's rewrite the 15466 // CMap. 15467 var glyphs = []; 15468 var ids = []; 15469 for (var j = 0; j < 256; j++) { 15470 var index = font.getByte(); 15471 if (index) { 15472 glyphs.push({ unicode: j, code: j }); 15473 ids.push(index); 15474 } 15475 } 15476 return { 15477 glyphs: glyphs, 15478 ids: ids, 15479 hasShortCmap: true 15480 }; 15481 } else if (format == 4) { 15482 // re-creating the table in format 4 since the encoding 15483 // might be changed 15484 var segCount = (int16(font.getBytes(2)) >> 1); 15485 font.getBytes(6); // skipping range fields 15486 var segIndex, segments = []; 15487 for (segIndex = 0; segIndex < segCount; segIndex++) { 15488 segments.push({ end: int16(font.getBytes(2)) }); 15489 } 15490 font.getBytes(2); 15491 for (segIndex = 0; segIndex < segCount; segIndex++) { 15492 segments[segIndex].start = int16(font.getBytes(2)); 15493 } 15494 15495 for (segIndex = 0; segIndex < segCount; segIndex++) { 15496 segments[segIndex].delta = int16(font.getBytes(2)); 15497 } 15498 15499 var offsetsCount = 0; 15500 for (segIndex = 0; segIndex < segCount; segIndex++) { 15501 var segment = segments[segIndex]; 15502 var rangeOffset = int16(font.getBytes(2)); 15503 if (!rangeOffset) { 15504 segment.offsetIndex = -1; 15505 continue; 15506 } 15507 15508 var offsetIndex = (rangeOffset >> 1) - (segCount - segIndex); 15509 segment.offsetIndex = offsetIndex; 15510 offsetsCount = Math.max(offsetsCount, offsetIndex + 15511 segment.end - segment.start + 1); 15512 } 15513 15514 var offsets = []; 15515 for (var j = 0; j < offsetsCount; j++) 15516 offsets.push(int16(font.getBytes(2))); 15517 15518 var glyphs = [], ids = []; 15519 15520 for (segIndex = 0; segIndex < segCount; segIndex++) { 15521 var segment = segments[segIndex]; 15522 var start = segment.start, end = segment.end; 15523 var delta = segment.delta, offsetIndex = segment.offsetIndex; 15524 15525 for (var j = start; j <= end; j++) { 15526 if (j == 0xFFFF) 15527 continue; 15528 15529 var glyphCode = offsetIndex < 0 ? j : 15530 offsets[offsetIndex + j - start]; 15531 glyphCode = (glyphCode + delta) & 0xFFFF; 15532 if (glyphCode == 0) 15533 continue; 15534 15535 glyphs.push({ unicode: j, code: j }); 15536 ids.push(glyphCode); 15537 } 15538 } 15539 15540 return { 15541 glyphs: glyphs, 15542 ids: ids 15543 }; 15544 } else if (format == 6) { 15545 // Format 6 is a 2-bytes dense mapping, which means the font data 15546 // lives glue together even if they are pretty far in the unicode 15547 // table. (This looks weird, so I can have missed something), this 15548 // works on Linux but seems to fails on Mac so let's rewrite the 15549 // cmap table to a 3-1-4 style 15550 var firstCode = int16(font.getBytes(2)); 15551 var entryCount = int16(font.getBytes(2)); 15552 15553 var glyphs = []; 15554 var ids = []; 15555 for (var j = 0; j < entryCount; j++) { 15556 var glyphCode = int16(font.getBytes(2)); 15557 var code = firstCode + j; 15558 15559 glyphs.push({ unicode: code, code: code }); 15560 ids.push(glyphCode); 15561 } 15562 15563 return { 15564 glyphs: glyphs, 15565 ids: ids 15566 }; 15567 } 15568 } 15569 error('Unsupported cmap table format'); 15570 }; 15571 15572 function sanitizeMetrics(font, header, metrics, numGlyphs) { 15573 if (!header && !metrics) 15574 return; 15575 15576 // The vhea/vmtx tables are not required, so it happens that 15577 // some fonts embed a vmtx table without a vhea table. In this 15578 // situation the sanitizer assume numOfLongVerMetrics = 1. As 15579 // a result it tries to read numGlyphs - 1 SHORT from the vmtx 15580 // table, and if it is not possible, the font is rejected. 15581 // So remove the vmtx table if there is no vhea table. 15582 if (!header && metrics) { 15583 metrics.data = null; 15584 return; 15585 } 15586 15587 font.pos = (font.start ? font.start : 0) + header.offset; 15588 font.pos += header.length - 2; 15589 var numOfMetrics = int16(font.getBytes(2)); 15590 15591 var numOfSidebearings = numGlyphs - numOfMetrics; 15592 var numMissing = numOfSidebearings - 15593 ((hmtx.length - numOfMetrics * 4) >> 1); 15594 if (numMissing > 0) { 15595 font.pos = (font.start ? font.start : 0) + metrics.offset; 15596 var entries = ''; 15597 for (var i = 0, ii = hmtx.length; i < ii; i++) 15598 entries += String.fromCharCode(font.getByte()); 15599 for (var i = 0; i < numMissing; i++) 15600 entries += '\x00\x00'; 15601 metrics.data = stringToArray(entries); 15602 } 15603 }; 15604 15605 function sanitizeGlyph(source, sourceStart, sourceEnd, dest, destStart) { 15606 if (sourceEnd - sourceStart <= 12) { 15607 // glyph with data less than 12 is invalid one 15608 return 0; 15609 } 15610 var glyf = source.subarray(sourceStart, sourceEnd); 15611 var contoursCount = (glyf[0] << 8) | glyf[1]; 15612 if (contoursCount & 0x8000) { 15613 // complex glyph, writing as is 15614 dest.set(glyf, destStart); 15615 return glyf.length; 15616 } 15617 15618 var j = 10, flagsCount = 0; 15619 for (var i = 0; i < contoursCount; i++) { 15620 var endPoint = (glyf[j] << 8) | glyf[j + 1]; 15621 flagsCount = endPoint + 1; 15622 j += 2; 15623 } 15624 // skipping instructions 15625 var instructionsLength = (glyf[j] << 8) | glyf[j + 1]; 15626 j += 2 + instructionsLength; 15627 // validating flags 15628 var coordinatesLength = 0; 15629 for (var i = 0; i < flagsCount; i++) { 15630 var flag = glyf[j++]; 15631 if (flag & 0xC0) { 15632 // reserved flags must be zero, rejecting 15633 return 0; 15634 } 15635 var xyLength = ((flag & 2) ? 1 : (flag & 16) ? 0 : 2) + 15636 ((flag & 4) ? 1 : (flag & 32) ? 0 : 2); 15637 coordinatesLength += xyLength; 15638 if (flag & 8) { 15639 var repeat = glyf[j++]; 15640 i += repeat; 15641 coordinatesLength += repeat * xyLength; 15642 } 15643 } 15644 var glyphDataLength = j + coordinatesLength; 15645 if (glyphDataLength > glyf.length) { 15646 // not enough data for coordinates 15647 return 0; 15648 } 15649 if (glyf.length - glyphDataLength > 3) { 15650 // truncating and aligning to 4 bytes the long glyph data 15651 glyphDataLength = (glyphDataLength + 3) & ~3; 15652 dest.set(glyf.subarray(0, glyphDataLength), destStart); 15653 return glyphDataLength; 15654 } 15655 // glyph data is fine 15656 dest.set(glyf, destStart); 15657 return glyf.length; 15658 } 15659 15660 function sanitizeGlyphLocations(loca, glyf, numGlyphs, 15661 isGlyphLocationsLong) { 15662 var itemSize, itemDecode, itemEncode; 15663 if (isGlyphLocationsLong) { 15664 itemSize = 4; 15665 itemDecode = function fontItemDecodeLong(data, offset) { 15666 return (data[offset] << 24) | (data[offset + 1] << 16) | 15667 (data[offset + 2] << 8) | data[offset + 3]; 15668 }; 15669 itemEncode = function fontItemEncodeLong(data, offset, value) { 15670 data[offset] = (value >>> 24) & 0xFF; 15671 data[offset + 1] = (value >> 16) & 0xFF; 15672 data[offset + 2] = (value >> 8) & 0xFF; 15673 data[offset + 3] = value & 0xFF; 15674 }; 15675 } else { 15676 itemSize = 2; 15677 itemDecode = function fontItemDecode(data, offset) { 15678 return (data[offset] << 9) | (data[offset + 1] << 1); 15679 }; 15680 itemEncode = function fontItemEncode(data, offset, value) { 15681 data[offset] = (value >> 9) & 0xFF; 15682 data[offset + 1] = (value >> 1) & 0xFF; 15683 }; 15684 } 15685 var locaData = loca.data; 15686 // removing the invalid glyphs 15687 var oldGlyfData = glyf.data; 15688 var oldGlyfDataLength = oldGlyfData.length; 15689 var newGlyfData = new Uint8Array(oldGlyfDataLength); 15690 var startOffset = itemDecode(locaData, 0); 15691 var writeOffset = 0; 15692 itemEncode(locaData, 0, writeOffset); 15693 for (var i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) { 15694 var endOffset = itemDecode(locaData, j); 15695 if (endOffset > oldGlyfDataLength) { 15696 // glyph end offset points outside glyf data, rejecting the glyph 15697 itemEncode(locaData, j, writeOffset); 15698 startOffset = endOffset; 15699 continue; 15700 } 15701 15702 var newLength = sanitizeGlyph(oldGlyfData, startOffset, endOffset, 15703 newGlyfData, writeOffset); 15704 writeOffset += newLength; 15705 itemEncode(locaData, j, writeOffset); 15706 startOffset = endOffset; 15707 } 15708 15709 if (writeOffset == 0) { 15710 // glyf table cannot be empty -- redoing the glyf and loca tables 15711 // to have single glyph with one point 15712 var simpleGlyph = new Uint8Array( 15713 [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0]); 15714 for (var i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) 15715 itemEncode(locaData, j, simpleGlyph.length); 15716 glyf.data = simpleGlyph; 15717 return; 15718 } 15719 15720 glyf.data = newGlyfData.subarray(0, writeOffset); 15721 } 15722 15723 function findEmptyGlyphs(locaTable, isGlyphLocationsLong, emptyGlyphIds) { 15724 var itemSize, itemDecode; 15725 if (isGlyphLocationsLong) { 15726 itemSize = 4; 15727 itemDecode = function fontItemDecodeLong(data, offset) { 15728 return (data[offset] << 24) | (data[offset + 1] << 16) | 15729 (data[offset + 2] << 8) | data[offset + 3]; 15730 }; 15731 } else { 15732 itemSize = 2; 15733 itemDecode = function fontItemDecode(data, offset) { 15734 return (data[offset] << 9) | (data[offset + 1] << 1); 15735 }; 15736 } 15737 var data = locaTable.data, length = data.length; 15738 var lastOffset = itemDecode(data, 0); 15739 for (var i = itemSize, j = 0; i < length; i += itemSize, j++) { 15740 var offset = itemDecode(data, i); 15741 if (offset == lastOffset) 15742 emptyGlyphIds[j] = true; 15743 lastOffset = offset; 15744 } 15745 } 15746 15747 function readGlyphNameMap(post, properties) { 15748 var start = (font.start ? font.start : 0) + post.offset; 15749 font.pos = start; 15750 15751 var length = post.length, end = start + length; 15752 var version = int32(font.getBytes(4)); 15753 // skip rest to the tables 15754 font.getBytes(28); 15755 15756 var glyphNames; 15757 switch (version) { 15758 case 0x00010000: 15759 glyphNames = MacStandardGlyphOrdering; 15760 break; 15761 case 0x00020000: 15762 var numGlyphs = int16(font.getBytes(2)); 15763 var glyphNameIndexes = []; 15764 for (var i = 0; i < numGlyphs; ++i) 15765 glyphNameIndexes.push(int16(font.getBytes(2))); 15766 var customNames = []; 15767 while (font.pos < end) { 15768 var stringLength = font.getByte(); 15769 var string = ''; 15770 for (var i = 0; i < stringLength; ++i) 15771 string += font.getChar(); 15772 customNames.push(string); 15773 } 15774 glyphNames = []; 15775 for (var i = 0; i < numGlyphs; ++i) { 15776 var j = glyphNameIndexes[i]; 15777 if (j < 258) { 15778 glyphNames.push(MacStandardGlyphOrdering[j]); 15779 continue; 15780 } 15781 glyphNames.push(customNames[j - 258]); 15782 } 15783 break; 15784 case 0x00030000: 15785 break; 15786 default: 15787 warn('Unknown/unsupported post table version ' + version); 15788 break; 15789 } 15790 properties.glyphNames = glyphNames; 15791 } 15792 15793 function isOS2Valid(os2Table) { 15794 var data = os2Table.data; 15795 // usWinAscent == 0 makes font unreadable by windows 15796 var usWinAscent = (data[74] << 8) | data[75]; 15797 if (usWinAscent == 0) 15798 return false; 15799 15800 return true; 15801 } 15802 15803 // Check that required tables are present 15804 var requiredTables = ['OS/2', 'cmap', 'head', 'hhea', 15805 'hmtx', 'maxp', 'name', 'post']; 15806 15807 var header = readOpenTypeHeader(font); 15808 var numTables = header.numTables; 15809 15810 var cmap, post, maxp, hhea, hmtx, vhea, vmtx, head, loca, glyf, os2; 15811 var tables = []; 15812 for (var i = 0; i < numTables; i++) { 15813 var table = readTableEntry(font); 15814 var index = requiredTables.indexOf(table.tag); 15815 if (index != -1) { 15816 if (table.tag == 'cmap') 15817 cmap = table; 15818 else if (table.tag == 'post') 15819 post = table; 15820 else if (table.tag == 'maxp') 15821 maxp = table; 15822 else if (table.tag == 'hhea') 15823 hhea = table; 15824 else if (table.tag == 'hmtx') 15825 hmtx = table; 15826 else if (table.tag == 'head') 15827 head = table; 15828 else if (table.tag == 'OS/2') 15829 os2 = table; 15830 15831 requiredTables.splice(index, 1); 15832 } else { 15833 if (table.tag == 'vmtx') 15834 vmtx = table; 15835 else if (table.tag == 'vhea') 15836 vhea = table; 15837 else if (table.tag == 'loca') 15838 loca = table; 15839 else if (table.tag == 'glyf') 15840 glyf = table; 15841 } 15842 tables.push(table); 15843 } 15844 15845 var numTables = tables.length + requiredTables.length; 15846 15847 // header and new offsets. Table entry information is appended to the 15848 // end of file. The virtualOffset represents where to put the actual 15849 // data of a particular table; 15850 var ttf = { 15851 file: '', 15852 virtualOffset: numTables * (4 * 4) 15853 }; 15854 15855 // The new numbers of tables will be the last one plus the num 15856 // of missing tables 15857 createOpenTypeHeader(header.version, ttf, numTables); 15858 15859 // Invalid OS/2 can break the font for the Windows 15860 if (os2 && !isOS2Valid(os2)) { 15861 tables.splice(tables.indexOf(os2), 1); 15862 os2 = null; 15863 } 15864 15865 // Ensure the [h/v]mtx tables contains the advance width and 15866 // sidebearings information for numGlyphs in the maxp table 15867 font.pos = (font.start || 0) + maxp.offset; 15868 var version = int16(font.getBytes(4)); 15869 var numGlyphs = int16(font.getBytes(2)); 15870 15871 sanitizeMetrics(font, hhea, hmtx, numGlyphs); 15872 sanitizeMetrics(font, vhea, vmtx, numGlyphs); 15873 15874 var isGlyphLocationsLong = int16([head.data[50], head.data[51]]); 15875 if (head && loca && glyf) { 15876 sanitizeGlyphLocations(loca, glyf, numGlyphs, isGlyphLocationsLong); 15877 } 15878 15879 var emptyGlyphIds = []; 15880 if (glyf) 15881 findEmptyGlyphs(loca, isGlyphLocationsLong, emptyGlyphIds); 15882 15883 // Sanitizer reduces the glyph advanceWidth to the maxAdvanceWidth 15884 // Sometimes it's 0. That needs to be fixed 15885 if (hhea.data[10] == 0 && hhea.data[11] == 0) { 15886 hhea.data[10] = 0xFF; 15887 hhea.data[11] = 0xFF; 15888 } 15889 15890 // The 'post' table has glyphs names. 15891 if (post) { 15892 readGlyphNameMap(post, properties); 15893 } 15894 15895 var glyphs, ids; 15896 if (properties.type == 'CIDFontType2') { 15897 // Replace the old CMAP table with a shiny new one 15898 // Type2 composite fonts map characters directly to glyphs so the cmap 15899 // table must be replaced. 15900 // canvas fillText will reencode some characters even if the font has a 15901 // glyph at that position - e.g. newline is converted to a space and 15902 // U+00AD (soft hyphen) is not drawn. 15903 // So, offset all the glyphs by 0xFF to avoid these cases and use 15904 // the encoding to map incoming characters to the new glyph positions 15905 if (!cmap) { 15906 cmap = { 15907 tag: 'cmap', 15908 data: null 15909 }; 15910 tables.push(cmap); 15911 } 15912 15913 var cidToGidMap = properties.cidToGidMap || []; 15914 var gidToCidMap = [0]; 15915 if (cidToGidMap.length > 0) { 15916 for (var j = cidToGidMap.length - 1; j >= 0; j--) { 15917 var gid = cidToGidMap[j]; 15918 if (gid) 15919 gidToCidMap[gid] = j; 15920 } 15921 // filling the gaps using CID above the CIDs currently used in font 15922 var nextCid = cidToGidMap.length; 15923 for (var i = 1; i < numGlyphs; i++) { 15924 if (!gidToCidMap[i]) 15925 gidToCidMap[i] = nextCid++; 15926 } 15927 } 15928 15929 glyphs = []; 15930 ids = []; 15931 15932 var usedUnicodes = []; 15933 var unassignedUnicodeItems = []; 15934 for (var i = 1; i < numGlyphs; i++) { 15935 var cid = gidToCidMap[i] || i; 15936 var unicode = this.toFontChar[cid]; 15937 if (!unicode || typeof unicode !== 'number' || 15938 isSpecialUnicode(unicode) || unicode in usedUnicodes) { 15939 unassignedUnicodeItems.push(i); 15940 continue; 15941 } 15942 usedUnicodes[unicode] = true; 15943 glyphs.push({ unicode: unicode, code: cid }); 15944 ids.push(i); 15945 } 15946 // trying to fit as many unassigned symbols as we can 15947 // in the range allocated for the user defined symbols 15948 var unusedUnicode = kCmapGlyphOffset; 15949 for (var j = 0, jj = unassignedUnicodeItems.length; j < jj; j++) { 15950 var i = unassignedUnicodeItems[j]; 15951 var cid = gidToCidMap[i] || i; 15952 while (unusedUnicode in usedUnicodes) 15953 unusedUnicode++; 15954 if (unusedUnicode >= kCmapGlyphOffset + kSizeOfGlyphArea) 15955 break; 15956 var unicode = unusedUnicode++; 15957 this.toFontChar[cid] = unicode; 15958 usedUnicodes[unicode] = true; 15959 glyphs.push({ unicode: unicode, code: cid }); 15960 ids.push(i); 15961 } 15962 } else { 15963 var cmapTable = readCMapTable(cmap, font); 15964 15965 glyphs = cmapTable.glyphs; 15966 ids = cmapTable.ids; 15967 15968 var hasShortCmap = !!cmapTable.hasShortCmap; 15969 var toFontChar = this.toFontChar; 15970 15971 if (hasShortCmap && ids.length == numGlyphs) { 15972 // Fixes the short cmap tables -- some generators use incorrect 15973 // glyph id. 15974 for (var i = 0, ii = ids.length; i < ii; i++) 15975 ids[i] = i; 15976 } 15977 15978 var unusedUnicode = kCmapGlyphOffset; 15979 var glyphNames = properties.glyphNames || []; 15980 var encoding = properties.baseEncoding; 15981 var differences = properties.differences; 15982 if (toFontChar && toFontChar.length > 0) { 15983 // checking if cmap is just identity map 15984 var isIdentity = true; 15985 for (var i = 0, ii = glyphs.length; i < ii; i++) { 15986 if (glyphs[i].unicode != i + 1) { 15987 isIdentity = false; 15988 break; 15989 } 15990 } 15991 // if it is, replacing with meaningful toUnicode values 15992 if (isIdentity && !this.isSymbolicFont) { 15993 var usedUnicodes = [], unassignedUnicodeItems = []; 15994 for (var i = 0, ii = glyphs.length; i < ii; i++) { 15995 var unicode = toFontChar[i + 1]; 15996 if (!unicode || typeof unicode !== 'number' || 15997 unicode in usedUnicodes) { 15998 unassignedUnicodeItems.push(i); 15999 continue; 16000 } 16001 glyphs[i].unicode = unicode; 16002 usedUnicodes[unicode] = true; 16003 } 16004 for (var j = 0, jj = unassignedUnicodeItems.length; j < jj; j++) { 16005 var i = unassignedUnicodeItems[j]; 16006 while (unusedUnicode in usedUnicodes) 16007 unusedUnicode++; 16008 var cid = i + 1; 16009 // override only if unicode mapping is not specified 16010 if (!(cid in toFontChar)) 16011 toFontChar[cid] = unusedUnicode; 16012 glyphs[i].unicode = unusedUnicode++; 16013 } 16014 this.useToFontChar = true; 16015 } 16016 } 16017 16018 // remove glyph references outside range of avaialable glyphs or empty 16019 var glyphsRemoved = 0; 16020 for (var i = ids.length - 1; i >= 0; i--) { 16021 if (ids[i] < numGlyphs && 16022 (!emptyGlyphIds[ids[i]] || this.isSymbolicFont)) 16023 continue; 16024 ids.splice(i, 1); 16025 glyphs.splice(i, 1); 16026 glyphsRemoved++; 16027 } 16028 16029 // checking if it's a "true" symbolic font 16030 if (this.isSymbolicFont) { 16031 var minUnicode = 0xFFFF, maxUnicode = 0; 16032 for (var i = 0, ii = glyphs.length; i < ii; i++) { 16033 var unicode = glyphs[i].unicode; 16034 minUnicode = Math.min(minUnicode, unicode); 16035 maxUnicode = Math.max(maxUnicode, unicode); 16036 } 16037 // high byte must be the same for min and max unicodes 16038 if ((maxUnicode & 0xFF00) != (minUnicode & 0xFF00)) 16039 this.isSymbolicFont = false; 16040 } 16041 16042 // heuristics: if removed more than 2 glyphs encoding WinAnsiEncoding 16043 // does not set properly 16044 if (glyphsRemoved > 2) { 16045 warn('Switching TrueType encoding to MacRomanEncoding for ' + 16046 this.name + ' font'); 16047 encoding = Encodings.MacRomanEncoding; 16048 } 16049 16050 if (hasShortCmap && this.hasEncoding && !this.isSymbolicFont) { 16051 // Re-encode short map encoding to unicode -- that simplifies the 16052 // resolution of MacRoman encoded glyphs logic for TrueType fonts: 16053 // copying all characters to private use area, all mapping all known 16054 // glyphs to the unicodes. The glyphs and ids arrays will grow. 16055 var usedUnicodes = []; 16056 for (var i = 0, ii = glyphs.length; i < ii; i++) { 16057 var code = glyphs[i].unicode; 16058 var gid = ids[i]; 16059 glyphs[i].unicode += kCmapGlyphOffset; 16060 toFontChar[code] = glyphs[i].unicode; 16061 16062 var glyphName = glyphNames[gid] || encoding[code]; 16063 if (glyphName in GlyphsUnicode) { 16064 var unicode = GlyphsUnicode[glyphName]; 16065 if (unicode in usedUnicodes) 16066 continue; 16067 16068 usedUnicodes[unicode] = true; 16069 glyphs.push({ 16070 unicode: unicode, 16071 code: glyphs[i].code 16072 }); 16073 ids.push(gid); 16074 toFontChar[code] = unicode; 16075 } 16076 } 16077 this.useToFontChar = true; 16078 } else if (!this.isSymbolicFont && (this.hasEncoding || 16079 properties.glyphNames || differences.length > 0)) { 16080 // Re-encode cmap encoding to unicode, based on the 'post' table data 16081 // diffrence array or base encoding 16082 var reverseMap = []; 16083 for (var i = 0, ii = glyphs.length; i < ii; i++) 16084 reverseMap[glyphs[i].unicode] = i; 16085 16086 var newGlyphUnicodes = []; 16087 for (var i = 0, ii = glyphs.length; i < ii; i++) { 16088 var code = glyphs[i].unicode; 16089 var changeCode = false; 16090 var gid = ids[i]; 16091 16092 var glyphName = glyphNames[gid]; 16093 if (!glyphName) { 16094 glyphName = differences[code] || encoding[code]; 16095 changeCode = true; 16096 } 16097 if (glyphName in GlyphsUnicode) { 16098 var unicode = GlyphsUnicode[glyphName]; 16099 if (!unicode || reverseMap[unicode] === i) 16100 continue; // unknown glyph name or in its own place 16101 16102 newGlyphUnicodes[i] = unicode; 16103 if (changeCode) 16104 toFontChar[code] = unicode; 16105 delete reverseMap[code]; 16106 } 16107 } 16108 for (var index in newGlyphUnicodes) { 16109 var unicode = newGlyphUnicodes[index]; 16110 if (reverseMap[unicode]) { 16111 // avoiding assigning to the same unicode 16112 glyphs[index].unicode = unusedUnicode++; 16113 continue; 16114 } 16115 glyphs[index].unicode = unicode; 16116 reverseMap[unicode] = index; 16117 } 16118 this.useToFontChar = true; 16119 } 16120 16121 // Moving all symbolic font glyphs into 0xF000 - 0xF0FF range. 16122 if (this.isSymbolicFont) { 16123 for (var i = 0, ii = glyphs.length; i < ii; i++) { 16124 var code = glyphs[i].unicode & 0xFF; 16125 var fontCharCode = kSymbolicFontGlyphOffset | code; 16126 glyphs[i].unicode = toFontChar[code] = fontCharCode; 16127 } 16128 this.useToFontChar = true; 16129 } 16130 16131 createGlyphNameMap(glyphs, ids, properties); 16132 this.glyphNameMap = properties.glyphNameMap; 16133 } 16134 16135 // Converting glyphs and ids into font's cmap table 16136 cmap.data = createCMapTable(glyphs, ids); 16137 var unicodeIsEnabled = []; 16138 for (var i = 0, ii = glyphs.length; i < ii; i++) { 16139 unicodeIsEnabled[glyphs[i].unicode] = true; 16140 } 16141 this.unicodeIsEnabled = unicodeIsEnabled; 16142 16143 if (!os2) { 16144 // extract some more font properties from the OpenType head and 16145 // hhea tables; yMin and descent value are always negative 16146 var override = { 16147 unitsPerEm: int16([head.data[18], head.data[19]]), 16148 yMax: int16([head.data[42], head.data[43]]), 16149 yMin: int16([head.data[38], head.data[39]]) - 0x10000, 16150 ascent: int16([hhea.data[4], hhea.data[5]]), 16151 descent: int16([hhea.data[6], hhea.data[7]]) - 0x10000 16152 }; 16153 16154 tables.push({ 16155 tag: 'OS/2', 16156 data: stringToArray(createOS2Table(properties, glyphs, override)) 16157 }); 16158 } 16159 16160 // Rewrite the 'post' table if needed 16161 if (requiredTables.indexOf('post') != -1) { 16162 tables.push({ 16163 tag: 'post', 16164 data: stringToArray(createPostTable(properties)) 16165 }); 16166 } 16167 16168 // Rewrite the 'name' table if needed 16169 if (requiredTables.indexOf('name') != -1) { 16170 tables.push({ 16171 tag: 'name', 16172 data: stringToArray(createNameTable(this.name)) 16173 }); 16174 } 16175 16176 // Tables needs to be written by ascendant alphabetic order 16177 tables.sort(function tables_sort(a, b) { 16178 return (a.tag > b.tag) - (a.tag < b.tag); 16179 }); 16180 16181 // rewrite the tables but tweak offsets 16182 for (var i = 0, ii = tables.length; i < ii; i++) { 16183 var table = tables[i]; 16184 var data = []; 16185 16186 var tableData = table.data; 16187 for (var j = 0, jj = tableData.length; j < jj; j++) 16188 data.push(tableData[j]); 16189 createTableEntry(ttf, table.tag, data); 16190 } 16191 16192 // Add the table datas 16193 for (var i = 0, ii = tables.length; i < ii; i++) { 16194 var table = tables[i]; 16195 var tableData = table.data; 16196 ttf.file += arrayToString(tableData); 16197 16198 // 4-byte aligned data 16199 while (ttf.file.length & 3) 16200 ttf.file += String.fromCharCode(0); 16201 } 16202 16203 return stringToArray(ttf.file); 16204 }, 16205 16206 convert: function Font_convert(fontName, font, properties) { 16207 function isFixedPitch(glyphs) { 16208 for (var i = 0, ii = glyphs.length - 1; i < ii; i++) { 16209 if (glyphs[i] != glyphs[i + 1]) 16210 return false; 16211 } 16212 return true; 16213 } 16214 16215 // The offsets object holds at the same time a representation of where 16216 // to write the table entry information about a table and another offset 16217 // representing the offset where to draw the actual data of a particular 16218 // table 16219 var kRequiredTablesCount = 9; 16220 16221 var otf = { 16222 file: '', 16223 virtualOffset: 9 * (4 * 4) 16224 }; 16225 16226 createOpenTypeHeader('\x4F\x54\x54\x4F', otf, 9); 16227 16228 var charstrings = font.charstrings; 16229 properties.fixedPitch = isFixedPitch(charstrings); 16230 16231 var glyphNameMap = {}; 16232 for (var i = 0; i < charstrings.length; ++i) { 16233 var charstring = charstrings[i]; 16234 glyphNameMap[charstring.glyph] = charstring.unicode; 16235 } 16236 this.glyphNameMap = glyphNameMap; 16237 16238 if (!properties.hasEncoding && (properties.subtype == 'Type1C' || 16239 properties.subtype == 'CIDFontType0C')) { 16240 var encoding = []; 16241 for (var i = 0; i < charstrings.length; ++i) { 16242 var charstring = charstrings[i]; 16243 encoding[charstring.code] = charstring.glyph; 16244 } 16245 properties.baseEncoding = encoding; 16246 } 16247 if (properties.subtype == 'CIDFontType0C') { 16248 var toFontChar = []; 16249 for (var i = 0; i < charstrings.length; ++i) { 16250 var charstring = charstrings[i]; 16251 toFontChar[charstring.code] = charstring.unicode; 16252 } 16253 this.toFontChar = toFontChar; 16254 } 16255 16256 var fields = { 16257 // PostScript Font Program 16258 'CFF ': font.data, 16259 16260 // OS/2 and Windows Specific metrics 16261 'OS/2': stringToArray(createOS2Table(properties, charstrings)), 16262 16263 // Character to glyphs mapping 16264 'cmap': createCMapTable(charstrings.slice(), 16265 ('glyphIds' in font) ? font.glyphIds : null), 16266 16267 // Font header 16268 'head': (function fontFieldsHead() { 16269 return stringToArray( 16270 '\x00\x01\x00\x00' + // Version number 16271 '\x00\x00\x10\x00' + // fontRevision 16272 '\x00\x00\x00\x00' + // checksumAdjustement 16273 '\x5F\x0F\x3C\xF5' + // magicNumber 16274 '\x00\x00' + // Flags 16275 '\x03\xE8' + // unitsPerEM (defaulting to 1000) 16276 '\x00\x00\x00\x00\x9e\x0b\x7e\x27' + // creation date 16277 '\x00\x00\x00\x00\x9e\x0b\x7e\x27' + // modifification date 16278 '\x00\x00' + // xMin 16279 safeString16(properties.descent) + // yMin 16280 '\x0F\xFF' + // xMax 16281 safeString16(properties.ascent) + // yMax 16282 string16(properties.italicAngle ? 2 : 0) + // macStyle 16283 '\x00\x11' + // lowestRecPPEM 16284 '\x00\x00' + // fontDirectionHint 16285 '\x00\x00' + // indexToLocFormat 16286 '\x00\x00'); // glyphDataFormat 16287 })(), 16288 16289 // Horizontal header 16290 'hhea': (function fontFieldsHhea() { 16291 return stringToArray( 16292 '\x00\x01\x00\x00' + // Version number 16293 safeString16(properties.ascent) + // Typographic Ascent 16294 safeString16(properties.descent) + // Typographic Descent 16295 '\x00\x00' + // Line Gap 16296 '\xFF\xFF' + // advanceWidthMax 16297 '\x00\x00' + // minLeftSidebearing 16298 '\x00\x00' + // minRightSidebearing 16299 '\x00\x00' + // xMaxExtent 16300 safeString16(properties.capHeight) + // caretSlopeRise 16301 safeString16(Math.tan(properties.italicAngle) * 16302 properties.xHeight) + // caretSlopeRun 16303 '\x00\x00' + // caretOffset 16304 '\x00\x00' + // -reserved- 16305 '\x00\x00' + // -reserved- 16306 '\x00\x00' + // -reserved- 16307 '\x00\x00' + // -reserved- 16308 '\x00\x00' + // metricDataFormat 16309 string16(charstrings.length + 1)); // Number of HMetrics 16310 })(), 16311 16312 // Horizontal metrics 16313 'hmtx': (function fontFieldsHmtx() { 16314 var hmtx = '\x00\x00\x00\x00'; // Fake .notdef 16315 for (var i = 0, ii = charstrings.length; i < ii; i++) { 16316 var charstring = charstrings[i]; 16317 var width = 'width' in charstring ? charstring.width : 0; 16318 hmtx += string16(width) + string16(0); 16319 } 16320 return stringToArray(hmtx); 16321 })(), 16322 16323 // Maximum profile 16324 'maxp': (function fontFieldsMaxp() { 16325 return stringToArray( 16326 '\x00\x00\x50\x00' + // Version number 16327 string16(charstrings.length + 1)); // Num of glyphs 16328 })(), 16329 16330 // Naming tables 16331 'name': stringToArray(createNameTable(fontName)), 16332 16333 // PostScript informations 16334 'post': stringToArray(createPostTable(properties)) 16335 }; 16336 16337 for (var field in fields) 16338 createTableEntry(otf, field, fields[field]); 16339 16340 for (var field in fields) { 16341 var table = fields[field]; 16342 otf.file += arrayToString(table); 16343 } 16344 16345 return stringToArray(otf.file); 16346 }, 16347 16348 buildToFontChar: function Font_buildToFontChar(toUnicode) { 16349 var result = []; 16350 var unusedUnicode = kCmapGlyphOffset; 16351 for (var i = 0, ii = toUnicode.length; i < ii; i++) { 16352 var unicode = toUnicode[i]; 16353 var fontCharCode = typeof unicode === 'object' ? unusedUnicode++ : 16354 unicode; 16355 if (typeof unicode !== 'undefined') 16356 result[i] = fontCharCode; 16357 } 16358 return result; 16359 }, 16360 16361 rebuildToUnicode: function Font_rebuildToUnicode(properties) { 16362 var firstChar = properties.firstChar, lastChar = properties.lastChar; 16363 var map = []; 16364 if (properties.composite) { 16365 var isIdentityMap = this.cidToUnicode.length == 0; 16366 for (var i = firstChar, ii = lastChar; i <= ii; i++) { 16367 // TODO missing map the character according font's CMap 16368 var cid = i; 16369 map[i] = isIdentityMap ? cid : this.cidToUnicode[cid]; 16370 } 16371 } else { 16372 for (var i = firstChar, ii = lastChar; i <= ii; i++) { 16373 var glyph = properties.differences[i]; 16374 if (!glyph) 16375 glyph = properties.baseEncoding[i]; 16376 if (!!glyph && (glyph in GlyphsUnicode)) 16377 map[i] = GlyphsUnicode[glyph]; 16378 } 16379 } 16380 this.toUnicode = map; 16381 }, 16382 16383 loadCidToUnicode: function Font_loadCidToUnicode(properties) { 16384 if (!properties.cidSystemInfo) 16385 return; 16386 16387 var cidToUnicodeMap = [], unicodeToCIDMap = []; 16388 this.cidToUnicode = cidToUnicodeMap; 16389 this.unicodeToCID = unicodeToCIDMap; 16390 16391 var cidSystemInfo = properties.cidSystemInfo; 16392 var cidToUnicode; 16393 if (cidSystemInfo) { 16394 cidToUnicode = CIDToUnicodeMaps[ 16395 cidSystemInfo.registry + '-' + cidSystemInfo.ordering]; 16396 } 16397 16398 if (!cidToUnicode) 16399 return; // identity encoding 16400 16401 var cid = 1, i, j, k, ii; 16402 for (i = 0, ii = cidToUnicode.length; i < ii; ++i) { 16403 var unicode = cidToUnicode[i]; 16404 if (isArray(unicode)) { 16405 var length = unicode.length; 16406 for (j = 0; j < length; j++) { 16407 cidToUnicodeMap[cid] = unicode[j]; 16408 unicodeToCIDMap[unicode[j]] = cid; 16409 } 16410 cid++; 16411 } else if (typeof unicode === 'object') { 16412 var fillLength = unicode.f; 16413 if (fillLength) { 16414 k = unicode.c; 16415 for (j = 0; j < fillLength; ++j) { 16416 cidToUnicodeMap[cid] = k; 16417 unicodeToCIDMap[k] = cid; 16418 cid++; 16419 k++; 16420 } 16421 } else 16422 cid += unicode.s; 16423 } else if (unicode) { 16424 cidToUnicodeMap[cid] = unicode; 16425 unicodeToCIDMap[unicode] = cid; 16426 cid++; 16427 } else 16428 cid++; 16429 } 16430 }, 16431 16432 bindDOM: function Font_bindDOM(data) { 16433 var fontName = this.loadedName; 16434 16435 // Add the font-face rule to the document 16436 var url = ('url(data:' + this.mimetype + ';base64,' + 16437 PdfJS_window.window.btoa(data) + ');'); 16438 var rule = "@font-face { font-family:'" + fontName + "';src:" + url + '}'; 16439 16440 var styleElement = PdfJS_window.document.createElement('style'); 16441 PdfJS_window.document.documentElement.getElementsByTagName('head')[0].appendChild( 16442 styleElement); 16443 16444 var styleSheet = styleElement.sheet; 16445 styleSheet.insertRule(rule, styleSheet.cssRules.length); 16446 16447 if (PDFJS.pdfBug && FontInspector.enabled) 16448 FontInspector.fontAdded(this, url); 16449 16450 return rule; 16451 }, 16452 16453 get spaceWidth() { 16454 // trying to estimate space character width 16455 var possibleSpaceReplacements = ['space', 'minus', 'one', 'i']; 16456 var width; 16457 for (var i = 0, ii = possibleSpaceReplacements.length; i < ii; i++) { 16458 var glyphName = possibleSpaceReplacements[i]; 16459 // if possible, getting width by glyph name 16460 if (glyphName in this.widths) { 16461 width = this.widths[glyphName]; 16462 break; 16463 } 16464 var glyphUnicode = GlyphsUnicode[glyphName]; 16465 // finding the charcode via unicodeToCID map 16466 var charcode = 0; 16467 if (this.composite) 16468 charcode = this.unicodeToCID[glyphUnicode]; 16469 // ... via toUnicode map 16470 if (!charcode && 'toUnicode' in this) 16471 charcode = this.toUnicode.indexOf(glyphUnicode); 16472 // setting it to unicode if negative or undefined 16473 if (!(charcode > 0)) 16474 charcode = glyphUnicode; 16475 // trying to get width via charcode 16476 width = this.widths[charcode]; 16477 if (width) 16478 break; // the non-zero width found 16479 } 16480 width = (width || this.defaultWidth) * this.widthMultiplier; 16481 return shadow(this, 'spaceWidth', width); 16482 }, 16483 16484 charToGlyph: function Font_charToGlyph(charcode) { 16485 var fontCharCode, width, operatorList, disabled; 16486 16487 var width = this.widths[charcode]; 16488 16489 switch (this.type) { 16490 case 'CIDFontType0': 16491 if (this.noUnicodeAdaptation) { 16492 width = this.widths[this.unicodeToCID[charcode] || charcode]; 16493 fontCharCode = mapPrivateUseChars(charcode); 16494 break; 16495 } 16496 fontCharCode = this.toFontChar[charcode] || charcode; 16497 break; 16498 case 'CIDFontType2': 16499 if (this.noUnicodeAdaptation) { 16500 width = this.widths[this.unicodeToCID[charcode] || charcode]; 16501 fontCharCode = mapPrivateUseChars(charcode); 16502 break; 16503 } 16504 fontCharCode = this.toFontChar[charcode] || charcode; 16505 break; 16506 case 'Type1': 16507 var glyphName = this.differences[charcode] || this.encoding[charcode]; 16508 if (!isNum(width)) 16509 width = this.widths[glyphName]; 16510 if (this.noUnicodeAdaptation) { 16511 fontCharCode = mapPrivateUseChars(GlyphsUnicode[glyphName] || 16512 charcode); 16513 break; 16514 } 16515 fontCharCode = this.glyphNameMap[glyphName] || 16516 GlyphsUnicode[glyphName] || charcode; 16517 break; 16518 case 'Type3': 16519 var glyphName = this.differences[charcode] || this.encoding[charcode]; 16520 operatorList = this.charProcOperatorList[glyphName]; 16521 fontCharCode = charcode; 16522 break; 16523 case 'TrueType': 16524 if (this.useToFontChar) { 16525 fontCharCode = this.toFontChar[charcode] || charcode; 16526 break; 16527 } 16528 var glyphName = this.differences[charcode] || this.encoding[charcode]; 16529 if (!glyphName) 16530 glyphName = Encodings.StandardEncoding[charcode]; 16531 if (!isNum(width)) 16532 width = this.widths[glyphName]; 16533 if (this.noUnicodeAdaptation) { 16534 fontCharCode = GlyphsUnicode[glyphName] || charcode; 16535 break; 16536 } 16537 if (!this.hasEncoding || this.isSymbolicFont) { 16538 fontCharCode = this.useToFontChar ? this.toFontChar[charcode] : 16539 charcode; 16540 break; 16541 } 16542 16543 // MacRoman encoding address by re-encoding the cmap table 16544 fontCharCode = glyphName in this.glyphNameMap ? 16545 this.glyphNameMap[glyphName] : GlyphsUnicode[glyphName]; 16546 break; 16547 default: 16548 warn('Unsupported font type: ' + this.type); 16549 break; 16550 } 16551 16552 var unicodeChars = !('toUnicode' in this) ? charcode : 16553 this.toUnicode[charcode] || charcode; 16554 if (typeof unicodeChars === 'number') 16555 unicodeChars = String.fromCharCode(unicodeChars); 16556 16557 width = (isNum(width) ? width : this.defaultWidth) * this.widthMultiplier; 16558 disabled = this.unicodeIsEnabled ? 16559 !this.unicodeIsEnabled[fontCharCode] : false; 16560 16561 return { 16562 fontChar: String.fromCharCode(fontCharCode), 16563 unicode: unicodeChars, 16564 width: width, 16565 disabled: disabled, 16566 operatorList: operatorList 16567 }; 16568 }, 16569 16570 charsToGlyphs: function Font_charsToGlyphs(chars) { 16571 var charsCache = this.charsCache; 16572 var glyphs; 16573 16574 // if we translated this string before, just grab it from the cache 16575 if (charsCache) { 16576 glyphs = charsCache[chars]; 16577 if (glyphs) 16578 return glyphs; 16579 } 16580 16581 // lazily create the translation cache 16582 if (!charsCache) 16583 charsCache = this.charsCache = Object.create(null); 16584 16585 glyphs = []; 16586 16587 if (this.wideChars) { 16588 // composite fonts have multi-byte strings convert the string from 16589 // single-byte to multi-byte 16590 // XXX assuming CIDFonts are two-byte - later need to extract the 16591 // correct byte encoding according to the PDF spec 16592 var length = chars.length - 1; // looping over two bytes at a time so 16593 // loop should never end on the last byte 16594 for (var i = 0; i < length; i++) { 16595 var charcode = int16([chars.charCodeAt(i++), chars.charCodeAt(i)]); 16596 var glyph = this.charToGlyph(charcode); 16597 glyphs.push(glyph); 16598 // placing null after each word break charcode (ASCII SPACE) 16599 if (charcode == 0x20) 16600 glyphs.push(null); 16601 } 16602 } 16603 else { 16604 for (var i = 0, ii = chars.length; i < ii; ++i) { 16605 var charcode = chars.charCodeAt(i); 16606 var glyph = this.charToGlyph(charcode); 16607 glyphs.push(glyph); 16608 if (charcode == 0x20) 16609 glyphs.push(null); 16610 } 16611 } 16612 16613 // Enter the translated string into the cache 16614 return (charsCache[chars] = glyphs); 16615 } 16616 }; 16617 16618 return Font; 16619 })(); 16620 16621 /* 16622 * Type1Parser encapsulate the needed code for parsing a Type1 font 16623 * program. Some of its logic depends on the Type2 charstrings 16624 * structure. 16625 */ 16626 var Type1Parser = function type1Parser() { 16627 /* 16628 * Decrypt a Sequence of Ciphertext Bytes to Produce the Original Sequence 16629 * of Plaintext Bytes. The function took a key as a parameter which can be 16630 * for decrypting the eexec block of for decoding charStrings. 16631 */ 16632 var kEexecEncryptionKey = 55665; 16633 var kCharStringsEncryptionKey = 4330; 16634 16635 function decrypt(stream, key, discardNumber) { 16636 var r = key, c1 = 52845, c2 = 22719; 16637 var decryptedString = []; 16638 16639 var value = ''; 16640 var count = stream.length; 16641 for (var i = 0; i < count; i++) { 16642 value = stream[i]; 16643 decryptedString[i] = value ^ (r >> 8); 16644 r = ((value + r) * c1 + c2) & ((1 << 16) - 1); 16645 } 16646 return decryptedString.slice(discardNumber); 16647 } 16648 16649 /* 16650 * CharStrings are encoded following the the CharString Encoding sequence 16651 * describe in Chapter 6 of the "Adobe Type1 Font Format" specification. 16652 * The value in a byte indicates a command, a number, or subsequent bytes 16653 * that are to be interpreted in a special way. 16654 * 16655 * CharString Number Encoding: 16656 * A CharString byte containing the values from 32 through 255 inclusive 16657 * indicate an integer. These values are decoded in four ranges. 16658 * 16659 * 1. A CharString byte containing a value, v, between 32 and 246 inclusive, 16660 * indicate the integer v - 139. Thus, the integer values from -107 through 16661 * 107 inclusive may be encoded in single byte. 16662 * 16663 * 2. A CharString byte containing a value, v, between 247 and 250 inclusive, 16664 * indicates an integer involving the next byte, w, according to the formula: 16665 * [(v - 247) x 256] + w + 108 16666 * 16667 * 3. A CharString byte containing a value, v, between 251 and 254 inclusive, 16668 * indicates an integer involving the next byte, w, according to the formula: 16669 * -[(v - 251) * 256] - w - 108 16670 * 16671 * 4. A CharString containing the value 255 indicates that the next 4 bytes 16672 * are a two complement signed integer. The first of these bytes contains the 16673 * highest order bits, the second byte contains the next higher order bits 16674 * and the fourth byte contain the lowest order bits. 16675 * 16676 * 16677 * CharString Command Encoding: 16678 * CharStrings commands are encoded in 1 or 2 bytes. 16679 * 16680 * Single byte commands are encoded in 1 byte that contains a value between 16681 * 0 and 31 inclusive. 16682 * If a command byte contains the value 12, then the value in the next byte 16683 * indicates a command. This "escape" mechanism allows many extra commands 16684 * to be encoded and this encoding technique helps to minimize the length of 16685 * the charStrings. 16686 */ 16687 var charStringDictionary = { 16688 '1': 'hstem', 16689 '3': 'vstem', 16690 '4': 'vmoveto', 16691 '5': 'rlineto', 16692 '6': 'hlineto', 16693 '7': 'vlineto', 16694 '8': 'rrcurveto', 16695 16696 // closepath is a Type1 command that do not take argument and is useless 16697 // in Type2 and it can simply be ignored. 16698 '9': null, // closepath 16699 16700 '10': 'callsubr', 16701 16702 // return is normally used inside sub-routines to tells to the execution 16703 // flow that it can be back to normal. 16704 // During the translation process Type1 charstrings will be flattened and 16705 // sub-routines will be embedded directly into the charstring directly, so 16706 // this can be ignored safely. 16707 '11': 'return', 16708 16709 '12': { 16710 // dotsection is a Type1 command to specify some hinting feature for dots 16711 // that do not take a parameter and it can safely be ignored for Type2. 16712 '0': null, // dotsection 16713 16714 // [vh]stem3 are Type1 only and Type2 supports [vh]stem with multiple 16715 // parameters, so instead of returning [vh]stem3 take a shortcut and 16716 // return [vhstem] instead. 16717 '1': 'vstem', 16718 '2': 'hstem', 16719 16720 // Type1 only command with command not (yet) built-in ,throw an error 16721 '6': -1, // seac 16722 '7': -1, // sbw 16723 16724 '11': 'sub', 16725 '12': 'div', 16726 16727 // callothersubr is a mechanism to make calls on the postscript 16728 // interpreter, this is not supported by Type2 charstring but hopefully 16729 // most of the default commands can be ignored safely. 16730 '16': 'callothersubr', 16731 16732 '17': 'pop', 16733 16734 // setcurrentpoint sets the current point to x, y without performing a 16735 // moveto (this is a one shot positionning command). This is used only 16736 // with the return of an OtherSubrs call. 16737 // TODO Implement the OtherSubrs charstring embedding and replace this 16738 // call by a no-op, like 2 'pop' commands for example. 16739 '33': null // setcurrentpoint 16740 }, 16741 '13': 'hsbw', 16742 '14': 'endchar', 16743 '21': 'rmoveto', 16744 '22': 'hmoveto', 16745 '30': 'vhcurveto', 16746 '31': 'hvcurveto' 16747 }; 16748 16749 var kEscapeCommand = 12; 16750 16751 function decodeCharString(array) { 16752 var charstring = []; 16753 var lsb = 0; 16754 var width = 0; 16755 var flexState = 0; 16756 16757 var value = ''; 16758 var count = array.length; 16759 for (var i = 0; i < count; i++) { 16760 value = array[i]; 16761 16762 if (value < 32) { 16763 var command = null; 16764 if (value == kEscapeCommand) { 16765 var escape = array[++i]; 16766 16767 // TODO Clean this code 16768 if (escape == 16) { 16769 var index = charstring.pop(); 16770 var argc = charstring.pop(); 16771 for (var j = 0; j < argc; j++) 16772 charstring.push('drop'); 16773 16774 // If the flex mechanism is not used in a font program, Adobe 16775 // states that entries 0, 1 and 2 can simply be replaced by 16776 // {}, which means that we can simply ignore them. 16777 if (index < 3) { 16778 continue; 16779 } 16780 16781 // This is the same things about hint replacement, if it is not used 16782 // entry 3 can be replaced by {3} 16783 // TODO support hint replacment 16784 if (index == 3) { 16785 charstring.push(3); 16786 i++; 16787 continue; 16788 } 16789 } else if (escape == 17 || escape == 33) { 16790 // pop or setcurrentpoint commands can be ignored 16791 // since we are not doing callothersubr 16792 continue; 16793 } else if (!kHintingEnabled && (escape == 1 || escape == 2)) { 16794 charstring.push('drop', 'drop', 'drop', 'drop', 'drop', 'drop'); 16795 continue; 16796 } 16797 16798 command = charStringDictionary['12'][escape]; 16799 } else { 16800 // TODO Clean this code 16801 if (value == 13) { // hsbw 16802 if (charstring.length == 2) { 16803 lsb = charstring[0]; 16804 width = charstring[1]; 16805 charstring.splice(0, 1); 16806 } else if (charstring.length == 4 && charstring[3] == 'div') { 16807 lsb = charstring[0]; 16808 width = charstring[1] / charstring[2]; 16809 charstring.splice(0, 1); 16810 } else if (charstring.length == 4 && charstring[2] == 'div') { 16811 lsb = charstring[0] / charstring[1]; 16812 width = charstring[3]; 16813 charstring.splice(0, 3); 16814 } else { 16815 error('Unsupported hsbw format: ' + charstring); 16816 } 16817 16818 charstring.push(lsb, 'hmoveto'); 16819 continue; 16820 } else if (value == 10) { // callsubr 16821 if (charstring[charstring.length - 1] < 3) { // subr #0..2 16822 var subrNumber = charstring.pop(); 16823 switch (subrNumber) { 16824 case 1: 16825 flexState = 1; // prepare for flex coordinates 16826 break; 16827 case 2: 16828 flexState = 2; // flex in progress 16829 break; 16830 case 0: 16831 // type2 flex command does not need final coords 16832 charstring.push('exch', 'drop', 'exch', 'drop'); 16833 charstring.push('flex'); 16834 flexState = 0; 16835 break; 16836 } 16837 continue; 16838 } 16839 } else if (value == 21 && flexState > 0) { 16840 if (flexState > 1) 16841 continue; // ignoring rmoveto 16842 value = 5; // first segment replacing with rlineto 16843 } else if (!kHintingEnabled && (value == 1 || value == 3)) { 16844 charstring.push('drop', 'drop'); 16845 continue; 16846 } 16847 command = charStringDictionary[value]; 16848 } 16849 16850 // Some charstring commands are meaningless in Type2 and will return 16851 // a null, let's just ignored them 16852 if (!command && i < count) { 16853 continue; 16854 } else if (!command) { 16855 break; 16856 } else if (command == -1) { 16857 warn('Support for Type1 command ' + value + 16858 ' (' + escape + ') is not implemented in charstring: ' + 16859 charstring); 16860 if (value == 12) { 16861 // we know how to ignore only some the Type1 commands 16862 switch (escape) { 16863 case 7: 16864 charstring.push('drop', 'drop', 'drop', 'drop'); 16865 continue; 16866 case 8: 16867 charstring.push('drop'); 16868 continue; 16869 } 16870 } 16871 } 16872 16873 value = command; 16874 } else if (value <= 246) { 16875 value = value - 139; 16876 } else if (value <= 250) { 16877 value = ((value - 247) * 256) + array[++i] + 108; 16878 } else if (value <= 254) { 16879 value = -((value - 251) * 256) - array[++i] - 108; 16880 } else { 16881 value = (array[++i] & 0xff) << 24 | (array[++i] & 0xff) << 16 | 16882 (array[++i] & 0xff) << 8 | (array[++i] & 0xff) << 0; 16883 } 16884 16885 charstring.push(value); 16886 } 16887 16888 return { charstring: charstring, width: width, lsb: lsb }; 16889 } 16890 16891 /* 16892 * Returns an object containing a Subrs array and a CharStrings 16893 * array extracted from and eexec encrypted block of data 16894 */ 16895 function readNumberArray(str, index) { 16896 var start = index; 16897 while (str[index++] != '[') 16898 start++; 16899 start++; 16900 16901 var count = 0; 16902 while (str[index++] != ']') 16903 count++; 16904 16905 str = str.substr(start, count); 16906 16907 str = str.trim(); 16908 // Remove adjacent spaces 16909 str = str.replace(/\s+/g, ' '); 16910 16911 var array = str.split(' '); 16912 for (var i = 0, ii = array.length; i < ii; i++) 16913 array[i] = parseFloat(array[i] || 0); 16914 return array; 16915 } 16916 16917 function readNumber(str, index) { 16918 while (str[index] == ' ') 16919 index++; 16920 16921 var start = index; 16922 16923 var count = 0; 16924 while (str[index++] != ' ') 16925 count++; 16926 16927 return parseFloat(str.substr(start, count) || 0); 16928 } 16929 16930 function isSeparator(c) { 16931 return c == ' ' || c == '\n' || c == '\x0d'; 16932 } 16933 16934 this.extractFontProgram = function Type1Parser_extractFontProgram(stream) { 16935 var eexec = decrypt(stream, kEexecEncryptionKey, 4); 16936 var eexecStr = ''; 16937 for (var i = 0, ii = eexec.length; i < ii; i++) 16938 eexecStr += String.fromCharCode(eexec[i]); 16939 16940 var glyphsSection = false, subrsSection = false; 16941 var program = { 16942 subrs: [], 16943 charstrings: [], 16944 properties: { 16945 'privateData': { 16946 'lenIV': 4 16947 } 16948 } 16949 }; 16950 16951 var glyph = ''; 16952 var token = ''; 16953 var length = 0; 16954 16955 var c = ''; 16956 var count = eexecStr.length; 16957 for (var i = 0; i < count; i++) { 16958 var getToken = function getToken() { 16959 while (i < count && isSeparator(eexecStr[i])) 16960 ++i; 16961 16962 var token = ''; 16963 while (i < count && !isSeparator(eexecStr[i])) 16964 token += eexecStr[i++]; 16965 16966 return token; 16967 }; 16968 var c = eexecStr[i]; 16969 16970 if ((glyphsSection || subrsSection) && 16971 (token == 'RD' || token == '-|')) { 16972 i++; 16973 var data = eexec.slice(i, i + length); 16974 var lenIV = program.properties.privateData['lenIV']; 16975 var encoded = decrypt(data, kCharStringsEncryptionKey, lenIV); 16976 var str = decodeCharString(encoded); 16977 16978 if (glyphsSection) { 16979 program.charstrings.push({ 16980 glyph: glyph, 16981 data: str.charstring, 16982 lsb: str.lsb, 16983 width: str.width 16984 }); 16985 } else { 16986 program.subrs.push(str.charstring); 16987 } 16988 i += length; 16989 token = ''; 16990 } else if (isSeparator(c)) { 16991 length = parseInt(token, 10); 16992 token = ''; 16993 } else { 16994 token += c; 16995 if (!glyphsSection) { 16996 switch (token) { 16997 case '/CharString': 16998 glyphsSection = true; 16999 break; 17000 case '/Subrs': 17001 ++i; 17002 var num = parseInt(getToken(), 10); 17003 getToken(); // read in 'array' 17004 for (var j = 0; j < num; ++j) { 17005 var t = getToken(); // read in 'dup' 17006 if (t == 'ND' || t == '|-' || t == 'noaccess') 17007 break; 17008 var index = parseInt(getToken(), 10); 17009 if (index > j) 17010 j = index; 17011 var length = parseInt(getToken(), 10); 17012 getToken(); // read in 'RD' 17013 var data = eexec.slice(i + 1, i + 1 + length); 17014 var lenIV = program.properties.privateData['lenIV']; 17015 var encoded = decrypt(data, kCharStringsEncryptionKey, lenIV); 17016 var str = decodeCharString(encoded); 17017 i = i + 1 + length; 17018 t = getToken(); // read in 'NP' 17019 if (t == 'noaccess') 17020 getToken(); // read in 'put' 17021 program.subrs[index] = str.charstring; 17022 } 17023 break; 17024 case '/BlueValues': 17025 case '/OtherBlues': 17026 case '/FamilyBlues': 17027 case '/FamilyOtherBlues': 17028 case '/StemSnapH': 17029 case '/StemSnapV': 17030 program.properties.privateData[token.substring(1)] = 17031 readNumberArray(eexecStr, i + 1); 17032 break; 17033 case '/StdHW': 17034 case '/StdVW': 17035 program.properties.privateData[token.substring(1)] = 17036 readNumberArray(eexecStr, i + 2)[0]; 17037 break; 17038 case '/BlueShift': 17039 case '/lenIV': 17040 case '/BlueFuzz': 17041 case '/BlueScale': 17042 case '/LanguageGroup': 17043 case '/ExpansionFactor': 17044 program.properties.privateData[token.substring(1)] = 17045 readNumber(eexecStr, i + 1); 17046 break; 17047 } 17048 } else if (c == '/') { 17049 token = glyph = ''; 17050 while ((c = eexecStr[++i]) != ' ') 17051 glyph += c; 17052 } 17053 } 17054 } 17055 17056 return program; 17057 }; 17058 17059 this.extractFontHeader = function Type1Parser_extractFontHeader(stream, 17060 properties) { 17061 var headerString = ''; 17062 for (var i = 0, ii = stream.length; i < ii; i++) 17063 headerString += String.fromCharCode(stream[i]); 17064 17065 var token = ''; 17066 var count = headerString.length; 17067 for (var i = 0; i < count; i++) { 17068 var getToken = function getToken() { 17069 var character = headerString[i]; 17070 while (i < count && (isSeparator(character) || character == '/')) 17071 character = headerString[++i]; 17072 17073 var token = ''; 17074 while (i < count && !(isSeparator(character) || character == '/')) { 17075 token += character; 17076 character = headerString[++i]; 17077 } 17078 17079 return token; 17080 }; 17081 17082 var c = headerString[i]; 17083 if (isSeparator(c)) { 17084 switch (token) { 17085 case '/FontMatrix': 17086 var matrix = readNumberArray(headerString, i + 1); 17087 17088 // The FontMatrix is in unitPerEm, so make it pixels 17089 for (var j = 0, jj = matrix.length; j < jj; j++) 17090 matrix[j] *= 1000; 17091 17092 // Make the angle into the right direction 17093 matrix[2] *= -1; 17094 17095 properties.fontMatrix = matrix; 17096 break; 17097 case '/Encoding': 17098 var encodingArg = getToken(); 17099 var encoding; 17100 if (!/^\d+$/.test(encodingArg)) { 17101 // encoding name is specified 17102 encoding = Encodings[encodingArg]; 17103 } else { 17104 encoding = []; 17105 var size = parseInt(encodingArg, 10); 17106 getToken(); // read in 'array' 17107 17108 for (var j = 0; j < size; j++) { 17109 var token = getToken(); 17110 if (token == 'dup') { 17111 var index = parseInt(getToken(), 10); 17112 var glyph = getToken(); 17113 encoding[index] = glyph; 17114 getToken(); // read the in 'put' 17115 } 17116 } 17117 } 17118 if (!properties.hasEncoding && encoding) { 17119 properties.baseEncoding = encoding; 17120 break; 17121 } 17122 break; 17123 } 17124 token = ''; 17125 } else { 17126 token += c; 17127 } 17128 } 17129 }; 17130 }; 17131 17132 /** 17133 * The CFF class takes a Type1 file and wrap it into a 17134 * 'Compact Font Format' which itself embed Type2 charstrings. 17135 */ 17136 var CFFStandardStrings = [ 17137 '.notdef', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 17138 'ampersand', 'quoteright', 'parenleft', 'parenright', 'asterisk', 'plus', 17139 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 17140 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 17141 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 17142 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 17143 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 17144 'underscore', 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 17145 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 17146 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 'exclamdown', 'cent', 17147 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', 17148 'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft', 17149 'guilsinglright', 'fi', 'fl', 'endash', 'dagger', 'daggerdbl', 17150 'periodcentered', 'paragraph', 'bullet', 'quotesinglbase', 'quotedblbase', 17151 'quotedblright', 'guillemotright', 'ellipsis', 'perthousand', 'questiondown', 17152 'grave', 'acute', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 17153 'dieresis', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron', 'emdash', 17154 'AE', 'ordfeminine', 'Lslash', 'Oslash', 'OE', 'ordmasculine', 'ae', 17155 'dotlessi', 'lslash', 'oslash', 'oe', 'germandbls', 'onesuperior', 17156 'logicalnot', 'mu', 'trademark', 'Eth', 'onehalf', 'plusminus', 'Thorn', 17157 'onequarter', 'divide', 'brokenbar', 'degree', 'thorn', 'threequarters', 17158 'twosuperior', 'registered', 'minus', 'eth', 'multiply', 'threesuperior', 17159 'copyright', 'Aacute', 'Acircumflex', 'Adieresis', 'Agrave', 'Aring', 17160 'Atilde', 'Ccedilla', 'Eacute', 'Ecircumflex', 'Edieresis', 'Egrave', 17161 'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Ntilde', 'Oacute', 17162 'Ocircumflex', 'Odieresis', 'Ograve', 'Otilde', 'Scaron', 'Uacute', 17163 'Ucircumflex', 'Udieresis', 'Ugrave', 'Yacute', 'Ydieresis', 'Zcaron', 17164 'aacute', 'acircumflex', 'adieresis', 'agrave', 'aring', 'atilde', 17165 'ccedilla', 'eacute', 'ecircumflex', 'edieresis', 'egrave', 'iacute', 17166 'icircumflex', 'idieresis', 'igrave', 'ntilde', 'oacute', 'ocircumflex', 17167 'odieresis', 'ograve', 'otilde', 'scaron', 'uacute', 'ucircumflex', 17168 'udieresis', 'ugrave', 'yacute', 'ydieresis', 'zcaron', 'exclamsmall', 17169 'Hungarumlautsmall', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 17170 'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', '266 ff', 17171 'onedotenleader', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 17172 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 17173 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'commasuperior', 17174 'threequartersemdash', 'periodsuperior', 'questionsmall', 'asuperior', 17175 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 17176 'lsuperior', 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', 17177 'tsuperior', 'ff', 'ffi', 'ffl', 'parenleftinferior', 'parenrightinferior', 17178 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', 'Asmall', 'Bsmall', 17179 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', 17180 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall', 17181 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall', 17182 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', 17183 'Tildesmall', 'exclamdownsmall', 'centoldstyle', 'Lslashsmall', 17184 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall', 'Caronsmall', 17185 'Dotaccentsmall', 'Macronsmall', 'figuredash', 'hypheninferior', 17186 'Ogoneksmall', 'Ringsmall', 'Cedillasmall', 'questiondownsmall', 'oneeighth', 17187 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', 17188 'zerosuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 17189 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', 17190 'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior', 17191 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior', 17192 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', 17193 'commainferior', 'Agravesmall', 'Aacutesmall', 'Acircumflexsmall', 17194 'Atildesmall', 'Adieresissmall', 'Aringsmall', 'AEsmall', 'Ccedillasmall', 17195 'Egravesmall', 'Eacutesmall', 'Ecircumflexsmall', 'Edieresissmall', 17196 'Igravesmall', 'Iacutesmall', 'Icircumflexsmall', 'Idieresissmall', 17197 'Ethsmall', 'Ntildesmall', 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 17198 'Otildesmall', 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 17199 'Uacutesmall', 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 17200 'Thornsmall', 'Ydieresissmall', '001.000', '001.001', '001.002', '001.003', 17201 'Black', 'Bold', 'Book', 'Light', 'Medium', 'Regular', 'Roman', 'Semibold' 17202 ]; 17203 17204 var type1Parser = new Type1Parser(); 17205 17206 // Type1Font is also a CIDFontType0. 17207 var Type1Font = function Type1Font(name, file, properties) { 17208 // Get the data block containing glyphs and subrs informations 17209 var headerBlock = file.getBytes(properties.length1); 17210 type1Parser.extractFontHeader(headerBlock, properties); 17211 17212 // Decrypt the data blocks and retrieve it's content 17213 var eexecBlock = file.getBytes(properties.length2); 17214 var data = type1Parser.extractFontProgram(eexecBlock); 17215 for (var info in data.properties) 17216 properties[info] = data.properties[info]; 17217 17218 var charstrings = this.getOrderedCharStrings(data.charstrings, properties); 17219 var type2Charstrings = this.getType2Charstrings(charstrings); 17220 var subrs = this.getType2Subrs(data.subrs); 17221 17222 this.charstrings = charstrings; 17223 this.data = this.wrap(name, type2Charstrings, this.charstrings, 17224 subrs, properties); 17225 }; 17226 17227 Type1Font.prototype = { 17228 createCFFIndexHeader: function Type1Font_createCFFIndexHeader(objects, 17229 isByte) { 17230 // First 2 bytes contains the number of objects contained into this index 17231 var count = objects.length; 17232 17233 // If there is no object, just create an array saying that with another 17234 // offset byte. 17235 if (count == 0) 17236 return '\x00\x00\x00'; 17237 17238 var data = String.fromCharCode((count >> 8) & 0xFF, count & 0xff); 17239 17240 // Next byte contains the offset size use to reference object in the file 17241 // Actually we're using 0x04 to be sure to be able to store everything 17242 // without thinking of it while coding. 17243 data += '\x04'; 17244 17245 // Add another offset after this one because we need a new offset 17246 var relativeOffset = 1;